From a72962c30086c698634dcf23cd31fa6ec2ed2fc9 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 18 Jul 2017 09:44:43 -0500 Subject: [PATCH 001/219] Made some object lists less terrible to read --- code/__DATASTRUCTURES/linked_lists.dm | 2 +- code/__DEFINES/is_helpers.dm | 2 +- code/_onclick/click.dm | 2 +- code/_onclick/hud/human.dm | 2 +- code/_onclick/hud/screen_objects.dm | 6 +- code/controllers/subsystem/pai.dm | 2 +- code/controllers/subsystem/persistence.dm | 4 +- code/controllers/subsystem/shuttle.dm | 2 +- .../antagonists/datum_internal_affairs.dm | 2 +- code/datums/datumvars.dm | 8 +- code/datums/diseases/anxiety.dm | 2 +- code/datums/diseases/beesease.dm | 2 +- code/datums/diseases/fake_gbs.dm | 2 +- code/datums/diseases/flu.dm | 2 +- code/datums/forced_movement.dm | 2 +- code/datums/helper_datums/topic_input.dm | 2 +- code/datums/material_container.dm | 2 +- code/datums/mind.dm | 4 +- code/game/area/areas/holodeck.dm | 8 +- code/game/atoms.dm | 2 +- code/game/atoms.dm.rej | 10 + code/game/data_huds.dm | 6 +- code/game/gamemodes/blob/blob_finish.dm | 2 +- .../clock_structures/ocular_warden.dm | 4 +- code/game/gamemodes/cult/cult_items.dm | 10 +- code/game/gamemodes/devil/devil.dm | 4 +- code/game/gamemodes/events.dm | 2 +- code/game/gamemodes/game_mode.dm.rej | 10 + code/game/gamemodes/gang/gang.dm | 2 +- code/game/gamemodes/gang/gang_datum.dm | 2 +- .../miniantags/abduction/abduction.dm | 4 +- .../miniantags/abduction/abduction_gear.dm | 4 +- .../miniantags/abduction/abduction_surgery.dm | 2 +- .../gamemodes/miniantags/abduction/gland.dm | 2 +- code/game/gamemodes/nuclear/nuclear.dm | 2 +- code/game/gamemodes/nuclear/nuclearbomb.dm | 2 +- code/game/gamemodes/revolution/revolution.dm | 6 +- code/game/gamemodes/sandbox/h_sandbox.dm | 4 +- code/game/gamemodes/wizard/artefact.dm | 2 +- code/game/gamemodes/wizard/spellbook.dm | 2 +- code/game/machinery/autolathe.dm | 6 +- code/game/machinery/cloning.dm | 2 +- .../game/machinery/computer/buildandrepair.dm | 8 +- code/game/machinery/computer/card.dm | 8 +- code/game/machinery/computer/cloning.dm | 2 +- code/game/machinery/computer/security.dm | 6 +- code/game/machinery/doors/door.dm | 2 +- .../machinery/porta_turret/portable_turret.dm | 6 +- .../porta_turret/portable_turret_construct.dm | 2 +- .../porta_turret/portable_turret_cover.dm | 2 +- code/game/machinery/recharger.dm | 2 +- code/game/machinery/syndicatebeacon.dm | 2 +- code/game/machinery/syndicatebomb.dm | 6 +- code/game/machinery/vending.dm | 231 +++++++++--------- code/game/machinery/washing_machine.dm | 4 +- .../mecha/equipment/tools/medical_tools.dm | 6 +- .../mecha/equipment/tools/mining_tools.dm | 2 +- code/game/mecha/mecha.dm | 8 +- code/game/mecha/mecha_construction_paths.dm | 90 +++---- code/game/mecha/mecha_wreckage.dm | 2 +- code/game/objects/effects/contraband.dm | 2 +- .../objects/effects/spawners/gibspawner.dm | 10 +- .../effects/spawners/gibspawner.dm.rej | 10 + code/game/objects/items.dm | 4 +- code/game/objects/items/crayons.dm | 2 +- .../objects/items/devices/lightreplacer.dm | 2 +- .../objects/items/devices/pipe_painter.dm | 2 +- code/game/objects/items/robot/robot_parts.dm | 2 +- code/game/objects/items/stacks/rods.dm | 2 +- .../game/objects/items/stacks/sheets/light.dm | 2 +- .../objects/items/stacks/sheets/mineral.dm | 4 +- code/game/objects/items/stacks/tiles/light.dm | 2 +- code/game/objects/items/weapons/RPD.dm | 2 +- .../game/objects/items/weapons/clown_items.dm | 2 +- .../objects/items/weapons/flamethrower.dm | 2 +- code/game/objects/items/weapons/gift.dm | 2 +- .../items/weapons/grenades/chem_grenade.dm | 2 +- .../objects/items/weapons/grenades/plastic.dm | 2 +- .../items/weapons/implants/implant_chem.dm | 2 +- code/game/objects/items/weapons/inducer.dm | 4 +- .../items/weapons/singularityhammer.dm | 2 +- .../objects/items/weapons/storage/backpack.dm | 2 +- .../objects/items/weapons/storage/bags.dm | 4 +- .../objects/items/weapons/storage/firstaid.dm | 2 +- .../objects/items/weapons/storage/storage.dm | 2 +- .../objects/items/weapons/storage/wallets.dm | 4 +- .../objects/items/weapons/tanks/jetpack.dm | 2 +- .../game/objects/items/weapons/tanks/tanks.dm | 4 +- code/game/objects/items/weapons/twohanded.dm | 4 +- .../objects/structures/beds_chairs/bed.dm | 2 +- .../objects/structures/beds_chairs/chair.dm | 2 +- code/game/objects/structures/displaycase.dm | 2 +- code/game/objects/structures/fireaxe.dm | 2 +- code/game/objects/structures/fireplace.dm | 2 +- code/game/objects/structures/girders.dm | 10 +- code/game/objects/structures/mineral_doors.dm | 2 +- code/game/objects/structures/reflector.dm | 4 +- code/game/objects/structures/statues.dm | 4 +- code/game/objects/structures/tables_racks.dm | 2 +- code/game/turfs/simulated/dirtystation.dm | 2 +- .../game/turfs/simulated/floor/light_floor.dm | 2 +- code/game/turfs/simulated/floor/plating.dm | 2 +- .../turfs/simulated/floor/plating/asteroid.dm | 4 +- code/game/turfs/simulated/minerals.dm | 6 +- .../turfs/simulated/wall/mineral_walls.dm | 4 +- code/game/turfs/simulated/wall/misc_walls.dm | 2 +- code/game/turfs/simulated/walls.dm | 6 +- code/game/turfs/turf.dm | 2 +- code/modules/admin/admin.dm | 6 +- code/modules/admin/admin_verbs.dm | 12 +- code/modules/admin/player_panel.dm | 2 +- code/modules/admin/secrets.dm | 2 +- code/modules/admin/topic.dm | 2 +- code/modules/admin/verbs/adminpm.dm | 4 +- code/modules/admin/verbs/buildmode.dm | 8 +- code/modules/admin/verbs/debug.dm | 4 +- code/modules/admin/verbs/modifyvariables.dm | 2 +- code/modules/awaymissions/gateway.dm | 2 +- .../awaymissions/mission_code/Cabin.dm | 2 +- .../mission_code/stationCollision.dm | 2 +- code/modules/cargo/exports.dm | 2 +- code/modules/cargo/packs.dm | 2 +- code/modules/clothing/chameleon.dm | 4 +- code/modules/clothing/clothing.dm | 4 +- .../clothing/glasses/engine_goggles.dm | 4 +- .../modules/clothing/spacesuits/flightsuit.dm | 4 +- code/modules/clothing/spacesuits/hardsuit.dm | 18 +- .../clothing/spacesuits/hardsuit.dm.rej | 19 ++ .../clothing/spacesuits/miscellaneous.dm | 14 +- .../clothing/spacesuits/miscellaneous.dm.rej | 10 + .../clothing/spacesuits/plasmamen.dm.rej | 10 + code/modules/clothing/spacesuits/syndi.dm.rej | 10 + code/modules/clothing/suits/armor.dm | 6 +- code/modules/clothing/suits/bio.dm | 2 +- code/modules/clothing/suits/cloaks.dm | 2 +- code/modules/clothing/suits/jobs.dm | 6 +- code/modules/clothing/suits/labcoat.dm | 2 +- code/modules/clothing/suits/miscellaneous.dm | 24 +- .../clothing/suits/miscellaneous.dm.rej | 19 ++ code/modules/clothing/suits/utility.dm | 6 +- code/modules/crafting/recipes.dm | 4 +- code/modules/detectivework/detective_work.dm | 2 +- code/modules/detectivework/evidence.dm | 2 +- code/modules/events/_event.dm | 2 +- code/modules/events/false_alarm.dm | 2 +- code/modules/events/prison_break.dm | 8 +- code/modules/events/wizard/rpgloot.dm | 2 +- code/modules/flufftext/Hallucination.dm | 2 +- .../food_and_drinks/drinks/drinks/bottle.dm | 4 +- .../drinks/drinks/drinkingglass.dm | 2 +- .../food_and_drinks/food/customizables.dm | 6 +- code/modules/food_and_drinks/food/snacks.dm | 4 +- .../food_and_drinks/food/snacks_egg.dm | 2 +- .../kitchen_machinery/juicer.dm | 4 +- .../kitchen_machinery/microwave.dm | 4 +- .../kitchen_machinery/processor.dm | 2 +- .../kitchen_machinery/smartfridge.dm | 28 +-- code/modules/games/cards.dm | 4 +- code/modules/holiday/easter.dm | 2 +- code/modules/holiday/halloween.dm | 2 +- code/modules/holodeck/area_copy.dm | 4 +- code/modules/holodeck/computer.dm | 2 +- code/modules/hydroponics/grown/replicapod.dm | 4 +- code/modules/hydroponics/hydroponics.dm | 6 +- code/modules/hydroponics/seed_extractor.dm | 6 +- code/modules/jobs/job_types/engineering.dm | 2 +- code/modules/jobs/job_types/science.dm | 2 +- code/modules/library/random_books.dm | 2 +- code/modules/mapping/map_template.dm | 4 +- code/modules/mapping/reader.dm | 4 +- .../modules/mining/equipment/explorer_gear.dm | 2 +- .../mining/equipment/marker_beacons.dm | 2 +- .../mining/lavaland/necropolis_chests.dm | 2 +- code/modules/mining/machine_redemption.dm | 2 +- code/modules/mining/machine_vending.dm | 10 +- code/modules/mining/ores_coins.dm | 2 +- code/modules/mob/living/brain/MMI.dm | 4 +- code/modules/mob/living/brain/brain.dm | 2 +- code/modules/mob/living/brain/death.dm | 2 +- code/modules/mob/living/carbon/carbon.dm | 2 +- .../mob/living/carbon/human/examine.dm | 8 +- .../mob/living/carbon/human/human_defense.dm | 2 +- .../mob/living/carbon/human/interactive.dm | 58 ++--- code/modules/mob/living/carbon/human/life.dm | 2 +- .../carbon/human/species_types/flypeople.dm | 4 +- .../mob/living/carbon/monkey/combat.dm | 4 +- code/modules/mob/living/living_defense.dm | 2 +- code/modules/mob/living/silicon/ai/ai.dm | 2 +- .../mob/living/silicon/robot/inventory.dm | 2 +- .../modules/mob/living/silicon/robot/robot.dm | 2 +- .../living/simple_animal/bot/construction.dm | 8 +- .../mob/living/simple_animal/bot/ed209bot.dm | 2 +- .../mob/living/simple_animal/bot/mulebot.dm | 4 +- .../mob/living/simple_animal/bot/secbot.dm | 2 +- .../simple_animal/friendly/cockroach.dm | 2 +- .../mob/living/simple_animal/friendly/dog.dm | 6 +- .../simple_animal/friendly/lizard.dm.rej | 10 + .../mob/living/simple_animal/hostile/bees.dm | 2 +- .../simple_animal/hostile/giant_spider.dm | 2 +- .../hostile/mining_mobs/hivelord.dm | 12 +- .../mob/living/simple_animal/parrot.dm | 6 +- .../mob/living/simple_animal/slime/slime.dm | 2 +- code/modules/mob/mob.dm | 6 +- .../modular_computers/laptop_vendor.dm | 2 +- code/modules/ninja/suit/suit.dm | 2 +- code/modules/paperwork/contract.dm | 6 +- code/modules/paperwork/photocopier.dm | 4 +- code/modules/power/antimatter/shielding.dm | 2 +- code/modules/power/cable.dm | 6 +- code/modules/power/power.dm | 22 +- .../particle_accelerator/particle_control.dm | 12 +- .../mapGenerators/cellular.dm | 4 +- .../mapGenerators/syndicate.dm | 4 +- code/modules/projectiles/projectile/beams.dm | 2 +- code/modules/projectiles/projectile/magic.dm | 7 +- .../chemistry/reagents/alcohol_reagents.dm | 4 +- .../chemistry/reagents/other_reagents.dm | 6 +- .../chemistry/reagents/toxin_reagents.dm | 6 +- .../reagents/reagent_containers/glass.dm | 2 +- .../recycling/disposal-construction.dm | 2 +- code/modules/recycling/disposal-structures.dm | 2 +- code/modules/recycling/disposal-unit.dm | 2 +- code/modules/research/circuitprinter.dm | 2 +- code/modules/research/experimentor.dm | 16 +- code/modules/research/rdconsole.dm | 2 +- code/modules/spells/spell_types/barnyard.dm | 2 +- code/modules/spells/spell_types/charge.dm | 4 +- code/modules/spells/spell_types/conjure.dm | 2 +- code/modules/spells/spell_types/dumbfire.dm | 2 +- code/modules/spells/spell_types/lichdom.dm | 2 +- code/modules/spells/spell_types/projectile.dm | 2 +- code/modules/spells/spell_types/summonitem.dm | 2 +- code/modules/station_goals/bsa.dm | 12 +- code/modules/station_goals/dna_vault.dm | 4 +- code/modules/surgery/organs/heart.dm | 2 +- code/modules/uplink/uplink_item.dm | 2 +- 236 files changed, 733 insertions(+), 629 deletions(-) create mode 100644 code/game/atoms.dm.rej create mode 100644 code/game/gamemodes/game_mode.dm.rej create mode 100644 code/game/objects/effects/spawners/gibspawner.dm.rej create mode 100644 code/modules/clothing/spacesuits/hardsuit.dm.rej create mode 100644 code/modules/clothing/spacesuits/miscellaneous.dm.rej create mode 100644 code/modules/clothing/spacesuits/plasmamen.dm.rej create mode 100644 code/modules/clothing/spacesuits/syndi.dm.rej create mode 100644 code/modules/clothing/suits/miscellaneous.dm.rej create mode 100644 code/modules/mob/living/simple_animal/friendly/lizard.dm.rej diff --git a/code/__DATASTRUCTURES/linked_lists.dm b/code/__DATASTRUCTURES/linked_lists.dm index eccc3c422a..1d2e8d78a6 100644 --- a/code/__DATASTRUCTURES/linked_lists.dm +++ b/code/__DATASTRUCTURES/linked_lists.dm @@ -78,7 +78,7 @@ //If you specify a value the FIRST ONE is removed /datum/linked_list/proc/Remove(node) var/datum/linked_node/removing - if(istype(node,/datum/linked_node)) + if(istype(node, /datum/linked_node)) removing = node else //optimise removing head and tail, no point looping for them, especially the tail diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index 57fde17adc..4b1b9e4641 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -1,6 +1,6 @@ // simple is_type and similar inline helpers -#define islist(L) (istype(L,/list)) +#define islist(L) (istype(L, /list)) #define in_range(source, user) (get_dist(source, user) <= 1) diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 5c47e1f44d..7820b29691 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -95,7 +95,7 @@ if(!modifiers["catcher"] && A.IsObscured()) return - if(istype(loc,/obj/mecha)) + if(istype(loc, /obj/mecha)) var/obj/mecha/M = loc return M.click_action(A,src,params) diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index baf233f724..07c17b891f 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -28,7 +28,7 @@ icon_state = "act_equip" /obj/screen/human/equip/Click() - if(istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech + if(istype(usr.loc, /obj/mecha)) // stops inventory actions in a mech return 1 var/mob/living/carbon/human/H = usr H.quick_equip() diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 56d07500e8..401bde5cdb 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -110,7 +110,7 @@ if(usr.incapacitated()) return 1 - if(istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech + if(istype(usr.loc, /obj/mecha)) // stops inventory actions in a mech return 1 if(hud && hud.mymob && slot_id) @@ -167,7 +167,7 @@ return 1 if(usr.incapacitated() || isobserver(usr)) return 1 - if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech + if (istype(usr.loc, /obj/mecha)) // stops inventory actions in a mech return 1 if(hud.mymob.active_hand_index == held_index) @@ -350,7 +350,7 @@ return 1 if(usr.stat || usr.IsUnconscious() || usr.IsKnockdown() || usr.IsStun()) return 1 - if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech + if (istype(usr.loc, /obj/mecha)) // stops inventory actions in a mech return 1 if(master) var/obj/item/I = usr.get_active_held_item() diff --git a/code/controllers/subsystem/pai.dm b/code/controllers/subsystem/pai.dm index ea6d57088f..714223936c 100644 --- a/code/controllers/subsystem/pai.dm +++ b/code/controllers/subsystem/pai.dm @@ -14,7 +14,7 @@ SUBSYSTEM_DEF(pai) var/obj/item/device/paicard/card = locate(href_list["device"]) if(card.pai) return - if(istype(card,/obj/item/device/paicard) && istype(candidate,/datum/paiCandidate)) + if(istype(card, /obj/item/device/paicard) && istype(candidate, /datum/paiCandidate)) if(check_ready(candidate) != candidate) return FALSE var/mob/living/silicon/pai/pai = new(card) diff --git a/code/controllers/subsystem/persistence.dm b/code/controllers/subsystem/persistence.dm index ec76d623b1..f4eebe95be 100644 --- a/code/controllers/subsystem/persistence.dm +++ b/code/controllers/subsystem/persistence.dm @@ -37,7 +37,7 @@ SUBSYSTEM_DEF(persistence) var/list/free_satchels = list() for(var/turf/T in shuffle(block(locate(TRANSITIONEDGE,TRANSITIONEDGE,ZLEVEL_STATION), locate(world.maxx-TRANSITIONEDGE,world.maxy-TRANSITIONEDGE,ZLEVEL_STATION)))) //Nontrivially expensive but it's roundstart only - if(isfloorturf(T) && !istype(T,/turf/open/floor/plating/)) + if(isfloorturf(T) && !istype(T, /turf/open/floor/plating/)) free_satchels += new /obj/item/weapon/storage/backpack/satchel/flat/secret(T) if(!isemptylist(free_satchels) && ((free_satchels.len + placed_satchels) >= (50 - expanded_old_satchels.len) * 0.1)) //up to six tiles, more than enough to kill anything that moves break @@ -63,7 +63,7 @@ SUBSYSTEM_DEF(persistence) F.x = text2num(chosen_satchel[1]) F.y = text2num(chosen_satchel[2]) F.z = ZLEVEL_STATION - if(isfloorturf(F.loc) && !istype(F.loc,/turf/open/floor/plating/)) + if(isfloorturf(F.loc) && !istype(F.loc, /turf/open/floor/plating/)) F.hide(1) new path(F) return 1 diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm index 991f064965..5f735658c2 100644 --- a/code/controllers/subsystem/shuttle.dm +++ b/code/controllers/subsystem/shuttle.dm @@ -540,7 +540,7 @@ SUBSYSTEM_DEF(shuttle) /datum/controller/subsystem/shuttle/proc/is_in_shuttle_bounds(atom/A) var/area/current = get_area(A) - if(istype(current, /area/shuttle) && !istype(current,/area/shuttle/transit)) + if(istype(current, /area/shuttle) && !istype(current, /area/shuttle/transit)) return TRUE for(var/obj/docking_port/mobile/M in mobile) if(M.is_in_shuttle_bounds(A)) diff --git a/code/datums/antagonists/datum_internal_affairs.dm b/code/datums/antagonists/datum_internal_affairs.dm index e3a8077732..a07984262e 100644 --- a/code/datums/antagonists/datum_internal_affairs.dm +++ b/code/datums/antagonists/datum_internal_affairs.dm @@ -152,7 +152,7 @@ if(!owner||!owner.objectives) return for (var/objective_ in owner.objectives) - if(!(istype(objective_, /datum/objective/escape)||istype(objective_,/datum/objective/survive))) + if(!(istype(objective_, /datum/objective/escape)||istype(objective_, /datum/objective/survive))) continue remove_objective(objective_) diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index 369c33eed8..9156afa05a 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -62,7 +62,7 @@ - if(istype(D,/atom)) + if(istype(D, /atom)) var/atom/AT = D if(AT.icon && AT.icon_state) sprite = new /icon(AT.icon, AT.icon_state) @@ -77,7 +77,7 @@ sprite_text = "" var/list/atomsnowflake = list() - if(istype(D,/atom)) + if(istype(D, /atom)) var/atom/A = D if(isliving(A)) atomsnowflake += "[D]" @@ -575,7 +575,7 @@ return var/D = locate(href_list["datumedit"]) - if(!istype(D,/datum)) + if(!istype(D, /datum)) to_chat(usr, "This can only be used on datums") return @@ -586,7 +586,7 @@ return var/D = locate(href_list["datumchange"]) - if(!istype(D,/datum)) + if(!istype(D, /datum)) to_chat(usr, "This can only be used on datums") return diff --git a/code/datums/diseases/anxiety.dm b/code/datums/diseases/anxiety.dm index 2db4d1082e..780cb0b1e5 100644 --- a/code/datums/diseases/anxiety.dm +++ b/code/datums/diseases/anxiety.dm @@ -7,7 +7,7 @@ cure_text = "Ethanol" cures = list("ethanol") agent = "Excess Lepidopticides" - viable_mobtypes = list(/mob/living/carbon/human,/mob/living/carbon/monkey) + viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) desc = "If left untreated subject will regurgitate butterflies." severity = MEDIUM diff --git a/code/datums/diseases/beesease.dm b/code/datums/diseases/beesease.dm index 7a12049fec..5c9c9a1522 100644 --- a/code/datums/diseases/beesease.dm +++ b/code/datums/diseases/beesease.dm @@ -7,7 +7,7 @@ cure_text = "Sugar" cures = list("sugar") agent = "Apidae Infection" - viable_mobtypes = list(/mob/living/carbon/human,/mob/living/carbon/monkey) + viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) desc = "If left untreated subject will regurgitate bees." severity = DANGEROUS diff --git a/code/datums/diseases/fake_gbs.dm b/code/datums/diseases/fake_gbs.dm index 9c88626406..524bf8b4b2 100644 --- a/code/datums/diseases/fake_gbs.dm +++ b/code/datums/diseases/fake_gbs.dm @@ -6,7 +6,7 @@ cure_text = "Synaptizine & Sulfur" cures = list("synaptizine","sulfur") agent = "Gravitokinetic Bipotential SADS-" - viable_mobtypes = list(/mob/living/carbon/human,/mob/living/carbon/monkey) + viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) desc = "If left untreated death will occur." severity = BIOHAZARD diff --git a/code/datums/diseases/flu.dm b/code/datums/diseases/flu.dm index 8ee4c59b9f..1f2596d2d3 100644 --- a/code/datums/diseases/flu.dm +++ b/code/datums/diseases/flu.dm @@ -6,7 +6,7 @@ cures = list("spaceacillin") cure_chance = 10 agent = "H13N1 flu virion" - viable_mobtypes = list(/mob/living/carbon/human,/mob/living/carbon/monkey) + viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) permeability_mod = 0.75 desc = "If left untreated the subject will feel quite unwell." severity = MEDIUM diff --git a/code/datums/forced_movement.dm b/code/datums/forced_movement.dm index 3da1b050a3..620973487a 100644 --- a/code/datums/forced_movement.dm +++ b/code/datums/forced_movement.dm @@ -84,7 +84,7 @@ /mob/Collide(atom/A) . = ..() - if(force_moving && force_moving.allow_climbing && istype(A,/obj/structure)) + if(force_moving && force_moving.allow_climbing && istype(A, /obj/structure)) var/obj/structure/S = A if(S.climbable) S.do_climb(src) diff --git a/code/datums/helper_datums/topic_input.dm b/code/datums/helper_datums/topic_input.dm index e1934cc6a5..d27f259159 100644 --- a/code/datums/helper_datums/topic_input.dm +++ b/code/datums/helper_datums/topic_input.dm @@ -37,7 +37,7 @@ return isturf(t) ? t : null /datum/topic_input/proc/getAtom(i) - return getType(i,/atom) + return getType(i, /atom) /datum/topic_input/proc/getArea(i) var/t = getAndLocate(i) diff --git a/code/datums/material_container.dm b/code/datums/material_container.dm index 76de0329cd..cfc4c13d91 100644 --- a/code/datums/material_container.dm +++ b/code/datums/material_container.dm @@ -73,7 +73,7 @@ /datum/material_container/proc/insert_item(obj/item/I, multiplier = 1) if(!I) return 0 - if(istype(I,/obj/item/stack)) + if(istype(I, /obj/item/stack)) var/obj/item/stack/S = I return insert_stack(I, S.amount) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index f23f01d068..26327de5e7 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -1592,9 +1592,9 @@ agent_landmarks.len = 4 scientist_landmarks.len = 4 for(var/obj/effect/landmark/abductor/A in GLOB.landmarks_list) - if(istype(A,/obj/effect/landmark/abductor/agent)) + if(istype(A, /obj/effect/landmark/abductor/agent)) agent_landmarks[text2num(A.team)] = A - else if(istype(A,/obj/effect/landmark/abductor/scientist)) + else if(istype(A, /obj/effect/landmark/abductor/scientist)) scientist_landmarks[text2num(A.team)] = A var/obj/effect/landmark/L diff --git a/code/game/area/areas/holodeck.dm b/code/game/area/areas/holodeck.dm index 7bf213be52..51fd4e1677 100644 --- a/code/game/area/areas/holodeck.dm +++ b/code/game/area/areas/holodeck.dm @@ -21,28 +21,28 @@ if(!linked) return 0 var/area/A = get_area(linked) - ASSERT(!istype(A,/area/holodeck)) + ASSERT(!istype(A, /area/holodeck)) return A.powered(chan) /area/holodeck/usage(var/chan) if(!linked) return 0 var/area/A = get_area(linked) - ASSERT(!istype(A,/area/holodeck)) + ASSERT(!istype(A, /area/holodeck)) return A.usage(chan) /area/holodeck/addStaticPower(value, powerchannel) if(!linked) return var/area/A = get_area(linked) - ASSERT(!istype(A,/area/holodeck)) + ASSERT(!istype(A, /area/holodeck)) return A.addStaticPower(value,powerchannel) /area/holodeck/use_power(var/amount, var/chan) if(!linked) return 0 var/area/A = get_area(linked) - ASSERT(!istype(A,/area/holodeck)) + ASSERT(!istype(A, /area/holodeck)) return A.use_power(amount,chan) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 83f1817fc1..02113e92a3 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -143,7 +143,7 @@ if(T.z != ZLEVEL_CENTCOM)//if not, don't bother return 0 - if(istype(T.loc,/area/shuttle/syndicate) || istype(T.loc,/area/syndicate_mothership)) + if(istype(T.loc, /area/shuttle/syndicate) || istype(T.loc, /area/syndicate_mothership)) return 1 return 0 diff --git a/code/game/atoms.dm.rej b/code/game/atoms.dm.rej new file mode 100644 index 0000000000..eee34deceb --- /dev/null +++ b/code/game/atoms.dm.rej @@ -0,0 +1,10 @@ +diff a/code/game/atoms.dm b/code/game/atoms.dm (rejected hunks) +@@ -126,7 +126,7 @@ + return TRUE + + //finally check for centcom itself +- return istype(T.loc,/area/centcom) ++ return istype(T.loc, /area/centcom) + + /atom/proc/onSyndieBase() + var/turf/T = get_turf(src) diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index 2e5854509a..f94b0c9a48 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -202,17 +202,17 @@ holder = hud_list[i] holder.icon_state = null for(var/obj/item/weapon/implant/I in implants) - if(istype(I,/obj/item/weapon/implant/tracking)) + if(istype(I, /obj/item/weapon/implant/tracking)) holder = hud_list[IMPTRACK_HUD] var/icon/IC = icon(icon, icon_state, dir) holder.pixel_y = IC.Height() - world.icon_size holder.icon_state = "hud_imp_tracking" - else if(istype(I,/obj/item/weapon/implant/mindshield)) + else if(istype(I, /obj/item/weapon/implant/mindshield)) holder = hud_list[IMPLOYAL_HUD] var/icon/IC = icon(icon, icon_state, dir) holder.pixel_y = IC.Height() - world.icon_size holder.icon_state = "hud_imp_loyal" - else if(istype(I,/obj/item/weapon/implant/chem)) + else if(istype(I, /obj/item/weapon/implant/chem)) holder = hud_list[IMPCHEM_HUD] var/icon/IC = icon(icon, icon_state, dir) holder.pixel_y = IC.Height() - world.icon_size diff --git a/code/game/gamemodes/blob/blob_finish.dm b/code/game/gamemodes/blob/blob_finish.dm index 3ca2e8f00e..b1cea567a1 100644 --- a/code/game/gamemodes/blob/blob_finish.dm +++ b/code/game/gamemodes/blob/blob_finish.dm @@ -62,7 +62,7 @@ return ..() /datum/game_mode/proc/auto_declare_completion_blob() - if(istype(SSticker.mode,/datum/game_mode/blob) ) + if(istype(SSticker.mode, /datum/game_mode/blob) ) var/datum/game_mode/blob/blob_mode = src if(blob_mode.blob_overminds.len) var/text = "The blob[(blob_mode.blob_overminds.len > 1 ? "s were" : " was")]:" diff --git a/code/game/gamemodes/clock_cult/clock_structures/ocular_warden.dm b/code/game/gamemodes/clock_cult/clock_structures/ocular_warden.dm index bd315353b9..49c58710f3 100644 --- a/code/game/gamemodes/clock_cult/clock_structures/ocular_warden.dm +++ b/code/game/gamemodes/clock_cult/clock_structures/ocular_warden.dm @@ -79,7 +79,7 @@ if(GLOB.ratvar_awakens && L) L.adjust_fire_stacks(damage_per_tick) L.IgniteMob() - else if(istype(target,/obj/mecha)) + else if(istype(target, /obj/mecha)) var/obj/mecha/M = target M.take_damage(damage_per_tick * get_efficiency_mod(), BURN, "melee", 1, get_dir(src, M)) @@ -94,7 +94,7 @@ if(isliving(target)) var/mob/living/L = target to_chat(L, "\"I SEE YOU!\"\n[src]'s gaze [GLOB.ratvar_awakens ? "melts you alive" : "burns you"]!") - else if(istype(target,/obj/mecha)) + else if(istype(target, /obj/mecha)) var/obj/mecha/M = target to_chat(M.occupant, "\"I SEE YOU!\"" ) else if(prob(0.5)) //Extremely low chance because of how fast the subsystem it uses processes diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm index 04364ae1c3..d7bf5e9b9e 100644 --- a/code/game/gamemodes/cult/cult_items.dm +++ b/code/game/gamemodes/cult/cult_items.dm @@ -90,7 +90,7 @@ icon_state = "cultrobes" item_state = "cultrobes" body_parts_covered = CHEST|GROIN|LEGS|ARMS - allowed = list(/obj/item/weapon/tome,/obj/item/weapon/melee/cultblade) + allowed = list(/obj/item/weapon/tome, /obj/item/weapon/melee/cultblade) armor = list(melee = 50, bullet = 30, laser = 50,energy = 20, bomb = 25, bio = 10, rad = 0, fire = 10, acid = 10) flags_inv = HIDEJUMPSUIT cold_protection = CHEST|GROIN|LEGS|ARMS @@ -133,7 +133,7 @@ icon_state = "magusred" item_state = "magusred" body_parts_covered = CHEST|GROIN|LEGS|ARMS - allowed = list(/obj/item/weapon/tome,/obj/item/weapon/melee/cultblade) + allowed = list(/obj/item/weapon/tome, /obj/item/weapon/melee/cultblade) armor = list(melee = 50, bullet = 30, laser = 50,energy = 20, bomb = 25, bio = 10, rad = 0, fire = 10, acid = 10) flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT @@ -152,7 +152,7 @@ item_state = "cult_armor" desc = "A heavily-armored exosuit worn by warriors of the Nar-Sien cult. It can withstand hard vacuum." w_class = WEIGHT_CLASS_SMALL - allowed = list(/obj/item/weapon/tome,/obj/item/weapon/melee/cultblade,/obj/item/weapon/tank/internals/) + allowed = list(/obj/item/weapon/tome, /obj/item/weapon/melee/cultblade, /obj/item/weapon/tank/internals/) armor = list(melee = 70, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 40, acid = 75) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/cult @@ -172,7 +172,7 @@ w_class = WEIGHT_CLASS_BULKY armor = list(melee = 50, bullet = 40, laser = 50,energy = 30, bomb = 50, bio = 30, rad = 30, fire = 50, acid = 60) body_parts_covered = CHEST|GROIN|LEGS|ARMS - allowed = list(/obj/item/weapon/tome,/obj/item/weapon/melee/cultblade) + allowed = list(/obj/item/weapon/tome, /obj/item/weapon/melee/cultblade) var/current_charges = 3 hoodtype = /obj/item/clothing/head/hooded/cult_hoodie @@ -222,7 +222,7 @@ icon_state = "cultrobes" item_state = "cultrobes" flags_inv = HIDEJUMPSUIT - allowed = list(/obj/item/weapon/tome,/obj/item/weapon/melee/cultblade) + allowed = list(/obj/item/weapon/tome, /obj/item/weapon/melee/cultblade) body_parts_covered = CHEST|GROIN|LEGS|ARMS armor = list(melee = -50, bullet = -50, laser = -50,energy = -50, bomb = -50, bio = -50, rad = -50, fire = 0, acid = 0) slowdown = -1 diff --git a/code/game/gamemodes/devil/devil.dm b/code/game/gamemodes/devil/devil.dm index c6f1620c90..f69b50bc79 100644 --- a/code/game/gamemodes/devil/devil.dm +++ b/code/game/gamemodes/devil/devil.dm @@ -26,11 +26,11 @@ src.visible_message("[src] seems to have been harmed by the purity of [attacker]'s clothes.", "Unsullied white clothing is disrupting your form.") return whiteness[U.type] + 1 if(BANE_TOOLBOX) - if(istype(weapon,/obj/item/weapon/storage/toolbox)) + if(istype(weapon, /obj/item/weapon/storage/toolbox)) src.visible_message("The [weapon] seems unusually robust this time.", "The [weapon] is your unmaking!") return 2.5 // Will take four hits with a normal toolbox to crit. if(BANE_HARVEST) - if(istype(weapon,/obj/item/weapon/reagent_containers/food/snacks/grown/)) + if(istype(weapon, /obj/item/weapon/reagent_containers/food/snacks/grown/)) visible_message("The spirits of the harvest aid in the exorcism.", "The harvest spirits are harming you.") Knockdown(40) qdel(weapon) diff --git a/code/game/gamemodes/events.dm b/code/game/gamemodes/events.dm index 324f353c8b..f36f967c1d 100644 --- a/code/game/gamemodes/events.dm +++ b/code/game/gamemodes/events.dm @@ -60,7 +60,7 @@ S.update_icon() S.power_change() for(var/area/A in world) - if(!istype(A, /area/space) && !istype(A, /area/shuttle) && !istype(A,/area/arrival)) + if(!istype(A, /area/space) && !istype(A, /area/shuttle) && !istype(A, /area/arrival)) A.power_light = TRUE A.power_equip = TRUE A.power_environ = TRUE diff --git a/code/game/gamemodes/game_mode.dm.rej b/code/game/gamemodes/game_mode.dm.rej new file mode 100644 index 0000000000..7c4f33972c --- /dev/null +++ b/code/game/gamemodes/game_mode.dm.rej @@ -0,0 +1,10 @@ +diff a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm (rejected hunks) +@@ -266,7 +266,7 @@ + if(escaped_total > 0) + SSblackbox.set_val("escaped_total",escaped_total) + send2irc("Server", "Round just ended.") +- if(cult.len && !istype(SSticker.mode,/datum/game_mode/cult)) ++ if(cult.len && !istype(SSticker.mode, /datum/game_mode/cult)) + datum_cult_completion() + + return 0 diff --git a/code/game/gamemodes/gang/gang.dm b/code/game/gamemodes/gang/gang.dm index 51d5d5150b..37fbfb5336 100644 --- a/code/game/gamemodes/gang/gang.dm +++ b/code/game/gamemodes/gang/gang.dm @@ -3,7 +3,7 @@ GLOBAL_LIST_INIT(gang_name_pool, list("Clandestine", "Prima", "Zero-G", "Max", "Blasto", "Waffle", "North", "Omni", "Newton", "Cyber", "Donk", "Gene", "Gib", "Tunnel", "Diablo", "Psyke", "Osiron", "Sirius", "Sleeping Carp")) GLOBAL_LIST_INIT(gang_colors_pool, list("red","orange","yellow","green","blue","purple", "white")) -GLOBAL_LIST_INIT(gang_outfit_pool, list(/obj/item/clothing/suit/jacket/leather,/obj/item/clothing/suit/jacket/leather/overcoat,/obj/item/clothing/suit/jacket/puffer,/obj/item/clothing/suit/jacket/miljacket,/obj/item/clothing/suit/jacket/puffer,/obj/item/clothing/suit/pirate,/obj/item/clothing/suit/poncho,/obj/item/clothing/suit/apron/overalls,/obj/item/clothing/suit/jacket/letterman)) +GLOBAL_LIST_INIT(gang_outfit_pool, list(/obj/item/clothing/suit/jacket/leather, /obj/item/clothing/suit/jacket/leather/overcoat, /obj/item/clothing/suit/jacket/puffer, /obj/item/clothing/suit/jacket/miljacket, /obj/item/clothing/suit/jacket/puffer, /obj/item/clothing/suit/pirate, /obj/item/clothing/suit/poncho, /obj/item/clothing/suit/apron/overalls, /obj/item/clothing/suit/jacket/letterman)) /datum/game_mode var/list/datum/gang/gangs = list() diff --git a/code/game/gamemodes/gang/gang_datum.dm b/code/game/gamemodes/gang/gang_datum.dm index 1a145d1227..ba18ad7578 100644 --- a/code/game/gamemodes/gang/gang_datum.dm +++ b/code/game/gamemodes/gang/gang_datum.dm @@ -188,7 +188,7 @@ if(!gangtools.len || !message) return for(var/obj/item/device/gangtool/tool in gangtools) - var/mob/living/mob = get(tool.loc,/mob/living) + var/mob/living/mob = get(tool.loc, /mob/living) if(mob && mob.mind && mob.stat == CONSCIOUS) if(mob.mind.gang_datum == src) to_chat(mob, "[bicon(tool)] [message]") diff --git a/code/game/gamemodes/miniantags/abduction/abduction.dm b/code/game/gamemodes/miniantags/abduction/abduction.dm index 0e4a11f8ab..d4da428e4e 100644 --- a/code/game/gamemodes/miniantags/abduction/abduction.dm +++ b/code/game/gamemodes/miniantags/abduction/abduction.dm @@ -96,9 +96,9 @@ agent_landmarks.len = max_teams scientist_landmarks.len = max_teams for(var/obj/effect/landmark/abductor/A in GLOB.landmarks_list) - if(istype(A,/obj/effect/landmark/abductor/agent)) + if(istype(A, /obj/effect/landmark/abductor/agent)) agent_landmarks[text2num(A.team)] = A - else if(istype(A,/obj/effect/landmark/abductor/scientist)) + else if(istype(A, /obj/effect/landmark/abductor/scientist)) scientist_landmarks[text2num(A.team)] = A var/team_name = team_names[team_number] diff --git a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm index d8bdca034e..3f45f69cdd 100644 --- a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm +++ b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm @@ -271,10 +271,10 @@ var/list/all_items = M.GetAllContents() for(var/obj/I in all_items) - if(istype(I,/obj/item/device/radio/)) + if(istype(I, /obj/item/device/radio/)) var/obj/item/device/radio/r = I r.listening = 0 - if(!istype(I,/obj/item/device/radio/headset)) + if(!istype(I, /obj/item/device/radio/headset)) r.broadcasting = 0 //goddamned headset hacks /obj/item/device/firing_pin/abductor diff --git a/code/game/gamemodes/miniantags/abduction/abduction_surgery.dm b/code/game/gamemodes/miniantags/abduction/abduction_surgery.dm index 4ca4e47a5b..06e4a84569 100644 --- a/code/game/gamemodes/miniantags/abduction/abduction_surgery.dm +++ b/code/game/gamemodes/miniantags/abduction/abduction_surgery.dm @@ -1,6 +1,6 @@ /datum/surgery/organ_extraction name = "experimental dissection" - steps = list(/datum/surgery_step/incise, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/retract_skin,/datum/surgery_step/incise, /datum/surgery_step/extract_organ ,/datum/surgery_step/gland_insert) + steps = list(/datum/surgery_step/incise, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/retract_skin, /datum/surgery_step/incise, /datum/surgery_step/extract_organ, /datum/surgery_step/gland_insert) possible_locs = list("chest") ignore_clothes = 1 diff --git a/code/game/gamemodes/miniantags/abduction/gland.dm b/code/game/gamemodes/miniantags/abduction/gland.dm index 13e86dd5d3..3598446bc1 100644 --- a/code/game/gamemodes/miniantags/abduction/gland.dm +++ b/code/game/gamemodes/miniantags/abduction/gland.dm @@ -108,7 +108,7 @@ /obj/item/organ/heart/gland/pop/activate() to_chat(owner, "You feel unlike yourself.") - var/species = pick(list(/datum/species/lizard,/datum/species/jelly/slime,/datum/species/pod,/datum/species/fly,/datum/species/jelly)) + var/species = pick(list(/datum/species/lizard, /datum/species/jelly/slime, /datum/species/pod, /datum/species/fly, /datum/species/jelly)) owner.set_species(species) /obj/item/organ/heart/gland/ventcrawling diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index cdae6718fd..1110e5120e 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -275,7 +275,7 @@ /datum/game_mode/proc/auto_declare_completion_nuclear() - if( syndicates.len || (SSticker && istype(SSticker.mode,/datum/game_mode/nuclear)) ) + if( syndicates.len || (SSticker && istype(SSticker.mode, /datum/game_mode/nuclear)) ) var/text = "
The syndicate operatives were:" var/purchases = "" var/TC_uses = 0 diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index 962fd0a6fc..51fe3820d8 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -442,7 +442,7 @@ off_station = NUKE_MISS_STATION if((bomb_location.x < (128-NUKERANGE)) || (bomb_location.x > (128+NUKERANGE)) || (bomb_location.y < (128-NUKERANGE)) || (bomb_location.y > (128+NUKERANGE))) off_station = NUKE_MISS_STATION - else if(istype(A, /area/syndicate_mothership) || (istype(A,/area/shuttle/syndicate) && bomb_location.z == ZLEVEL_CENTCOM)) + else if(istype(A, /area/syndicate_mothership) || (istype(A, /area/shuttle/syndicate) && bomb_location.z == ZLEVEL_CENTCOM)) off_station = NUKE_SYNDICATE_BASE else off_station = NUKE_NEAR_MISS diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm index a17a9d97fb..51a2c6c486 100644 --- a/code/game/gamemodes/revolution/revolution.dm +++ b/code/game/gamemodes/revolution/revolution.dm @@ -360,7 +360,7 @@ /datum/game_mode/proc/auto_declare_completion_revolution() var/list/targets = list() - if(head_revolutionaries.len || istype(SSticker.mode,/datum/game_mode/revolution)) + if(head_revolutionaries.len || istype(SSticker.mode, /datum/game_mode/revolution)) var/num_revs = 0 var/num_survivors = 0 for(var/mob/living/carbon/survivor in GLOB.living_mob_list) @@ -377,14 +377,14 @@ text += "
" to_chat(world, text) - if(revolutionaries.len || istype(SSticker.mode,/datum/game_mode/revolution)) + if(revolutionaries.len || istype(SSticker.mode, /datum/game_mode/revolution)) var/text = "
The revolutionaries were:" for(var/datum/mind/rev in revolutionaries) text += printplayer(rev, 1) text += "
" to_chat(world, text) - if( head_revolutionaries.len || revolutionaries.len || istype(SSticker.mode,/datum/game_mode/revolution) ) + if( head_revolutionaries.len || revolutionaries.len || istype(SSticker.mode, /datum/game_mode/revolution) ) var/text = "
The heads of staff were:" var/list/heads = get_all_heads() for(var/datum/mind/head in heads) diff --git a/code/game/gamemodes/sandbox/h_sandbox.dm b/code/game/gamemodes/sandbox/h_sandbox.dm index 3895a479c7..1586cc43b1 100644 --- a/code/game/gamemodes/sandbox/h_sandbox.dm +++ b/code/game/gamemodes/sandbox/h_sandbox.dm @@ -27,9 +27,9 @@ GLOBAL_VAR_INIT(hsboxspawn, TRUE) //items that shouldn't spawn on the floor because they would bug or act weird var/global/list/spawn_forbidden = list( /obj/item/tk_grab, /obj/item/weapon/implant, // not implanter, the actual thing that is inside you - /obj/item/assembly,/obj/item/device/onetankbomb, /obj/item/radio, /obj/item/device/pda/ai, + /obj/item/assembly, /obj/item/device/onetankbomb, /obj/item/radio, /obj/item/device/pda/ai, /obj/item/device/uplink, /obj/item/smallDelivery, /obj/item/projectile, - /obj/item/borg/sight,/obj/item/borg/stun,/obj/item/weapon/robot_module) + /obj/item/borg/sight, /obj/item/borg/stun, /obj/item/weapon/robot_module) /datum/hSB/proc/update() var/global/list/hrefs = list( diff --git a/code/game/gamemodes/wizard/artefact.dm b/code/game/gamemodes/wizard/artefact.dm index 747560f31b..d965229dd6 100644 --- a/code/game/gamemodes/wizard/artefact.dm +++ b/code/game/gamemodes/wizard/artefact.dm @@ -468,7 +468,7 @@ to_chat(target, "You feel a stabbing pain in [parse_zone(user.zone_selected)]!") target.Knockdown(40) GiveHint(target) - else if(istype(I,/obj/item/weapon/bikehorn)) + else if(istype(I, /obj/item/weapon/bikehorn)) to_chat(target, "HONK") target << 'sound/items/airhorn.ogg' target.adjustEarDamage(0,3) diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm index 9186872f58..d5d691dae9 100644 --- a/code/game/gamemodes/wizard/spellbook.dm +++ b/code/game/gamemodes/wizard/spellbook.dm @@ -899,7 +899,7 @@ /obj/item/weapon/spellbook/oneuse/random/Initialize() ..() - var/static/banned_spells = list(/obj/item/weapon/spellbook/oneuse/mimery_blockade,/obj/item/weapon/spellbook/oneuse/mimery_guns) + var/static/banned_spells = list(/obj/item/weapon/spellbook/oneuse/mimery_blockade, /obj/item/weapon/spellbook/oneuse/mimery_guns) var/real_type = pick(subtypesof(/obj/item/weapon/spellbook/oneuse) - banned_spells) new real_type(loc) qdel(src) diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index 11c54d4d99..1164851206 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -152,7 +152,7 @@ busy = TRUE var/inserted = materials.insert_item(O) if(inserted) - if(istype(O,/obj/item/stack)) + if(istype(O, /obj/item/stack)) if (O.materials[MAT_METAL]) flick("autolathe_o",src)//plays metal insertion animation if (O.materials[MAT_GLASS]) @@ -361,7 +361,7 @@ if(D.make_reagents.len) return 0 - var/coeff = (ispath(D.build_path,/obj/item/stack) ? 1 : prod_coeff) + var/coeff = (ispath(D.build_path, /obj/item/stack) ? 1 : prod_coeff) if(D.materials[MAT_METAL] && (materials.amount(MAT_METAL) < (D.materials[MAT_METAL] * coeff * amount))) return 0 @@ -370,7 +370,7 @@ return 1 /obj/machinery/autolathe/proc/get_design_cost(datum/design/D) - var/coeff = (ispath(D.build_path,/obj/item/stack) ? 1 : prod_coeff) + var/coeff = (ispath(D.build_path, /obj/item/stack) ? 1 : prod_coeff) var/dat if(D.materials[MAT_METAL]) dat += "[D.materials[MAT_METAL] * coeff] metal " diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 2ba6b733bd..b1246a53f1 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -304,7 +304,7 @@ if(default_deconstruction_crowbar(W)) return - if(istype(W,/obj/item/device/multitool)) + if(istype(W, /obj/item/device/multitool)) var/obj/item/device/multitool/P = W if(istype(P.buffer, /obj/machinery/computer/cloning)) diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index ee9202bfff..158cce1eff 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -308,7 +308,7 @@ build_path = /obj/machinery/computer/rdconsole/core /obj/item/weapon/circuitboard/computer/rdconsole/attackby(obj/item/I, mob/user, params) - if(istype(I,/obj/item/weapon/screwdriver)) + if(istype(I, /obj/item/weapon/screwdriver)) if(build_path == /obj/machinery/computer/rdconsole/core) name = "R&D Console - Robotics (Computer Board)" build_path = /obj/machinery/computer/rdconsole/robotics @@ -343,13 +343,13 @@ var/emagged = FALSE /obj/item/weapon/circuitboard/computer/cargo/attackby(obj/item/I, mob/user, params) - if(istype(I,/obj/item/device/multitool)) + if(istype(I, /obj/item/device/multitool)) if(!emagged) contraband = !contraband to_chat(user, "Receiver spectrum set to [contraband ? "Broad" : "Standard"].") else to_chat(user, "The spectrum chip is unresponsive.") - else if(istype(I,/obj/item/weapon/card/emag)) + else if(istype(I, /obj/item/weapon/card/emag)) if(!emagged) contraband = TRUE emagged = TRUE @@ -441,7 +441,7 @@ origin_tech = "programming=1" /obj/item/weapon/circuitboard/computer/libraryconsole/attackby(obj/item/I, mob/user, params) - if(istype(I,/obj/item/weapon/screwdriver)) + if(istype(I, /obj/item/weapon/screwdriver)) if(build_path == /obj/machinery/computer/libraryconsole/bookmanagement) name = "Library Visitor Console (Computer Board)" build_path = /obj/machinery/computer/libraryconsole diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index 5803fc5c52..a9f37b5a61 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -258,7 +258,7 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) var/jobs_all = "" var/list/alljobs = list("Unassigned") - alljobs += (istype(src,/obj/machinery/computer/card/centcom)? get_all_centcom_jobs() : get_all_jobs()) + "Custom" + alljobs += (istype(src, /obj/machinery/computer/card/centcom)? get_all_centcom_jobs() : get_all_jobs()) + "Custom" for(var/job in alljobs) jobs_all += "[replacetext(job, " ", " ")] " //make sure there isn't a line break in the middle of a job @@ -303,7 +303,7 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) jobs += "Assignment: [target_rank] (Demote)" var/accesses = "" - if(istype(src,/obj/machinery/computer/card/centcom)) + if(istype(src, /obj/machinery/computer/card/centcom)) accesses += "
Central Command:
" for(var/A in get_all_centcom_access()) if(A in modify.access) @@ -433,7 +433,7 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) if(authenticated) var/access_type = text2num(href_list["access_target"]) var/access_allowed = text2num(href_list["allowed"]) - if(access_type in (istype(src,/obj/machinery/computer/card/centcom)?get_all_centcom_access() : get_all_accesses())) + if(access_type in (istype(src, /obj/machinery/computer/card/centcom)?get_all_centcom_access() : get_all_accesses())) modify.access -= access_type if(access_allowed == 1) modify.access += access_type @@ -460,7 +460,7 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) to_chat(usr, "No log exists for this job.") return - modify.access = ( istype(src,/obj/machinery/computer/card/centcom) ? get_centcom_access(t1) : jobdatum.get_access() ) + modify.access = ( istype(src, /obj/machinery/computer/card/centcom) ? get_centcom_access(t1) : jobdatum.get_access() ) if (modify) modify.assignment = t1 playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index 84f270eb7c..3649182ba0 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -124,7 +124,7 @@ to_chat(user, "You insert [W].") playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0) src.updateUsrDialog() - else if(istype(W,/obj/item/device/multitool)) + else if(istype(W, /obj/item/device/multitool)) var/obj/item/device/multitool/P = W if(istype(P.buffer, /obj/machinery/clonepod)) diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 0940caef48..d7027aeca7 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -576,13 +576,13 @@ What a mess.*/ if(istype(active2, /datum/data/record)) active2.fields["name"] = t1 if("id") - if(istype(active2,/datum/data/record) || istype(active1,/datum/data/record)) + if(istype(active2, /datum/data/record) || istype(active1, /datum/data/record)) var/t1 = stripped_input(usr, "Please input id:", "Secure. records", active1.fields["id"], null) if(!canUseSecurityRecordsConsole(usr, t1, a1)) return - if(istype(active1,/datum/data/record)) + if(istype(active1, /datum/data/record)) active1.fields["id"] = t1 - if(istype(active2,/datum/data/record)) + if(istype(active2, /datum/data/record)) active2.fields["id"] = t1 if("fingerprint") if(istype(active1, /datum/data/record)) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 72c9a64771..47e3fdc6d4 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -192,7 +192,7 @@ playsound(src.loc, 'sound/items/welder.ogg', 100, 1) /obj/machinery/door/emp_act(severity) - if(prob(20/severity) && (istype(src,/obj/machinery/door/airlock) || istype(src,/obj/machinery/door/window)) ) + if(prob(20/severity) && (istype(src, /obj/machinery/door/airlock) || istype(src, /obj/machinery/door/window)) ) INVOKE_ASYNC(src, .proc/open) if(prob(40/severity)) if(secondsElectrified == 0) diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 3f5944c03e..f2bb675a25 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -274,7 +274,7 @@ to_chat(user, "Controls are now [locked ? "locked" : "unlocked"].") else to_chat(user, "Access denied.") - else if(istype(I,/obj/item/device/multitool) && !locked) + else if(istype(I, /obj/item/device/multitool) && !locked) var/obj/item/device/multitool/M = I M.buffer = src to_chat(user, "You add [src] to multitool buffer.") @@ -689,9 +689,9 @@ /obj/machinery/turretid/attackby(obj/item/I, mob/user, params) if(stat & BROKEN) return - if (istype(I,/obj/item/device/multitool)) + if (istype(I, /obj/item/device/multitool)) var/obj/item/device/multitool/M = I - if(M.buffer && istype(M.buffer,/obj/machinery/porta_turret)) + if(M.buffer && istype(M.buffer, /obj/machinery/porta_turret)) turrets |= M.buffer to_chat(user, "You link \the [M.buffer] with \the [src]") return diff --git a/code/game/machinery/porta_turret/portable_turret_construct.dm b/code/game/machinery/porta_turret/portable_turret_construct.dm index 25e4f4e49a..08909030ca 100644 --- a/code/game/machinery/porta_turret/portable_turret_construct.dm +++ b/code/game/machinery/porta_turret/portable_turret_construct.dm @@ -151,7 +151,7 @@ var/obj/machinery/porta_turret/turret //fuck lasertag turrets - if(istype(installed_gun,/obj/item/weapon/gun/energy/laser/bluetag) || istype(installed_gun,/obj/item/weapon/gun/energy/laser/redtag)) + if(istype(installed_gun, /obj/item/weapon/gun/energy/laser/bluetag) || istype(installed_gun, /obj/item/weapon/gun/energy/laser/redtag)) turret = new/obj/machinery/porta_turret/lasertag(loc) else turret = new/obj/machinery/porta_turret(loc) diff --git a/code/game/machinery/porta_turret/portable_turret_cover.dm b/code/game/machinery/porta_turret/portable_turret_cover.dm index 1aadf6a452..27575e94cb 100644 --- a/code/game/machinery/porta_turret/portable_turret_cover.dm +++ b/code/game/machinery/porta_turret/portable_turret_cover.dm @@ -64,7 +64,7 @@ updateUsrDialog() else to_chat(user, "Access denied.") - else if(istype(I,/obj/item/device/multitool) && !parent_turret.locked) + else if(istype(I, /obj/item/device/multitool) && !parent_turret.locked) var/obj/item/device/multitool/M = I M.buffer = parent_turret to_chat(user, "You add [parent_turret] to multitool buffer.") diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index 460cc87a99..437fb3eb27 100755 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -8,7 +8,7 @@ idle_power_usage = 4 active_power_usage = 250 var/obj/item/charging = null - var/static/list/allowed_devices = typecacheof(list(/obj/item/weapon/gun/energy, /obj/item/weapon/melee/baton, /obj/item/ammo_box/magazine/recharge,/obj/item/device/modular_computer)) + var/static/list/allowed_devices = typecacheof(list(/obj/item/weapon/gun/energy, /obj/item/weapon/melee/baton, /obj/item/ammo_box/magazine/recharge, /obj/item/device/modular_computer)) var/recharge_coeff = 1 /obj/machinery/recharger/Initialize() diff --git a/code/game/machinery/syndicatebeacon.dm b/code/game/machinery/syndicatebeacon.dm index db53e10abf..3dde20ef5a 100644 --- a/code/game/machinery/syndicatebeacon.dm +++ b/code/game/machinery/syndicatebeacon.dm @@ -54,7 +54,7 @@ /obj/machinery/power/singularity_beacon/attackby(obj/item/weapon/W, mob/user, params) - if(istype(W,/obj/item/weapon/screwdriver)) + if(istype(W, /obj/item/weapon/screwdriver)) if(active) to_chat(user, "You need to deactivate the beacon first!") return diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index 5f5d6d6e3a..c1536e1c2f 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -297,7 +297,7 @@ message_admins(adminlog) log_game(adminlog) explosion(get_turf(src), range_heavy, range_medium, range_light, flame_range = range_flame) - if(loc && istype(loc,/obj/machinery/syndicatebomb/)) + if(loc && istype(loc, /obj/machinery/syndicatebomb/)) qdel(loc) qdel(src) @@ -411,7 +411,7 @@ total_volume += RC.reagents.total_volume if(total_volume < time_release) // If it's empty, the detonation is complete. - if(loc && istype(loc,/obj/machinery/syndicatebomb/)) + if(loc && istype(loc, /obj/machinery/syndicatebomb/)) qdel(loc) qdel(src) return @@ -451,7 +451,7 @@ playsound(loc, 'sound/effects/bamf.ogg', 75, 1, 5) - if(loc && istype(loc,/obj/machinery/syndicatebomb/)) + if(loc && istype(loc, /obj/machinery/syndicatebomb/)) qdel(loc) qdel(src) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 824aa30326..c56ad9a527 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -29,7 +29,7 @@ // To be filled out at compile time var/list/products = list() //For each, use the following pattern: - var/list/contraband = list() //list(/type/path = amount,/type/path2 = amount2) + var/list/contraband = list() //list(/type/path = amount, /type/path2 = amount2) var/list/premium = list() //No specified amount = only one in stock var/product_slogans = "" //String of slogans separated by semicolons, optional @@ -456,7 +456,7 @@ if(issilicon(usr)) if(iscyborg(usr)) var/mob/living/silicon/robot/R = usr - if(!(R.module && istype(R.module,/obj/item/weapon/robot_module/butler) )) + if(!(R.module && istype(R.module, /obj/item/weapon/robot_module/butler) )) to_chat(usr, "The vending machine refuses to interface with you, as you are not in its target demographic!") return else @@ -689,19 +689,18 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C desc = "A technological marvel, supposedly able to mix just the mixture you'd like to drink the moment you ask for one." icon_state = "boozeomat" //////////////18 drink entities below, plus the glasses, in case someone wants to edit the number of bottles icon_deny = "boozeomat-deny" - products = list(/obj/item/weapon/reagent_containers/food/drinks/bottle/gin = 5,/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey = 5, - /obj/item/weapon/reagent_containers/food/drinks/bottle/tequila = 5,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka = 5, - /obj/item/weapon/reagent_containers/food/drinks/bottle/vermouth = 5,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum = 5, - /obj/item/weapon/reagent_containers/food/drinks/bottle/wine = 5,/obj/item/weapon/reagent_containers/food/drinks/bottle/cognac = 5, - /obj/item/weapon/reagent_containers/food/drinks/bottle/kahlua = 5,/obj/item/weapon/reagent_containers/food/drinks/bottle/hcider = 5, + products = list(/obj/item/weapon/reagent_containers/food/drinks/bottle/gin = 5, /obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/tequila = 5, /obj/item/weapon/reagent_containers/food/drinks/bottle/vodka = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/vermouth = 5, /obj/item/weapon/reagent_containers/food/drinks/bottle/rum = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/wine = 5, /obj/item/weapon/reagent_containers/food/drinks/bottle/cognac = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/kahlua = 5, /obj/item/weapon/reagent_containers/food/drinks/bottle/hcider = 5, /obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe = 5, /obj/item/weapon/reagent_containers/food/drinks/bottle/grappa = 5, - /obj/item/weapon/reagent_containers/food/drinks/ale = 6,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice = 4, - /obj/item/weapon/reagent_containers/food/drinks/bottle/tomatojuice = 4,/obj/item/weapon/reagent_containers/food/drinks/bottle/limejuice = 4, - /obj/item/weapon/reagent_containers/food/drinks/bottle/cream = 4,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/tonic = 8, + /obj/item/weapon/reagent_containers/food/drinks/ale = 6, /obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice = 4, + /obj/item/weapon/reagent_containers/food/drinks/bottle/tomatojuice = 4, /obj/item/weapon/reagent_containers/food/drinks/bottle/limejuice = 4, + /obj/item/weapon/reagent_containers/food/drinks/bottle/cream = 4, /obj/item/weapon/reagent_containers/food/drinks/soda_cans/tonic = 8, /obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola = 8, /obj/item/weapon/reagent_containers/food/drinks/soda_cans/sodawater = 15, - /obj/item/weapon/reagent_containers/food/drinks/drinkingglass = 30,/obj/item/weapon/reagent_containers/food/drinks/ice = 10, - /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass = 12, - /obj/item/weapon/reagent_containers/food/drinks/flask = 3) + /obj/item/weapon/reagent_containers/food/drinks/drinkingglass = 30, /obj/item/weapon/reagent_containers/food/drinks/ice = 10, + /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass = 12, /obj/item/weapon/reagent_containers/food/drinks/flask = 3) contraband = list(/obj/item/weapon/reagent_containers/food/drinks/mug/tea = 12) product_slogans = "I hope nobody asks me for a bloody cup o' tea...;Alcohol is humanity's friend. Would you abandon a friend?;Quite delighted to serve you!;Is nobody thirsty on this station?" product_ads = "Drink up!;Booze is good for you!;Alcohol is humanity's best friend.;Quite delighted to serve you!;Care for a nice, cold beer?;Nothing cures you like booze!;Have a sip!;Have a drink!;Have a beer!;Beer is good for you!;Only the finest alcohol!;Best quality booze since 2053!;Award-winning wine!;Maximum alcohol!;Man loves beer.;A toast for progress!" @@ -709,7 +708,7 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C refill_canister = /obj/item/weapon/vending_refill/boozeomat /obj/machinery/vending/assist - products = list( /obj/item/device/assembly/prox_sensor = 5,/obj/item/device/assembly/igniter = 3,/obj/item/device/assembly/signaler = 4, + products = list( /obj/item/device/assembly/prox_sensor = 5, /obj/item/device/assembly/igniter = 3, /obj/item/device/assembly/signaler = 4, /obj/item/weapon/wirecutters = 1, /obj/item/weapon/cartridge/signal = 4) contraband = list(/obj/item/device/assembly/timer = 2, /obj/item/device/assembly/voice = 2, /obj/item/device/assembly/health = 2) product_ads = "Only the finest!;Have some tools.;The most robust equipment.;The finest gear in space!" @@ -722,7 +721,7 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C product_ads = "Have a drink!;Drink up!;It's good for you!;Would you like a hot joe?;I'd kill for some coffee!;The best beans in the galaxy.;Only the finest brew for you.;Mmmm. Nothing like a coffee.;I like coffee, don't you?;Coffee helps you work!;Try some tea.;We hope you like the best!;Try our new chocolate!;Admin conspiracies" icon_state = "coffee" icon_vend = "coffee-vend" - products = list(/obj/item/weapon/reagent_containers/food/drinks/coffee = 25,/obj/item/weapon/reagent_containers/food/drinks/mug/tea = 25,/obj/item/weapon/reagent_containers/food/drinks/mug/coco = 25) + products = list(/obj/item/weapon/reagent_containers/food/drinks/coffee = 25, /obj/item/weapon/reagent_containers/food/drinks/mug/tea = 25, /obj/item/weapon/reagent_containers/food/drinks/mug/coco = 25) contraband = list(/obj/item/weapon/reagent_containers/food/drinks/ice = 12) refill_canister = /obj/item/weapon/vending_refill/coffee @@ -732,8 +731,8 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C product_slogans = "Try our new nougat bar!;Twice the calories for half the price!" product_ads = "The healthiest!;Award-winning chocolate bars!;Mmm! So good!;Oh my god it's so juicy!;Have a snack.;Snacks are good for you!;Have some more Getmore!;Best quality snacks straight from mars.;We love chocolate!;Try our new jerky!" icon_state = "snack" - products = list(/obj/item/weapon/reagent_containers/food/snacks/candy = 6,/obj/item/weapon/reagent_containers/food/drinks/dry_ramen = 6,/obj/item/weapon/reagent_containers/food/snacks/chips =6, - /obj/item/weapon/reagent_containers/food/snacks/sosjerky = 6,/obj/item/weapon/reagent_containers/food/snacks/no_raisin = 6,/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie = 6, + products = list(/obj/item/weapon/reagent_containers/food/snacks/candy = 6, /obj/item/weapon/reagent_containers/food/drinks/dry_ramen = 6, /obj/item/weapon/reagent_containers/food/snacks/chips =6, + /obj/item/weapon/reagent_containers/food/snacks/sosjerky = 6, /obj/item/weapon/reagent_containers/food/snacks/no_raisin = 6, /obj/item/weapon/reagent_containers/food/snacks/spacetwinkie = 6, /obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers = 6) contraband = list(/obj/item/weapon/reagent_containers/food/snacks/syndicake = 6) refill_canister = /obj/item/weapon/vending_refill/snack @@ -784,12 +783,12 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C icon_state = "Cola_Machine" product_slogans = "Robust Softdrinks: More robust than a toolbox to the head!" product_ads = "Refreshing!;Hope you're thirsty!;Over 1 million drinks sold!;Thirsty? Why not cola?;Please, have a drink!;Drink up!;The best drinks in space." - products = list(/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola = 10,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/space_mountain_wind = 10, - /obj/item/weapon/reagent_containers/food/drinks/soda_cans/dr_gibb = 10,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/starkist = 10, - /obj/item/weapon/reagent_containers/food/drinks/soda_cans/space_up = 10,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/pwr_game = 10, - /obj/item/weapon/reagent_containers/food/drinks/soda_cans/lemon_lime = 10,/obj/item/weapon/reagent_containers/glass/beaker/waterbottle = 10) - contraband = list(/obj/item/weapon/reagent_containers/food/drinks/soda_cans/thirteenloko = 6,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/shamblers = 6) - premium = list(/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/filled/nuka_cola = 1,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/air = 1) + products = list(/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola = 10, /obj/item/weapon/reagent_containers/food/drinks/soda_cans/space_mountain_wind = 10, + /obj/item/weapon/reagent_containers/food/drinks/soda_cans/dr_gibb = 10, /obj/item/weapon/reagent_containers/food/drinks/soda_cans/starkist = 10, + /obj/item/weapon/reagent_containers/food/drinks/soda_cans/space_up = 10, /obj/item/weapon/reagent_containers/food/drinks/soda_cans/pwr_game = 10, + /obj/item/weapon/reagent_containers/food/drinks/soda_cans/lemon_lime = 10, /obj/item/weapon/reagent_containers/glass/beaker/waterbottle = 10) + contraband = list(/obj/item/weapon/reagent_containers/food/drinks/soda_cans/thirteenloko = 6, /obj/item/weapon/reagent_containers/food/drinks/soda_cans/shamblers = 6) + premium = list(/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/filled/nuka_cola = 1, /obj/item/weapon/reagent_containers/food/drinks/soda_cans/air = 1) refill_canister = /obj/item/weapon/vending_refill/cola /obj/machinery/vending/cola/random @@ -839,10 +838,10 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C name = "\improper Shambler's Vendor" desc = "~Shake me up some of that Shambler's Juice!~" icon_state = "shamblers_juice" - products = list(/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola = 10,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/space_mountain_wind = 10, - /obj/item/weapon/reagent_containers/food/drinks/soda_cans/dr_gibb = 10,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/starkist = 10, - /obj/item/weapon/reagent_containers/food/drinks/soda_cans/space_up = 10,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/pwr_game = 10, - /obj/item/weapon/reagent_containers/food/drinks/soda_cans/lemon_lime = 10,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/shamblers = 10) + products = list(/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola = 10, /obj/item/weapon/reagent_containers/food/drinks/soda_cans/space_mountain_wind = 10, + /obj/item/weapon/reagent_containers/food/drinks/soda_cans/dr_gibb = 10, /obj/item/weapon/reagent_containers/food/drinks/soda_cans/starkist = 10, + /obj/item/weapon/reagent_containers/food/drinks/soda_cans/space_up = 10, /obj/item/weapon/reagent_containers/food/drinks/soda_cans/pwr_game = 10, + /obj/item/weapon/reagent_containers/food/drinks/soda_cans/lemon_lime = 10, /obj/item/weapon/reagent_containers/food/drinks/soda_cans/shamblers = 10) product_slogans = "~Shake me up some of that Shambler's Juice!~" product_ads = "Refreshing!;Jyrbv dv lg jfdv fw kyrk Jyrdscvi'j Alztv!;Over 1 trillion souls drank!;Thirsty? Nyp efk uizeb kyv uribevjj?;Kyv Jyrdscvi uizebj kyv ezxyk!;Drink up!;Krjkp." @@ -854,9 +853,9 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C product_slogans = "Carts to go!" icon_state = "cart" icon_deny = "cart-deny" - products = list(/obj/item/weapon/cartridge/medical = 10,/obj/item/weapon/cartridge/engineering = 10,/obj/item/weapon/cartridge/security = 10, - /obj/item/weapon/cartridge/janitor = 10,/obj/item/weapon/cartridge/signal/toxins = 10,/obj/item/device/pda/heads = 10, - /obj/item/weapon/cartridge/captain = 3,/obj/item/weapon/cartridge/quartermaster = 10) + products = list(/obj/item/weapon/cartridge/medical = 10, /obj/item/weapon/cartridge/engineering = 10, /obj/item/weapon/cartridge/security = 10, + /obj/item/weapon/cartridge/janitor = 10, /obj/item/weapon/cartridge/signal/toxins = 10, /obj/item/device/pda/heads = 10, + /obj/item/weapon/cartridge/captain = 3, /obj/item/weapon/cartridge/quartermaster = 10) armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) resistance_flags = FIRE_PROOF @@ -868,12 +867,12 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C product_slogans = "Liberation Station: Your one-stop shop for all things second ammendment!;Be a patriot today, pick up a gun!;Quality weapons for cheap prices!;Better dead than red!" product_ads = "Float like an astronaut, sting like a bullet!;Express your second ammendment today!;Guns don't kill people, but you can!;Who needs responsibilities when you have guns?" vend_reply = "Remember the name: Liberation Station!" - products = list(/obj/item/weapon/gun/ballistic/automatic/pistol/deagle/gold = 2,/obj/item/weapon/gun/ballistic/automatic/pistol/deagle/camo = 2, - /obj/item/weapon/gun/ballistic/automatic/pistol/m1911 = 2,/obj/item/weapon/gun/ballistic/automatic/proto/unrestricted = 2, - /obj/item/weapon/gun/ballistic/shotgun/automatic/combat = 2,/obj/item/weapon/gun/ballistic/automatic/gyropistol = 1, - /obj/item/weapon/gun/ballistic/shotgun = 2,/obj/item/weapon/gun/ballistic/automatic/ar = 2) - premium = list(/obj/item/ammo_box/magazine/smgm9mm = 2,/obj/item/ammo_box/magazine/m50 = 4,/obj/item/ammo_box/magazine/m45 = 2,/obj/item/ammo_box/magazine/m75 = 2) - contraband = list(/obj/item/clothing/under/patriotsuit = 1,/obj/item/weapon/bedsheet/patriot = 3) + products = list(/obj/item/weapon/gun/ballistic/automatic/pistol/deagle/gold = 2, /obj/item/weapon/gun/ballistic/automatic/pistol/deagle/camo = 2, + /obj/item/weapon/gun/ballistic/automatic/pistol/m1911 = 2, /obj/item/weapon/gun/ballistic/automatic/proto/unrestricted = 2, + /obj/item/weapon/gun/ballistic/shotgun/automatic/combat = 2, /obj/item/weapon/gun/ballistic/automatic/gyropistol = 1, + /obj/item/weapon/gun/ballistic/shotgun = 2, /obj/item/weapon/gun/ballistic/automatic/ar = 2) + premium = list(/obj/item/ammo_box/magazine/smgm9mm = 2, /obj/item/ammo_box/magazine/m50 = 4, /obj/item/ammo_box/magazine/m45 = 2, /obj/item/ammo_box/magazine/m75 = 2) + contraband = list(/obj/item/clothing/under/patriotsuit = 1, /obj/item/weapon/bedsheet/patriot = 3) armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) resistance_flags = FIRE_PROOF @@ -908,12 +907,12 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C icon_deny = "med-deny" product_ads = "Go save some lives!;The best stuff for your medbay.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?;Ping!" req_access_txt = "5" - products = list(/obj/item/weapon/reagent_containers/syringe = 12,/obj/item/weapon/reagent_containers/dropper = 3,/obj/item/stack/medical/gauze = 8,/obj/item/weapon/reagent_containers/pill/patch/styptic = 5, /obj/item/weapon/reagent_containers/pill/insulin = 10, - /obj/item/weapon/reagent_containers/pill/patch/silver_sulf = 5,/obj/item/weapon/reagent_containers/glass/bottle/charcoal = 4, /obj/item/weapon/reagent_containers/spray/medical/sterilizer = 1, - /obj/item/weapon/reagent_containers/glass/bottle/epinephrine = 4,/obj/item/weapon/reagent_containers/glass/bottle/morphine = 4,/obj/item/weapon/reagent_containers/glass/bottle/salglu_solution = 3, - /obj/item/weapon/reagent_containers/glass/bottle/toxin = 3,/obj/item/weapon/reagent_containers/syringe/antiviral = 6,/obj/item/weapon/reagent_containers/pill/salbutamol = 2,/obj/item/device/healthanalyzer = 4, /obj/item/device/sensor_device = 2) - contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 3,/obj/item/weapon/reagent_containers/pill/morphine = 4,/obj/item/weapon/reagent_containers/pill/charcoal = 6) - premium = list(/obj/item/weapon/storage/box/hug/medical = 1,/obj/item/weapon/reagent_containers/hypospray/medipen = 3, /obj/item/weapon/storage/belt/medical = 3, /obj/item/weapon/wrench/medical = 1) + products = list(/obj/item/weapon/reagent_containers/syringe = 12, /obj/item/weapon/reagent_containers/dropper = 3, /obj/item/stack/medical/gauze = 8, /obj/item/weapon/reagent_containers/pill/patch/styptic = 5, /obj/item/weapon/reagent_containers/pill/insulin = 10, + /obj/item/weapon/reagent_containers/pill/patch/silver_sulf = 5, /obj/item/weapon/reagent_containers/glass/bottle/charcoal = 4, /obj/item/weapon/reagent_containers/spray/medical/sterilizer = 1, + /obj/item/weapon/reagent_containers/glass/bottle/epinephrine = 4, /obj/item/weapon/reagent_containers/glass/bottle/morphine = 4, /obj/item/weapon/reagent_containers/glass/bottle/salglu_solution = 3, + /obj/item/weapon/reagent_containers/glass/bottle/toxin = 3, /obj/item/weapon/reagent_containers/syringe/antiviral = 6, /obj/item/weapon/reagent_containers/pill/salbutamol = 2, /obj/item/device/healthanalyzer = 4, /obj/item/device/sensor_device = 2) + contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 3, /obj/item/weapon/reagent_containers/pill/morphine = 4, /obj/item/weapon/reagent_containers/pill/charcoal = 6) + premium = list(/obj/item/weapon/storage/box/hug/medical = 1, /obj/item/weapon/reagent_containers/hypospray/medipen = 3, /obj/item/weapon/storage/belt/medical = 3, /obj/item/weapon/wrench/medical = 1) armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) resistance_flags = FIRE_PROOF refill_canister = /obj/item/weapon/vending_refill/medical @@ -922,9 +921,9 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C /obj/machinery/vending/plasmaresearch name = "\improper Toximate 3000" desc = "All the fine parts you need in one vending machine!" - products = list(/obj/item/clothing/under/rank/scientist = 6,/obj/item/clothing/suit/bio_suit = 6,/obj/item/clothing/head/bio_hood = 6, - /obj/item/device/transfer_valve = 6,/obj/item/device/assembly/timer = 6,/obj/item/device/assembly/signaler = 6, - /obj/item/device/assembly/prox_sensor = 6,/obj/item/device/assembly/igniter = 6) + products = list(/obj/item/clothing/under/rank/scientist = 6, /obj/item/clothing/suit/bio_suit = 6, /obj/item/clothing/head/bio_hood = 6, + /obj/item/device/transfer_valve = 6, /obj/item/device/assembly/timer = 6, /obj/item/device/assembly/signaler = 6, + /obj/item/device/assembly/prox_sensor = 6, /obj/item/device/assembly/igniter = 6) contraband = list(/obj/item/device/assembly/health = 3) /obj/machinery/vending/wallmed @@ -933,10 +932,10 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C icon_state = "wallmed" icon_deny = "wallmed-deny" density = FALSE - products = list(/obj/item/weapon/reagent_containers/syringe = 3,/obj/item/weapon/reagent_containers/pill/patch/styptic = 5, - /obj/item/weapon/reagent_containers/pill/patch/silver_sulf = 5,/obj/item/weapon/reagent_containers/pill/charcoal = 2, + products = list(/obj/item/weapon/reagent_containers/syringe = 3, /obj/item/weapon/reagent_containers/pill/patch/styptic = 5, + /obj/item/weapon/reagent_containers/pill/patch/silver_sulf = 5, /obj/item/weapon/reagent_containers/pill/charcoal = 2, /obj/item/weapon/reagent_containers/spray/medical/sterilizer = 1) - contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 2,/obj/item/weapon/reagent_containers/pill/morphine = 2) + contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 2, /obj/item/weapon/reagent_containers/pill/morphine = 2) armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) resistance_flags = FIRE_PROOF refill_canister = /obj/item/weapon/vending_refill/medical @@ -949,9 +948,9 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C icon_state = "sec" icon_deny = "sec-deny" req_access_txt = "1" - products = list(/obj/item/weapon/restraints/handcuffs = 8,/obj/item/weapon/restraints/handcuffs/cable/zipties = 10,/obj/item/weapon/grenade/flashbang = 4,/obj/item/device/assembly/flash/handheld = 5, - /obj/item/weapon/reagent_containers/food/snacks/donut = 12,/obj/item/weapon/storage/box/evidence = 6,/obj/item/device/flashlight/seclite = 4,/obj/item/weapon/restraints/legcuffs/bola/energy = 7) - contraband = list(/obj/item/clothing/glasses/sunglasses = 2,/obj/item/weapon/storage/fancy/donut_box = 2) + products = list(/obj/item/weapon/restraints/handcuffs = 8, /obj/item/weapon/restraints/handcuffs/cable/zipties = 10, /obj/item/weapon/grenade/flashbang = 4, /obj/item/device/assembly/flash/handheld = 5, + /obj/item/weapon/reagent_containers/food/snacks/donut = 12, /obj/item/weapon/storage/box/evidence = 6, /obj/item/device/flashlight/seclite = 4, /obj/item/weapon/restraints/legcuffs/bola/energy = 7) + contraband = list(/obj/item/clothing/glasses/sunglasses = 2, /obj/item/weapon/storage/fancy/donut_box = 2) premium = list(/obj/item/weapon/coin/antagtoken = 1) armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) resistance_flags = FIRE_PROOF @@ -972,9 +971,9 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C product_ads = "We like plants!;Don't you want some?;The greenest thumbs ever.;We like big plants.;Soft soil..." icon_state = "nutri" icon_deny = "nutri-deny" - products = list(/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez = 30,/obj/item/weapon/reagent_containers/glass/bottle/nutrient/l4z = 20,/obj/item/weapon/reagent_containers/glass/bottle/nutrient/rh = 10,/obj/item/weapon/reagent_containers/spray/pestspray = 20, - /obj/item/weapon/reagent_containers/syringe = 5,/obj/item/weapon/storage/bag/plants = 5,/obj/item/weapon/cultivator = 3,/obj/item/weapon/shovel/spade = 3,/obj/item/device/plant_analyzer = 4) - contraband = list(/obj/item/weapon/reagent_containers/glass/bottle/ammonia = 10,/obj/item/weapon/reagent_containers/glass/bottle/diethylamine = 5) + products = list(/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez = 30, /obj/item/weapon/reagent_containers/glass/bottle/nutrient/l4z = 20, /obj/item/weapon/reagent_containers/glass/bottle/nutrient/rh = 10, /obj/item/weapon/reagent_containers/spray/pestspray = 20, + /obj/item/weapon/reagent_containers/syringe = 5, /obj/item/weapon/storage/bag/plants = 5, /obj/item/weapon/cultivator = 3, /obj/item/weapon/shovel/spade = 3, /obj/item/device/plant_analyzer = 4) + contraband = list(/obj/item/weapon/reagent_containers/glass/bottle/ammonia = 10, /obj/item/weapon/reagent_containers/glass/bottle/diethylamine = 5) armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) resistance_flags = FIRE_PROOF @@ -984,16 +983,16 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C product_slogans = "THIS'S WHERE TH' SEEDS LIVE! GIT YOU SOME!;Hands down the best seed selection on the station!;Also certain mushroom varieties available, more for experts! Get certified today!" product_ads = "We like plants!;Grow some crops!;Grow, baby, growww!;Aw h'yeah son!" icon_state = "seeds" - products = list(/obj/item/seeds/ambrosia = 3,/obj/item/seeds/apple = 3,/obj/item/seeds/banana = 3,/obj/item/seeds/berry = 3, - /obj/item/seeds/cabbage = 3,/obj/item/seeds/carrot = 3,/obj/item/seeds/cherry = 3,/obj/item/seeds/chanter = 3, - /obj/item/seeds/chili = 3,/obj/item/seeds/cocoapod = 3,/obj/item/seeds/coffee = 3,/obj/item/seeds/corn = 3, - /obj/item/seeds/eggplant = 3,/obj/item/seeds/grape = 3,/obj/item/seeds/grass = 3,/obj/item/seeds/lemon = 3, - /obj/item/seeds/lime = 3,/obj/item/seeds/onion = 3,/obj/item/seeds/orange = 3,/obj/item/seeds/potato = 3,/obj/item/seeds/poppy = 3, - /obj/item/seeds/pumpkin = 3,/obj/item/seeds/replicapod = 3,/obj/item/seeds/wheat/rice = 3,/obj/item/seeds/soya = 3,/obj/item/seeds/sunflower = 3, - /obj/item/seeds/tea = 3,/obj/item/seeds/tobacco = 3,/obj/item/seeds/tomato = 3, - /obj/item/seeds/tower = 3,/obj/item/seeds/watermelon = 3,/obj/item/seeds/wheat = 3,/obj/item/seeds/whitebeet = 3) - contraband = list(/obj/item/seeds/amanita = 2,/obj/item/seeds/glowshroom = 2,/obj/item/seeds/liberty = 2,/obj/item/seeds/nettle = 2, - /obj/item/seeds/plump = 2,/obj/item/seeds/reishi = 2,/obj/item/seeds/cannabis = 3,/obj/item/seeds/starthistle = 2, + products = list(/obj/item/seeds/ambrosia = 3, /obj/item/seeds/apple = 3, /obj/item/seeds/banana = 3, /obj/item/seeds/berry = 3, + /obj/item/seeds/cabbage = 3, /obj/item/seeds/carrot = 3, /obj/item/seeds/cherry = 3, /obj/item/seeds/chanter = 3, + /obj/item/seeds/chili = 3, /obj/item/seeds/cocoapod = 3, /obj/item/seeds/coffee = 3, /obj/item/seeds/corn = 3, + /obj/item/seeds/eggplant = 3, /obj/item/seeds/grape = 3, /obj/item/seeds/grass = 3, /obj/item/seeds/lemon = 3, + /obj/item/seeds/lime = 3, /obj/item/seeds/onion = 3, /obj/item/seeds/orange = 3, /obj/item/seeds/potato = 3, /obj/item/seeds/poppy = 3, + /obj/item/seeds/pumpkin = 3, /obj/item/seeds/replicapod = 3, /obj/item/seeds/wheat/rice = 3, /obj/item/seeds/soya = 3, /obj/item/seeds/sunflower = 3, + /obj/item/seeds/tea = 3, /obj/item/seeds/tobacco = 3, /obj/item/seeds/tomato = 3, + /obj/item/seeds/tower = 3, /obj/item/seeds/watermelon = 3, /obj/item/seeds/wheat = 3, /obj/item/seeds/whitebeet = 3) + contraband = list(/obj/item/seeds/amanita = 2, /obj/item/seeds/glowshroom = 2, /obj/item/seeds/liberty = 2, /obj/item/seeds/nettle = 2, + /obj/item/seeds/plump = 2, /obj/item/seeds/reishi = 2, /obj/item/seeds/cannabis = 3, /obj/item/seeds/starthistle = 2, /obj/item/seeds/random = 2) premium = list(/obj/item/weapon/reagent_containers/spray/waterflower = 1) armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) @@ -1006,7 +1005,7 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C product_slogans = "Sling spells the proper way with MagiVend!;Be your own Houdini! Use MagiVend!" vend_reply = "Have an enchanted evening!" product_ads = "FJKLFJSD;AJKFLBJAKL;1234 LOONIES LOL!;>MFW;Kill them fuckers!;GET DAT FUKKEN DISK;HONK!;EI NATH;Destroy the station!;Admin conspiracies since forever!;Space-time bending hardware!" - products = list(/obj/item/clothing/head/wizard = 1,/obj/item/clothing/suit/wizrobe = 1,/obj/item/clothing/head/wizard/red = 1,/obj/item/clothing/suit/wizrobe/red = 1,/obj/item/clothing/head/wizard/yellow = 1,/obj/item/clothing/suit/wizrobe/yellow = 1,/obj/item/clothing/shoes/sandal/magic = 1,/obj/item/weapon/staff = 2) + products = list(/obj/item/clothing/head/wizard = 1, /obj/item/clothing/suit/wizrobe = 1, /obj/item/clothing/head/wizard/red = 1, /obj/item/clothing/suit/wizrobe/red = 1, /obj/item/clothing/head/wizard/yellow = 1, /obj/item/clothing/suit/wizrobe/yellow = 1, /obj/item/clothing/shoes/sandal/magic = 1, /obj/item/weapon/staff = 2) contraband = list(/obj/item/weapon/reagent_containers/glass/bottle/wizarditis = 1) //No one can get to the machine to hack it anyways; for the lulz - Microwave armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) resistance_flags = FIRE_PROOF @@ -1019,30 +1018,30 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C req_access_txt = "46" //Theatre access needed, unless hacked. product_slogans = "Dress for success!;Suited and booted!;It's show time!;Why leave style up to fate? Use AutoDrobe!" vend_reply = "Thank you for using AutoDrobe!" - products = list(/obj/item/clothing/suit/chickensuit = 1,/obj/item/clothing/head/chicken = 1,/obj/item/clothing/under/gladiator = 1, - /obj/item/clothing/head/helmet/gladiator = 1,/obj/item/clothing/under/gimmick/rank/captain/suit = 1,/obj/item/clothing/head/flatcap = 1, - /obj/item/clothing/suit/toggle/labcoat/mad = 1,/obj/item/clothing/shoes/jackboots = 1, - /obj/item/clothing/under/schoolgirl = 1,/obj/item/clothing/under/schoolgirl/red = 1,/obj/item/clothing/under/schoolgirl/green = 1,/obj/item/clothing/under/schoolgirl/orange = 1,/obj/item/clothing/head/kitty = 1,/obj/item/clothing/under/skirt/black = 1,/obj/item/clothing/head/beret = 1, - /obj/item/clothing/accessory/waistcoat = 1,/obj/item/clothing/under/suit_jacket = 1,/obj/item/clothing/head/that =1,/obj/item/clothing/under/kilt = 1,/obj/item/clothing/head/beret = 1,/obj/item/clothing/accessory/waistcoat = 1, - /obj/item/clothing/glasses/monocle =1,/obj/item/clothing/head/bowler = 1,/obj/item/weapon/cane = 1,/obj/item/clothing/under/sl_suit = 1, - /obj/item/clothing/mask/fakemoustache = 1,/obj/item/clothing/suit/bio_suit/plaguedoctorsuit = 1,/obj/item/clothing/head/plaguedoctorhat = 1,/obj/item/clothing/mask/gas/plaguedoctor = 1, - /obj/item/clothing/suit/toggle/owlwings = 1, /obj/item/clothing/under/owl = 1,/obj/item/clothing/mask/gas/owl_mask = 1, + products = list(/obj/item/clothing/suit/chickensuit = 1, /obj/item/clothing/head/chicken = 1, /obj/item/clothing/under/gladiator = 1, + /obj/item/clothing/head/helmet/gladiator = 1, /obj/item/clothing/under/gimmick/rank/captain/suit = 1, /obj/item/clothing/head/flatcap = 1, + /obj/item/clothing/suit/toggle/labcoat/mad = 1, /obj/item/clothing/shoes/jackboots = 1, + /obj/item/clothing/under/schoolgirl = 1, /obj/item/clothing/under/schoolgirl/red = 1, /obj/item/clothing/under/schoolgirl/green = 1, /obj/item/clothing/under/schoolgirl/orange = 1, /obj/item/clothing/head/kitty = 1, /obj/item/clothing/under/skirt/black = 1, /obj/item/clothing/head/beret = 1, + /obj/item/clothing/accessory/waistcoat = 1, /obj/item/clothing/under/suit_jacket = 1, /obj/item/clothing/head/that =1, /obj/item/clothing/under/kilt = 1, /obj/item/clothing/head/beret = 1, /obj/item/clothing/accessory/waistcoat = 1, + /obj/item/clothing/glasses/monocle =1, /obj/item/clothing/head/bowler = 1, /obj/item/weapon/cane = 1, /obj/item/clothing/under/sl_suit = 1, + /obj/item/clothing/mask/fakemoustache = 1, /obj/item/clothing/suit/bio_suit/plaguedoctorsuit = 1, /obj/item/clothing/head/plaguedoctorhat = 1, /obj/item/clothing/mask/gas/plaguedoctor = 1, + /obj/item/clothing/suit/toggle/owlwings = 1, /obj/item/clothing/under/owl = 1, /obj/item/clothing/mask/gas/owl_mask = 1, /obj/item/clothing/suit/toggle/owlwings/griffinwings = 1, /obj/item/clothing/under/griffin = 1, /obj/item/clothing/shoes/griffin = 1, /obj/item/clothing/head/griffin = 1, - /obj/item/clothing/suit/apron = 1,/obj/item/clothing/under/waiter = 1,/obj/item/clothing/suit/jacket/miljacket = 1, - /obj/item/clothing/under/pirate = 1,/obj/item/clothing/suit/pirate = 1,/obj/item/clothing/head/pirate = 1,/obj/item/clothing/head/bandana = 1, - /obj/item/clothing/head/bandana = 1,/obj/item/clothing/under/soviet = 1,/obj/item/clothing/head/ushanka = 1,/obj/item/clothing/suit/imperium_monk = 1, - /obj/item/clothing/mask/gas/cyborg = 1,/obj/item/clothing/suit/holidaypriest = 1,/obj/item/clothing/head/wizard/marisa/fake = 1, - /obj/item/clothing/suit/wizrobe/marisa/fake = 1,/obj/item/clothing/under/sundress = 1,/obj/item/clothing/head/witchwig = 1,/obj/item/weapon/staff/broom = 1, - /obj/item/clothing/suit/wizrobe/fake = 1,/obj/item/clothing/head/wizard/fake = 1,/obj/item/weapon/staff = 3,/obj/item/clothing/mask/gas/sexyclown = 1, - /obj/item/clothing/under/rank/clown/sexy = 1,/obj/item/clothing/mask/gas/sexymime = 1,/obj/item/clothing/under/sexymime = 1,/obj/item/clothing/mask/rat/bat = 1,/obj/item/clothing/mask/rat/bee = 1,/obj/item/clothing/mask/rat/bear = 1,/obj/item/clothing/mask/rat/raven = 1,/obj/item/clothing/mask/rat/jackal = 1,/obj/item/clothing/mask/rat/fox = 1,/obj/item/clothing/mask/rat/tribal = 1,/obj/item/clothing/mask/rat = 1,/obj/item/clothing/suit/apron/overalls = 1, + /obj/item/clothing/suit/apron = 1, /obj/item/clothing/under/waiter = 1, /obj/item/clothing/suit/jacket/miljacket = 1, + /obj/item/clothing/under/pirate = 1, /obj/item/clothing/suit/pirate = 1, /obj/item/clothing/head/pirate = 1, /obj/item/clothing/head/bandana = 1, + /obj/item/clothing/head/bandana = 1, /obj/item/clothing/under/soviet = 1, /obj/item/clothing/head/ushanka = 1, /obj/item/clothing/suit/imperium_monk = 1, + /obj/item/clothing/mask/gas/cyborg = 1, /obj/item/clothing/suit/holidaypriest = 1, /obj/item/clothing/head/wizard/marisa/fake = 1, + /obj/item/clothing/suit/wizrobe/marisa/fake = 1, /obj/item/clothing/under/sundress = 1, /obj/item/clothing/head/witchwig = 1, /obj/item/weapon/staff/broom = 1, + /obj/item/clothing/suit/wizrobe/fake = 1, /obj/item/clothing/head/wizard/fake = 1, /obj/item/weapon/staff = 3, /obj/item/clothing/mask/gas/sexyclown = 1, + /obj/item/clothing/under/rank/clown/sexy = 1, /obj/item/clothing/mask/gas/sexymime = 1, /obj/item/clothing/under/sexymime = 1, /obj/item/clothing/mask/rat/bat = 1, /obj/item/clothing/mask/rat/bee = 1, /obj/item/clothing/mask/rat/bear = 1, /obj/item/clothing/mask/rat/raven = 1, /obj/item/clothing/mask/rat/jackal = 1, /obj/item/clothing/mask/rat/fox = 1, /obj/item/clothing/mask/rat/tribal = 1, /obj/item/clothing/mask/rat = 1, /obj/item/clothing/suit/apron/overalls = 1, /obj/item/clothing/head/rabbitears =1, /obj/item/clothing/head/sombrero = 1, /obj/item/clothing/head/sombrero/green = 1, /obj/item/clothing/suit/poncho = 1, /obj/item/clothing/suit/poncho/green = 1, /obj/item/clothing/suit/poncho/red = 1, - /obj/item/clothing/under/maid = 1, /obj/item/clothing/under/janimaid = 1,/obj/item/clothing/glasses/cold=1,/obj/item/clothing/glasses/heat=1, + /obj/item/clothing/under/maid = 1, /obj/item/clothing/under/janimaid = 1, /obj/item/clothing/glasses/cold=1, /obj/item/clothing/glasses/heat=1, /obj/item/clothing/suit/whitedress = 1, /obj/item/clothing/under/jester = 1, /obj/item/clothing/head/jester = 1, /obj/item/clothing/under/villain = 1, - /obj/item/clothing/shoes/singery = 1,/obj/item/clothing/under/singery = 1, - /obj/item/clothing/shoes/singerb = 1,/obj/item/clothing/under/singerb = 1, + /obj/item/clothing/shoes/singery = 1, /obj/item/clothing/under/singery = 1, + /obj/item/clothing/shoes/singerb = 1, /obj/item/clothing/under/singerb = 1, /obj/item/clothing/suit/hooded/carp_costume = 1, /obj/item/clothing/suit/hooded/ian_costume = 1, /obj/item/clothing/suit/hooded/bee_costume = 1, @@ -1053,7 +1052,7 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C /obj/item/clothing/under/scratch = 1, /obj/item/clothing/under/sailor = 1, /obj/item/clothing/ears/headphones = 2) - contraband = list(/obj/item/clothing/suit/judgerobe = 1,/obj/item/clothing/head/powdered_wig = 1,/obj/item/weapon/gun/magic/wand = 2,/obj/item/clothing/glasses/sunglasses/garb = 2, /obj/item/clothing/glasses/sunglasses/blindfold = 1, /obj/item/clothing/mask/muzzle = 2) + contraband = list(/obj/item/clothing/suit/judgerobe = 1, /obj/item/clothing/head/powdered_wig = 1, /obj/item/weapon/gun/magic/wand = 2, /obj/item/clothing/glasses/sunglasses/garb = 2, /obj/item/clothing/glasses/sunglasses/blindfold = 1, /obj/item/clothing/mask/muzzle = 2) premium = list(/obj/item/clothing/suit/pirate/captain = 2, /obj/item/clothing/head/pirate/captain = 2, /obj/item/clothing/head/helmet/roman = 1, /obj/item/clothing/head/helmet/roman/legionaire = 1, /obj/item/clothing/under/roman = 1, /obj/item/clothing/shoes/roman = 1, /obj/item/weapon/shield/riot/roman = 1, /obj/item/weapon/skub = 1) refill_canister = /obj/item/weapon/vending_refill/autodrobe @@ -1062,7 +1061,7 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C desc = "A kitchen and restaurant equipment vendor" product_ads = "Mm, food stuffs!;Food and food accessories.;Get your plates!;You like forks?;I like forks.;Woo, utensils.;You don't really need these..." icon_state = "dinnerware" - products = list(/obj/item/weapon/storage/bag/tray = 8,/obj/item/weapon/kitchen/fork = 6,/obj/item/weapon/kitchen/knife = 6,/obj/item/weapon/kitchen/rollingpin = 2,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass = 8,/obj/item/clothing/suit/apron/chef = 2,/obj/item/weapon/reagent_containers/food/condiment/pack/ketchup = 5,/obj/item/weapon/reagent_containers/food/condiment/pack/hotsauce = 5,/obj/item/weapon/reagent_containers/food/condiment/saltshaker = 5,/obj/item/weapon/reagent_containers/food/condiment/peppermill = 5,/obj/item/weapon/reagent_containers/glass/bowl = 20) + products = list(/obj/item/weapon/storage/bag/tray = 8, /obj/item/weapon/kitchen/fork = 6, /obj/item/weapon/kitchen/knife = 6, /obj/item/weapon/kitchen/rollingpin = 2, /obj/item/weapon/reagent_containers/food/drinks/drinkingglass = 8, /obj/item/clothing/suit/apron/chef = 2, /obj/item/weapon/reagent_containers/food/condiment/pack/ketchup = 5, /obj/item/weapon/reagent_containers/food/condiment/pack/hotsauce = 5, /obj/item/weapon/reagent_containers/food/condiment/saltshaker = 5, /obj/item/weapon/reagent_containers/food/condiment/peppermill = 5, /obj/item/weapon/reagent_containers/glass/bowl = 20) contraband = list(/obj/item/weapon/kitchen/rollingpin = 2, /obj/item/weapon/kitchen/knife/butcher = 2) armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) resistance_flags = FIRE_PROOF @@ -1109,7 +1108,7 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C icon_state = "engivend" icon_deny = "engivend-deny" req_access_txt = "11" //Engineering Equipment access - products = list(/obj/item/clothing/glasses/meson/engine = 2,/obj/item/device/multitool = 4,/obj/item/weapon/electronics/airlock = 10,/obj/item/weapon/electronics/apc = 10,/obj/item/weapon/electronics/airalarm = 10,/obj/item/weapon/stock_parts/cell/high = 10, /obj/item/weapon/construction/rcd/loaded = 3, /obj/item/device/geiger_counter = 5) + products = list(/obj/item/clothing/glasses/meson/engine = 2, /obj/item/device/multitool = 4, /obj/item/weapon/electronics/airlock = 10, /obj/item/weapon/electronics/apc = 10, /obj/item/weapon/electronics/airalarm = 10, /obj/item/weapon/stock_parts/cell/high = 10, /obj/item/weapon/construction/rcd/loaded = 3, /obj/item/device/geiger_counter = 5) contraband = list(/obj/item/weapon/stock_parts/cell/potato = 3) premium = list(/obj/item/weapon/storage/belt/utility = 3) armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) @@ -1122,12 +1121,12 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C icon_state = "engi" icon_deny = "engi-deny" req_access_txt = "11" - products = list(/obj/item/clothing/under/rank/chief_engineer = 4,/obj/item/clothing/under/rank/engineer = 4,/obj/item/clothing/shoes/sneakers/orange = 4,/obj/item/clothing/head/hardhat = 4, - /obj/item/weapon/storage/belt/utility = 4,/obj/item/clothing/glasses/meson/engine = 4,/obj/item/clothing/gloves/color/yellow = 4, /obj/item/weapon/screwdriver = 12, - /obj/item/weapon/crowbar = 12,/obj/item/weapon/wirecutters = 12,/obj/item/device/multitool = 12,/obj/item/weapon/wrench = 12,/obj/item/device/t_scanner = 12, - /obj/item/weapon/stock_parts/cell = 8, /obj/item/weapon/weldingtool = 8,/obj/item/clothing/head/welding = 8, - /obj/item/weapon/light/tube = 10,/obj/item/clothing/suit/fire = 4, /obj/item/weapon/stock_parts/scanning_module = 5,/obj/item/weapon/stock_parts/micro_laser = 5, - /obj/item/weapon/stock_parts/matter_bin = 5,/obj/item/weapon/stock_parts/manipulator = 5,/obj/item/weapon/stock_parts/console_screen = 5) + products = list(/obj/item/clothing/under/rank/chief_engineer = 4, /obj/item/clothing/under/rank/engineer = 4, /obj/item/clothing/shoes/sneakers/orange = 4, /obj/item/clothing/head/hardhat = 4, + /obj/item/weapon/storage/belt/utility = 4, /obj/item/clothing/glasses/meson/engine = 4, /obj/item/clothing/gloves/color/yellow = 4, /obj/item/weapon/screwdriver = 12, + /obj/item/weapon/crowbar = 12, /obj/item/weapon/wirecutters = 12, /obj/item/device/multitool = 12, /obj/item/weapon/wrench = 12, /obj/item/device/t_scanner = 12, + /obj/item/weapon/stock_parts/cell = 8, /obj/item/weapon/weldingtool = 8, /obj/item/clothing/head/welding = 8, + /obj/item/weapon/light/tube = 10, /obj/item/clothing/suit/fire = 4, /obj/item/weapon/stock_parts/scanning_module = 5, /obj/item/weapon/stock_parts/micro_laser = 5, + /obj/item/weapon/stock_parts/matter_bin = 5, /obj/item/weapon/stock_parts/manipulator = 5, /obj/item/weapon/stock_parts/console_screen = 5) armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) resistance_flags = FIRE_PROOF @@ -1138,10 +1137,10 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C icon_state = "robotics" icon_deny = "robotics-deny" req_access_txt = "29" - products = list(/obj/item/clothing/suit/toggle/labcoat = 4,/obj/item/clothing/under/rank/roboticist = 4,/obj/item/stack/cable_coil = 4,/obj/item/device/assembly/flash/handheld = 4, - /obj/item/weapon/stock_parts/cell/high = 12, /obj/item/device/assembly/prox_sensor = 3,/obj/item/device/assembly/signaler = 3,/obj/item/device/healthanalyzer = 3, - /obj/item/weapon/scalpel = 2,/obj/item/weapon/circular_saw = 2,/obj/item/weapon/tank/internals/anesthetic = 2,/obj/item/clothing/mask/breath/medical = 5, - /obj/item/weapon/screwdriver = 5,/obj/item/weapon/crowbar = 5) + products = list(/obj/item/clothing/suit/toggle/labcoat = 4, /obj/item/clothing/under/rank/roboticist = 4, /obj/item/stack/cable_coil = 4, /obj/item/device/assembly/flash/handheld = 4, + /obj/item/weapon/stock_parts/cell/high = 12, /obj/item/device/assembly/prox_sensor = 3, /obj/item/device/assembly/signaler = 3, /obj/item/device/healthanalyzer = 3, + /obj/item/weapon/scalpel = 2, /obj/item/weapon/circular_saw = 2, /obj/item/weapon/tank/internals/anesthetic = 2, /obj/item/clothing/mask/breath/medical = 5, + /obj/item/weapon/screwdriver = 5, /obj/item/weapon/crowbar = 5) armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) resistance_flags = FIRE_PROOF @@ -1152,34 +1151,34 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C icon_state = "clothes" product_slogans = "Dress for success!;Prepare to look swagalicious!;Look at all this free swag!;Why leave style up to fate? Use the ClothesMate!" vend_reply = "Thank you for using the ClothesMate!" - products = list(/obj/item/clothing/head/that=2,/obj/item/clothing/head/fedora=1,/obj/item/clothing/glasses/monocle=1, + products = list(/obj/item/clothing/head/that=2, /obj/item/clothing/head/fedora=1, /obj/item/clothing/glasses/monocle=1, /obj/item/clothing/suit/jacket=2, /obj/item/clothing/suit/jacket/puffer/vest=2, /obj/item/clothing/suit/jacket/puffer=2, - /obj/item/clothing/under/suit_jacket/navy=1,/obj/item/clothing/under/suit_jacket/really_black=1,/obj/item/clothing/under/suit_jacket/burgundy=1, - /obj/item/clothing/under/suit_jacket/charcoal=1, /obj/item/clothing/under/suit_jacket/white=1,/obj/item/clothing/under/kilt=1,/obj/item/clothing/under/overalls=1, - /obj/item/clothing/under/sl_suit=1,/obj/item/clothing/under/pants/jeans=3,/obj/item/clothing/under/pants/classicjeans=2, - /obj/item/clothing/under/pants/camo = 1,/obj/item/clothing/under/pants/blackjeans=2,/obj/item/clothing/under/pants/khaki=2, - /obj/item/clothing/under/pants/white=2,/obj/item/clothing/under/pants/red=1,/obj/item/clothing/under/pants/black=2, - /obj/item/clothing/under/pants/tan=2,/obj/item/clothing/under/pants/track=1,/obj/item/clothing/suit/jacket/miljacket = 1, + /obj/item/clothing/under/suit_jacket/navy=1, /obj/item/clothing/under/suit_jacket/really_black=1, /obj/item/clothing/under/suit_jacket/burgundy=1, + /obj/item/clothing/under/suit_jacket/charcoal=1, /obj/item/clothing/under/suit_jacket/white=1, /obj/item/clothing/under/kilt=1, /obj/item/clothing/under/overalls=1, + /obj/item/clothing/under/sl_suit=1, /obj/item/clothing/under/pants/jeans=3, /obj/item/clothing/under/pants/classicjeans=2, + /obj/item/clothing/under/pants/camo = 1, /obj/item/clothing/under/pants/blackjeans=2, /obj/item/clothing/under/pants/khaki=2, + /obj/item/clothing/under/pants/white=2, /obj/item/clothing/under/pants/red=1, /obj/item/clothing/under/pants/black=2, + /obj/item/clothing/under/pants/tan=2, /obj/item/clothing/under/pants/track=1, /obj/item/clothing/suit/jacket/miljacket = 1, /obj/item/clothing/neck/tie/blue=1, /obj/item/clothing/neck/tie/red=1, /obj/item/clothing/neck/tie/black=1, /obj/item/clothing/neck/tie/horrible=1, - /obj/item/clothing/neck/scarf/red=1,/obj/item/clothing/neck/scarf/green=1,/obj/item/clothing/neck/scarf/darkblue=1, - /obj/item/clothing/neck/scarf/purple=1,/obj/item/clothing/neck/scarf/yellow=1,/obj/item/clothing/neck/scarf/orange=1, - /obj/item/clothing/neck/scarf/cyan=1,/obj/item/clothing/neck/scarf=1,/obj/item/clothing/neck/scarf/black=1, - /obj/item/clothing/neck/scarf/zebra=1,/obj/item/clothing/neck/scarf/christmas=1,/obj/item/clothing/neck/stripedredscarf=1, - /obj/item/clothing/neck/stripedbluescarf=1,/obj/item/clothing/neck/stripedgreenscarf=1,/obj/item/clothing/accessory/waistcoat=1, - /obj/item/clothing/under/skirt/black=1,/obj/item/clothing/under/skirt/blue=1,/obj/item/clothing/under/skirt/red=1,/obj/item/clothing/under/skirt/purple=1, - /obj/item/clothing/under/sundress=2,/obj/item/clothing/under/stripeddress=1, /obj/item/clothing/under/sailordress=1, /obj/item/clothing/under/redeveninggown=1, /obj/item/clothing/under/blacktango=1, - /obj/item/clothing/under/plaid_skirt=1,/obj/item/clothing/under/plaid_skirt/blue=1,/obj/item/clothing/under/plaid_skirt/purple=1,/obj/item/clothing/under/plaid_skirt/green=1, - /obj/item/clothing/glasses/regular=1,/obj/item/clothing/glasses/regular/jamjar=1,/obj/item/clothing/head/sombrero=1,/obj/item/clothing/suit/poncho=1, - /obj/item/clothing/suit/ianshirt=1,/obj/item/clothing/shoes/laceup=2,/obj/item/clothing/shoes/sneakers/black=4, - /obj/item/clothing/shoes/sandal=1, /obj/item/clothing/gloves/fingerless=2,/obj/item/clothing/glasses/orange=1,/obj/item/clothing/glasses/red=1, + /obj/item/clothing/neck/scarf/red=1, /obj/item/clothing/neck/scarf/green=1, /obj/item/clothing/neck/scarf/darkblue=1, + /obj/item/clothing/neck/scarf/purple=1, /obj/item/clothing/neck/scarf/yellow=1, /obj/item/clothing/neck/scarf/orange=1, + /obj/item/clothing/neck/scarf/cyan=1, /obj/item/clothing/neck/scarf=1, /obj/item/clothing/neck/scarf/black=1, + /obj/item/clothing/neck/scarf/zebra=1, /obj/item/clothing/neck/scarf/christmas=1, /obj/item/clothing/neck/stripedredscarf=1, + /obj/item/clothing/neck/stripedbluescarf=1, /obj/item/clothing/neck/stripedgreenscarf=1, /obj/item/clothing/accessory/waistcoat=1, + /obj/item/clothing/under/skirt/black=1, /obj/item/clothing/under/skirt/blue=1, /obj/item/clothing/under/skirt/red=1, /obj/item/clothing/under/skirt/purple=1, + /obj/item/clothing/under/sundress=2, /obj/item/clothing/under/stripeddress=1, /obj/item/clothing/under/sailordress=1, /obj/item/clothing/under/redeveninggown=1, /obj/item/clothing/under/blacktango=1, + /obj/item/clothing/under/plaid_skirt=1, /obj/item/clothing/under/plaid_skirt/blue=1, /obj/item/clothing/under/plaid_skirt/purple=1, /obj/item/clothing/under/plaid_skirt/green=1, + /obj/item/clothing/glasses/regular=1, /obj/item/clothing/glasses/regular/jamjar=1, /obj/item/clothing/head/sombrero=1, /obj/item/clothing/suit/poncho=1, + /obj/item/clothing/suit/ianshirt=1, /obj/item/clothing/shoes/laceup=2, /obj/item/clothing/shoes/sneakers/black=4, + /obj/item/clothing/shoes/sandal=1, /obj/item/clothing/gloves/fingerless=2, /obj/item/clothing/glasses/orange=1, /obj/item/clothing/glasses/red=1, /obj/item/weapon/storage/belt/fannypack=1, /obj/item/weapon/storage/belt/fannypack/blue=1, /obj/item/weapon/storage/belt/fannypack/red=1, /obj/item/clothing/suit/jacket/letterman=2, /obj/item/clothing/head/beanie=1, /obj/item/clothing/head/beanie/black=1, /obj/item/clothing/head/beanie/red=1, /obj/item/clothing/head/beanie/green=1, /obj/item/clothing/head/beanie/darkblue=1, /obj/item/clothing/head/beanie/purple=1, /obj/item/clothing/head/beanie/yellow=1, /obj/item/clothing/head/beanie/orange=1, /obj/item/clothing/head/beanie/cyan=1, /obj/item/clothing/head/beanie/christmas=1, /obj/item/clothing/head/beanie/striped=1, /obj/item/clothing/head/beanie/stripedred=1, /obj/item/clothing/head/beanie/stripedblue=1, /obj/item/clothing/head/beanie/stripedgreen=1, /obj/item/clothing/suit/jacket/letterman_red=1, /obj/item/clothing/ears/headphones = 10) - contraband = list(/obj/item/clothing/under/syndicate/tacticool=1,/obj/item/clothing/mask/balaclava=1,/obj/item/clothing/head/ushanka=1,/obj/item/clothing/under/soviet=1,/obj/item/weapon/storage/belt/fannypack/black=2,/obj/item/clothing/suit/jacket/letterman_syndie=1,/obj/item/clothing/under/jabroni=1, /obj/item/clothing/suit/vapeshirt=1, /obj/item/clothing/under/geisha=1) - premium = list(/obj/item/clothing/under/suit_jacket/checkered=1,/obj/item/clothing/head/mailman=1,/obj/item/clothing/under/rank/mailman=1,/obj/item/clothing/suit/jacket/leather=1,/obj/item/clothing/suit/jacket/leather/overcoat=1,/obj/item/clothing/under/pants/mustangjeans=1,/obj/item/clothing/neck/necklace/dope=3,/obj/item/clothing/suit/jacket/letterman_nanotrasen=1) + contraband = list(/obj/item/clothing/under/syndicate/tacticool=1, /obj/item/clothing/mask/balaclava=1, /obj/item/clothing/head/ushanka=1, /obj/item/clothing/under/soviet=1, /obj/item/weapon/storage/belt/fannypack/black=2, /obj/item/clothing/suit/jacket/letterman_syndie=1, /obj/item/clothing/under/jabroni=1, /obj/item/clothing/suit/vapeshirt=1, /obj/item/clothing/under/geisha=1) + premium = list(/obj/item/clothing/under/suit_jacket/checkered=1, /obj/item/clothing/head/mailman=1, /obj/item/clothing/under/rank/mailman=1, /obj/item/clothing/suit/jacket/leather=1, /obj/item/clothing/suit/jacket/leather/overcoat=1, /obj/item/clothing/under/pants/mustangjeans=1, /obj/item/clothing/neck/necklace/dope=3, /obj/item/clothing/suit/jacket/letterman_nanotrasen=1) refill_canister = /obj/item/weapon/vending_refill/clothing /obj/machinery/vending/toyliberationstation diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index 2077c093d7..3c9131ab9b 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -74,7 +74,7 @@ /obj/item/weapon/paper/machine_wash(obj/machinery/washing_machine/WM) if(WM.color_source) - if(istype(WM.color_source,/obj/item/toy/crayon)) + if(istype(WM.color_source, /obj/item/toy/crayon)) var/obj/item/toy/crayon/CR = WM.color_source add_atom_colour(CR.paint_color, WASHABLE_COLOUR_PRIORITY) @@ -211,7 +211,7 @@ to_chat(user, "\The [W] is stuck to your hand, you cannot put it in the washing machine!") return 1 - if(istype(W,/obj/item/toy/crayon) || istype(W,/obj/item/weapon/stamp)) + if(istype(W, /obj/item/toy/crayon) || istype(W, /obj/item/weapon/stamp)) color_source = W update_icon() diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm index 109877e618..8d8a5420c2 100644 --- a/code/game/mecha/equipment/tools/medical_tools.dm +++ b/code/game/mecha/equipment/tools/medical_tools.dm @@ -121,7 +121,7 @@ onclose(chassis.occupant, "msleeper") return if(filter.get("inject")) - inject_reagent(filter.getType("inject",/datum/reagent),filter.getObj("source")) + inject_reagent(filter.getType("inject", /datum/reagent),filter.getObj("source")) return /obj/item/mecha_parts/mecha_equipment/medical/sleeper/proc/get_patient_stats() @@ -296,9 +296,9 @@ /obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/action(atom/movable/target) if(!action_checks(target)) return - if(istype(target,/obj/item/weapon/reagent_containers/syringe)) + if(istype(target, /obj/item/weapon/reagent_containers/syringe)) return load_syringe(target) - if(istype(target,/obj/item/weapon/storage))//Loads syringes from boxes + if(istype(target, /obj/item/weapon/storage))//Loads syringes from boxes for(var/obj/item/weapon/reagent_containers/syringe/S in target.contents) load_syringe(S) return diff --git a/code/game/mecha/equipment/tools/mining_tools.dm b/code/game/mecha/equipment/tools/mining_tools.dm index bbc7ea2e22..6d15716941 100644 --- a/code/game/mecha/equipment/tools/mining_tools.dm +++ b/code/game/mecha/equipment/tools/mining_tools.dm @@ -116,7 +116,7 @@ if(!loc) STOP_PROCESSING(SSobj, src) qdel(src) - if(istype(loc,/obj/mecha/working) && scanning_time <= world.time) + if(istype(loc, /obj/mecha/working) && scanning_time <= world.time) var/obj/mecha/working/mecha = loc if(!mecha.occupant) return diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index d50decebe0..83d7fdf215 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -339,13 +339,13 @@ if(0.75 to INFINITY) occupant.clear_alert("charge") if(0.5 to 0.75) - occupant.throw_alert("charge",/obj/screen/alert/lowcell, 1) + occupant.throw_alert("charge", /obj/screen/alert/lowcell, 1) if(0.25 to 0.5) - occupant.throw_alert("charge",/obj/screen/alert/lowcell, 2) + occupant.throw_alert("charge", /obj/screen/alert/lowcell, 2) if(0.01 to 0.25) - occupant.throw_alert("charge",/obj/screen/alert/lowcell, 3) + occupant.throw_alert("charge", /obj/screen/alert/lowcell, 3) else - occupant.throw_alert("charge",/obj/screen/alert/emptycell) + occupant.throw_alert("charge", /obj/screen/alert/emptycell) var/integrity = obj_integrity/max_integrity*100 switch(integrity) diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm index 55c18688a1..f2a6b6e225 100644 --- a/code/game/mecha/mecha_construction_paths.dm +++ b/code/game/mecha/mecha_construction_paths.dm @@ -74,10 +74,10 @@ /datum/construction/mecha/ripley_chassis - steps = list(list("key"=/obj/item/mecha_parts/part/ripley_torso),//1 - list("key"=/obj/item/mecha_parts/part/ripley_left_arm),//2 - list("key"=/obj/item/mecha_parts/part/ripley_right_arm),//3 - list("key"=/obj/item/mecha_parts/part/ripley_left_leg),//4 + steps = list(list("key"=/obj/item/mecha_parts/part/ripley_torso), //1 + list("key"=/obj/item/mecha_parts/part/ripley_left_arm), //2 + list("key"=/obj/item/mecha_parts/part/ripley_right_arm), //3 + list("key"=/obj/item/mecha_parts/part/ripley_left_leg), //4 list("key"=/obj/item/mecha_parts/part/ripley_right_leg)//5 ) @@ -283,11 +283,11 @@ /datum/construction/mecha/gygax_chassis - steps = list(list("key"=/obj/item/mecha_parts/part/gygax_torso),//1 - list("key"=/obj/item/mecha_parts/part/gygax_left_arm),//2 - list("key"=/obj/item/mecha_parts/part/gygax_right_arm),//3 - list("key"=/obj/item/mecha_parts/part/gygax_left_leg),//4 - list("key"=/obj/item/mecha_parts/part/gygax_right_leg),//5 + steps = list(list("key"=/obj/item/mecha_parts/part/gygax_torso), //1 + list("key"=/obj/item/mecha_parts/part/gygax_left_arm), //2 + list("key"=/obj/item/mecha_parts/part/gygax_right_arm), //3 + list("key"=/obj/item/mecha_parts/part/gygax_left_leg), //4 + list("key"=/obj/item/mecha_parts/part/gygax_right_leg), //5 list("key"=/obj/item/mecha_parts/part/gygax_head) ) @@ -568,11 +568,11 @@ return /datum/construction/mecha/firefighter_chassis - steps = list(list("key"=/obj/item/mecha_parts/part/ripley_torso),//1 - list("key"=/obj/item/mecha_parts/part/ripley_left_arm),//2 - list("key"=/obj/item/mecha_parts/part/ripley_right_arm),//3 - list("key"=/obj/item/mecha_parts/part/ripley_left_leg),//4 - list("key"=/obj/item/mecha_parts/part/ripley_right_leg),//5 + steps = list(list("key"=/obj/item/mecha_parts/part/ripley_torso), //1 + list("key"=/obj/item/mecha_parts/part/ripley_left_arm), //2 + list("key"=/obj/item/mecha_parts/part/ripley_right_arm), //3 + list("key"=/obj/item/mecha_parts/part/ripley_left_leg), //4 + list("key"=/obj/item/mecha_parts/part/ripley_right_leg), //5 list("key"=/obj/item/clothing/suit/fire)//6 ) @@ -792,11 +792,11 @@ /datum/construction/mecha/honker_chassis - steps = list(list("key"=/obj/item/mecha_parts/part/honker_torso),//1 - list("key"=/obj/item/mecha_parts/part/honker_left_arm),//2 - list("key"=/obj/item/mecha_parts/part/honker_right_arm),//3 - list("key"=/obj/item/mecha_parts/part/honker_left_leg),//4 - list("key"=/obj/item/mecha_parts/part/honker_right_leg),//5 + steps = list(list("key"=/obj/item/mecha_parts/part/honker_torso), //1 + list("key"=/obj/item/mecha_parts/part/honker_left_arm), //2 + list("key"=/obj/item/mecha_parts/part/honker_right_arm), //3 + list("key"=/obj/item/mecha_parts/part/honker_left_leg), //4 + list("key"=/obj/item/mecha_parts/part/honker_right_leg), //5 list("key"=/obj/item/mecha_parts/part/honker_head) ) @@ -819,17 +819,17 @@ /datum/construction/mecha/honker result = "/obj/mecha/combat/honker" - steps = list(list("key"=/obj/item/weapon/bikehorn),//1 - list("key"=/obj/item/clothing/shoes/clown_shoes),//2 - list("key"=/obj/item/weapon/bikehorn),//3 - list("key"=/obj/item/clothing/mask/gas/clown_hat),//4 - list("key"=/obj/item/weapon/bikehorn),//5 - list("key"=/obj/item/weapon/circuitboard/mecha/honker/targeting),//6 - list("key"=/obj/item/weapon/bikehorn),//7 - list("key"=/obj/item/weapon/circuitboard/mecha/honker/peripherals),//8 - list("key"=/obj/item/weapon/bikehorn),//9 - list("key"=/obj/item/weapon/circuitboard/mecha/honker/main),//10 - list("key"=/obj/item/weapon/bikehorn),//11 + steps = list(list("key"=/obj/item/weapon/bikehorn), //1 + list("key"=/obj/item/clothing/shoes/clown_shoes), //2 + list("key"=/obj/item/weapon/bikehorn), //3 + list("key"=/obj/item/clothing/mask/gas/clown_hat), //4 + list("key"=/obj/item/weapon/bikehorn), //5 + list("key"=/obj/item/weapon/circuitboard/mecha/honker/targeting), //6 + list("key"=/obj/item/weapon/bikehorn), //7 + list("key"=/obj/item/weapon/circuitboard/mecha/honker/peripherals), //8 + list("key"=/obj/item/weapon/bikehorn), //9 + list("key"=/obj/item/weapon/circuitboard/mecha/honker/main), //10 + list("key"=/obj/item/weapon/bikehorn), //11 ) /datum/construction/mecha/honker/action(atom/used_atom,mob/user) @@ -868,11 +868,11 @@ return /datum/construction/mecha/durand_chassis - steps = list(list("key"=/obj/item/mecha_parts/part/durand_torso),//1 - list("key"=/obj/item/mecha_parts/part/durand_left_arm),//2 - list("key"=/obj/item/mecha_parts/part/durand_right_arm),//3 - list("key"=/obj/item/mecha_parts/part/durand_left_leg),//4 - list("key"=/obj/item/mecha_parts/part/durand_right_leg),//5 + steps = list(list("key"=/obj/item/mecha_parts/part/durand_torso), //1 + list("key"=/obj/item/mecha_parts/part/durand_left_arm), //2 + list("key"=/obj/item/mecha_parts/part/durand_right_arm), //3 + list("key"=/obj/item/mecha_parts/part/durand_left_leg), //4 + list("key"=/obj/item/mecha_parts/part/durand_right_leg), //5 list("key"=/obj/item/mecha_parts/part/durand_head) ) @@ -1156,11 +1156,11 @@ /datum/construction/mecha/phazon_chassis result = "/obj/mecha/combat/phazon" - steps = list(list("key"=/obj/item/mecha_parts/part/phazon_torso),//1 - list("key"=/obj/item/mecha_parts/part/phazon_left_arm),//2 - list("key"=/obj/item/mecha_parts/part/phazon_right_arm),//3 - list("key"=/obj/item/mecha_parts/part/phazon_left_leg),//4 - list("key"=/obj/item/mecha_parts/part/phazon_right_leg),//5 + steps = list(list("key"=/obj/item/mecha_parts/part/phazon_torso), //1 + list("key"=/obj/item/mecha_parts/part/phazon_left_arm), //2 + list("key"=/obj/item/mecha_parts/part/phazon_right_arm), //3 + list("key"=/obj/item/mecha_parts/part/phazon_left_leg), //4 + list("key"=/obj/item/mecha_parts/part/phazon_right_leg), //5 list("key"=/obj/item/mecha_parts/part/phazon_head) ) @@ -1487,11 +1487,11 @@ //ODYSSEUS /datum/construction/mecha/odysseus_chassis - steps = list(list("key"=/obj/item/mecha_parts/part/odysseus_torso),//1 - list("key"=/obj/item/mecha_parts/part/odysseus_head),//2 - list("key"=/obj/item/mecha_parts/part/odysseus_left_arm),//3 - list("key"=/obj/item/mecha_parts/part/odysseus_right_arm),//4 - list("key"=/obj/item/mecha_parts/part/odysseus_left_leg),//5 + steps = list(list("key"=/obj/item/mecha_parts/part/odysseus_torso), //1 + list("key"=/obj/item/mecha_parts/part/odysseus_head), //2 + list("key"=/obj/item/mecha_parts/part/odysseus_left_arm), //3 + list("key"=/obj/item/mecha_parts/part/odysseus_right_arm), //4 + list("key"=/obj/item/mecha_parts/part/odysseus_left_leg), //5 list("key"=/obj/item/mecha_parts/part/odysseus_right_leg)//6 ) diff --git a/code/game/mecha/mecha_wreckage.dm b/code/game/mecha/mecha_wreckage.dm index 34ac8fa93e..ecdbc890af 100644 --- a/code/game/mecha/mecha_wreckage.dm +++ b/code/game/mecha/mecha_wreckage.dm @@ -10,7 +10,7 @@ density = TRUE anchored = FALSE opacity = 0 - var/list/welder_salvage = list(/obj/item/stack/sheet/plasteel,/obj/item/stack/sheet/metal,/obj/item/stack/rods) + var/list/welder_salvage = list(/obj/item/stack/sheet/plasteel, /obj/item/stack/sheet/metal, /obj/item/stack/rods) var/list/wirecutters_salvage = list(/obj/item/stack/cable_coil) var/list/crowbar_salvage = list() var/salvage_num = 5 diff --git a/code/game/objects/effects/contraband.dm b/code/game/objects/effects/contraband.dm index 1392159cea..fb2b854ffb 100644 --- a/code/game/objects/effects/contraband.dm +++ b/code/game/objects/effects/contraband.dm @@ -123,7 +123,7 @@ var/stuff_on_wall = 0 for(var/obj/O in contents) //Let's see if it already has a poster on it or too much stuff - if(istype(O,/obj/structure/sign/poster)) + if(istype(O, /obj/structure/sign/poster)) to_chat(user, "The wall is far too cluttered to place a poster!") return stuff_on_wall++ diff --git a/code/game/objects/effects/spawners/gibspawner.dm b/code/game/objects/effects/spawners/gibspawner.dm index 06beef6940..6c9db52f2d 100644 --- a/code/game/objects/effects/spawners/gibspawner.dm +++ b/code/game/objects/effects/spawners/gibspawner.dm @@ -50,7 +50,7 @@ /obj/effect/gibspawner/generic - gibtypes = list(/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs/core) + gibtypes = list(/obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/core) gibamounts = list(2,2,1) /obj/effect/gibspawner/generic/Initialize() @@ -69,7 +69,7 @@ /obj/effect/gibspawner/humanbodypartless //only the gibs that don't look like actual full bodyparts (except torso). - gibtypes = list(/obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/core,/obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/core, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/torso) + gibtypes = list(/obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/core, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/core, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/torso) gibamounts = list(1, 1, 1, 1, 1, 1) /obj/effect/gibspawner/humanbodypartless/Initialize() @@ -79,7 +79,7 @@ /obj/effect/gibspawner/xeno - gibtypes = list(/obj/effect/decal/cleanable/xenoblood/xgibs/up,/obj/effect/decal/cleanable/xenoblood/xgibs/down,/obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/body, /obj/effect/decal/cleanable/xenoblood/xgibs/limb, /obj/effect/decal/cleanable/xenoblood/xgibs/core) + gibtypes = list(/obj/effect/decal/cleanable/xenoblood/xgibs/up, /obj/effect/decal/cleanable/xenoblood/xgibs/down, /obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/body, /obj/effect/decal/cleanable/xenoblood/xgibs/limb, /obj/effect/decal/cleanable/xenoblood/xgibs/core) gibamounts = list(1,1,1,1,1,1,1) /obj/effect/gibspawner/xeno/Initialize() @@ -89,7 +89,7 @@ /obj/effect/gibspawner/xenobodypartless //only the gibs that don't look like actual full bodyparts (except torso). - gibtypes = list(/obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/core,/obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/core, /obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/torso) + gibtypes = list(/obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/core, /obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/core, /obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/torso) gibamounts = list(1, 1, 1, 1, 1, 1) @@ -118,7 +118,7 @@ /obj/effect/gibspawner/robot sparks = 1 - gibtypes = list(/obj/effect/decal/cleanable/robot_debris/up,/obj/effect/decal/cleanable/robot_debris/down,/obj/effect/decal/cleanable/robot_debris,/obj/effect/decal/cleanable/robot_debris,/obj/effect/decal/cleanable/robot_debris,/obj/effect/decal/cleanable/robot_debris/limb) + gibtypes = list(/obj/effect/decal/cleanable/robot_debris/up, /obj/effect/decal/cleanable/robot_debris/down, /obj/effect/decal/cleanable/robot_debris, /obj/effect/decal/cleanable/robot_debris, /obj/effect/decal/cleanable/robot_debris, /obj/effect/decal/cleanable/robot_debris/limb) gibamounts = list(1,1,1,1,1,1) /obj/effect/gibspawner/robot/Initialize() diff --git a/code/game/objects/effects/spawners/gibspawner.dm.rej b/code/game/objects/effects/spawners/gibspawner.dm.rej new file mode 100644 index 0000000000..ffd534c1f0 --- /dev/null +++ b/code/game/objects/effects/spawners/gibspawner.dm.rej @@ -0,0 +1,10 @@ +diff a/code/game/objects/effects/spawners/gibspawner.dm b/code/game/objects/effects/spawners/gibspawner.dm (rejected hunks) +@@ -52,7 +52,7 @@ + . = ..() + + /obj/effect/gibspawner/human +- gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/up,/obj/effect/decal/cleanable/blood/gibs/down,/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs/body,/obj/effect/decal/cleanable/blood/gibs/limb,/obj/effect/decal/cleanable/blood/gibs/core) ++ gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/up, /obj/effect/decal/cleanable/blood/gibs/down, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/body, /obj/effect/decal/cleanable/blood/gibs/limb, /obj/effect/decal/cleanable/blood/gibs/core) + gibamounts = list(1,1,1,1,1,1,1) + + /obj/effect/gibspawner/human/Initialize() diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 5161386474..429493ab2d 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -312,7 +312,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) // I have cleaned it up a little, but it could probably use more. -Sayu // The lack of ..() is intentional, do not add one /obj/item/attackby(obj/item/weapon/W, mob/user, params) - if(istype(W,/obj/item/weapon/storage)) + if(istype(W, /obj/item/weapon/storage)) var/obj/item/weapon/storage/S = W if(S.use_to_pickup) if(S.collection_mode) //Mode is set to collect multiple items on a tile and we clicked on a valid one. @@ -567,7 +567,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) /obj/item/proc/remove_item_from_storage(atom/newLoc) //please use this if you're going to snowflake an item out of a obj/item/weapon/storage if(!newLoc) return 0 - if(istype(loc,/obj/item/weapon/storage)) + if(istype(loc, /obj/item/weapon/storage)) var/obj/item/weapon/storage/S = loc S.remove_from_storage(src,newLoc) return 1 diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index dbdd6779ea..abf72d5779 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -562,7 +562,7 @@ self_contained = FALSE // Don't disappear when they're empty can_change_colour = TRUE - validSurfaces = list(/turf/open/floor,/turf/closed/wall) + validSurfaces = list(/turf/open/floor, /turf/closed/wall) reagent_contents = list("welding_fuel" = 1, "ethanol" = 1) pre_noise = TRUE diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm index 1f0177e48e..421767b00c 100644 --- a/code/game/objects/items/devices/lightreplacer.dm +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -122,7 +122,7 @@ var/replaced_something = TRUE for(var/obj/item/I in S.contents) - if(istype(I,/obj/item/weapon/light)) + if(istype(I, /obj/item/weapon/light)) var/obj/item/weapon/light/L = I found_lightbulbs = TRUE if(src.uses >= max_uses) diff --git a/code/game/objects/items/devices/pipe_painter.dm b/code/game/objects/items/devices/pipe_painter.dm index 42d3379976..036fa7b6f2 100644 --- a/code/game/objects/items/devices/pipe_painter.dm +++ b/code/game/objects/items/devices/pipe_painter.dm @@ -23,7 +23,7 @@ if(!proximity_flag) return - if(!istype(A,/obj/machinery/atmospherics/pipe)) + if(!istype(A, /obj/machinery/atmospherics/pipe)) return var/obj/machinery/atmospherics/pipe/P = A diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index 7111093951..2f48c73d24 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -283,7 +283,7 @@ O.lockcharge = TRUE O.update_canmove() - else if(istype(W,/obj/item/weapon/pen)) + else if(istype(W, /obj/item/weapon/pen)) to_chat(user, "You need to use a multitool to name [src]!") else return ..() diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index c55ab4f6dd..9456f925d6 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -55,7 +55,7 @@ GLOBAL_LIST_INIT(rod_recipes, list ( \ if (!R && replace) user.put_in_hands(new_item) - else if(istype(W,/obj/item/weapon/reagent_containers/food/snacks)) + else if(istype(W, /obj/item/weapon/reagent_containers/food/snacks)) var/obj/item/weapon/reagent_containers/food/snacks/S = W if(amount != 1) to_chat(user, "You must use a single rod!") diff --git a/code/game/objects/items/stacks/sheets/light.dm b/code/game/objects/items/stacks/sheets/light.dm index 49143b7f5f..10ac12d53f 100644 --- a/code/game/objects/items/stacks/sheets/light.dm +++ b/code/game/objects/items/stacks/sheets/light.dm @@ -14,7 +14,7 @@ /obj/item/stack/light_w/attackby(obj/item/O, mob/user, params) - if(istype(O,/obj/item/weapon/wirecutters)) + if(istype(O, /obj/item/weapon/wirecutters)) var/obj/item/stack/cable_coil/CC = new (user.loc) CC.amount = 5 CC.add_fingerprint(user) diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index e9f2977725..4e9caaf5eb 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -86,7 +86,7 @@ GLOBAL_LIST_INIT(sandbag_recipes, list ( \ w_class = WEIGHT_CLASS_TINY /obj/item/weapon/emptysandbag/attackby(obj/item/W, mob/user, params) - if(istype(W,/obj/item/weapon/ore/glass)) + if(istype(W, /obj/item/weapon/ore/glass)) to_chat(user, "You fill the sandbag.") var/obj/item/stack/sheet/mineral/sandbags/I = new /obj/item/stack/sheet/mineral/sandbags qdel(src) @@ -312,7 +312,7 @@ GLOBAL_LIST_INIT(plastitanium_recipes, list ( \ origin_tech = "materials=1" GLOBAL_LIST_INIT(snow_recipes, list ( \ - new/datum/stack_recipe("Snow Wall",/turf/closed/wall/mineral/snow, 5, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("Snow Wall", /turf/closed/wall/mineral/snow, 5, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("Snowman", /obj/structure/statue/snow/snowman, 5, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("Snowball", /obj/item/toy/snowball, 1), \ )) diff --git a/code/game/objects/items/stacks/tiles/light.dm b/code/game/objects/items/stacks/tiles/light.dm index 3e9117cbdf..b4b31eac08 100644 --- a/code/game/objects/items/stacks/tiles/light.dm +++ b/code/game/objects/items/stacks/tiles/light.dm @@ -20,7 +20,7 @@ state = 0 //fine /obj/item/stack/tile/light/attackby(obj/item/O, mob/user, params) - if(istype(O,/obj/item/weapon/crowbar)) + if(istype(O, /obj/item/weapon/crowbar)) new/obj/item/stack/sheet/metal(user.loc) amount-- new/obj/item/stack/light_w(user.loc) diff --git a/code/game/objects/items/weapons/RPD.dm b/code/game/objects/items/weapons/RPD.dm index bd608e6b72..75141bddd5 100644 --- a/code/game/objects/items/weapons/RPD.dm +++ b/code/game/objects/items/weapons/RPD.dm @@ -518,7 +518,7 @@ GLOBAL_LIST_INIT(RPD_recipes, list( /obj/item/weapon/pipe_dispenser/pre_attackby(atom/A, mob/user) - if(!user.IsAdvancedToolUser() || istype(A,/turf/open/space/transit)) + if(!user.IsAdvancedToolUser() || istype(A, /turf/open/space/transit)) return ..() //make sure what we're clicking is valid for the current mode diff --git a/code/game/objects/items/weapons/clown_items.dm b/code/game/objects/items/weapons/clown_items.dm index 1df7b9f69a..c3be2659ff 100644 --- a/code/game/objects/items/weapons/clown_items.dm +++ b/code/game/objects/items/weapons/clown_items.dm @@ -60,7 +60,7 @@ //So this is a workaround. This also makes more sense from an IC standpoint. ~Carn if(user.client && (target in user.client.screen)) to_chat(user, "You need to take that [target.name] off before cleaning it!") - else if(istype(target,/obj/effect/decal/cleanable)) + else if(istype(target, /obj/effect/decal/cleanable)) user.visible_message("[user] begins to scrub \the [target.name] out with [src].", "You begin to scrub \the [target.name] out with [src]...") if(do_after(user, src.cleanspeed, target = target)) to_chat(user, "You scrub \the [target.name] out.") diff --git a/code/game/objects/items/weapons/flamethrower.dm b/code/game/objects/items/weapons/flamethrower.dm index a5456b7724..8bb4d3eefe 100755 --- a/code/game/objects/items/weapons/flamethrower.dm +++ b/code/game/objects/items/weapons/flamethrower.dm @@ -115,7 +115,7 @@ update_icon() return - else if(istype(W,/obj/item/weapon/tank/internals/plasma)) + else if(istype(W, /obj/item/weapon/tank/internals/plasma)) if(ptank) if(user.transferItemToLoc(W,src)) ptank.forceMove(get_turf(src)) diff --git a/code/game/objects/items/weapons/gift.dm b/code/game/objects/items/weapons/gift.dm index 2d584327c2..e13c0b68fa 100644 --- a/code/game/objects/items/weapons/gift.dm +++ b/code/game/objects/items/weapons/gift.dm @@ -72,7 +72,7 @@ var/gift_type = pick(gift_type_list) - if(!ispath(gift_type,/obj/item)) + if(!ispath(gift_type, /obj/item)) return qdel(src) diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index 7af8a4dc5a..0dcdf1d7b6 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -193,7 +193,7 @@ name = "large grenade" desc = "A custom made large grenade. It affects a larger area." icon_state = "large_grenade" - allowed_containers = list(/obj/item/weapon/reagent_containers/glass,/obj/item/weapon/reagent_containers/food/condiment, + allowed_containers = list(/obj/item/weapon/reagent_containers/glass, /obj/item/weapon/reagent_containers/food/condiment, /obj/item/weapon/reagent_containers/food/drinks) origin_tech = "combat=3;engineering=3" affected_area = 5 diff --git a/code/game/objects/items/weapons/grenades/plastic.dm b/code/game/objects/items/weapons/grenades/plastic.dm index 27991f684f..d626fa387e 100644 --- a/code/game/objects/items/weapons/grenades/plastic.dm +++ b/code/game/objects/items/weapons/grenades/plastic.dm @@ -228,7 +228,7 @@ return if((istype(AM, /obj/item/weapon/storage/)) && !((istype(AM, /obj/item/weapon/storage/secure)) || (istype(AM, /obj/item/weapon/storage/lockbox)))) //If its storage but not secure storage OR a lockbox, then place it inside. return - if((istype(AM,/obj/item/weapon/storage/secure)) || (istype(AM, /obj/item/weapon/storage/lockbox))) + if((istype(AM, /obj/item/weapon/storage/secure)) || (istype(AM, /obj/item/weapon/storage/lockbox))) var/obj/item/weapon/storage/secure/S = AM if(!S.locked) //Literal hacks, this works for lockboxes despite incorrect type casting, because they both share the locked var. But if its unlocked, place it inside, otherwise PLANTING C4! return diff --git a/code/game/objects/items/weapons/implants/implant_chem.dm b/code/game/objects/items/weapons/implants/implant_chem.dm index e537bf44de..d259e7b26e 100644 --- a/code/game/objects/items/weapons/implants/implant_chem.dm +++ b/code/game/objects/items/weapons/implants/implant_chem.dm @@ -56,7 +56,7 @@ imp_type = /obj/item/weapon/implant/chem /obj/item/weapon/implantcase/chem/attackby(obj/item/weapon/W, mob/user, params) - if(istype(W,/obj/item/weapon/reagent_containers/syringe) && imp) + if(istype(W, /obj/item/weapon/reagent_containers/syringe) && imp) W.afterattack(imp, user, TRUE, params) return TRUE else diff --git a/code/game/objects/items/weapons/inducer.dm b/code/game/objects/items/weapons/inducer.dm index 26eb9a7bfc..193e49989f 100644 --- a/code/game/objects/items/weapons/inducer.dm +++ b/code/game/objects/items/weapons/inducer.dm @@ -60,7 +60,7 @@ /obj/item/weapon/inducer/attackby(obj/item/weapon/W, mob/user) - if(istype(W,/obj/item/weapon/screwdriver)) + if(istype(W, /obj/item/weapon/screwdriver)) playsound(src, W.usesound, 50, 1) if(!opened) to_chat(user, "You unscrew the battery compartment.") @@ -72,7 +72,7 @@ opened = FALSE update_icon() return - if(istype(W,/obj/item/weapon/stock_parts/cell)) + if(istype(W, /obj/item/weapon/stock_parts/cell)) if(opened) if(!cell) if(!user.transferItemToLoc(W, src)) diff --git a/code/game/objects/items/weapons/singularityhammer.dm b/code/game/objects/items/weapons/singularityhammer.dm index cec4fce24d..77b3feb81c 100644 --- a/code/game/objects/items/weapons/singularityhammer.dm +++ b/code/game/objects/items/weapons/singularityhammer.dm @@ -45,7 +45,7 @@ step_towards(A,pull) else if(ishuman(X)) var/mob/living/carbon/human/H = X - if(istype(H.shoes,/obj/item/clothing/shoes/magboots)) + if(istype(H.shoes, /obj/item/clothing/shoes/magboots)) var/obj/item/clothing/shoes/magboots/M = H.shoes if(M.magpulse) continue diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index 89f1feeef1..a3b5d0f4bc 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -305,7 +305,7 @@ /obj/item/weapon/storage/backpack/satchel/flat/secret/Initialize() ..() - if(isfloorturf(loc) && !istype(loc,/turf/open/floor/plating/)) + if(isfloorturf(loc) && !istype(loc, /turf/open/floor/plating/)) hide(1) /obj/item/weapon/storage/backpack/satchel/flat/secret/hide(intact) diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm index e61a0a8ad4..433cbd5084 100644 --- a/code/game/objects/items/weapons/storage/bags.dm +++ b/code/game/objects/items/weapons/storage/bags.dm @@ -112,7 +112,7 @@ max_combined_w_class = 100 //Doesn't matter what this is, so long as it's more or equal to storage_slots * plants.w_class max_w_class = WEIGHT_CLASS_NORMAL w_class = WEIGHT_CLASS_TINY - can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/grown,/obj/item/seeds,/obj/item/weapon/grown,/obj/item/weapon/reagent_containers/honeycomb) + can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/grown, /obj/item/seeds, /obj/item/weapon/grown, /obj/item/weapon/reagent_containers/honeycomb) resistance_flags = FLAMMABLE //////// @@ -152,7 +152,7 @@ allow_quick_empty = 1 // this function is superceded /obj/item/weapon/storage/bag/sheetsnatcher/can_be_inserted(obj/item/W, stop_messages = 0) - if(!istype(W,/obj/item/stack/sheet) || istype(W,/obj/item/stack/sheet/mineral/sandstone) || istype(W,/obj/item/stack/sheet/mineral/wood)) + if(!istype(W, /obj/item/stack/sheet) || istype(W, /obj/item/stack/sheet/mineral/sandstone) || istype(W, /obj/item/stack/sheet/mineral/wood)) if(!stop_messages) to_chat(usr, "The snatcher does not accept [W].") return 0 //I don't care, but the existing code rejects them for not being "sheets" *shrug* -Sayu diff --git a/code/game/objects/items/weapons/storage/firstaid.dm b/code/game/objects/items/weapons/storage/firstaid.dm index 6e68afb4c4..fd893afb2d 100644 --- a/code/game/objects/items/weapons/storage/firstaid.dm +++ b/code/game/objects/items/weapons/storage/firstaid.dm @@ -144,7 +144,7 @@ icon = 'icons/obj/chemical.dmi' item_state = "contsolid" w_class = WEIGHT_CLASS_SMALL - can_hold = list(/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/dice) + can_hold = list(/obj/item/weapon/reagent_containers/pill, /obj/item/weapon/dice) allow_quick_gather = 1 use_to_pickup = 1 diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index 480c348b6f..cc4bee233b 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -34,7 +34,7 @@ if(!over_object) return - if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech + if (istype(usr.loc, /obj/mecha)) // stops inventory actions in a mech return // this must come before the screen objects only block, dunno why it wasn't before diff --git a/code/game/objects/items/weapons/storage/wallets.dm b/code/game/objects/items/weapons/storage/wallets.dm index b2501103aa..4346051295 100644 --- a/code/game/objects/items/weapons/storage/wallets.dm +++ b/code/game/objects/items/weapons/storage/wallets.dm @@ -73,10 +73,10 @@ return ..() /obj/item/weapon/storage/wallet/random/PopulateContents() - var/item1_type = pick( /obj/item/stack/spacecash/c10,/obj/item/stack/spacecash/c100,/obj/item/stack/spacecash/c1000,/obj/item/stack/spacecash/c20,/obj/item/stack/spacecash/c200,/obj/item/stack/spacecash/c50, /obj/item/stack/spacecash/c500) + var/item1_type = pick( /obj/item/stack/spacecash/c10, /obj/item/stack/spacecash/c100, /obj/item/stack/spacecash/c1000, /obj/item/stack/spacecash/c20, /obj/item/stack/spacecash/c200, /obj/item/stack/spacecash/c50, /obj/item/stack/spacecash/c500) var/item2_type if(prob(50)) - item2_type = pick( /obj/item/stack/spacecash/c10,/obj/item/stack/spacecash/c100,/obj/item/stack/spacecash/c1000,/obj/item/stack/spacecash/c20,/obj/item/stack/spacecash/c200,/obj/item/stack/spacecash/c50, /obj/item/stack/spacecash/c500) + item2_type = pick( /obj/item/stack/spacecash/c10, /obj/item/stack/spacecash/c100, /obj/item/stack/spacecash/c1000, /obj/item/stack/spacecash/c20, /obj/item/stack/spacecash/c200, /obj/item/stack/spacecash/c50, /obj/item/stack/spacecash/c500) var/item3_type = pick( /obj/item/weapon/coin/silver, /obj/item/weapon/coin/silver, /obj/item/weapon/coin/gold, /obj/item/weapon/coin/iron, /obj/item/weapon/coin/iron, /obj/item/weapon/coin/iron ) spawn(2) diff --git a/code/game/objects/items/weapons/tanks/jetpack.dm b/code/game/objects/items/weapons/tanks/jetpack.dm index 15ac506cd6..478b966d57 100644 --- a/code/game/objects/items/weapons/tanks/jetpack.dm +++ b/code/game/objects/items/weapons/tanks/jetpack.dm @@ -76,7 +76,7 @@ return 1 /obj/item/weapon/tank/jetpack/suicide_act(mob/user) - if (istype(user,/mob/living/carbon/human/)) + if (istype(user, /mob/living/carbon/human/)) var/mob/living/carbon/human/H = user H.forcesay("WHAT THE FUCK IS CARBON DIOXIDE?") H.visible_message("[user] is suffocating [user.p_them()]self with [src]! It looks like [user.p_they()] didn't read what that jetpack says!") diff --git a/code/game/objects/items/weapons/tanks/tanks.dm b/code/game/objects/items/weapons/tanks/tanks.dm index abd907aeb5..0974e60cc0 100644 --- a/code/game/objects/items/weapons/tanks/tanks.dm +++ b/code/game/objects/items/weapons/tanks/tanks.dm @@ -231,7 +231,7 @@ var/pressure = air_contents.return_pressure() if(pressure > TANK_FRAGMENT_PRESSURE) - if(!istype(src.loc,/obj/item/device/transfer_valve)) + if(!istype(src.loc, /obj/item/device/transfer_valve)) message_admins("Explosive tank rupture! Last key to touch the tank was [src.fingerprintslast].") log_game("Explosive tank rupture! Last key to touch the tank was [src.fingerprintslast].") //to_chat(world, "\blue[x],[y] tank is exploding: [pressure] kPa") @@ -246,7 +246,7 @@ //to_chat(world, "\blue Exploding Pressure: [pressure] kPa, intensity: [range]") explosion(epicenter, round(range*0.25), round(range*0.5), round(range), round(range*1.5)) - if(istype(src.loc,/obj/item/device/transfer_valve)) + if(istype(src.loc, /obj/item/device/transfer_valve)) qdel(src.loc) else qdel(src) diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index 8c97cab431..113f70825e 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -225,10 +225,10 @@ if(!proximity) return if(wielded) //destroys windows and grilles in one hit - if(istype(A,/obj/structure/window)) + if(istype(A, /obj/structure/window)) var/obj/structure/window/W = A W.take_damage(200, BRUTE, "melee", 0) - else if(istype(A,/obj/structure/grille)) + else if(istype(A, /obj/structure/grille)) var/obj/structure/grille/G = A G.take_damage(40, BRUTE, "melee", 0) diff --git a/code/game/objects/structures/beds_chairs/bed.dm b/code/game/objects/structures/beds_chairs/bed.dm index 19a4439720..f512f6ba4f 100644 --- a/code/game/objects/structures/beds_chairs/bed.dm +++ b/code/game/objects/structures/beds_chairs/bed.dm @@ -49,7 +49,7 @@ var/foldabletype = /obj/item/roller /obj/structure/bed/roller/attackby(obj/item/weapon/W, mob/user, params) - if(istype(W,/obj/item/roller/robo)) + if(istype(W, /obj/item/roller/robo)) var/obj/item/roller/robo/R = W if(R.loaded) to_chat(user, "You already have a roller bed docked!") diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index c88d1f763c..27335719c7 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -245,7 +245,7 @@ /obj/item/chair/proc/plant(mob/user) for(var/obj/A in get_turf(loc)) - if(istype(A,/obj/structure/chair)) + if(istype(A, /obj/structure/chair)) to_chat(user, "There is already a chair here.") return if(A.density && !(A.flags & ON_BORDER)) diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm index ac08947e9b..4eef54e39b 100644 --- a/code/game/objects/structures/displaycase.dm +++ b/code/game/objects/structures/displaycase.dm @@ -132,7 +132,7 @@ else to_chat(user, "[src] is already in good condition!") return - else if(!alert && istype(W,/obj/item/weapon/crowbar) && openable) //Only applies to the lab cage and player made display cases + else if(!alert && istype(W, /obj/item/weapon/crowbar) && openable) //Only applies to the lab cage and player made display cases if(broken) if(showpiece) to_chat(user, "Remove the displayed object first.") diff --git a/code/game/objects/structures/fireaxe.dm b/code/game/objects/structures/fireaxe.dm index 064d056cf1..24e70059af 100644 --- a/code/game/objects/structures/fireaxe.dm +++ b/code/game/objects/structures/fireaxe.dm @@ -22,7 +22,7 @@ return ..() /obj/structure/fireaxecabinet/attackby(obj/item/I, mob/user, params) - if(iscyborg(user) || istype(I,/obj/item/device/multitool)) + if(iscyborg(user) || istype(I, /obj/item/device/multitool)) toggle_lock(user) else if(istype(I, /obj/item/weapon/weldingtool) && user.a_intent == INTENT_HELP && !broken) var/obj/item/weapon/weldingtool/WT = I diff --git a/code/game/objects/structures/fireplace.dm b/code/game/objects/structures/fireplace.dm index f98e24670d..388e140fe5 100644 --- a/code/game/objects/structures/fireplace.dm +++ b/code/game/objects/structures/fireplace.dm @@ -38,7 +38,7 @@ return TRUE /obj/structure/fireplace/attackby(obj/item/T, mob/user) - if(istype(T,/obj/item/stack/sheet/mineral/wood)) + if(istype(T, /obj/item/stack/sheet/mineral/wood)) var/obj/item/stack/sheet/mineral/wood/wood = T var/space_remaining = MAXIMUM_BURN_TIMER - burn_time_remaining() var/space_for_logs = round(space_remaining / LOG_BURN_TIMER) diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index f152634e38..ed222445af 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -114,7 +114,7 @@ to_chat(user, "There is already a false wall present!") return - if(istype(W,/obj/item/stack/rods)) + if(istype(W, /obj/item/stack/rods)) var/obj/item/stack/rods/S = W if(state == GIRDER_DISPLACED) if(S.get_amount() < 2) @@ -145,11 +145,11 @@ qdel(src) return - if(!istype(W,/obj/item/stack/sheet)) + if(!istype(W, /obj/item/stack/sheet)) return var/obj/item/stack/sheet/S = W - if(istype(S,/obj/item/stack/sheet/metal)) + if(istype(S, /obj/item/stack/sheet/metal)) if(state == GIRDER_DISPLACED) if(S.get_amount() < 2) to_chat(user, "You need two sheets of metal to create a false wall!") @@ -179,7 +179,7 @@ qdel(src) return - if(istype(S,/obj/item/stack/sheet/plasteel)) + if(istype(S, /obj/item/stack/sheet/plasteel)) if(state == GIRDER_DISPLACED) if(S.get_amount() < 2) to_chat(user, "You need at least two sheets to create a false wall!") @@ -282,7 +282,7 @@ /obj/structure/girder/deconstruct(disassembled = TRUE) if(!(flags & NODECONSTRUCT)) - var/remains = pick(/obj/item/stack/rods,/obj/item/stack/sheet/metal) + var/remains = pick(/obj/item/stack/rods, /obj/item/stack/sheet/metal) new remains(loc) qdel(src) diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm index 8d938c536c..b64a6a0aeb 100644 --- a/code/game/objects/structures/mineral_doors.dm +++ b/code/game/objects/structures/mineral_doors.dm @@ -122,7 +122,7 @@ icon_state = initial_state /obj/structure/mineral_door/attackby(obj/item/weapon/W, mob/user, params) - if(istype(W,/obj/item/weapon/pickaxe)) + if(istype(W, /obj/item/weapon/pickaxe)) var/obj/item/weapon/pickaxe/digTool = W to_chat(user, "You start digging the [name]...") if(do_after(user,digTool.digspeed*(1+round(max_integrity*0.01)), target = src) && src) diff --git a/code/game/objects/structures/reflector.dm b/code/game/objects/structures/reflector.dm index 3936b2770d..4e143a9109 100644 --- a/code/game/objects/structures/reflector.dm +++ b/code/game/objects/structures/reflector.dm @@ -76,7 +76,7 @@ anchored = 0 to_chat(user, "You cut \the [src] free from the floor.") //Finishing the frame - else if(istype(W,/obj/item/stack/sheet)) + else if(istype(W, /obj/item/stack/sheet)) if(finished) return var/obj/item/stack/sheet/S = W @@ -88,7 +88,7 @@ S.use(5) new /obj/structure/reflector/single (src.loc) qdel (src) - if(istype(W,/obj/item/stack/sheet/rglass)) + if(istype(W, /obj/item/stack/sheet/rglass)) if(S.get_amount() < 10) to_chat(user, "You need ten sheets of reinforced glass to create a double reflector!") return diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm index 884853b6d8..0be8d40402 100644 --- a/code/game/objects/structures/statues.dm +++ b/code/game/objects/structures/statues.dm @@ -155,10 +155,10 @@ /obj/structure/statue/plasma/bullet_act(obj/item/projectile/Proj) var/burn = FALSE - if(istype(Proj,/obj/item/projectile/beam)) + if(istype(Proj, /obj/item/projectile/beam)) PlasmaBurn(2500) burn = TRUE - else if(istype(Proj,/obj/item/projectile/ion)) + else if(istype(Proj, /obj/item/projectile/ion)) PlasmaBurn(500) burn = TRUE if(burn) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index c481393f2f..29920a6db4 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -266,7 +266,7 @@ frame = /obj/structure/table_frame framestack = /obj/item/stack/rods buildstack = /obj/item/stack/tile/carpet - canSmoothWith = list(/obj/structure/table/wood/fancy,/obj/structure/table/wood/fancy/black) + canSmoothWith = list(/obj/structure/table/wood/fancy, /obj/structure/table/wood/fancy/black) /obj/structure/table/wood/fancy/New() icon = 'icons/obj/smooth_structures/fancy_table.dmi' //so that the tables place correctly in the map editor diff --git a/code/game/turfs/simulated/dirtystation.dm b/code/game/turfs/simulated/dirtystation.dm index 1c59cd2999..7be9b6cd34 100644 --- a/code/game/turfs/simulated/dirtystation.dm +++ b/code/game/turfs/simulated/dirtystation.dm @@ -32,7 +32,7 @@ if(prob(80)) //mid dirt - 1/15 return - if(istype(A, /area/engine) || istype(A, /area/crew_quarters/heads/chief) || istype(A,/area/assembly) || istype(A, /area/science/robotics) || istype(A,/area/maintenance) || istype(A,/area/construction)) + if(istype(A, /area/engine) || istype(A, /area/crew_quarters/heads/chief) || istype(A, /area/assembly) || istype(A, /area/science/robotics) || istype(A, /area/maintenance) || istype(A, /area/construction)) //Blood, sweat, and oil. Oh, and dirt. if(prob(3)) new /obj/effect/decal/cleanable/blood/old(src) diff --git a/code/game/turfs/simulated/floor/light_floor.dm b/code/game/turfs/simulated/floor/light_floor.dm index 49da7959ab..f3f8fc5959 100644 --- a/code/game/turfs/simulated/floor/light_floor.dm +++ b/code/game/turfs/simulated/floor/light_floor.dm @@ -67,7 +67,7 @@ /turf/open/floor/light/attackby(obj/item/C, mob/user, params) if(..()) return - if(istype(C,/obj/item/weapon/light/bulb)) //only for light tiles + if(istype(C, /obj/item/weapon/light/bulb)) //only for light tiles if(state && user.drop_item()) qdel(C) state = 0 //fixing it by bashing it with a light bulb, fun eh? diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm index 3ca061b2c9..c961b9243c 100644 --- a/code/game/turfs/simulated/floor/plating.dm +++ b/code/game/turfs/simulated/floor/plating.dm @@ -53,7 +53,7 @@ if(!W.use(1)) return var/turf/open/floor/T = ChangeTurf(W.turf_type) - if(istype(W,/obj/item/stack/tile/light)) //TODO: get rid of this ugly check somehow + if(istype(W, /obj/item/stack/tile/light)) //TODO: get rid of this ugly check somehow var/obj/item/stack/tile/light/L = W var/turf/open/floor/light/F = T F.state = L.state diff --git a/code/game/turfs/simulated/floor/plating/asteroid.dm b/code/game/turfs/simulated/floor/plating/asteroid.dm index 0219427729..a9f07b59b5 100644 --- a/code/game/turfs/simulated/floor/plating/asteroid.dm +++ b/code/game/turfs/simulated/floor/plating/asteroid.dm @@ -71,7 +71,7 @@ gets_dug() SSblackbox.add_details("pick_used_mining","[W.type]") - if(istype(W,/obj/item/weapon/storage/bag/ore)) + if(istype(W, /obj/item/weapon/storage/bag/ore)) var/obj/item/weapon/storage/bag/ore/S = W if(S.collection_mode == 1) for(var/obj/item/weapon/ore/O in src.contents) @@ -83,7 +83,7 @@ if(!Z.use(1)) return var/turf/open/floor/T = ChangeTurf(Z.turf_type) - if(istype(Z,/obj/item/stack/tile/light)) //TODO: get rid of this ugly check somehow + if(istype(Z, /obj/item/stack/tile/light)) //TODO: get rid of this ugly check somehow var/obj/item/stack/tile/light/L = Z var/turf/open/floor/light/F = T F.state = L.state diff --git a/code/game/turfs/simulated/minerals.dm b/code/game/turfs/simulated/minerals.dm index 852e3e1cee..e71015e1a5 100644 --- a/code/game/turfs/simulated/minerals.dm +++ b/code/game/turfs/simulated/minerals.dm @@ -108,12 +108,12 @@ return else if(iscyborg(AM)) var/mob/living/silicon/robot/R = AM - if(istype(R.module_active,/obj/item/weapon/pickaxe)) + if(istype(R.module_active, /obj/item/weapon/pickaxe)) src.attackby(R.module_active,R) return -/* else if(istype(AM,/obj/mecha)) +/* else if(istype(AM, /obj/mecha)) var/obj/mecha/M = AM - if(istype(M.selected,/obj/item/mecha_parts/mecha_equipment/drill)) + if(istype(M.selected, /obj/item/mecha_parts/mecha_equipment/drill)) src.attackby(M.selected,M) return*/ //Aparantly mechs are just TOO COOL to call Collide()) diff --git a/code/game/turfs/simulated/wall/mineral_walls.dm b/code/game/turfs/simulated/wall/mineral_walls.dm index a122131942..7e1181413e 100644 --- a/code/game/turfs/simulated/wall/mineral_walls.dm +++ b/code/game/turfs/simulated/wall/mineral_walls.dm @@ -122,9 +122,9 @@ PlasmaBurn(exposed_temperature) /turf/closed/wall/mineral/plasma/bullet_act(var/obj/item/projectile/Proj) - if(istype(Proj,/obj/item/projectile/beam)) + if(istype(Proj, /obj/item/projectile/beam)) PlasmaBurn(2500) - else if(istype(Proj,/obj/item/projectile/ion)) + else if(istype(Proj, /obj/item/projectile/ion)) PlasmaBurn(500) ..() diff --git a/code/game/turfs/simulated/wall/misc_walls.dm b/code/game/turfs/simulated/wall/misc_walls.dm index 64a03cef44..d0eaad34e3 100644 --- a/code/game/turfs/simulated/wall/misc_walls.dm +++ b/code/game/turfs/simulated/wall/misc_walls.dm @@ -106,7 +106,7 @@ ChangeTurf(/turf/open/floor/clockwork) for(var/obj/O in src) //Eject contents! - if(istype(O,/obj/structure/sign/poster)) + if(istype(O, /obj/structure/sign/poster)) var/obj/structure/sign/poster/P = O P.roll_and_drop(src) else diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index bea9841ee7..c343e68922 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -52,7 +52,7 @@ transfer_fingerprints_to(newgirder) for(var/obj/O in src.contents) //Eject contents! - if(istype(O,/obj/structure/sign/poster)) + if(istype(O, /obj/structure/sign/poster)) var/obj/structure/sign/poster/P = O P.roll_and_drop(src) @@ -167,13 +167,13 @@ /turf/closed/wall/proc/try_wallmount(obj/item/weapon/W, mob/user, turf/T) //check for wall mounted frames - if(istype(W,/obj/item/wallframe)) + if(istype(W, /obj/item/wallframe)) var/obj/item/wallframe/F = W if(F.try_build(src, user)) F.attach(src, user) return 1 //Poster stuff - else if(istype(W,/obj/item/weapon/poster)) + else if(istype(W, /obj/item/weapon/poster)) place_poster(W,user) return 1 diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 38247ea887..749da7e78a 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -153,7 +153,7 @@ /turf/open/Entered(atom/movable/AM) ..() //slipping - if (istype(AM,/mob/living/carbon)) + if (istype(AM, /mob/living/carbon)) var/mob/living/carbon/M = AM if(M.movement_type & FLYING) return diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 4bc6bd6794..b5f2bc750e 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -181,9 +181,9 @@ set name = "Access Newscaster Network" set desc = "Allows you to view, add and edit news feeds." - if (!istype(src,/datum/admins)) + if (!istype(src, /datum/admins)) src = usr.client.holder - if (!istype(src,/datum/admins)) + if (!istype(src, /datum/admins)) to_chat(usr, "Error: you are not an admin!") return var/dat @@ -641,7 +641,7 @@ var/chosen = pick_closest_path(object) if(!chosen) return - if(ispath(chosen,/turf)) + if(ispath(chosen, /turf)) var/turf/T = get_turf(usr.loc) T.ChangeTurf(chosen) else diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index ac3d4cb21e..ff8b10d185 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -13,7 +13,7 @@ GLOBAL_LIST_INIT(admin_verbs_default, world.AVerbsDefault()) /client/proc/investigate_show, /*various admintools for investigation. Such as a singulo grief-log*/ /client/proc/secrets, /client/proc/reload_admins, - /client/proc/reestablish_db_connection,/*reattempt a connection to the database*/ + /client/proc/reestablish_db_connection, /*reattempt a connection to the database*/ /client/proc/cmd_admin_pm_context, /*right-click adminPM interface*/ /client/proc/cmd_admin_pm_panel, /*admin-pm list*/ /client/proc/cmd_admin_ticket_panel, @@ -33,7 +33,7 @@ GLOBAL_LIST_INIT(admin_verbs_admin, world.AVerbsAdmin()) /datum/admins/proc/toggleenter, /*toggles whether people can join the current game*/ /datum/admins/proc/toggleguests, /*toggles whether guests can join the current game*/ /datum/admins/proc/announce, /*priority announce something to all clients.*/ - /datum/admins/proc/set_admin_notice,/*announcement all clients see when joining the server.*/ + /datum/admins/proc/set_admin_notice, /*announcement all clients see when joining the server.*/ /client/proc/admin_ghost, /*allows us to ghost/reenter body at will*/ /client/proc/toggle_view_range, /*changes how far we can see*/ /datum/admins/proc/view_txt_log, /*shows the server log (world_game_log) for today*/ @@ -70,9 +70,9 @@ GLOBAL_LIST_INIT(admin_verbs_admin, world.AVerbsAdmin()) /client/proc/respawn_character ) GLOBAL_PROTECT(admin_verbs_ban) -GLOBAL_LIST_INIT(admin_verbs_ban, list(/client/proc/unban_panel,/client/proc/DB_ban_panel,/client/proc/stickybanpanel)) +GLOBAL_LIST_INIT(admin_verbs_ban, list(/client/proc/unban_panel, /client/proc/DB_ban_panel, /client/proc/stickybanpanel)) GLOBAL_PROTECT(admin_verbs_sounds) -GLOBAL_LIST_INIT(admin_verbs_sounds, list(/client/proc/play_local_sound,/client/proc/play_sound,/client/proc/set_round_end_sound)) +GLOBAL_LIST_INIT(admin_verbs_sounds, list(/client/proc/play_local_sound, /client/proc/play_sound, /client/proc/set_round_end_sound)) GLOBAL_PROTECT(admin_verbs_fun) GLOBAL_LIST_INIT(admin_verbs_fun, list( /client/proc/cmd_admin_dress, @@ -97,7 +97,7 @@ GLOBAL_LIST_INIT(admin_verbs_fun, list( /client/proc/smite )) GLOBAL_PROTECT(admin_verbs_spawn) -GLOBAL_LIST_INIT(admin_verbs_spawn, list(/datum/admins/proc/spawn_atom,/client/proc/respawn_character)) +GLOBAL_LIST_INIT(admin_verbs_spawn, list(/datum/admins/proc/spawn_atom, /client/proc/respawn_character)) GLOBAL_PROTECT(admin_verbs_server) GLOBAL_LIST_INIT(admin_verbs_server, world.AVerbsServer()) /world/proc/AVerbsServer() @@ -156,7 +156,7 @@ GLOBAL_LIST_INIT(admin_verbs_debug, world.AVerbsDebug()) /client/proc/cmd_display_init_log ) GLOBAL_PROTECT(admin_verbs_possess) -GLOBAL_LIST_INIT(admin_verbs_possess, list(/proc/possess,/proc/release)) +GLOBAL_LIST_INIT(admin_verbs_possess, list(/proc/possess, /proc/release)) GLOBAL_PROTECT(admin_verbs_permissions) GLOBAL_LIST_INIT(admin_verbs_permissions, list(/client/proc/edit_admin_permissions)) GLOBAL_PROTECT(admin_verbs_poll) diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm index c04e3c91ad..05d97be6ad 100644 --- a/code/modules/admin/player_panel.dm +++ b/code/modules/admin/player_panel.dm @@ -598,7 +598,7 @@ if(istype(SSticker.mode, /datum/game_mode/blob) || blob_minds.len) dat += "
" - if(istype(SSticker.mode,/datum/game_mode/blob)) + if(istype(SSticker.mode, /datum/game_mode/blob)) var/datum/game_mode/blob/mode = SSticker.mode blob_minds |= mode.blob_overminds dat += "" diff --git a/code/modules/admin/secrets.dm b/code/modules/admin/secrets.dm index ffad361db8..eab6cced80 100644 --- a/code/modules/admin/secrets.dm +++ b/code/modules/admin/secrets.dm @@ -138,7 +138,7 @@ for(var/mob/living/mob in thunderdome) qdel(mob) //Clear mobs for(var/obj/obj in thunderdome) - if(!istype(obj,/obj/machinery/camera)) + if(!istype(obj, /obj/machinery/camera)) qdel(obj) //Clear objects var/area/template = locate(/area/tdome/arena_source) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 1f41b17421..5436590e83 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1917,7 +1917,7 @@ if(!marked_datum) to_chat(usr, "You don't have any object marked. Abandoning spawn.") return - else if(!istype(marked_datum,/atom)) + else if(!istype(marked_datum, /atom)) to_chat(usr, "The object you have marked cannot be used as a target. Target must be of type /atom. Abandoning spawn.") return else diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm index caa2d2c7cb..31fb08da36 100644 --- a/code/modules/admin/verbs/adminpm.dm +++ b/code/modules/admin/verbs/adminpm.dm @@ -44,7 +44,7 @@ if(cmptext(copytext(whom,1,2),"@")) whom = findStealthKey(whom) C = GLOB.directory[whom] - else if(istype(whom,/client)) + else if(istype(whom, /client)) C = whom if(!C) if(holder) @@ -82,7 +82,7 @@ irc = 1 else recipient = GLOB.directory[whom] - else if(istype(whom,/client)) + else if(istype(whom, /client)) recipient = whom diff --git a/code/modules/admin/verbs/buildmode.dm b/code/modules/admin/verbs/buildmode.dm index 5df7ee8c78..cfccf5fa78 100644 --- a/code/modules/admin/verbs/buildmode.dm +++ b/code/modules/admin/verbs/buildmode.dm @@ -171,7 +171,7 @@ objholder = /obj/structure/closet alert("That path is not allowed.") else - if(ispath(objholder,/mob) && !check_rights(R_DEBUG,0)) + if(ispath(objholder, /mob) && !check_rights(R_DEBUG,0)) objholder = /obj/structure/closet if(VAR_BUILDMODE) var/list/locked = list("vars", "key", "ckey", "client", "firemut", "ishulk", "telekinesis", "xray", "virus", "viruses", "cuffed", "ka", "last_eaten", "urine") @@ -224,7 +224,7 @@ set name = "Toggle Build Mode" set category = "Special Verbs" if(M.client) - if(istype(M.client.click_intercept,/datum/buildmode)) + if(istype(M.client.click_intercept, /datum/buildmode)) var/datum/buildmode/B = M.client.click_intercept B.quit() log_admin("[key_name(usr)] has left build mode.") @@ -262,7 +262,7 @@ else if(isfloorturf(object)) var/turf/T = object T.ChangeTurf(/turf/open/space) - else if(istype(object,/turf/closed/wall/r_wall)) + else if(istype(object, /turf/closed/wall/r_wall)) var/turf/T = object T.ChangeTurf(/turf/closed/wall) else if(isobj(object)) @@ -291,7 +291,7 @@ log_admin("Build Mode: [key_name(user)] built a window at ([object.x],[object.y],[object.z])") if(ADV_BUILDMODE) if(left_click) - if(ispath(objholder,/turf)) + if(ispath(objholder, /turf)) var/turf/T = get_turf(object) log_admin("Build Mode: [key_name(user)] modified [T] ([T.x],[T.y],[T.z]) to [objholder]") T.ChangeTurf(objholder) diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 0f07f31b85..c45fa13435 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -460,10 +460,10 @@ GLOBAL_PROTECT(AdminProcCallCount) id.update_label() if(worn) - if(istype(worn,/obj/item/device/pda)) + if(istype(worn, /obj/item/device/pda)) worn:id = id id.loc = worn - else if(istype(worn,/obj/item/weapon/storage/wallet)) + else if(istype(worn, /obj/item/weapon/storage/wallet)) worn:front_id = id id.loc = worn worn.update_icon() diff --git a/code/modules/admin/verbs/modifyvariables.dm b/code/modules/admin/verbs/modifyvariables.dm index 28a65f4e7d..2a0575eb28 100644 --- a/code/modules/admin/verbs/modifyvariables.dm +++ b/code/modules/admin/verbs/modifyvariables.dm @@ -30,7 +30,7 @@ GLOBAL_PROTECT(VVpixelmovement) else if (isloc(var_value)) . = VV_ATOM_REFERENCE - else if (istype(var_value,/client)) + else if (istype(var_value, /client)) . = VV_CLIENT else if (istype(var_value, /datum)) diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm index 1eaeb4a82b..3627f034df 100644 --- a/code/modules/awaymissions/gateway.dm +++ b/code/modules/awaymissions/gateway.dm @@ -161,7 +161,7 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation) return /obj/machinery/gateway/centeraway/attackby(obj/item/device/W, mob/user, params) - if(istype(W,/obj/item/device/multitool)) + if(istype(W, /obj/item/device/multitool)) if(calibrated) to_chat(user, "\black The gate is already calibrated, there is no work for you to do here.") return diff --git a/code/modules/awaymissions/mission_code/Cabin.dm b/code/modules/awaymissions/mission_code/Cabin.dm index c3590277d5..f38e672128 100644 --- a/code/modules/awaymissions/mission_code/Cabin.dm +++ b/code/modules/awaymissions/mission_code/Cabin.dm @@ -86,7 +86,7 @@ /datum/mapGeneratorModule/snow/bunnies) /datum/mapGeneratorModule/snow/checkPlaceAtom(turf/T) - if(istype(T,/turf/open/floor/plating/asteroid/snow)) + if(istype(T, /turf/open/floor/plating/asteroid/snow)) return ..(T) return 0 diff --git a/code/modules/awaymissions/mission_code/stationCollision.dm b/code/modules/awaymissions/mission_code/stationCollision.dm index 5fb373fbe7..339f179e00 100644 --- a/code/modules/awaymissions/mission_code/stationCollision.dm +++ b/code/modules/awaymissions/mission_code/stationCollision.dm @@ -154,7 +154,7 @@ GLOBAL_VAR_INIT(sc_safecode5, "[rand(0,9)]") if(isliving(A)) var/mob/living/L = A L.gib() - else if(istype(A,/obj/)) + else if(istype(A, /obj/)) var/obj/O = A O.ex_act(EXPLODE_DEVASTATE) if(O) qdel(O) diff --git a/code/modules/cargo/exports.dm b/code/modules/cargo/exports.dm index 36a667bc23..bca290c4db 100644 --- a/code/modules/cargo/exports.dm +++ b/code/modules/cargo/exports.dm @@ -126,7 +126,7 @@ Credit dupes that require a lot of manual work shouldn't be removed, unless they var/the_cost = get_cost(O) var/amount = get_amount(O) total_cost += the_cost - if(istype(O,/datum/export/material)) + if(istype(O, /datum/export/material)) total_amount += amount*MINERAL_MATERIAL_AMOUNT else total_amount += amount diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index 4bf28622cd..29f2a85bc4 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -546,7 +546,7 @@ /datum/supply_pack/engineering/inducers name = "NT-75 Electromagnetic Power Inducers Crate" cost = 2000 - contains = list(/obj/item/weapon/inducer/sci {cell_type = /obj/item/weapon/stock_parts/cell/{maxcharge = 5000; charge = 5000};opened = 0},/obj/item/weapon/inducer/sci {cell_type = /obj/item/weapon/stock_parts/cell/{maxcharge = 5000; charge = 5000};opened = 0}) //FALSE doesn't work in modified type paths apparently. + contains = list(/obj/item/weapon/inducer/sci {cell_type = /obj/item/weapon/stock_parts/cell/{maxcharge = 5000; charge = 5000};opened = 0}, /obj/item/weapon/inducer/sci {cell_type = /obj/item/weapon/stock_parts/cell/{maxcharge = 5000; charge = 5000};opened = 0}) //FALSE doesn't work in modified type paths apparently. crate_name = "inducer crate" crate_type = /obj/structure/closet/crate/engineering/electrical diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm index 32d6b1fc4b..f7d396f9ee 100644 --- a/code/modules/clothing/chameleon.dm +++ b/code/modules/clothing/chameleon.dm @@ -50,9 +50,9 @@ var/obj/old_headgear = target var/obj/new_headgear - if(istype(old_headgear,/obj/item/clothing/head/chameleon/drone)) + if(istype(old_headgear, /obj/item/clothing/head/chameleon/drone)) new_headgear = new /obj/item/clothing/mask/chameleon/drone() - else if(istype(old_headgear,/obj/item/clothing/mask/chameleon/drone)) + else if(istype(old_headgear, /obj/item/clothing/mask/chameleon/drone)) new_headgear = new /obj/item/clothing/head/chameleon/drone() else to_chat(owner, "You shouldn't be able to toggle a camogear helmetmask if you're not wearing it") diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index ea762f388a..22bff9bd96 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -49,7 +49,7 @@ if(pockets && over_object == M) return pockets.MouseDrop(over_object) - if(istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech + if(istype(usr.loc, /obj/mecha)) // stops inventory actions in a mech return if(!M.incapacitated() && loc == M && istype(over_object, /obj/screen/inventory/hand)) @@ -499,7 +499,7 @@ BLIND // can't see anything permeability_coefficient = 0.02 flags = STOPSPRESSUREDMAGE | THICKMATERIAL body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals) + allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/internals) slowdown = 1 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50, fire = 80, acid = 70) flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT diff --git a/code/modules/clothing/glasses/engine_goggles.dm b/code/modules/clothing/glasses/engine_goggles.dm index 012a446b1d..7908964b1c 100644 --- a/code/modules/clothing/glasses/engine_goggles.dm +++ b/code/modules/clothing/glasses/engine_goggles.dm @@ -90,7 +90,7 @@ /obj/item/clothing/glasses/meson/engine/update_icon() icon_state = mesons_on ? "trayson-meson" : "trayson-tray" - if(istype(loc,/mob/living/carbon/human/)) + if(istype(loc, /mob/living/carbon/human/)) var/mob/living/carbon/human/user = loc if(user.glasses == src) user.update_inv_glasses() @@ -116,7 +116,7 @@ /obj/item/clothing/glasses/meson/engine/tray/update_icon() icon_state = "trayson-tray[on ? "" : "_off"]" - if(istype(loc,/mob/living/carbon/human/)) + if(istype(loc, /mob/living/carbon/human/)) var/mob/living/carbon/human/user = loc if(user.glasses == src) user.update_inv_glasses() diff --git a/code/modules/clothing/spacesuits/flightsuit.dm b/code/modules/clothing/spacesuits/flightsuit.dm index ac82faba2d..dfe85c3092 100644 --- a/code/modules/clothing/spacesuits/flightsuit.dm +++ b/code/modules/clothing/spacesuits/flightsuit.dm @@ -906,8 +906,8 @@ jetpack = null var/flightpack var/flight = FALSE - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/gun,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs) - actions_types = list(/datum/action/item_action/flightsuit/toggle_helmet,/datum/action/item_action/flightsuit/toggle_boots,/datum/action/item_action/flightsuit/toggle_flightpack,/datum/action/item_action/flightsuit/lock_suit) + allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/internals, /obj/item/weapon/gun, /obj/item/weapon/reagent_containers/spray/pepper, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/restraints/handcuffs) + actions_types = list(/datum/action/item_action/flightsuit/toggle_helmet, /datum/action/item_action/flightsuit/toggle_boots, /datum/action/item_action/flightsuit/toggle_flightpack, /datum/action/item_action/flightsuit/lock_suit) armor = list(melee = 20, bullet = 20, laser = 20, energy = 10, bomb = 30, bio = 100, rad = 75, fire = 100, acid = 100) var/maint_panel = FALSE max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 6d13145626..d9a295e2d8 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -65,7 +65,7 @@ item_state = "eng_hardsuit" max_integrity = 300 armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75, fire = 50, acid = 75) - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals,/obj/item/device/t_scanner, /obj/item/weapon/construction/rcd, /obj/item/weapon/pipe_dispenser) + allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/internals, /obj/item/device/t_scanner, /obj/item/weapon/construction/rcd, /obj/item/weapon/pipe_dispenser) siemens_coefficient = 0 var/obj/item/clothing/head/helmet/space/hardsuit/helmet actions_types = list(/datum/action/item_action/toggle_helmet) @@ -203,7 +203,7 @@ heat_protection = CHEST|GROIN|LEGS|ARMS armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 50, fire = 50, acid = 75) brightness_on = 7 - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/resonator, /obj/item/device/mining_scanner, /obj/item/device/t_scanner/adv_mining_scanner, /obj/item/weapon/gun/energy/kinetic_accelerator) + allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/internals, /obj/item/weapon/resonator, /obj/item/device/mining_scanner, /obj/item/device/t_scanner/adv_mining_scanner, /obj/item/weapon/gun/energy/kinetic_accelerator) /obj/item/clothing/suit/space/hardsuit/mining @@ -214,7 +214,7 @@ max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 50, fire = 50, acid = 75) - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals,/obj/item/weapon/storage/bag/ore,/obj/item/weapon/pickaxe) + allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/internals, /obj/item/weapon/storage/bag/ore, /obj/item/weapon/pickaxe) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/mining //Syndicate hardsuit @@ -378,7 +378,7 @@ w_class = WEIGHT_CLASS_NORMAL resistance_flags = FIRE_PROOF | ACID_PROOF armor = list(melee = 40, bullet = 40, laser = 40, energy = 20, bomb = 35, bio = 100, rad = 50, fire = 100, acid = 100) - allowed = list(/obj/item/weapon/teleportation_scroll,/obj/item/weapon/tank/internals) + allowed = list(/obj/item/weapon/teleportation_scroll, /obj/item/weapon/tank/internals) heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT helmettype = /obj/item/clothing/head/helmet/space/hardsuit/wizard @@ -400,7 +400,7 @@ name = "medical hardsuit" desc = "A special suit that protects against hazardous, low pressure environments. Built with lightweight materials for easier movement." item_state = "medical_hardsuit" - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals,/obj/item/weapon/storage/firstaid,/obj/item/device/healthanalyzer,/obj/item/stack/medical) + allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/internals, /obj/item/weapon/storage/firstaid, /obj/item/device/healthanalyzer, /obj/item/stack/medical) armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 50, fire = 75, acid = 75) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/medical @@ -444,7 +444,7 @@ item_state = "hardsuit-rd" resistance_flags = ACID_PROOF | FIRE_PROOF max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT //Same as an emergency firesuit. Not ideal for extended exposure. - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/gun/energy/wormhole_projector, + allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/internals, /obj/item/weapon/gun/energy/wormhole_projector, /obj/item/weapon/hand_tele, /obj/item/device/aicard) armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 100, bio = 100, rad = 60, fire = 60, acid = 80) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/rd @@ -466,7 +466,7 @@ name = "security hardsuit" desc = "A special suit that protects against hazardous, low pressure environments. Has an additional layer of armor." item_state = "sec_hardsuit" - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs) + allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/internals, /obj/item/weapon/gun/energy, /obj/item/weapon/reagent_containers/spray/pepper, /obj/item/weapon/gun/ballistic, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/restraints/handcuffs) armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 50, fire = 75, acid = 75) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security @@ -508,7 +508,7 @@ desc = "A MK.II SWAT suit with streamlined joints and armor made out of superior materials, insulated against intense heat. The most advanced tactical armor available Usually reserved for heavy hitter corporate security, this one has a regal finish in Nanotrasen company colors. Better not let the assistants get a hold of it." icon_state = "caparmor" item_state = "capspacesuit" - allowed = list(/obj/item/weapon/tank/internals, /obj/item/device/flashlight,/obj/item/weapon/gun/energy, /obj/item/weapon/gun/ballistic, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs) + allowed = list(/obj/item/weapon/tank/internals, /obj/item/device/flashlight, /obj/item/weapon/gun/energy, /obj/item/weapon/gun/ballistic, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/restraints/handcuffs) armor = list(melee = 40, bullet = 50, laser = 50, energy = 25, bomb = 50, bio = 100, rad = 50, fire = 100, acid = 100) resistance_flags = FIRE_PROOF | ACID_PROOF heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS @@ -579,7 +579,7 @@ desc = "A hardsuit with built in energy shielding. Will rapidly recharge when not under fire." icon_state = "hardsuit-hos" helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security/hos - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/gun,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs) + allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/internals, /obj/item/weapon/gun, /obj/item/weapon/reagent_containers/spray/pepper, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/restraints/handcuffs) armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 50, fire = 100, acid = 100) resistance_flags = FIRE_PROOF | ACID_PROOF var/current_charges = 3 diff --git a/code/modules/clothing/spacesuits/hardsuit.dm.rej b/code/modules/clothing/spacesuits/hardsuit.dm.rej new file mode 100644 index 0000000000..93cffce359 --- /dev/null +++ b/code/modules/clothing/spacesuits/hardsuit.dm.rej @@ -0,0 +1,19 @@ +diff a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm (rejected hunks) +@@ -304,7 +304,7 @@ + item_color = "syndi" + w_class = WEIGHT_CLASS_NORMAL + armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50, fire = 50, acid = 90) +- allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals) ++ allowed = list(/obj/item/weapon/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/melee/energy/sword/saber, /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/tank/internals) + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi + jetpack = /obj/item/weapon/tank/jetpack/suit + +@@ -698,7 +698,7 @@ + item_state = "syndie_hardsuit" + item_color = "syndi" + armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50, fire = 100, acid = 100) +- allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals) ++ allowed = list(/obj/item/weapon/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/melee/energy/sword/saber, /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/tank/internals) + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/syndi + slowdown = 0 + diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index ce31dd7995..c4303e6552 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -34,7 +34,7 @@ Contains: desc = "A prototype designed to replace the ageing MK.II SWAT suit. Based on the streamlined MK.II model, the traditional ceramic and graphene plate construction was replaced with plasteel, allowing superior armor against most threats. There's room for some kind of energy projection device on the back." icon_state = "deathsquad" item_state = "swat_suit" - allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals,/obj/item/weapon/kitchen/knife/combat) + allowed = list(/obj/item/weapon/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/tank/internals, /obj/item/weapon/kitchen/knife/combat) armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100) strip_delay = 130 max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT @@ -48,7 +48,7 @@ Contains: desc = "A tactical space suit first developed in a joint effort by the defunct IS-ERI and Nanotrasen in 20XX for military space operations. A tried and true workhorse, it is very difficult to move in but offers robust protection against all threats!" icon_state = "heavy" item_state = "swat_suit" - allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals,/obj/item/weapon/kitchen/knife/combat) + allowed = list(/obj/item/weapon/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/tank/internals, /obj/item/weapon/kitchen/knife/combat) armor = list(melee = 40, bullet = 30, laser = 30,energy = 30, bomb = 50, bio = 90, rad = 20, fire = 100, acid = 100) strip_delay = 120 resistance_flags = FIRE_PROOF | ACID_PROOF @@ -73,7 +73,7 @@ Contains: slowdown = 0 flags_inv = 0 w_class = WEIGHT_CLASS_NORMAL - allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals) + allowed = list(/obj/item/weapon/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/tank/internals) armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100) strip_delay = 130 max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT @@ -91,7 +91,7 @@ Contains: icon_state = "void" item_state = "void" desc = "An old, NASA Centcom branch designed, dark red space suit." - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals,/obj/item/device/multitool) + allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/internals, /obj/item/device/multitool) /obj/item/clothing/head/helmet/space/nasavoid/old name = "Engineering Void Helmet" @@ -105,7 +105,7 @@ Contains: item_state = "void" desc = "A Centcom engineering dark red space suit. Age has degraded the suit making is difficult to move around in." slowdown = 4 - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals,/obj/item/device/multitool) + allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/internals, /obj/item/device/multitool) //Space santa outfit suit /obj/item/clothing/head/helmet/space/santahat @@ -170,7 +170,7 @@ Contains: icon_state = "ert_command" item_state = "ert_command" helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert - allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals) + allowed = list(/obj/item/weapon/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/tank/internals) armor = list(melee = 30, bullet = 50, laser = 30, energy = 50, bomb = 50, bio = 100, rad = 100, fire = 0, acid = 95) slowdown = 0 strip_delay = 130 @@ -245,7 +245,7 @@ Contains: desc = "An advanced, light suit, fabricated from a mixture of synthetic feathers and space-resistant material. A gun holster appears to be intergrated into the suit and the wings appear to be stuck in 'freedom' mode." icon_state = "freedom" item_state = "freedom" - allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals) + allowed = list(/obj/item/weapon/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/tank/internals) armor = list(melee = 20, bullet = 40, laser = 30,energy = 25, bomb = 100, bio = 100, rad = 100, fire = 80, acid = 80) strip_delay = 130 max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm.rej b/code/modules/clothing/spacesuits/miscellaneous.dm.rej new file mode 100644 index 0000000000..460a86c3dc --- /dev/null +++ b/code/modules/clothing/spacesuits/miscellaneous.dm.rej @@ -0,0 +1,10 @@ +diff a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm (rejected hunks) +@@ -146,7 +146,7 @@ Contains: + item_state = "pirate" + w_class = WEIGHT_CLASS_NORMAL + flags_inv = 0 +- allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals, /obj/item/weapon/melee/energy/sword/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/weapon/reagent_containers/food/drinks/bottle/rum) ++ allowed = list(/obj/item/weapon/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/tank/internals, /obj/item/weapon/melee/energy/sword/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/weapon/reagent_containers/food/drinks/bottle/rum) + slowdown = 0 + armor = list(melee = 30, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 60, acid = 75) + strip_delay = 40 diff --git a/code/modules/clothing/spacesuits/plasmamen.dm.rej b/code/modules/clothing/spacesuits/plasmamen.dm.rej new file mode 100644 index 0000000000..6a1030e468 --- /dev/null +++ b/code/modules/clothing/spacesuits/plasmamen.dm.rej @@ -0,0 +1,10 @@ +diff a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm (rejected hunks) +@@ -4,7 +4,7 @@ + /obj/item/clothing/suit/space/eva/plasmaman + name = "EVA plasma envirosuit" + desc = "A special plasma containment suit designed to be space-worthy, as well as worn over other clothing. Like it's smaller counterpart, it can automatically extinguish the wearer in a crisis, and holds twice as many charges." +- allowed = list(/obj/item/weapon/gun,/obj/item/ammo_casing,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank) ++ allowed = list(/obj/item/weapon/gun, /obj/item/ammo_casing, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/melee/energy/sword, /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/tank) + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0, fire = 100, acid = 75) + resistance_flags = FIRE_PROOF + icon_state = "plasmaman_suit" diff --git a/code/modules/clothing/spacesuits/syndi.dm.rej b/code/modules/clothing/spacesuits/syndi.dm.rej new file mode 100644 index 0000000000..2c05b046f0 --- /dev/null +++ b/code/modules/clothing/spacesuits/syndi.dm.rej @@ -0,0 +1,10 @@ +diff a/code/modules/clothing/spacesuits/syndi.dm b/code/modules/clothing/spacesuits/syndi.dm (rejected hunks) +@@ -12,7 +12,7 @@ + item_state = "space_suit_syndicate" + desc = "Has a tag on it: Totally not property of an enemy corporation, honest!" + w_class = WEIGHT_CLASS_NORMAL +- allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals) ++ allowed = list(/obj/item/weapon/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/melee/energy/sword/saber, /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/tank/internals) + armor = list(melee = 40, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 80, acid = 85) + + diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 1f8784217d..46e953f4d0 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -1,5 +1,5 @@ /obj/item/clothing/suit/armor - allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic,/obj/item/weapon/kitchen/knife/combat,/obj/item/weapon/tank/internals/emergency_oxygen) + allowed = list(/obj/item/weapon/gun/energy, /obj/item/weapon/reagent_containers/spray/pepper, /obj/item/weapon/gun/ballistic, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/restraints/handcuffs, /obj/item/device/flashlight/seclite, /obj/item/weapon/melee/classic_baton/telescopic, /obj/item/weapon/kitchen/knife/combat, /obj/item/weapon/tank/internals/emergency_oxygen) body_parts_covered = CHEST cold_protection = CHEST|GROIN min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT @@ -153,7 +153,7 @@ name = "detective's armor vest" desc = "An armored vest with a detective's badge on it." icon_state = "detective-armor" - allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder,/obj/item/weapon/melee/classic_baton) + allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/weapon/reagent_containers/spray/pepper, /obj/item/device/flashlight, /obj/item/weapon/gun/energy, /obj/item/weapon/gun/ballistic, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/lighter, /obj/item/device/detective_scanner, /obj/item/device/taperecorder, /obj/item/weapon/melee/classic_baton) resistance_flags = FLAMMABLE dog_fashion = null @@ -347,7 +347,7 @@ item_state = "centcom" w_class = WEIGHT_CLASS_BULKY body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals/emergency_oxygen) + allowed = list(/obj/item/weapon/gun/energy, /obj/item/weapon/melee/baton, /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/tank/internals/emergency_oxygen) flags = THICKMATERIAL flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT cold_protection = CHEST | GROIN | LEGS | FEET | ARMS | HANDS diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm index 50757bb364..f2251c5ce0 100644 --- a/code/modules/clothing/suits/bio.dm +++ b/code/modules/clothing/suits/bio.dm @@ -21,7 +21,7 @@ flags = THICKMATERIAL body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS slowdown = 1 - allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/pen,/obj/item/device/flashlight/pen, /obj/item/weapon/reagent_containers/dropper, /obj/item/weapon/reagent_containers/syringe, /obj/item/weapon/reagent_containers/hypospray) + allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/weapon/pen, /obj/item/device/flashlight/pen, /obj/item/weapon/reagent_containers/dropper, /obj/item/weapon/reagent_containers/syringe, /obj/item/weapon/reagent_containers/hypospray) armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20, fire = 30, acid = 100) flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT strip_delay = 70 diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm index bcf2e49426..a9b667a5aa 100644 --- a/code/modules/clothing/suits/cloaks.dm +++ b/code/modules/clothing/suits/cloaks.dm @@ -76,7 +76,7 @@ name = "drake armour" icon_state = "dragon" desc = "A suit of armour fashioned from the remains of an ash drake. " - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/resonator, /obj/item/device/mining_scanner, /obj/item/device/t_scanner/adv_mining_scanner, /obj/item/weapon/gun/energy/kinetic_accelerator, /obj/item/weapon/pickaxe, /obj/item/weapon/twohanded/spear) + allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/internals, /obj/item/weapon/resonator, /obj/item/device/mining_scanner, /obj/item/device/t_scanner/adv_mining_scanner, /obj/item/weapon/gun/energy/kinetic_accelerator, /obj/item/weapon/pickaxe, /obj/item/weapon/twohanded/spear) armor = list(melee = 70, bullet = 30, laser = 50, energy = 40, bomb = 70, bio = 60, rad = 50, fire = 100, acid = 100) hoodtype = /obj/item/clothing/head/hooded/cloakhood/drake heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index 6774bf3f9e..e752090141 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -10,7 +10,7 @@ item_state = "apron" blood_overlay_type = "armor" body_parts_covered = CHEST|GROIN - allowed = list(/obj/item/weapon/reagent_containers/spray/plantbgone,/obj/item/device/plant_analyzer,/obj/item/seeds,/obj/item/weapon/reagent_containers/glass/bottle, /obj/item/weapon/reagent_containers/glass/beaker, /obj/item/weapon/cultivator,/obj/item/weapon/reagent_containers/spray/pestspray,/obj/item/weapon/hatchet,/obj/item/weapon/storage/bag/plants) + allowed = list(/obj/item/weapon/reagent_containers/spray/plantbgone, /obj/item/device/plant_analyzer, /obj/item/seeds, /obj/item/weapon/reagent_containers/glass/bottle, /obj/item/weapon/reagent_containers/glass/beaker, /obj/item/weapon/cultivator, /obj/item/weapon/reagent_containers/spray/pestspray, /obj/item/weapon/hatchet, /obj/item/weapon/storage/bag/plants) //Captain /obj/item/clothing/suit/captunic @@ -94,7 +94,7 @@ item_state = "det_suit" blood_overlay_type = "coat" body_parts_covered = CHEST|GROIN|LEGS|ARMS - allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder,/obj/item/weapon/melee/classic_baton) + allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/weapon/reagent_containers/spray/pepper, /obj/item/device/flashlight, /obj/item/weapon/gun/energy, /obj/item/weapon/gun/ballistic, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/lighter, /obj/item/device/detective_scanner, /obj/item/device/taperecorder, /obj/item/weapon/melee/classic_baton) armor = list(melee = 25, bullet = 10, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 45) cold_protection = CHEST|GROIN|LEGS|ARMS heat_protection = CHEST|GROIN|LEGS|ARMS @@ -112,7 +112,7 @@ icon_state = "hazard" item_state = "hazard" blood_overlay_type = "armor" - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/device/t_scanner,/obj/item/device/radio) + allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/device/t_scanner, /obj/item/device/radio) resistance_flags = 0 //Lawyer /obj/item/clothing/suit/toggle/lawyer diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm index c4d2678650..f980504cfe 100644 --- a/code/modules/clothing/suits/labcoat.dm +++ b/code/modules/clothing/suits/labcoat.dm @@ -5,7 +5,7 @@ item_state = "labcoat" blood_overlay_type = "coat" body_parts_covered = CHEST|ARMS - allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper,/obj/item/weapon/melee/classic_baton/telescopic,/obj/item/weapon/soap,/obj/item/device/sensor_device,/obj/item/weapon/tank/internals/emergency_oxygen) + allowed = list(/obj/item/device/analyzer, /obj/item/stack/medical, /obj/item/weapon/dnainjector, /obj/item/weapon/reagent_containers/dropper, /obj/item/weapon/reagent_containers/syringe, /obj/item/weapon/reagent_containers/hypospray, /obj/item/device/healthanalyzer, /obj/item/device/flashlight/pen, /obj/item/weapon/reagent_containers/glass/bottle, /obj/item/weapon/reagent_containers/glass/beaker, /obj/item/weapon/reagent_containers/pill, /obj/item/weapon/storage/pill_bottle, /obj/item/weapon/paper, /obj/item/weapon/melee/classic_baton/telescopic, /obj/item/weapon/soap, /obj/item/device/sensor_device, /obj/item/weapon/tank/internals/emergency_oxygen) armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0, fire = 50, acid = 50) togglename = "buttons" diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 873f15f346..281440a8bd 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -69,7 +69,7 @@ icon_state = "judge" item_state = "judge" body_parts_covered = CHEST|GROIN|LEGS|ARMS - allowed = list(/obj/item/weapon/storage/fancy/cigarettes,/obj/item/stack/spacecash) + allowed = list(/obj/item/weapon/storage/fancy/cigarettes, /obj/item/stack/spacecash) flags_inv = HIDEJUMPSUIT @@ -87,7 +87,7 @@ item_state = "syndicate-black-red" desc = "A plastic replica of the Syndicate space suit. You'll look just like a real murderous Syndicate agent in this! This is a toy, it is not made for use in space!" w_class = WEIGHT_CLASS_NORMAL - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy) + allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/toy) flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT resistance_flags = 0 @@ -134,7 +134,7 @@ item_state = "owl_wings" togglename = "wings" body_parts_covered = ARMS|CHEST - allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic) + allowed = list(/obj/item/weapon/gun/energy, /obj/item/weapon/reagent_containers/spray/pepper, /obj/item/weapon/gun/ballistic, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/restraints/handcuffs, /obj/item/device/flashlight/seclite, /obj/item/weapon/melee/classic_baton/telescopic) actions_types = list(/datum/action/item_action/toggle_wings) /obj/item/clothing/suit/toggle/owlwings/griffinwings @@ -345,7 +345,7 @@ desc = "Aviators not included." icon_state = "bomberjacket" item_state = "brownjsuit" - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/radio) + allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/toy, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/lighter, /obj/item/device/radio) body_parts_covered = CHEST|GROIN|ARMS cold_protection = CHEST|GROIN|ARMS min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT @@ -357,7 +357,7 @@ item_state = "hostrench" resistance_flags = 0 max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/weapon/gun/ballistic/automatic/pistol,/obj/item/weapon/gun/ballistic/revolver,/obj/item/weapon/gun/ballistic/revolver/detective,/obj/item/device/radio) + allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/toy, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/lighter, /obj/item/weapon/gun/ballistic/automatic/pistol, /obj/item/weapon/gun/ballistic/revolver, /obj/item/weapon/gun/ballistic/revolver/detective, /obj/item/device/radio) /obj/item/clothing/suit/jacket/leather/overcoat name = "leather overcoat" @@ -387,7 +387,7 @@ desc = "A canvas jacket styled after classical American military garb. Feels sturdy, yet comfortable." icon_state = "militaryjacket" item_state = "militaryjacket" - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/weapon/gun/ballistic/automatic/pistol,/obj/item/weapon/gun/ballistic/revolver,/obj/item/weapon/gun/ballistic/revolver/detective,/obj/item/device/radio) + allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/toy, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/lighter, /obj/item/weapon/gun/ballistic/automatic/pistol, /obj/item/weapon/gun/ballistic/revolver, /obj/item/weapon/gun/ballistic/revolver/detective, /obj/item/device/radio) /obj/item/clothing/suit/jacket/letterman name = "letterman jacket" @@ -434,7 +434,7 @@ cold_protection = CHEST|GROIN|ARMS min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0) - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter) + allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/toy, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/lighter) /obj/item/clothing/head/hooded/winterhood name = "winter hood" @@ -471,7 +471,7 @@ name = "medical winter coat" icon_state = "coatmedical" item_state = "coatmedical" - allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper,/obj/item/weapon/melee/classic_baton/telescopic) + allowed = list(/obj/item/device/analyzer, /obj/item/stack/medical, /obj/item/weapon/dnainjector, /obj/item/weapon/reagent_containers/dropper, /obj/item/weapon/reagent_containers/syringe, /obj/item/weapon/reagent_containers/hypospray, /obj/item/device/healthanalyzer, /obj/item/device/flashlight/pen, /obj/item/weapon/reagent_containers/glass/bottle, /obj/item/weapon/reagent_containers/glass/beaker, /obj/item/weapon/reagent_containers/pill, /obj/item/weapon/storage/pill_bottle, /obj/item/weapon/paper, /obj/item/weapon/melee/classic_baton/telescopic) armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0, fire = 0, acid = 45) hoodtype = /obj/item/clothing/head/hooded/winterhood/medical @@ -482,7 +482,7 @@ name = "science winter coat" icon_state = "coatscience" item_state = "coatscience" - allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper,/obj/item/weapon/melee/classic_baton/telescopic) + allowed = list(/obj/item/device/analyzer, /obj/item/stack/medical, /obj/item/weapon/dnainjector, /obj/item/weapon/reagent_containers/dropper, /obj/item/weapon/reagent_containers/syringe, /obj/item/weapon/reagent_containers/hypospray, /obj/item/device/healthanalyzer, /obj/item/device/flashlight/pen, /obj/item/weapon/reagent_containers/glass/bottle, /obj/item/weapon/reagent_containers/glass/beaker, /obj/item/weapon/reagent_containers/pill, /obj/item/weapon/storage/pill_bottle, /obj/item/weapon/paper, /obj/item/weapon/melee/classic_baton/telescopic) armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0, fire = 0, acid = 0) hoodtype = /obj/item/clothing/head/hooded/winterhood/science @@ -494,7 +494,7 @@ icon_state = "coatengineer" item_state = "coatengineer" armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 20, fire = 30, acid = 45) - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/device/t_scanner, /obj/item/weapon/construction/rcd, /obj/item/weapon/pipe_dispenser) + allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/device/t_scanner, /obj/item/weapon/construction/rcd, /obj/item/weapon/pipe_dispenser) hoodtype = /obj/item/clothing/head/hooded/winterhood/engineering /obj/item/clothing/head/hooded/winterhood/engineering @@ -513,7 +513,7 @@ name = "hydroponics winter coat" icon_state = "coathydro" item_state = "coathydro" - allowed = list(/obj/item/weapon/reagent_containers/spray/plantbgone,/obj/item/device/plant_analyzer,/obj/item/seeds,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/cultivator,/obj/item/weapon/reagent_containers/spray/pestspray,/obj/item/weapon/hatchet,/obj/item/weapon/storage/bag/plants) + allowed = list(/obj/item/weapon/reagent_containers/spray/plantbgone, /obj/item/device/plant_analyzer, /obj/item/seeds, /obj/item/weapon/reagent_containers/glass/bottle, /obj/item/weapon/cultivator, /obj/item/weapon/reagent_containers/spray/pestspray, /obj/item/weapon/hatchet, /obj/item/weapon/storage/bag/plants) hoodtype = /obj/item/clothing/head/hooded/winterhood/hydro /obj/item/clothing/head/hooded/winterhood/hydro @@ -532,7 +532,7 @@ name = "mining winter coat" icon_state = "coatminer" item_state = "coatminer" - allowed = list(/obj/item/weapon/pickaxe,/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter) + allowed = list(/obj/item/weapon/pickaxe, /obj/item/device/flashlight, /obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/toy, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/lighter) armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) hoodtype = /obj/item/clothing/head/hooded/winterhood/miner diff --git a/code/modules/clothing/suits/miscellaneous.dm.rej b/code/modules/clothing/suits/miscellaneous.dm.rej new file mode 100644 index 0000000000..e8ab225870 --- /dev/null +++ b/code/modules/clothing/suits/miscellaneous.dm.rej @@ -0,0 +1,19 @@ +diff a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm (rejected hunks) +@@ -450,7 +450,7 @@ + icon_state = "coatcaptain" + item_state = "coatcaptain" + armor = list(melee = 25, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 0, acid = 50) +- allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic) ++ allowed = list(/obj/item/weapon/gun/energy, /obj/item/weapon/reagent_containers/spray/pepper, /obj/item/weapon/gun/ballistic, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/restraints/handcuffs, /obj/item/device/flashlight/seclite, /obj/item/weapon/melee/classic_baton/telescopic) + hoodtype = /obj/item/clothing/head/hooded/winterhood/captain + + /obj/item/clothing/head/hooded/winterhood/captain +@@ -461,7 +461,7 @@ + icon_state = "coatsecurity" + item_state = "coatsecurity" + armor = list(melee = 25, bullet = 15, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 0, acid = 45) +- allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic) ++ allowed = list(/obj/item/weapon/gun/energy, /obj/item/weapon/reagent_containers/spray/pepper, /obj/item/weapon/gun/ballistic, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/restraints/handcuffs, /obj/item/device/flashlight/seclite, /obj/item/weapon/melee/classic_baton/telescopic) + hoodtype = /obj/item/clothing/head/hooded/winterhood/security + + /obj/item/clothing/head/hooded/winterhood/security diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm index 64f30acc53..95d6db5d4a 100644 --- a/code/modules/clothing/suits/utility.dm +++ b/code/modules/clothing/suits/utility.dm @@ -18,7 +18,7 @@ gas_transfer_coefficient = 0.90 permeability_coefficient = 0.50 body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/extinguisher, /obj/item/weapon/crowbar) + allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/weapon/extinguisher, /obj/item/weapon/crowbar) slowdown = 1 flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT flags = STOPSPRESSUREDMAGE | THICKMATERIAL @@ -99,7 +99,7 @@ /obj/item/clothing/suit/bomb_suit/security icon_state = "bombsuitsec" item_state = "bombsuitsec" - allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs) + allowed = list(/obj/item/weapon/gun/energy, /obj/item/weapon/melee/baton, /obj/item/weapon/restraints/handcuffs) /* * Radiation protection @@ -126,7 +126,7 @@ permeability_coefficient = 0.50 flags = THICKMATERIAL body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/device/geiger_counter) + allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/device/geiger_counter) slowdown = 1.5 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100, fire = 30, acid = 30) strip_delay = 60 diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index f6337e886a..2fc97bf06e 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -229,7 +229,7 @@ /datum/crafting_recipe/dragonsbreath name = "Dragonsbreath Shell" result = /obj/item/ammo_casing/shotgun/incendiary/dragonsbreath - reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1,/datum/reagent/phosphorus = 5) + reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1, /datum/reagent/phosphorus = 5) tools = list(/obj/item/weapon/screwdriver) time = 5 category = CAT_WEAPONRY @@ -394,7 +394,7 @@ name = "Paper Frames" result = /obj/item/stack/sheet/paperframes/five time = 10 - reqs = list(/obj/item/stack/sheet/mineral/wood = 5,/obj/item/weapon/paper = 20) + reqs = list(/obj/item/stack/sheet/mineral/wood = 5, /obj/item/weapon/paper = 20) category = CAT_MISC /datum/crafting_recipe/naturalpaper diff --git a/code/modules/detectivework/detective_work.dm b/code/modules/detectivework/detective_work.dm index 57e4664bf7..1ab499fcb5 100644 --- a/code/modules/detectivework/detective_work.dm +++ b/code/modules/detectivework/detective_work.dm @@ -3,7 +3,7 @@ /atom/var/list/suit_fibers /atom/proc/add_fibers(mob/living/carbon/human/M) - if(M.gloves && istype(M.gloves,/obj/item/clothing/)) + if(M.gloves && istype(M.gloves, /obj/item/clothing/)) var/obj/item/clothing/gloves/G = M.gloves if(G.transfer_blood > 1) //bloodied gloves transfer blood to touched objects if(add_blood(G.blood_DNA)) //only reduces the bloodiness of our gloves if the item wasn't already bloody diff --git a/code/modules/detectivework/evidence.dm b/code/modules/detectivework/evidence.dm index dbfc2caee2..4c0e4b253b 100644 --- a/code/modules/detectivework/evidence.dm +++ b/code/modules/detectivework/evidence.dm @@ -34,7 +34,7 @@ return if(!isturf(I.loc)) //If it isn't on the floor. Do some checks to see if it's in our hands or a box. Otherwise give up. - if(istype(I.loc,/obj/item/weapon/storage)) //in a container. + if(istype(I.loc, /obj/item/weapon/storage)) //in a container. var/obj/item/weapon/storage/U = I.loc U.remove_from_storage(I, src) if(user.is_holding(I)) diff --git a/code/modules/events/_event.dm b/code/modules/events/_event.dm index a4dec416bf..79e99a1931 100644 --- a/code/modules/events/_event.dm +++ b/code/modules/events/_event.dm @@ -56,7 +56,7 @@ return TRUE /datum/round_event_control/proc/preRunEvent() - if(!ispath(typepath,/datum/round_event)) + if(!ispath(typepath, /datum/round_event)) return EVENT_CANT_RUN triggering = TRUE diff --git a/code/modules/events/false_alarm.dm b/code/modules/events/false_alarm.dm index 0e4970ef6a..3636c3e320 100644 --- a/code/modules/events/false_alarm.dm +++ b/code/modules/events/false_alarm.dm @@ -26,7 +26,7 @@ /proc/gather_false_events(players_amt, gamemode) . = list() for(var/datum/round_event_control/E in SSevents.control) - if(istype(E,/datum/round_event_control/falsealarm)) + if(istype(E, /datum/round_event_control/falsealarm)) continue if(!E.canSpawnEvent(players_amt, gamemode)) continue diff --git a/code/modules/events/prison_break.dm b/code/modules/events/prison_break.dm index 724b03d325..c9b1436f39 100644 --- a/code/modules/events/prison_break.dm +++ b/code/modules/events/prison_break.dm @@ -44,16 +44,16 @@ /datum/round_event/grey_tide/end() for(var/area/A in areasToOpen) for(var/obj/O in A) - if(istype(O,/obj/machinery/power/apc)) + if(istype(O, /obj/machinery/power/apc)) var/obj/machinery/power/apc/temp = O temp.overload_lighting() - else if(istype(O,/obj/structure/closet/secure_closet)) + else if(istype(O, /obj/structure/closet/secure_closet)) var/obj/structure/closet/secure_closet/temp = O temp.locked = FALSE temp.update_icon() - else if(istype(O,/obj/machinery/door/airlock)) + else if(istype(O, /obj/machinery/door/airlock)) var/obj/machinery/door/airlock/temp = O temp.prison_open() - else if(istype(O,/obj/machinery/door_timer)) + else if(istype(O, /obj/machinery/door_timer)) var/obj/machinery/door_timer/temp = O temp.timer_end(forced = TRUE) \ No newline at end of file diff --git a/code/modules/events/wizard/rpgloot.dm b/code/modules/events/wizard/rpgloot.dm index 98ae7ba6aa..5a38a439ed 100644 --- a/code/modules/events/wizard/rpgloot.dm +++ b/code/modules/events/wizard/rpgloot.dm @@ -11,7 +11,7 @@ if(!istype(I.rpg_loot)) I.rpg_loot = new(I) - if(istype(I,/obj/item/weapon/storage)) + if(istype(I, /obj/item/weapon/storage)) var/obj/item/weapon/storage/S = I if(prob(upgrade_scroll_chance) && S.contents.len < S.storage_slots && !S.invisibility) var/obj/item/upgradescroll/scroll = new diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 0b1187e9bc..c264d5297c 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -917,7 +917,7 @@ Gunshots/explosions/opening doors/less rare audio (done) if("hacked") throw_alert("hacked", /obj/screen/alert/hacked, override = TRUE) if("charge") - throw_alert("charge",/obj/screen/alert/emptycell, override = TRUE) + throw_alert("charge", /obj/screen/alert/emptycell, override = TRUE) sleep(rand(100,200)) clear_alert(alert_type, clear_override = TRUE) diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index b8e85915b8..ce42cf7005 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -338,8 +338,8 @@ desc = "A throwing weapon used to ignite things, typically filled with an accelerant. Recommended highly by rioters and revolutionaries. Light and toss." icon_state = "vodkabottle" list_reagents = list() - var/list/accelerants = list( /datum/reagent/consumable/ethanol,/datum/reagent/fuel,/datum/reagent/clf3,/datum/reagent/phlogiston, - /datum/reagent/napalm,/datum/reagent/hellwater,/datum/reagent/toxin/plasma,/datum/reagent/toxin/spore_burning) + var/list/accelerants = list( /datum/reagent/consumable/ethanol, /datum/reagent/fuel, /datum/reagent/clf3, /datum/reagent/phlogiston, + /datum/reagent/napalm, /datum/reagent/hellwater, /datum/reagent/toxin/plasma, /datum/reagent/toxin/spore_burning) var/active = 0 /obj/item/weapon/reagent_containers/food/drinks/bottle/molotov/CheckParts(list/parts_list) diff --git a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm index 0dffc93704..b8feddfa79 100644 --- a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm +++ b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm @@ -91,7 +91,7 @@ list_reagents = list("nuka_cola" = 50) /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/attackby(obj/item/I, mob/user, params) - if(istype(I,/obj/item/weapon/reagent_containers/food/snacks/egg)) //breaking eggs + if(istype(I, /obj/item/weapon/reagent_containers/food/snacks/egg)) //breaking eggs var/obj/item/weapon/reagent_containers/food/snacks/egg/E = I if(reagents) if(reagents.total_volume >= reagents.maximum_volume) diff --git a/code/modules/food_and_drinks/food/customizables.dm b/code/modules/food_and_drinks/food/customizables.dm index 7a1682aedd..f2047ac092 100644 --- a/code/modules/food_and_drinks/food/customizables.dm +++ b/code/modules/food_and_drinks/food/customizables.dm @@ -37,7 +37,7 @@ to_chat(user, "It contains [ingredients.len?"[ingredients_listed]":"no ingredient, "]making a [size]-sized [initial(name)].") /obj/item/weapon/reagent_containers/food/snacks/customizable/attackby(obj/item/I, mob/user, params) - if(!istype(I, /obj/item/weapon/reagent_containers/food/snacks/customizable) && istype(I,/obj/item/weapon/reagent_containers/food/snacks)) + if(!istype(I, /obj/item/weapon/reagent_containers/food/snacks/customizable) && istype(I, /obj/item/weapon/reagent_containers/food/snacks)) var/obj/item/weapon/reagent_containers/food/snacks/S = I if(I.w_class > WEIGHT_CLASS_SMALL) to_chat(user, "The ingredient is too big for [src]!") @@ -78,7 +78,7 @@ name = "[customname] [initial(name)]" /obj/item/weapon/reagent_containers/food/snacks/customizable/proc/initialize_custom_food(obj/item/BASE, obj/item/I, mob/user) - if(istype(BASE,/obj/item/weapon/reagent_containers)) + if(istype(BASE, /obj/item/weapon/reagent_containers)) var/obj/item/weapon/reagent_containers/RC = BASE RC.reagents.trans_to(src,RC.reagents.total_volume) for(var/obj/O in BASE.contents) @@ -288,7 +288,7 @@ w_class = WEIGHT_CLASS_NORMAL /obj/item/weapon/reagent_containers/glass/bowl/attackby(obj/item/I,mob/user, params) - if(istype(I,/obj/item/weapon/reagent_containers/food/snacks)) + if(istype(I, /obj/item/weapon/reagent_containers/food/snacks)) var/obj/item/weapon/reagent_containers/food/snacks/S = I if(I.w_class > WEIGHT_CLASS_SMALL) to_chat(user, "The ingredient is too big for [src]!") diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm index fe726211dc..25b7b99144 100644 --- a/code/modules/food_and_drinks/food/snacks.dm +++ b/code/modules/food_and_drinks/food/snacks.dm @@ -132,10 +132,10 @@ /obj/item/weapon/reagent_containers/food/snacks/attackby(obj/item/weapon/W, mob/user, params) - if(istype(W,/obj/item/weapon/storage)) + if(istype(W, /obj/item/weapon/storage)) ..() // -> item/attackby() return 0 - if(istype(W,/obj/item/weapon/reagent_containers/food/snacks)) + if(istype(W, /obj/item/weapon/reagent_containers/food/snacks)) var/obj/item/weapon/reagent_containers/food/snacks/S = W if(custom_food_type && ispath(custom_food_type)) if(S.w_class > WEIGHT_CLASS_SMALL) diff --git a/code/modules/food_and_drinks/food/snacks_egg.dm b/code/modules/food_and_drinks/food/snacks_egg.dm index ce18a40f2a..a0b2b34740 100644 --- a/code/modules/food_and_drinks/food/snacks_egg.dm +++ b/code/modules/food_and_drinks/food/snacks_egg.dm @@ -112,7 +112,7 @@ tastes = list("egg" = 1, "cheese" = 1) /obj/item/weapon/reagent_containers/food/snacks/omelette/attackby(obj/item/weapon/W, mob/user, params) - if(istype(W,/obj/item/weapon/kitchen/fork)) + if(istype(W, /obj/item/weapon/kitchen/fork)) var/obj/item/weapon/kitchen/fork/F = W if(F.forkload) to_chat(user, "You already have omelette on your fork!") diff --git a/code/modules/food_and_drinks/kitchen_machinery/juicer.dm b/code/modules/food_and_drinks/kitchen_machinery/juicer.dm index 9dd314e18c..c8430a39c3 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/juicer.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/juicer.dm @@ -41,8 +41,8 @@ /obj/machinery/juicer/attackby(obj/item/O, mob/user, params) if(default_unfasten_wrench(user, O)) return - if (istype(O,/obj/item/weapon/reagent_containers/glass) || \ - istype(O,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass)) + if (istype(O, /obj/item/weapon/reagent_containers/glass) || \ + istype(O, /obj/item/weapon/reagent_containers/food/drinks/drinkingglass)) if (beaker) return 1 else diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm index 6df7ce9e44..d726a106e7 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -149,7 +149,7 @@ to_chat(user, "You insert [loaded] items into [src].") - else if(O.w_class <= WEIGHT_CLASS_NORMAL && !istype(O,/obj/item/weapon/storage) && user.a_intent == INTENT_HELP) + else if(O.w_class <= WEIGHT_CLASS_NORMAL && !istype(O, /obj/item/weapon/storage) && user.a_intent == INTENT_HELP) if (contents.len>=max_n_of_items) to_chat(user, "[src] is full, you can't put anything in!") return 1 @@ -271,7 +271,7 @@ /obj/machinery/microwave/proc/has_extra_item() for (var/obj/O in contents) if ( \ - !istype(O,/obj/item/weapon/reagent_containers/food) && \ + !istype(O, /obj/item/weapon/reagent_containers/food) && \ !istype(O, /obj/item/weapon/grown) \ ) return 1 diff --git a/code/modules/food_and_drinks/kitchen_machinery/processor.dm b/code/modules/food_and_drinks/kitchen_machinery/processor.dm index 09a0560357..8d3b8bae52 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/processor.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/processor.dm @@ -33,7 +33,7 @@ build_path = /obj/machinery/processor /obj/item/weapon/circuitboard/machine/processor/attackby(obj/item/I, mob/user, params) - if(istype(I,/obj/item/weapon/screwdriver)) + if(istype(I, /obj/item/weapon/screwdriver)) if(build_path == /obj/machinery/processor) name = "Slime Processor (Machine Board)" build_path = /obj/machinery/processor/slime diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index c4cf9a5e54..7148d001e3 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -149,7 +149,7 @@ /obj/machinery/smartfridge/proc/accept_check(obj/item/O) - if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/grown/) || istype(O,/obj/item/seeds/) || istype(O,/obj/item/weapon/grown/)) + if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown/) || istype(O, /obj/item/seeds/) || istype(O, /obj/item/weapon/grown/)) return TRUE return FALSE @@ -160,7 +160,7 @@ to_chat(usr, "\the [O] is stuck to your hand, you cannot put it in \the [src]!") return else - if(istype(O.loc,/obj/item/weapon/storage)) + if(istype(O.loc, /obj/item/weapon/storage)) var/obj/item/weapon/storage/S = O.loc S.remove_from_storage(O,src) O.forceMove(src) @@ -315,11 +315,11 @@ update_icon() /obj/machinery/smartfridge/drying_rack/accept_check(obj/item/O) - if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/)) + if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/)) var/obj/item/weapon/reagent_containers/food/snacks/S = O if(S.dried_type) return TRUE - if(istype(O,/obj/item/stack/sheet/wetleather/)) + if(istype(O, /obj/item/stack/sheet/wetleather/)) return TRUE return FALSE @@ -363,9 +363,9 @@ desc = "A refrigerated storage unit for tasty tasty alcohol." /obj/machinery/smartfridge/drinks/accept_check(obj/item/O) - if(!istype(O,/obj/item/weapon/reagent_containers) || !O.reagents || !O.reagents.reagent_list.len) + if(!istype(O, /obj/item/weapon/reagent_containers) || !O.reagents || !O.reagents.reagent_list.len) return FALSE - if(istype(O,/obj/item/weapon/reagent_containers/glass) || istype(O,/obj/item/weapon/reagent_containers/food/drinks) || istype(O,/obj/item/weapon/reagent_containers/food/condiment)) + if(istype(O, /obj/item/weapon/reagent_containers/glass) || istype(O, /obj/item/weapon/reagent_containers/food/drinks) || istype(O, /obj/item/weapon/reagent_containers/food/condiment)) return TRUE // ---------------------------- @@ -375,7 +375,7 @@ desc = "A refrigerated storage unit for food." /obj/machinery/smartfridge/food/accept_check(obj/item/O) - if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/)) + if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/)) return TRUE return FALSE @@ -387,9 +387,9 @@ desc = "A refrigerated storage unit for slime extracts." /obj/machinery/smartfridge/extract/accept_check(obj/item/O) - if(istype(O,/obj/item/slime_extract)) + if(istype(O, /obj/item/slime_extract)) return TRUE - if(istype(O,/obj/item/device/slime_scanner)) + if(istype(O, /obj/item/device/slime_scanner)) return TRUE return FALSE @@ -404,20 +404,20 @@ desc = "A refrigerated storage unit for medicine storage." /obj/machinery/smartfridge/chemistry/accept_check(obj/item/O) - if(istype(O,/obj/item/weapon/storage/pill_bottle)) + if(istype(O, /obj/item/weapon/storage/pill_bottle)) if(O.contents.len) for(var/obj/item/I in O) if(!accept_check(I)) return FALSE return TRUE return FALSE - if(!istype(O,/obj/item/weapon/reagent_containers)) + if(!istype(O, /obj/item/weapon/reagent_containers)) return FALSE - if(istype(O,/obj/item/weapon/reagent_containers/pill)) // empty pill prank ok + if(istype(O, /obj/item/weapon/reagent_containers/pill)) // empty pill prank ok return TRUE if(!O.reagents || !O.reagents.reagent_list.len) // other empty containers not accepted return FALSE - if(istype(O,/obj/item/weapon/reagent_containers/syringe) || istype(O,/obj/item/weapon/reagent_containers/glass/bottle) || istype(O,/obj/item/weapon/reagent_containers/glass/beaker) || istype(O,/obj/item/weapon/reagent_containers/spray)) + if(istype(O, /obj/item/weapon/reagent_containers/syringe) || istype(O, /obj/item/weapon/reagent_containers/glass/bottle) || istype(O, /obj/item/weapon/reagent_containers/glass/beaker) || istype(O, /obj/item/weapon/reagent_containers/spray)) return TRUE return FALSE @@ -452,7 +452,7 @@ desc = "A machine capable of storing a variety of disks. Denoted by most as the DSU (disk storage unit)." /obj/machinery/smartfridge/disks/accept_check(obj/item/O) - if(istype(O,/obj/item/weapon/disk/)) + if(istype(O, /obj/item/weapon/disk/)) return TRUE else return FALSE diff --git a/code/modules/games/cards.dm b/code/modules/games/cards.dm index 4e6f4c734e..5a0b217efb 100644 --- a/code/modules/games/cards.dm +++ b/code/modules/games/cards.dm @@ -56,7 +56,7 @@ src.cards.Add(card) /obj/item/weapon/deck/attackby(obj/O, mob/user) - if (istype(O,/obj/item/weapon/hand)) + if (istype(O, /obj/item/weapon/hand)) var/obj/item/weapon/hand/H = O for (var/datum/playingcard/P in H.cards) src.cards.Add(P) @@ -152,7 +152,7 @@ return P.name = cardtext blank = 0 - else if(istype(O,/obj/item/weapon/hand)) + else if(istype(O, /obj/item/weapon/hand)) var/obj/item/weapon/hand/H = O for(var/datum/playingcard/P in src.cards) H.cards.Add(P) diff --git a/code/modules/holiday/easter.dm b/code/modules/holiday/easter.dm index 2cf4ac77a9..8d4f2e0147 100644 --- a/code/modules/holiday/easter.dm +++ b/code/modules/holiday/easter.dm @@ -69,7 +69,7 @@ name = "Easter Basket" icon = 'icons/mob/easter.dmi' icon_state = "basket" - can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/egg,/obj/item/weapon/reagent_containers/food/snacks/chocolateegg,/obj/item/weapon/reagent_containers/food/snacks/boiledegg) + can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/egg, /obj/item/weapon/reagent_containers/food/snacks/chocolateegg, /obj/item/weapon/reagent_containers/food/snacks/boiledegg) /obj/item/weapon/storage/bag/easterbasket/proc/countEggs() cut_overlays() diff --git a/code/modules/holiday/halloween.dm b/code/modules/holiday/halloween.dm index ffae5026d4..3991878127 100644 --- a/code/modules/holiday/halloween.dm +++ b/code/modules/holiday/halloween.dm @@ -234,7 +234,7 @@ playsound(loc, 'sound/spookoween/insane_low_laugh.ogg', 300, 1) /mob/living/simple_animal/hostile/retaliate/clown/insane/attackby(obj/item/O, mob/user) - if(istype(O,/obj/item/weapon/nullrod)) + if(istype(O, /obj/item/weapon/nullrod)) if(prob(5)) visible_message("[src] finally found the peace it deserves. You hear honks echoing off into the distance.") playsound(loc, 'sound/spookoween/insane_low_laugh.ogg', 300, 1) diff --git a/code/modules/holodeck/area_copy.dm b/code/modules/holodeck/area_copy.dm index dc93ef15ca..70dc073c3b 100644 --- a/code/modules/holodeck/area_copy.dm +++ b/code/modules/holodeck/area_copy.dm @@ -16,7 +16,7 @@ GLOBAL_LIST_INIT(duplicate_forbidden_vars,list("tag","area","type","loc","locs", if(islist(original.vars[V])) var/list/L = original.vars[V] O.vars[V] = L.Copy() - else if(istype(original.vars[V],/datum)) + else if(istype(original.vars[V], /datum)) continue // this would reference the original's object, that will break when it is used or deleted. else O.vars[V] = original.vars[V] @@ -31,7 +31,7 @@ GLOBAL_LIST_INIT(duplicate_forbidden_vars,list("tag","area","type","loc","locs", I.damtype = STAMINA // thou shalt not N.update_icon() - if(istype(O,/obj/machinery)) + if(istype(O, /obj/machinery)) var/obj/machinery/M = O M.power_change() diff --git a/code/modules/holodeck/computer.dm b/code/modules/holodeck/computer.dm index b03c55e97a..ea71e664de 100644 --- a/code/modules/holodeck/computer.dm +++ b/code/modules/holodeck/computer.dm @@ -50,7 +50,7 @@ /obj/machinery/computer/holodeck/LateInitialize() if(ispath(holodeck_type, /area)) linked = pop(get_areas(holodeck_type, FALSE)) - if(ispath(offline_program,/area)) + if(ispath(offline_program, /area)) offline_program = pop(get_areas(offline_program), FALSE) // the following is necessary for power reasons if(!linked || !offline_program) diff --git a/code/modules/hydroponics/grown/replicapod.dm b/code/modules/hydroponics/grown/replicapod.dm index 1a98a4715d..0a39c70146 100644 --- a/code/modules/hydroponics/grown/replicapod.dm +++ b/code/modules/hydroponics/grown/replicapod.dm @@ -23,7 +23,7 @@ var/contains_sample = 0 /obj/item/seeds/replicapod/attackby(obj/item/weapon/W, mob/user, params) - if(istype(W,/obj/item/weapon/reagent_containers/syringe)) + if(istype(W, /obj/item/weapon/reagent_containers/syringe)) if(!contains_sample) for(var/datum/reagent/blood/bloodSample in W.reagents.reagent_list) if(bloodSample.data["mind"] && bloodSample.data["cloneable"] == 1) @@ -99,7 +99,7 @@ podman.faction |= factions if(!features["mcolor"]) features["mcolor"] = "#59CE00" - podman.hardset_dna(null,null,podman.real_name,blood_type,/datum/species/pod,features)//Discard SE's and UI's, podman cloning is inaccurate, and always make them a podman + podman.hardset_dna(null,null,podman.real_name,blood_type, /datum/species/pod,features)//Discard SE's and UI's, podman cloning is inaccurate, and always make them a podman podman.set_cloned_appearance() else //else, one packet of seeds. maybe two diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index 232cea53ac..499fc4bd64 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -110,9 +110,9 @@ /obj/machinery/hydroponics/bullet_act(obj/item/projectile/Proj) //Works with the Somatoray to modify plant variables. if(!myseed) return ..() - if(istype(Proj ,/obj/item/projectile/energy/floramut)) + if(istype(Proj , /obj/item/projectile/energy/floramut)) mutate() - else if(istype(Proj ,/obj/item/projectile/energy/florayield)) + else if(istype(Proj , /obj/item/projectile/energy/florayield)) return myseed.bullet_act(Proj) else return ..() @@ -877,7 +877,7 @@ /obj/machinery/hydroponics/proc/update_tray(mob/user = usr) harvest = 0 lastproduce = age - if(istype(myseed,/obj/item/seeds/replicapod)) + if(istype(myseed, /obj/item/seeds/replicapod)) to_chat(user, "You harvest from the [myseed.plantname].") else if(myseed.getYield() <= 0) to_chat(user, "You fail to harvest anything useful!") diff --git a/code/modules/hydroponics/seed_extractor.dm b/code/modules/hydroponics/seed_extractor.dm index 733c5cc716..65fa87c658 100644 --- a/code/modules/hydroponics/seed_extractor.dm +++ b/code/modules/hydroponics/seed_extractor.dm @@ -84,7 +84,7 @@ if(default_deconstruction_crowbar(O)) return - if (istype(O,/obj/item/weapon/storage/bag/plants)) + if (istype(O, /obj/item/weapon/storage/bag/plants)) var/obj/item/weapon/storage/P = O var/loaded = 0 for(var/obj/item/seeds/G in P.contents) @@ -101,7 +101,7 @@ else if(seedify(O,-1, src, user)) to_chat(user, "You extract some seeds.") return - else if (istype(O,/obj/item/seeds)) + else if (istype(O, /obj/item/seeds)) if(add_seed(O)) to_chat(user, "You add [O] to [src.name].") updateUsrDialog() @@ -195,7 +195,7 @@ var/mob/M = O.loc if(!M.drop_item()) return 0 - else if(istype(O.loc,/obj/item/weapon/storage)) + else if(istype(O.loc, /obj/item/weapon/storage)) var/obj/item/weapon/storage/S = O.loc S.remove_from_storage(O,src) diff --git a/code/modules/jobs/job_types/engineering.dm b/code/modules/jobs/job_types/engineering.dm index 66897b1049..06e8304d70 100644 --- a/code/modules/jobs/job_types/engineering.dm +++ b/code/modules/jobs/job_types/engineering.dm @@ -39,7 +39,7 @@ Chief Engineer head = /obj/item/clothing/head/hardhat/white gloves = /obj/item/clothing/gloves/color/black/ce accessory = /obj/item/clothing/accessory/pocketprotector/full - backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1,/obj/item/device/modular_computer/tablet/preset/advanced=1) + backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1, /obj/item/device/modular_computer/tablet/preset/advanced=1) backpack = /obj/item/weapon/storage/backpack/industrial satchel = /obj/item/weapon/storage/backpack/satchel/eng diff --git a/code/modules/jobs/job_types/science.dm b/code/modules/jobs/job_types/science.dm index 78772c031b..4f7262c572 100644 --- a/code/modules/jobs/job_types/science.dm +++ b/code/modules/jobs/job_types/science.dm @@ -41,7 +41,7 @@ Research Director l_hand = /obj/item/weapon/clipboard l_pocket = /obj/item/device/laser_pointer accessory = /obj/item/clothing/accessory/pocketprotector/full - backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1,/obj/item/device/modular_computer/tablet/preset/advanced=1) + backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1, /obj/item/device/modular_computer/tablet/preset/advanced=1) backpack = /obj/item/weapon/storage/backpack/science satchel = /obj/item/weapon/storage/backpack/satchel/tox diff --git a/code/modules/library/random_books.dm b/code/modules/library/random_books.dm index 4e82216513..e2ea2a86c5 100644 --- a/code/modules/library/random_books.dm +++ b/code/modules/library/random_books.dm @@ -1,6 +1,6 @@ /obj/item/weapon/book/manual/random/Initialize() ..() - var/static/banned_books = list(/obj/item/weapon/book/manual/random,/obj/item/weapon/book/manual/nuclear,/obj/item/weapon/book/manual/wiki) + var/static/banned_books = list(/obj/item/weapon/book/manual/random, /obj/item/weapon/book/manual/nuclear, /obj/item/weapon/book/manual/wiki) var/newtype = pick(subtypesof(/obj/item/weapon/book/manual) - banned_books) new newtype(loc) qdel(src) diff --git a/code/modules/mapping/map_template.dm b/code/modules/mapping/map_template.dm index 373a937be2..c8ef0ebe2a 100644 --- a/code/modules/mapping/map_template.dm +++ b/code/modules/mapping/map_template.dm @@ -32,10 +32,10 @@ atoms += B for(var/A in B) atoms += A - if(istype(A,/obj/structure/cable)) + if(istype(A, /obj/structure/cable)) cables += A continue - if(istype(A,/obj/machinery/atmospherics)) + if(istype(A, /obj/machinery/atmospherics)) atmos_machines += A SSatoms.InitializeAtoms(atoms) diff --git a/code/modules/mapping/reader.dm b/code/modules/mapping/reader.dm index 1facd571ce..bf81f694b6 100644 --- a/code/modules/mapping/reader.dm +++ b/code/modules/mapping/reader.dm @@ -171,7 +171,7 @@ GLOBAL_DATUM_INIT(_preloader, /dmm_suite/preloader, new) /** * Fill a given tile with its area/turf/objects/mobs - * Variable model is one full map line (e.g /turf/unsimulated/wall{icon_state = "rock"},/area/mine/explored) + * Variable model is one full map line (e.g /turf/unsimulated/wall{icon_state = "rock"}, /area/mine/explored) * * WORKING : * @@ -292,7 +292,7 @@ GLOBAL_DATUM_INIT(_preloader, /dmm_suite/preloader, new) //then instance the /turf and, if multiple tiles are presents, simulates the DMM underlays piling effect var/first_turf_index = 1 - while(!ispath(members[first_turf_index],/turf)) //find first /turf object in members + while(!ispath(members[first_turf_index], /turf)) //find first /turf object in members first_turf_index++ //turn off base new Initialization until the whole thing is loaded diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm index e4acea1cf0..5f8830139c 100644 --- a/code/modules/mining/equipment/explorer_gear.dm +++ b/code/modules/mining/equipment/explorer_gear.dm @@ -11,7 +11,7 @@ heat_protection = CHEST|GROIN|LEGS|ARMS hoodtype = /obj/item/clothing/head/hooded/explorer armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 50, bio = 100, rad = 50, fire = 50, acid = 50) - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/resonator, /obj/item/device/mining_scanner, /obj/item/device/t_scanner/adv_mining_scanner, /obj/item/weapon/gun/energy/kinetic_accelerator, /obj/item/weapon/pickaxe) + allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/internals, /obj/item/weapon/resonator, /obj/item/device/mining_scanner, /obj/item/device/t_scanner/adv_mining_scanner, /obj/item/weapon/gun/energy/kinetic_accelerator, /obj/item/weapon/pickaxe) resistance_flags = FIRE_PROOF /obj/item/clothing/head/hooded/explorer diff --git a/code/modules/mining/equipment/marker_beacons.dm b/code/modules/mining/equipment/marker_beacons.dm index dc1de44176..f052e809e6 100644 --- a/code/modules/mining/equipment/marker_beacons.dm +++ b/code/modules/mining/equipment/marker_beacons.dm @@ -1,6 +1,6 @@ /*****************Marker Beacons**************************/ GLOBAL_LIST_INIT(marker_beacon_colors, list( -"Random" = FALSE,//not a true color, will pick a random color +"Random" = FALSE, //not a true color, will pick a random color "Burgundy" = LIGHT_COLOR_FLARE, "Bronze" = LIGHT_COLOR_ORANGE, "Yellow" = LIGHT_COLOR_YELLOW, diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 48f1c88fc9..8ca69b5e40 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -425,7 +425,7 @@ if(!over_object) return - if (istype(usr.loc,/obj/mecha)) + if (istype(usr.loc, /obj/mecha)) return if(!M.incapacitated()) diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm index 0087687688..a64699a0d3 100644 --- a/code/modules/mining/machine_redemption.dm +++ b/code/modules/mining/machine_redemption.dm @@ -173,7 +173,7 @@ if(!powered()) return - if(istype(W,/obj/item/weapon/card/id)) + if(istype(W, /obj/item/weapon/card/id)) var/obj/item/weapon/card/id/I = user.get_active_held_item() if(istype(I) && !istype(inserted_id)) if(!user.drop_item()) diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index 8607dfc865..741998340d 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -26,7 +26,7 @@ new /datum/data/mining_equipment("Explorer's Webbing", /obj/item/weapon/storage/belt/mining, 500), new /datum/data/mining_equipment("Survival Medipen", /obj/item/weapon/reagent_containers/hypospray/medipen/survival, 500), new /datum/data/mining_equipment("Brute First-Aid Kit", /obj/item/weapon/storage/firstaid/brute, 600), - new /datum/data/mining_equipment("Tracking Implant Kit",/obj/item/weapon/storage/box/minertracker, 600), + new /datum/data/mining_equipment("Tracking Implant Kit", /obj/item/weapon/storage/box/minertracker, 600), new /datum/data/mining_equipment("Jaunter", /obj/item/device/wormhole_jaunter, 750), new /datum/data/mining_equipment("Kinetic Crusher", /obj/item/weapon/twohanded/required/kinetic_crusher, 750), new /datum/data/mining_equipment("Kinetic Accelerator", /obj/item/weapon/gun/energy/kinetic_accelerator, 750), @@ -46,13 +46,13 @@ new /datum/data/mining_equipment("KA Hyper Chassis", /obj/item/borg/upgrade/modkit/chassis_mod/orange, 300), new /datum/data/mining_equipment("KA Range Increase", /obj/item/borg/upgrade/modkit/range, 1000), new /datum/data/mining_equipment("KA Damage Increase", /obj/item/borg/upgrade/modkit/damage, 1000), - new /datum/data/mining_equipment("KA Cooldown Decrease",/obj/item/borg/upgrade/modkit/cooldown, 1000), + new /datum/data/mining_equipment("KA Cooldown Decrease", /obj/item/borg/upgrade/modkit/cooldown, 1000), new /datum/data/mining_equipment("KA AoE Damage", /obj/item/borg/upgrade/modkit/aoe/mobs, 2000), new /datum/data/mining_equipment("Point Transfer Card", /obj/item/weapon/card/mining_point_card, 500), new /datum/data/mining_equipment("Mining Drone", /mob/living/simple_animal/hostile/mining_drone, 800), new /datum/data/mining_equipment("Drone Melee Upgrade", /obj/item/device/mine_bot_ugprade, 400), - new /datum/data/mining_equipment("Drone Health Upgrade",/obj/item/device/mine_bot_ugprade/health, 400), - new /datum/data/mining_equipment("Drone Ranged Upgrade",/obj/item/device/mine_bot_ugprade/cooldown, 600), + new /datum/data/mining_equipment("Drone Health Upgrade", /obj/item/device/mine_bot_ugprade/health, 400), + new /datum/data/mining_equipment("Drone Ranged Upgrade", /obj/item/device/mine_bot_ugprade/cooldown, 600), new /datum/data/mining_equipment("Drone AI Upgrade", /obj/item/slimepotion/sentience/mining, 1000), new /datum/data/mining_equipment("Jump Boots", /obj/item/clothing/shoes/bhop, 2500), ) @@ -151,7 +151,7 @@ if(istype(I, /obj/item/weapon/mining_voucher)) RedeemVoucher(I, user) return - if(istype(I,/obj/item/weapon/card/id)) + if(istype(I, /obj/item/weapon/card/id)) var/obj/item/weapon/card/id/C = usr.get_active_held_item() if(istype(C) && !istype(inserted_id)) if(!usr.drop_item()) diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm index 5cdf91ee62..b8c0737f00 100644 --- a/code/modules/mining/ores_coins.dm +++ b/code/modules/mining/ores_coins.dm @@ -410,7 +410,7 @@ to_chat(user, "You need one length of cable to attach a string to the coin!") return - else if(istype(W,/obj/item/weapon/wirecutters)) + else if(istype(W, /obj/item/weapon/wirecutters)) if(!string_attached) ..() return diff --git a/code/modules/mob/living/brain/MMI.dm b/code/modules/mob/living/brain/MMI.dm index 9cad58c201..8e919491bb 100644 --- a/code/modules/mob/living/brain/MMI.dm +++ b/code/modules/mob/living/brain/MMI.dm @@ -16,7 +16,7 @@ /obj/item/device/mmi/update_icon() if(brain) - if(istype(brain,/obj/item/organ/brain/alien)) + if(istype(brain, /obj/item/organ/brain/alien)) if(brainmob && brainmob.stat == DEAD) icon_state = "mmi_alien_dead" else @@ -39,7 +39,7 @@ /obj/item/device/mmi/attackby(obj/item/O, mob/user, params) user.changeNext_move(CLICK_CD_MELEE) - if(istype(O,/obj/item/organ/brain)) //Time to stick a brain in it --NEO + if(istype(O, /obj/item/organ/brain)) //Time to stick a brain in it --NEO var/obj/item/organ/brain/newbrain = O if(brain) to_chat(user, "There's already a brain in the MMI!") diff --git a/code/modules/mob/living/brain/brain.dm b/code/modules/mob/living/brain/brain.dm index 6f39718acf..5161f94808 100644 --- a/code/modules/mob/living/brain/brain.dm +++ b/code/modules/mob/living/brain/brain.dm @@ -66,7 +66,7 @@ /mob/living/brain/ClickOn(atom/A, params) ..() - if(istype(loc,/obj/item/device/mmi)) + if(istype(loc, /obj/item/device/mmi)) var/obj/item/device/mmi/MMI = loc var/obj/mecha/M = MMI.mecha if((src == MMI.brainmob) && istype(M)) diff --git a/code/modules/mob/living/brain/death.dm b/code/modules/mob/living/brain/death.dm index e98859b90f..9366f4d423 100644 --- a/code/modules/mob/living/brain/death.dm +++ b/code/modules/mob/living/brain/death.dm @@ -15,6 +15,6 @@ if(container) qdel(container)//Gets rid of the MMI if there is one if(loc) - if(istype(loc,/obj/item/organ/brain)) + if(istype(loc, /obj/item/organ/brain)) qdel(loc)//Gets rid of the brain item ..() \ No newline at end of file diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 4415c0d7ab..a53ba5f5ee 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -51,7 +51,7 @@ var/obj/item/item_in_hand = src.get_active_held_item() if(item_in_hand) //this segment checks if the item in your hand is twohanded. - if(istype(item_in_hand,/obj/item/weapon/twohanded)) + if(istype(item_in_hand, /obj/item/weapon/twohanded)) if(item_in_hand:wielded == 1) to_chat(usr, "Your other hand is too busy holding the [item_in_hand.name]") return diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index bf578d6b0b..94732a349d 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -16,7 +16,7 @@ if(w_uniform && !(slot_w_uniform in obscured)) //accessory var/accessory_msg - if(istype(w_uniform,/obj/item/clothing/under)) + if(istype(w_uniform, /obj/item/clothing/under)) var/obj/item/clothing/under/U = w_uniform if(U.attached_accessory) accessory_msg += " with [bicon(U.attached_accessory)] \a [U.attached_accessory]" @@ -273,7 +273,7 @@ msg += "[t_He] [t_has] a stupid expression on [t_his] face.\n" if(getorgan(/obj/item/organ/brain)) - if(istype(src,/mob/living/carbon/human/interactive)) + if(istype(src, /mob/living/carbon/human/interactive)) var/mob/living/carbon/human/interactive/auto = src if(auto.showexaminetext) msg += "[t_He] [t_is] appears to be some sort of sick automaton, [t_his] eyes are glazed over and [t_his] mouth is slightly agape.\n" @@ -300,7 +300,7 @@ msg += "Rank: [R.fields["rank"]]
" msg += "\[Front photo\] " msg += "\[Side photo\]
" - if(istype(H.glasses, /obj/item/clothing/glasses/hud/health) || istype(CIH,/obj/item/organ/cyberimp/eyes/hud/medical)) + if(istype(H.glasses, /obj/item/clothing/glasses/hud/health) || istype(CIH, /obj/item/organ/cyberimp/eyes/hud/medical)) var/cyberimp_detect for(var/obj/item/organ/cyberimp/CI in internal_organs) if(CI.status == ORGAN_ROBOTIC) @@ -318,7 +318,7 @@ msg += "\[Medical evaluation\]
" - if(istype(H.glasses, /obj/item/clothing/glasses/hud/security) || istype(CIH,/obj/item/organ/cyberimp/eyes/hud/security)) + if(istype(H.glasses, /obj/item/clothing/glasses/hud/security) || istype(CIH, /obj/item/organ/cyberimp/eyes/hud/security)) if(!user.stat && user != src) //|| !user.canmove || user.restrained()) Fluff: Sechuds have eye-tracking technology and sets 'arrest' to people that the wearer looks and blinks at. var/criminal = "None" diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index e534598e25..eff951ce6f 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -25,7 +25,7 @@ for(var/bp in body_parts) if(!bp) continue - if(bp && istype(bp ,/obj/item/clothing)) + if(bp && istype(bp , /obj/item/clothing)) var/obj/item/clothing/C = bp if(C.body_parts_covered & def_zone.body_part) protection += C.armor[d_type] diff --git a/code/modules/mob/living/carbon/human/interactive.dm b/code/modules/mob/living/carbon/human/interactive.dm index 59676238e7..e439f8ef9e 100644 --- a/code/modules/mob/living/carbon/human/interactive.dm +++ b/code/modules/mob/living/carbon/human/interactive.dm @@ -154,7 +154,7 @@ return if(A) - if(!istype(A,/mob/living/carbon/human/interactive)) + if(!istype(A, /mob/living/carbon/human/interactive)) return var/mob/living/carbon/human/interactive/T = A if(T) @@ -171,7 +171,7 @@ return if(A) - if(!istype(A,/mob/living/carbon/human/interactive)) + if(!istype(A, /mob/living/carbon/human/interactive)) return var/mob/living/carbon/human/interactive/T = A @@ -286,7 +286,7 @@ if("Assistant") favoured_types = list(/obj/item/clothing, /obj/item/weapon) if("Captain","Head of Personnel") - favoured_types = list(/obj/item/clothing, /obj/item/weapon/stamp/captain,/obj/item/weapon/disk/nuclear) + favoured_types = list(/obj/item/clothing, /obj/item/weapon/stamp/captain, /obj/item/weapon/disk/nuclear) if("Cook") favoured_types = list(/obj/item/weapon/reagent_containers/food, /obj/item/weapon/kitchen) functions += "souschef" @@ -308,7 +308,7 @@ favoured_types = list(/obj/item/weapon/mop, /obj/item/weapon/reagent_containers/glass/bucket, /obj/item/weapon/reagent_containers/spray/cleaner, /obj/effect/decal/cleanable) functions += "dojanitor" if("Clown") - favoured_types = list(/obj/item/weapon/soap, /obj/item/weapon/reagent_containers/food/snacks/grown/banana,/obj/item/weapon/grown/bananapeel) + favoured_types = list(/obj/item/weapon/soap, /obj/item/weapon/reagent_containers/food/snacks/grown/banana, /obj/item/weapon/grown/bananapeel) functions += "clowning" if("Mime") functions -= "chatter" @@ -354,7 +354,7 @@ var/datum/objective_item/steal/S = new A traitorTarget = locate(S.targetitem) in world if(SNPC_MARTYR) // MY LIFE FOR SPESZUL - var/targetType = pick(/obj/machinery/gravity_generator/main/station,/obj/machinery/power/smes/engineering,/obj/machinery/telecomms/hub) + var/targetType = pick(/obj/machinery/gravity_generator/main/station, /obj/machinery/power/smes/engineering, /obj/machinery/telecomms/hub) traitorTarget = locate(targetType) in GLOB.machines if(SNPC_PSYCHO) // YOU'RE LIKE A FLESH BICYLE AND I WANT TO DISMANTLE YOU traitorTarget = null @@ -549,8 +549,8 @@ var/turf/T = get_step(src,dir) if(T) for(var/obj/machinery/door/D in T.contents) - if(!istype(D,/obj/machinery/door/poddoor) && D.density) - if(istype(D,/obj/machinery/door/airlock)) + if(!istype(D, /obj/machinery/door/poddoor) && D.density) + if(istype(D, /obj/machinery/door/airlock)) var/obj/machinery/door/airlock/AL = D if(!AL.CanAStarPass(RPID)) // only crack open doors we can't get through inactivity_period = 20 @@ -623,7 +623,7 @@ //--------DOORS if(istype(TARGET, /obj/machinery/door)) var/obj/machinery/door/D = TARGET - if(D.check_access(MYID) && !istype(D,/obj/machinery/door/poddoor)) + if(D.check_access(MYID) && !istype(D, /obj/machinery/door/poddoor)) inactivity_period = 10 D.open() var/turf/T = get_step(get_step(D.loc,dir),dir) //recursion yo @@ -646,7 +646,7 @@ else insert_into_backpack() //---------FASHION - if(istype(TARGET,/obj/item/clothing)) + if(istype(TARGET, /obj/item/clothing)) drop_item() dressup(TARGET) update_hands = 1 @@ -657,7 +657,7 @@ equip_to_appropriate_slot(MYID) //THIEVING SKILLS END //-------------TOUCH ME - if(istype(TARGET,/obj/structure)) + if(istype(TARGET, /obj/structure)) var/obj/structure/STR = TARGET if(main_hand) var/obj/item/weapon/W = main_hand @@ -815,7 +815,7 @@ if(T.title == "Botanist") return /area/hydroponics else - return pick(/area/hallway,/area/crew_quarters/locker) + return pick(/area/hallway, /area/crew_quarters/locker) /mob/living/carbon/human/interactive/proc/target_filter(target) var/list/filtered_targets = list(/area, /turf, /obj/machinery/door, /atom/movable/light, /obj/structure/cable, /obj/machinery/atmospherics) @@ -1115,7 +1115,7 @@ if(retal && TARGET) for(var/obj/item/I in allContents) - if(istype(I,/obj/item/weapon/restraints)) + if(istype(I, /obj/item/weapon/restraints)) I.attack(TARGET,src) // go go bluespace restraint launcher! inactivity_period = 25 break @@ -1139,7 +1139,7 @@ var/pranksNearby = 100 for(var/turf/open/T in orange(1,C)) for(var/obj/item/A in T) - if(istype(A,/obj/item/weapon/soap) || istype(A,/obj/item/weapon/reagent_containers/food/snacks/grown/banana) || istype(A,/obj/item/weapon/grown/bananapeel)) + if(istype(A, /obj/item/weapon/soap) || istype(A, /obj/item/weapon/reagent_containers/food/snacks/grown/banana) || istype(A, /obj/item/weapon/grown/bananapeel)) pranksNearby-- if(T.wet) pranksNearby -= 10 @@ -1159,13 +1159,13 @@ var/hasPranked = 0 for(var/A in allContents) if(prob(smartness/2) && !hasPranked) - if(istype(A,/obj/item/weapon/soap)) + if(istype(A, /obj/item/weapon/soap)) npcDrop(A) hasPranked = 1 - if(istype(A,/obj/item/weapon/reagent_containers/food/snacks/grown/banana)) + if(istype(A, /obj/item/weapon/reagent_containers/food/snacks/grown/banana)) var/obj/item/weapon/reagent_containers/food/snacks/B = A B.attack(src, src) - if(istype(A,/obj/item/weapon/grown/bananapeel)) + if(istype(A, /obj/item/weapon/grown/bananapeel)) npcDrop(A) hasPranked = 1 if(!hasPranked) @@ -1181,7 +1181,7 @@ var/list/allContents = getAllContents() for(var/A in allContents) - if(istype(A,/obj/item/stack/medical)) + if(istype(A, /obj/item/stack/medical)) shouldTryHeal = 1 M = A @@ -1281,7 +1281,7 @@ var/list/rangeCheck = view(6,src) //Make some basic custom food - var/list/customableTypes = list(/obj/item/weapon/reagent_containers/food/snacks/customizable,/obj/item/weapon/reagent_containers/food/snacks/store/bread/plain,/obj/item/weapon/reagent_containers/food/snacks/pizzabread,/obj/item/weapon/reagent_containers/food/snacks/bun,/obj/item/weapon/reagent_containers/food/snacks/store/cake/plain,/obj/item/weapon/reagent_containers/food/snacks/pie/plain,/obj/item/weapon/reagent_containers/food/snacks/pastrybase) + var/list/customableTypes = list(/obj/item/weapon/reagent_containers/food/snacks/customizable, /obj/item/weapon/reagent_containers/food/snacks/store/bread/plain, /obj/item/weapon/reagent_containers/food/snacks/pizzabread, /obj/item/weapon/reagent_containers/food/snacks/bun, /obj/item/weapon/reagent_containers/food/snacks/store/cake/plain, /obj/item/weapon/reagent_containers/food/snacks/pie/plain, /obj/item/weapon/reagent_containers/food/snacks/pastrybase) var/foundCustom @@ -1379,7 +1379,7 @@ var/list/finishedList = list() for(var/obj/item/weapon/reagent_containers/food/snacks/toDisplay in allContents) - if(!toDisplay.cooked_type && !istype(toDisplay,/obj/item/weapon/reagent_containers/food/snacks/grown)) // dont display our ingredients + if(!toDisplay.cooked_type && !istype(toDisplay, /obj/item/weapon/reagent_containers/food/snacks/grown)) // dont display our ingredients finishedList += toDisplay for(var/obj/item/weapon/reagent_containers/food/snacks/toGrab in rangeCheck) @@ -1410,7 +1410,7 @@ RT.attackby(toPlop,src) if(!foundCookable) - var/list/allTypes = list(/obj/item/weapon/reagent_containers/food/snacks/piedough,/obj/item/weapon/reagent_containers/food/snacks/cakebatter,/obj/item/weapon/reagent_containers/food/snacks/dough,/obj/item/weapon/reagent_containers/food/snacks/flatdough) + var/list/allTypes = list(/obj/item/weapon/reagent_containers/food/snacks/piedough, /obj/item/weapon/reagent_containers/food/snacks/cakebatter, /obj/item/weapon/reagent_containers/food/snacks/dough, /obj/item/weapon/reagent_containers/food/snacks/flatdough) for(var/A in typesof(/obj/item/weapon/reagent_containers/food/snacks)) var/obj/item/weapon/reagent_containers/food/snacks/O = A @@ -1473,7 +1473,7 @@ foundFav = 1 return if(!foundFav) - if(istype(test,/obj/item/weapon)) + if(istype(test, /obj/item/weapon)) var/obj/item/weapon/R = test if(R.force > 2) // make sure we don't equip any non-weaponlike items, ie bags and stuff if(!best) @@ -1481,7 +1481,7 @@ else if(best.force < R.force) best = R - if(istype(R,/obj/item/weapon/gun)) + if(istype(R, /obj/item/weapon/gun)) var/obj/item/weapon/gun/G = R if(G.can_shoot()) best = R @@ -1495,15 +1495,15 @@ if(M.health > 1) //THROWING OBJECTS for(var/A in allContents) - if(istype(A,/obj/item/weapon/gun)) // guns are for shooting, not throwing. + if(istype(A, /obj/item/weapon/gun)) // guns are for shooting, not throwing. continue if(prob(robustness)) - if(istype(A,/obj/item/weapon)) + if(istype(A, /obj/item/weapon)) var/obj/item/weapon/W = A if(W.throwforce > 19) // Only throw worthwile stuff, no more lobbing wrenches at wenches npcDrop(W,1) throw_item(TARGET) - if(istype(A,/obj/item/weapon/grenade)) // Allahu ackbar! ALLAHU ACKBARR!! + if(istype(A, /obj/item/weapon/grenade)) // Allahu ackbar! ALLAHU ACKBARR!! var/obj/item/weapon/grenade/G = A G.attack_self(src) if(prob(smartness)) @@ -1516,10 +1516,10 @@ swap_hands() if(main_hand) if(main_hand.force != 0) - if(istype(main_hand,/obj/item/weapon/gun)) + if(istype(main_hand, /obj/item/weapon/gun)) var/obj/item/weapon/gun/G = main_hand if(G.can_trigger_gun(src)) - if(istype(main_hand,/obj/item/weapon/gun/ballistic)) + if(istype(main_hand, /obj/item/weapon/gun/ballistic)) var/obj/item/weapon/gun/ballistic/P = main_hand if(!P.chambered) P.chamber_round() @@ -1529,11 +1529,11 @@ npcDrop(P,1) else P.afterattack(TARGET, src) - else if(istype(main_hand,/obj/item/weapon/gun/energy)) + else if(istype(main_hand, /obj/item/weapon/gun/energy)) var/obj/item/weapon/gun/energy/P = main_hand var/stunning = 0 for(var/A in P.ammo_type) - if(ispath(A,/obj/item/ammo_casing/energy/electrode)) + if(ispath(A, /obj/item/ammo_casing/energy/electrode)) stunning = 1 var/shouldFire = 1 var/mob/living/stunCheck = TARGET diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index cefb77e248..6c93c0c9cb 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -111,7 +111,7 @@ return 0 else - if(istype(L,/obj/item/organ/lungs)) + if(istype(L, /obj/item/organ/lungs)) var/obj/item/organ/lungs/lun = L lun.check_breath(breath,src) diff --git a/code/modules/mob/living/carbon/human/species_types/flypeople.dm b/code/modules/mob/living/carbon/human/species_types/flypeople.dm index 6331d15789..804f9bf3a2 100644 --- a/code/modules/mob/living/carbon/human/species_types/flypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/flypeople.dm @@ -15,7 +15,7 @@ /datum/species/fly/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) - if(istype(chem,/datum/reagent/consumable)) + if(istype(chem, /datum/reagent/consumable)) var/datum/reagent/consumable/nutri_check = chem if(nutri_check.nutriment_factor > 0) var/turf/pos = get_turf(H) @@ -26,6 +26,6 @@ ..() /datum/species/fly/check_weakness(obj/item/weapon, mob/living/attacker) - if(istype(weapon,/obj/item/weapon/melee/flyswatter)) + if(istype(weapon, /obj/item/weapon/melee/flyswatter)) return 29 //Flyswatters deal 30x damage to flypeople. return 0 diff --git a/code/modules/mob/living/carbon/monkey/combat.dm b/code/modules/mob/living/carbon/monkey/combat.dm index 92528de148..4b8454fcde 100644 --- a/code/modules/mob/living/carbon/monkey/combat.dm +++ b/code/modules/mob/living/carbon/monkey/combat.dm @@ -85,7 +85,7 @@ return TRUE // CLOTHING - else if(istype(I,/obj/item/clothing)) + else if(istype(I, /obj/item/clothing)) var/obj/item/clothing/C = I monkeyDrop(C) addtimer(CALLBACK(src, .proc/pickup_and_wear, C), 5) @@ -445,7 +445,7 @@ retaliate(user) /mob/living/carbon/monkey/bullet_act(obj/item/projectile/Proj) - if(istype(Proj ,/obj/item/projectile/beam)||istype(Proj,/obj/item/projectile/bullet)) + if(istype(Proj , /obj/item/projectile/beam)||istype(Proj, /obj/item/projectile/bullet)) if((Proj.damage_type == BURN) || (Proj.damage_type == BRUTE)) if(!Proj.nodamage && Proj.damage < src.health) retaliate(Proj.firer) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index ebb9ee074f..ae28c30a7a 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -67,7 +67,7 @@ var/zone = ran_zone("chest", 65)//Hits a random part of the body, geared towards the chest var/dtype = BRUTE var/volume = I.get_volume_by_throwforce_and_or_w_class() - if(istype(I,/obj/item/weapon)) //If the item is a weapon... + if(istype(I, /obj/item/weapon)) //If the item is a weapon... var/obj/item/weapon/W = I dtype = W.damtype diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 97bd12b996..f31b339bf5 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -877,7 +877,7 @@ /mob/living/silicon/ai/reset_perspective(atom/A) if(camera_light_on) light_cameras() - if(istype(A,/obj/machinery/camera)) + if(istype(A, /obj/machinery/camera)) current = A if(client) if(ismovableatom(A)) diff --git a/code/modules/mob/living/silicon/robot/inventory.dm b/code/modules/mob/living/silicon/robot/inventory.dm index c45a32a9be..ef42a85632 100644 --- a/code/modules/mob/living/silicon/robot/inventory.dm +++ b/code/modules/mob/living/silicon/robot/inventory.dm @@ -12,7 +12,7 @@ if(!O) return 0 O.mouse_opacity = 2 - if(istype(O,/obj/item/borg/sight)) + if(istype(O, /obj/item/borg/sight)) var/obj/item/borg/sight/S = O sight_mode &= ~S.sight_mode update_sight() diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index be66f58d6d..26f5af895d 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -674,7 +674,7 @@ if(istype(module, /obj/item/weapon/robot_module/miner)) if(istype(loc, /turf/open/floor/plating/asteroid)) for(var/obj/item/I in held_items) - if(istype(I,/obj/item/weapon/storage/bag/ore)) + if(istype(I, /obj/item/weapon/storage/bag/ore)) loc.attackby(I, src) #undef BORG_CAMERA_BUFFER diff --git a/code/modules/mob/living/simple_animal/bot/construction.dm b/code/modules/mob/living/simple_animal/bot/construction.dm index b3b4725914..78e0432545 100644 --- a/code/modules/mob/living/simple_animal/bot/construction.dm +++ b/code/modules/mob/living/simple_animal/bot/construction.dm @@ -299,13 +299,13 @@ return var/obj/item/weapon/firstaid_arm_assembly/A = new /obj/item/weapon/firstaid_arm_assembly - if(istype(src,/obj/item/weapon/storage/firstaid/fire)) + if(istype(src, /obj/item/weapon/storage/firstaid/fire)) A.skin = "ointment" - else if(istype(src,/obj/item/weapon/storage/firstaid/toxin)) + else if(istype(src, /obj/item/weapon/storage/firstaid/toxin)) A.skin = "tox" - else if(istype(src,/obj/item/weapon/storage/firstaid/o2)) + else if(istype(src, /obj/item/weapon/storage/firstaid/o2)) A.skin = "o2" - else if(istype(src,/obj/item/weapon/storage/firstaid/brute)) + else if(istype(src, /obj/item/weapon/storage/firstaid/brute)) A.skin = "brute" qdel(S) diff --git a/code/modules/mob/living/simple_animal/bot/ed209bot.dm b/code/modules/mob/living/simple_animal/bot/ed209bot.dm index 82f49e7de2..9a18444bb3 100644 --- a/code/modules/mob/living/simple_animal/bot/ed209bot.dm +++ b/code/modules/mob/living/simple_animal/bot/ed209bot.dm @@ -201,7 +201,7 @@ Auto Patrol[]"}, set_weapon() /mob/living/simple_animal/bot/ed209/bullet_act(obj/item/projectile/Proj) - if(istype(Proj ,/obj/item/projectile/beam/laser)||istype(Proj,/obj/item/projectile/bullet)) + if(istype(Proj , /obj/item/projectile/beam/laser)||istype(Proj, /obj/item/projectile/bullet)) if((Proj.damage_type == BURN) || (Proj.damage_type == BRUTE)) if(!Proj.nodamage && Proj.damage < src.health) retaliate(Proj.firer) diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm index 158b86aae7..13c793f0a9 100644 --- a/code/modules/mob/living/simple_animal/bot/mulebot.dm +++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm @@ -83,7 +83,7 @@ ..() if(open) on = FALSE - else if(istype(I,/obj/item/weapon/stock_parts/cell) && open && !cell) + else if(istype(I, /obj/item/weapon/stock_parts/cell) && open && !cell) if(!user.drop_item()) return var/obj/item/weapon/stock_parts/cell/C = I @@ -343,7 +343,7 @@ return var/obj/structure/closet/crate/CRATE - if(istype(AM,/obj/structure/closet/crate)) + if(istype(AM, /obj/structure/closet/crate)) CRATE = AM else if(!wires.is_cut(WIRE_LOADCHECK)) diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm index 01f34953b9..da4de973e8 100644 --- a/code/modules/mob/living/simple_animal/bot/secbot.dm +++ b/code/modules/mob/living/simple_animal/bot/secbot.dm @@ -191,7 +191,7 @@ Auto Patrol: []"}, icon_state = "secbot[on]" /mob/living/simple_animal/bot/secbot/bullet_act(obj/item/projectile/Proj) - if(istype(Proj ,/obj/item/projectile/beam)||istype(Proj,/obj/item/projectile/bullet)) + if(istype(Proj , /obj/item/projectile/beam)||istype(Proj, /obj/item/projectile/bullet)) if((Proj.damage_type == BURN) || (Proj.damage_type == BRUTE)) if(!Proj.nodamage && Proj.damage < src.health) retaliate(Proj.firer) diff --git a/code/modules/mob/living/simple_animal/friendly/cockroach.dm b/code/modules/mob/living/simple_animal/friendly/cockroach.dm index 2ab1adee23..b49534808a 100644 --- a/code/modules/mob/living/simple_animal/friendly/cockroach.dm +++ b/code/modules/mob/living/simple_animal/friendly/cockroach.dm @@ -42,7 +42,7 @@ else visible_message("[src] avoids getting crushed.") else - if(istype(AM,/obj/structure)) + if(istype(AM, /obj/structure)) if(prob(squish_chance)) AM.visible_message("[src] was crushed under [AM].") adjustBruteLoss(1) diff --git a/code/modules/mob/living/simple_animal/friendly/dog.dm b/code/modules/mob/living/simple_animal/friendly/dog.dm index 0c80c24b15..54a06cb37f 100644 --- a/code/modules/mob/living/simple_animal/friendly/dog.dm +++ b/code/modules/mob/living/simple_animal/friendly/dog.dm @@ -178,13 +178,13 @@ to_chat(usr, "\The [item_to_add] is stuck to your hand, you cannot put it on [src]'s back!") return - if(istype(item_to_add,/obj/item/weapon/grenade/plastic)) // last thing he ever wears, I guess + if(istype(item_to_add, /obj/item/weapon/grenade/plastic)) // last thing he ever wears, I guess item_to_add.afterattack(src,usr,1) return //The objects that corgis can wear on their backs. var/allowed = FALSE - if(ispath(item_to_add.dog_fashion,/datum/dog_fashion/back)) + if(ispath(item_to_add.dog_fashion, /datum/dog_fashion/back)) allowed = TRUE if(!allowed) @@ -214,7 +214,7 @@ /mob/living/simple_animal/pet/dog/corgi/proc/place_on_head(obj/item/item_to_add, mob/user) - if(istype(item_to_add,/obj/item/weapon/grenade/plastic)) // last thing he ever wears, I guess + if(istype(item_to_add, /obj/item/weapon/grenade/plastic)) // last thing he ever wears, I guess item_to_add.afterattack(src,user,1) return diff --git a/code/modules/mob/living/simple_animal/friendly/lizard.dm.rej b/code/modules/mob/living/simple_animal/friendly/lizard.dm.rej new file mode 100644 index 0000000000..6cac5b3c80 --- /dev/null +++ b/code/modules/mob/living/simple_animal/friendly/lizard.dm.rej @@ -0,0 +1,10 @@ +diff a/code/modules/mob/living/simple_animal/friendly/lizard.dm b/code/modules/mob/living/simple_animal/friendly/lizard.dm (rejected hunks) +@@ -21,7 +21,7 @@ + gold_core_spawnable = 2 + obj_damage = 0 + environment_smash = ENVIRONMENT_SMASH_NONE +- var/static/list/edibles = typecacheof(list(/mob/living/simple_animal/butterfly,/mob/living/simple_animal/cockroach)) //list of atoms, however turfs won't affect AI, but will affect consumption. ++ var/static/list/edibles = typecacheof(list(/mob/living/simple_animal/butterfly, /mob/living/simple_animal/cockroach)) //list of atoms, however turfs won't affect AI, but will affect consumption. + + /mob/living/simple_animal/hostile/lizard/CanAttack(atom/the_target)//Can we actually attack a possible target? + if(see_invisible < the_target.invisibility)//Target's invisible to us, forget it diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm index 6e60f6b958..d70055779c 100644 --- a/code/modules/mob/living/simple_animal/hostile/bees.dm +++ b/code/modules/mob/living/simple_animal/hostile/bees.dm @@ -249,7 +249,7 @@ /obj/item/queen_bee/attackby(obj/item/I, mob/user, params) - if(istype(I,/obj/item/weapon/reagent_containers/syringe)) + if(istype(I, /obj/item/weapon/reagent_containers/syringe)) var/obj/item/weapon/reagent_containers/syringe/S = I if(S.reagents.has_reagent("royal_bee_jelly")) //checked twice, because I really don't want royal bee jelly to be duped if(S.reagents.has_reagent("royal_bee_jelly",5)) diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index cf4f027065..ebc3e79a61 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -155,7 +155,7 @@ if(!busy && prob(30)) //30% chance to stop wandering and do something //first, check for potential food nearby to cocoon for(var/mob/living/C in can_see) - if(C.stat && !istype(C,/mob/living/simple_animal/hostile/poison/giant_spider) && !C.anchored) + if(C.stat && !istype(C, /mob/living/simple_animal/hostile/poison/giant_spider) && !C.anchored) cocoon_target = C busy = MOVING_TO_TARGET Goto(C, move_to_delay) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index c3c17a22a5..e68aea22d0 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -260,9 +260,9 @@ if(prob(20)) suit = pickweight(list(/obj/item/clothing/suit/hooded/explorer = 18, /obj/item/clothing/suit/hooded/cloak/goliath = 2)) if(prob(30)) - r_pocket = pickweight(list(/obj/item/stack/marker_beacon = 20, /obj/item/stack/spacecash/c1000 = 7,/obj/item/weapon/reagent_containers/hypospray/medipen/survival = 2, /obj/item/borg/upgrade/modkit/damage = 1 )) + r_pocket = pickweight(list(/obj/item/stack/marker_beacon = 20, /obj/item/stack/spacecash/c1000 = 7, /obj/item/weapon/reagent_containers/hypospray/medipen/survival = 2, /obj/item/borg/upgrade/modkit/damage = 1 )) if(prob(10)) - l_pocket = pickweight(list(/obj/item/stack/spacecash/c1000 = 7,/obj/item/weapon/reagent_containers/hypospray/medipen/survival = 2, /obj/item/borg/upgrade/modkit/cooldown = 1 )) + l_pocket = pickweight(list(/obj/item/stack/spacecash/c1000 = 7, /obj/item/weapon/reagent_containers/hypospray/medipen/survival = 2, /obj/item/borg/upgrade/modkit/cooldown = 1 )) if("Ashwalker") mob_species = /datum/species/lizard/ashwalker uniform = /obj/item/clothing/under/gladiator/ash_walker @@ -273,7 +273,7 @@ suit = /obj/item/clothing/suit/armor/bone gloves = /obj/item/clothing/gloves/bracer if(prob(5)) - back = pickweight(list(/obj/item/weapon/twohanded/bonespear = 3,/obj/item/weapon/twohanded/fireaxe/boneaxe = 2)) + back = pickweight(list(/obj/item/weapon/twohanded/bonespear = 3, /obj/item/weapon/twohanded/fireaxe/boneaxe = 2)) if(prob(10)) belt = /obj/item/weapon/storage/belt/mining/primitive if(prob(30)) @@ -286,7 +286,7 @@ belt = null backpack_contents = list() if(prob(70)) - backpack_contents += pick(list(/obj/item/weapon/stamp/clown = 1, /obj/item/weapon/reagent_containers/spray/waterflower = 1,/obj/item/weapon/reagent_containers/food/snacks/grown/banana = 1, /obj/item/device/megaphone/clown = 1,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/canned_laughter = 1,/obj/item/weapon/pneumatic_cannon/pie = 1)) + backpack_contents += pick(list(/obj/item/weapon/stamp/clown = 1, /obj/item/weapon/reagent_containers/spray/waterflower = 1, /obj/item/weapon/reagent_containers/food/snacks/grown/banana = 1, /obj/item/device/megaphone/clown = 1, /obj/item/weapon/reagent_containers/food/drinks/soda_cans/canned_laughter = 1, /obj/item/weapon/pneumatic_cannon/pie = 1)) if(prob(30)) backpack_contents += list(/obj/item/stack/sheet/mineral/bananium = pickweight(list( 1 = 3, 2 = 2, 3 = 1))) if(prob(10)) @@ -296,9 +296,9 @@ if("Golem") mob_species = pick(list(/datum/species/golem/adamantine, /datum/species/golem/plasma, /datum/species/golem/diamond, /datum/species/golem/gold, /datum/species/golem/silver, /datum/species/golem/plasteel, /datum/species/golem/titanium, /datum/species/golem/plastitanium)) if(prob(30)) - glasses = pickweight(list(/obj/item/clothing/glasses/meson = 2, /obj/item/clothing/glasses/hud/health = 2,/obj/item/clothing/glasses/hud/diagnostic =2, /obj/item/clothing/glasses/science = 2, /obj/item/clothing/glasses/welding = 2, /obj/item/clothing/glasses/night = 1)) + glasses = pickweight(list(/obj/item/clothing/glasses/meson = 2, /obj/item/clothing/glasses/hud/health = 2, /obj/item/clothing/glasses/hud/diagnostic =2, /obj/item/clothing/glasses/science = 2, /obj/item/clothing/glasses/welding = 2, /obj/item/clothing/glasses/night = 1)) if(prob(10)) - belt = pick(list(/obj/item/weapon/storage/belt/mining/vendor,/obj/item/weapon/storage/belt/utility/full)) + belt = pick(list(/obj/item/weapon/storage/belt/mining/vendor, /obj/item/weapon/storage/belt/utility/full)) if(prob(50)) neck = /obj/item/weapon/bedsheet/rd/royal_cape if(prob(10)) diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index ce2967319a..5080a9db8a 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -323,7 +323,7 @@ //Mobs with objects /mob/living/simple_animal/parrot/attackby(obj/item/O, mob/living/user, params) - if(!stat && !client && !istype(O, /obj/item/stack/medical) && !istype(O,/obj/item/weapon/reagent_containers/food/snacks/cracker)) + if(!stat && !client && !istype(O, /obj/item/stack/medical) && !istype(O, /obj/item/weapon/reagent_containers/food/snacks/cracker)) if(O.force) if(parrot_state == PARROT_PERCH) parrot_sleep_dur = parrot_sleep_max //Reset it's sleep timer if it was perched @@ -336,7 +336,7 @@ parrot_state |= PARROT_FLEE icon_state = "parrot_fly" drop_held_item(0) - else if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/cracker)) //Poly wants a cracker. + else if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/cracker)) //Poly wants a cracker. qdel(O) user.drop_item() if(health < maxHealth) @@ -764,7 +764,7 @@ //parrots will eat crackers instead of dropping them - if(istype(held_item,/obj/item/weapon/reagent_containers/food/snacks/cracker) && (drop_gently)) + if(istype(held_item, /obj/item/weapon/reagent_containers/food/snacks/cracker) && (drop_gently)) qdel(held_item) held_item = null if(health < maxHealth) diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index 18a5337c99..236b36dafd 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -311,7 +311,7 @@ for(var/datum/surgery/S in surgeries) if(S.next_step(user)) return 1 - if(istype(W,/obj/item/stack/sheet/mineral/plasma) && !stat) //Let's you feed slimes plasma. + if(istype(W, /obj/item/stack/sheet/mineral/plasma) && !stat) //Let's you feed slimes plasma. if (user in Friends) ++Friends[user] else diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 7681566854..cfb15b468c 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -387,7 +387,7 @@ set category = "Object" set src = usr - if(istype(loc,/obj/mecha)) + if(istype(loc, /obj/mecha)) return if(incapacitated()) @@ -869,7 +869,7 @@ var/search_pda = 1 for(var/A in searching) - if( search_id && istype(A,/obj/item/weapon/card/id) ) + if( search_id && istype(A, /obj/item/weapon/card/id) ) var/obj/item/weapon/card/id/ID = A if(ID.registered_name == oldname) ID.registered_name = newname @@ -878,7 +878,7 @@ break search_id = 0 - else if( search_pda && istype(A,/obj/item/device/pda) ) + else if( search_pda && istype(A, /obj/item/device/pda) ) var/obj/item/device/pda/PDA = A if(PDA.owner == oldname) PDA.owner = newname diff --git a/code/modules/modular_computers/laptop_vendor.dm b/code/modules/modular_computers/laptop_vendor.dm index e30d37b510..1fa48f5aca 100644 --- a/code/modules/modular_computers/laptop_vendor.dm +++ b/code/modules/modular_computers/laptop_vendor.dm @@ -241,7 +241,7 @@ /obj/machinery/lapvend/attackby(obj/item/I as obj, mob/user as mob) - if(istype(I,/obj/item/stack/spacecash)) + if(istype(I, /obj/item/stack/spacecash)) var/obj/item/stack/spacecash/c = I if(!user.drop_item(c)) diff --git a/code/modules/ninja/suit/suit.dm b/code/modules/ninja/suit/suit.dm index 8c298a3c9a..b673db5456 100644 --- a/code/modules/ninja/suit/suit.dm +++ b/code/modules/ninja/suit/suit.dm @@ -16,7 +16,7 @@ Contents: desc = "A unique, vaccum-proof suit of nano-enhanced armor designed specifically for Spider Clan assassins." icon_state = "s-ninja" item_state = "s-ninja_suit" - allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals,/obj/item/weapon/stock_parts/cell) + allowed = list(/obj/item/weapon/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/tank/internals, /obj/item/weapon/stock_parts/cell) slowdown = 0 resistance_flags = LAVA_PROOF | ACID_PROOF armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 100, acid = 100) diff --git a/code/modules/paperwork/contract.dm b/code/modules/paperwork/contract.dm index 7eaa0a7e26..548c8eae9c 100644 --- a/code/modules/paperwork/contract.dm +++ b/code/modules/paperwork/contract.dm @@ -103,7 +103,7 @@ update_text() /obj/item/weapon/paper/contract/infernal/suicide_act(mob/user) - if(signed && (user == target.current) && istype(user,/mob/living/carbon/human/)) + if(signed && (user == target.current) && istype(user, /mob/living/carbon/human/)) var/mob/living/carbon/human/H = user H.forcesay("OH GREAT INFERNO! I DEMAND YOU COLLECT YOUR BOUNTY IMMEDIATELY!") H.visible_message("[H] holds up a contract claiming [user.p_their()] soul, then immediately catches fire. It looks like [user.p_theyre()] trying to commit suicide!") @@ -304,11 +304,11 @@ id.assignment = "Captain" id.update_label() if(worn) - if(istype(worn,/obj/item/device/pda)) + if(istype(worn, /obj/item/device/pda)) var/obj/item/device/pda/PDA = worn PDA.id = id id.loc = worn - else if(istype(worn,/obj/item/weapon/storage/wallet)) + else if(istype(worn, /obj/item/weapon/storage/wallet)) var/obj/item/weapon/storage/wallet/W = worn W.front_id = id id.loc = worn diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index bd2437aa15..1aa8720c45 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -149,7 +149,7 @@ to_chat(usr, "You feel kind of silly, copying [ass == usr ? "your" : ass][ass == usr ? "" : "\'s"] ass with [ass == usr ? "your" : "their"] clothes on." ) break else if(toner >= 5 && !busy && check_ass()) //You have to be sitting on the copier and either be a xeno or a human without clothes on. - if(isalienadult(ass) || istype(ass,/mob/living/simple_animal/hostile/alien)) //Xenos have their own asses, thanks to Pybro. + if(isalienadult(ass) || istype(ass, /mob/living/simple_animal/hostile/alien)) //Xenos have their own asses, thanks to Pybro. temp_img = icon('icons/ass/assalien.png') else if(ishuman(ass)) //Suit checks are in check_ass if(ass.gender == MALE) @@ -256,7 +256,7 @@ /obj/machinery/photocopier/attackby(obj/item/O, mob/user, params) if(istype(O, /obj/item/weapon/paper)) if(copier_empty()) - if(istype(O,/obj/item/weapon/paper/contract/infernal)) + if(istype(O, /obj/item/weapon/paper/contract/infernal)) to_chat(user, "[src] smokes, smelling of brimstone!") resistance_flags |= FLAMMABLE fire_act() diff --git a/code/modules/power/antimatter/shielding.dm b/code/modules/power/antimatter/shielding.dm index 468cf527a7..da1e1ed22b 100644 --- a/code/modules/power/antimatter/shielding.dm +++ b/code/modules/power/antimatter/shielding.dm @@ -238,7 +238,7 @@ materials = list(MAT_METAL=100) /obj/item/device/am_shielding_container/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/device/multitool) && istype(src.loc,/turf)) + if(istype(I, /obj/item/device/multitool) && istype(src.loc, /turf)) new/obj/machinery/am_shielding(src.loc) qdel(src) else diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index ee02e6eb35..5c2d5a5899 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -301,7 +301,7 @@ By design, d1 is the smallest direction and d2 is the highest //first let's add turf cables to our powernet //then we'll connect machines on turf with a node cable is present for(var/AM in loc) - if(istype(AM,/obj/structure/cable)) + if(istype(AM, /obj/structure/cable)) var/obj/structure/cable/C = AM if(C.d1 == d1 || C.d2 == d1 || C.d1 == d2 || C.d2 == d2) //only connected if they have a common direction if(C.powernet == powernet) @@ -311,7 +311,7 @@ By design, d1 is the smallest direction and d2 is the highest else powernet.add_cable(C) //the cable was powernetless, let's just add it to our powernet - else if(istype(AM,/obj/machinery/power/apc)) + else if(istype(AM, /obj/machinery/power/apc)) var/obj/machinery/power/apc/N = AM if(!N.terminal) continue // APC are connected through their terminal @@ -321,7 +321,7 @@ By design, d1 is the smallest direction and d2 is the highest to_connect += N.terminal //we'll connect the machines after all cables are merged - else if(istype(AM,/obj/machinery/power)) //other power machines + else if(istype(AM, /obj/machinery/power)) //other power machines var/obj/machinery/power/M = AM if(M.powernet == powernet) diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index f2cfd807ce..b0d07e88d5 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -194,7 +194,7 @@ if(AM == source) continue //we don't want to return source - if(!cable_only && istype(AM,/obj/machinery/power)) + if(!cable_only && istype(AM, /obj/machinery/power)) var/obj/machinery/power/P = AM if(P.powernet == 0) continue // exclude APCs which have powernet=0 @@ -203,7 +203,7 @@ if(d == 0) . += P - else if(istype(AM,/obj/structure/cable)) + else if(istype(AM, /obj/structure/cable)) var/obj/structure/cable/C = AM if(!unmarked || !C.powernet) @@ -228,13 +228,13 @@ P = worklist[index] //get the next power object found index++ - if( istype(P,/obj/structure/cable)) + if( istype(P, /obj/structure/cable)) var/obj/structure/cable/C = P if(C.powernet != PN) //add it to the powernet, if it isn't already there PN.add_cable(C) worklist |= C.get_connections() //get adjacents power objects, with or without a powernet - else if(P.anchored && istype(P,/obj/machinery/power)) + else if(P.anchored && istype(P, /obj/machinery/power)) var/obj/machinery/power/M = P found_machines |= M //we wait until the powernet is fully propagates to connect the machines @@ -279,7 +279,7 @@ //dist_check - set to only shock mobs within 1 of source (vendors, airlocks, etc.) //No animations will be performed by this proc. /proc/electrocute_mob(mob/living/carbon/M, power_source, obj/source, siemens_coeff = 1, dist_check = FALSE) - if(istype(M.loc,/obj/mecha)) + if(istype(M.loc, /obj/mecha)) return 0 //feckin mechs are dumb if(dist_check) if(!in_range(source,M)) @@ -292,21 +292,21 @@ return 0 //to avoid spamming with insulated glvoes on var/area/source_area - if(istype(power_source,/area)) + if(istype(power_source, /area)) source_area = power_source power_source = source_area.get_apc() - if(istype(power_source,/obj/structure/cable)) + if(istype(power_source, /obj/structure/cable)) var/obj/structure/cable/Cable = power_source power_source = Cable.powernet var/datum/powernet/PN var/obj/item/weapon/stock_parts/cell/cell - if(istype(power_source,/datum/powernet)) + if(istype(power_source, /datum/powernet)) PN = power_source - else if(istype(power_source,/obj/item/weapon/stock_parts/cell)) + else if(istype(power_source, /obj/item/weapon/stock_parts/cell)) cell = power_source - else if(istype(power_source,/obj/machinery/power/apc)) + else if(istype(power_source, /obj/machinery/power/apc)) var/obj/machinery/power/apc/apc = power_source cell = apc.cell if (apc.terminal) @@ -338,7 +338,7 @@ if (source_area) source_area.use_power(drained_energy/GLOB.CELLRATE) - else if (istype(power_source,/datum/powernet)) + else if (istype(power_source, /datum/powernet)) var/drained_power = drained_energy/GLOB.CELLRATE //convert from "joules" to "watts" PN.load+=drained_power else if (istype(power_source, /obj/item/weapon/stock_parts/cell)) diff --git a/code/modules/power/singularity/particle_accelerator/particle_control.dm b/code/modules/power/singularity/particle_accelerator/particle_control.dm index 370e2e6a06..697a80d7cd 100644 --- a/code/modules/power/singularity/particle_accelerator/particle_control.dm +++ b/code/modules/power/singularity/particle_accelerator/particle_control.dm @@ -169,24 +169,24 @@ connected_parts.Cut() T = get_step(T,rdir) - if(!check_part(T,/obj/structure/particle_accelerator/fuel_chamber)) + if(!check_part(T, /obj/structure/particle_accelerator/fuel_chamber)) return 0 T = get_step(T,odir) - if(!check_part(T,/obj/structure/particle_accelerator/end_cap)) + if(!check_part(T, /obj/structure/particle_accelerator/end_cap)) return 0 T = get_step(T,dir) T = get_step(T,dir) - if(!check_part(T,/obj/structure/particle_accelerator/power_box)) + if(!check_part(T, /obj/structure/particle_accelerator/power_box)) return 0 T = get_step(T,dir) - if(!check_part(T,/obj/structure/particle_accelerator/particle_emitter/center)) + if(!check_part(T, /obj/structure/particle_accelerator/particle_emitter/center)) return 0 T = get_step(T,ldir) - if(!check_part(T,/obj/structure/particle_accelerator/particle_emitter/left)) + if(!check_part(T, /obj/structure/particle_accelerator/particle_emitter/left)) return 0 T = get_step(T,rdir) T = get_step(T,rdir) - if(!check_part(T,/obj/structure/particle_accelerator/particle_emitter/right)) + if(!check_part(T, /obj/structure/particle_accelerator/particle_emitter/right)) return 0 assembled = 1 diff --git a/code/modules/procedural_mapping/mapGenerators/cellular.dm b/code/modules/procedural_mapping/mapGenerators/cellular.dm index fb7fd32148..3daa7632ff 100644 --- a/code/modules/procedural_mapping/mapGenerators/cellular.dm +++ b/code/modules/procedural_mapping/mapGenerators/cellular.dm @@ -12,7 +12,7 @@ var/list/current_state var/width = 10 var/height = 10 - var/list/type_map = list(/turf/open/floor/plating,/turf/closed/wall) + var/list/type_map = list(/turf/open/floor/plating, /turf/closed/wall) var/turf/start = null /datum/mapGenerator/ca/defineRegion(turf/Start, turf/End, replace = 0) @@ -88,7 +88,7 @@ /datum/mapGenerator/ca/caves b_rule = list(5,6,7,8) s_rule = list(4) - type_map = list(/turf/open/floor/plating/asteroid/basalt,/turf/closed/mineral/volcanic) + type_map = list(/turf/open/floor/plating/asteroid/basalt, /turf/closed/mineral/volcanic) iterations = 5 /datum/mapGenerator/ca/maze diff --git a/code/modules/procedural_mapping/mapGenerators/syndicate.dm b/code/modules/procedural_mapping/mapGenerators/syndicate.dm index 98e87a8b91..b8a6f33b33 100644 --- a/code/modules/procedural_mapping/mapGenerators/syndicate.dm +++ b/code/modules/procedural_mapping/mapGenerators/syndicate.dm @@ -14,8 +14,8 @@ /datum/mapGeneratorModule/syndieFurniture clusterCheckFlags = CLUSTER_CHECK_ALL spawnableTurfs = list() - spawnableAtoms = list(/obj/structure/table = 20,/obj/structure/chair = 15,/obj/structure/chair/stool = 10, \ - /obj/structure/frame/computer = 15, /obj/item/weapon/storage/toolbox/syndicate = 15 ,\ + spawnableAtoms = list(/obj/structure/table = 20, /obj/structure/chair = 15, /obj/structure/chair/stool = 10, + /obj/structure/frame/computer = 15, /obj/item/weapon/storage/toolbox/syndicate = 15, /obj/structure/closet/syndicate = 25, /obj/machinery/suit_storage_unit/syndicate = 15) /datum/mapGeneratorModule/splatterLayer/syndieMobs diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index 6a2ea8bb40..844a8a4662 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -74,7 +74,7 @@ /obj/item/projectile/beam/pulse/on_hit(atom/target, blocked = FALSE) . = ..() - if(isturf(target) || istype(target,/obj/structure/)) + if(isturf(target) || istype(target, /obj/structure/)) target.ex_act(EXPLODE_HEAVY) /obj/item/projectile/beam/pulse/shot diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm index 0a49351665..7a1c12639f 100644 --- a/code/modules/projectiles/projectile/magic.dm +++ b/code/modules/projectiles/projectile/magic.dm @@ -68,10 +68,7 @@ damage = 0 damage_type = OXY nodamage = 1 - var/list/door_types = list(/obj/structure/mineral_door/wood,/obj/structure/mineral_door/iron,/obj/structure/mineral_door/silver,\ - /obj/structure/mineral_door/gold,/obj/structure/mineral_door/uranium,/obj/structure/mineral_door/sandstone,/obj/structure/mineral_door/transparent/plasma,\ - /obj/structure/mineral_door/transparent/diamond) - + var/list/door_types = list(/obj/structure/mineral_door/wood, /obj/structure/mineral_door/iron, /obj/structure/mineral_door/silver, /obj/structure/mineral_door/gold, /obj/structure/mineral_door/uranium, /obj/structure/mineral_door/sandstone, /obj/structure/mineral_door/transparent/plasma, /obj/structure/mineral_door/transparent/diamond) /obj/item/projectile/magic/door/on_hit(atom/target) . = ..() @@ -89,7 +86,7 @@ D.Open() /obj/item/projectile/magic/door/proc/OpenDoor(var/obj/machinery/door/D) - if(istype(D,/obj/machinery/door/airlock)) + if(istype(D, /obj/machinery/door/airlock)) var/obj/machinery/door/airlock/A = D A.locked = FALSE D.open() diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index 944e03190f..a75a0851e5 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -43,11 +43,11 @@ All effects don't start immediately, but rather get worse over time; the rate is return ..() || . /datum/reagent/consumable/ethanol/reaction_obj(obj/O, reac_volume) - if(istype(O,/obj/item/weapon/paper)) + if(istype(O, /obj/item/weapon/paper)) var/obj/item/weapon/paper/paperaffected = O paperaffected.clearpaper() to_chat(usr, "[paperaffected]'s ink washes away.") - if(istype(O,/obj/item/weapon/book)) + if(istype(O, /obj/item/weapon/book)) if(reac_volume >= 5) var/obj/item/weapon/book/affectedbook = O affectedbook.dat = null diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index fb7b99ce4d..edd672376c 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -151,12 +151,12 @@ O.extinguish() O.acid_level = 0 // Monkey cube - if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/monkeycube)) + if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/monkeycube)) var/obj/item/weapon/reagent_containers/food/snacks/monkeycube/cube = O cube.Expand() // Dehydrated carp - else if(istype(O,/obj/item/toy/carpplushie/dehy_carp)) + else if(istype(O, /obj/item/toy/carpplushie/dehy_carp)) var/obj/item/toy/carpplushie/dehy_carp/dehy = O dehy.Swell() // Makes a carp @@ -932,7 +932,7 @@ taste_description = "sourness" /datum/reagent/space_cleaner/reaction_obj(obj/O, reac_volume) - if(istype(O,/obj/effect/decal/cleanable)) + if(istype(O, /obj/effect/decal/cleanable)) qdel(O) else if(O) diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index f7640fd8e3..b536dc962a 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -196,12 +196,12 @@ taste_mult = 1 /datum/reagent/toxin/plantbgone/reaction_obj(obj/O, reac_volume) - if(istype(O,/obj/structure/alien/weeds)) + if(istype(O, /obj/structure/alien/weeds)) var/obj/structure/alien/weeds/alien_weeds = O alien_weeds.take_damage(rand(15,35), BRUTE, 0) // Kills alien weeds pretty fast - else if(istype(O,/obj/structure/glowshroom)) //even a small amount is enough to kill it + else if(istype(O, /obj/structure/glowshroom)) //even a small amount is enough to kill it qdel(O) - else if(istype(O,/obj/structure/spacevine)) + else if(istype(O, /obj/structure/spacevine)) var/obj/structure/spacevine/SV = O SV.on_chem_effect(src) diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index a8845055c1..83de0ce3eb 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -101,7 +101,7 @@ else to_chat(user, "[src] is already hotter than [I]!") - if(istype(I,/obj/item/weapon/reagent_containers/food/snacks/egg)) //breaking eggs + if(istype(I, /obj/item/weapon/reagent_containers/food/snacks/egg)) //breaking eggs var/obj/item/weapon/reagent_containers/food/snacks/egg/E = I if(reagents) if(reagents.total_volume >= reagents.maximum_volume) diff --git a/code/modules/recycling/disposal-construction.dm b/code/modules/recycling/disposal-construction.dm index 975b9e1408..55528ff9fa 100644 --- a/code/modules/recycling/disposal-construction.dm +++ b/code/modules/recycling/disposal-construction.dm @@ -203,7 +203,7 @@ else if(!is_pipe()) // Disposal or outlet if(CP) // There's something there - if(!istype(CP,/obj/structure/disposalpipe/trunk)) + if(!istype(CP, /obj/structure/disposalpipe/trunk)) to_chat(user, "The [nicetype] requires a trunk underneath it in order to work!") return else // Nothing under, fuck. diff --git a/code/modules/recycling/disposal-structures.dm b/code/modules/recycling/disposal-structures.dm index af31bd9760..ff632f1f6c 100644 --- a/code/modules/recycling/disposal-structures.dm +++ b/code/modules/recycling/disposal-structures.dm @@ -700,7 +700,7 @@ playsound(src.loc, I.usesound, 50, 1) to_chat(user, "You attach the screws around the power connection.") - else if(istype(I,/obj/item/weapon/weldingtool) && mode==1) + else if(istype(I, /obj/item/weapon/weldingtool) && mode==1) var/obj/item/weapon/weldingtool/W = I if(W.remove_fuel(0,user)) playsound(src.loc, 'sound/items/welder2.ogg', 100, 1) diff --git a/code/modules/recycling/disposal-unit.dm b/code/modules/recycling/disposal-unit.dm index 806fa8103c..0537380b20 100644 --- a/code/modules/recycling/disposal-unit.dm +++ b/code/modules/recycling/disposal-unit.dm @@ -82,7 +82,7 @@ playsound(get_turf(src), I.usesound, 50, 1) to_chat(user, "You [panel_open ? "remove":"attach"] the screws around the power connection.") return - else if(istype(I,/obj/item/weapon/weldingtool) && panel_open) + else if(istype(I, /obj/item/weapon/weldingtool) && panel_open) var/obj/item/weapon/weldingtool/W = I if(W.remove_fuel(0,user)) playsound(src.loc, 'sound/items/welder2.ogg', 100, 1) diff --git a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm index ae5449d90f..132ebdf8fd 100644 --- a/code/modules/research/circuitprinter.dm +++ b/code/modules/research/circuitprinter.dm @@ -89,7 +89,7 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis). /obj/machinery/r_n_d/circuit_imprinter/Insert_Item(obj/item/O, mob/user) - if(istype(O,/obj/item/stack/sheet)) + if(istype(O, /obj/item/stack/sheet)) . = 1 if(!is_insertion_ready(user)) return diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index 9ad6d10d85..23b9ad00c8 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -59,24 +59,24 @@ /obj/machinery/r_n_d/experimentor/proc/SetTypeReactions() var/probWeight = 0 for(var/I in typesof(/obj/item)) - if(istype(I,/obj/item/weapon/relic)) + if(istype(I, /obj/item/weapon/relic)) item_reactions["[I]"] = SCANTYPE_DISCOVER else item_reactions["[I]"] = pick(SCANTYPE_POKE,SCANTYPE_IRRADIATE,SCANTYPE_GAS,SCANTYPE_HEAT,SCANTYPE_COLD,SCANTYPE_OBLITERATE) - if(ispath(I,/obj/item/weapon/stock_parts) || ispath(I,/obj/item/weapon/grenade/chem_grenade) || ispath(I,/obj/item/weapon/kitchen)) + if(ispath(I, /obj/item/weapon/stock_parts) || ispath(I, /obj/item/weapon/grenade/chem_grenade) || ispath(I, /obj/item/weapon/kitchen)) var/obj/item/tempCheck = I if(initial(tempCheck.icon_state) != null) //check it's an actual usable item, in a hacky way valid_items += 15 valid_items += I probWeight++ - if(ispath(I,/obj/item/weapon/reagent_containers/food)) + if(ispath(I, /obj/item/weapon/reagent_containers/food)) var/obj/item/tempCheck = I if(initial(tempCheck.icon_state) != null) //check it's an actual usable item, in a hacky way valid_items += rand(1,max(2,35-probWeight)) valid_items += I - if(ispath(I,/obj/item/weapon/construction/rcd) || ispath(I,/obj/item/weapon/grenade) || ispath(I,/obj/item/device/aicard) || ispath(I,/obj/item/weapon/storage/backpack/holding) || ispath(I,/obj/item/slime_extract) || ispath(I,/obj/item/device/onetankbomb) || ispath(I,/obj/item/device/transfer_valve)) + if(ispath(I, /obj/item/weapon/construction/rcd) || ispath(I, /obj/item/weapon/grenade) || ispath(I, /obj/item/device/aicard) || ispath(I, /obj/item/weapon/storage/backpack/holding) || ispath(I, /obj/item/slime_extract) || ispath(I, /obj/item/device/onetankbomb) || ispath(I, /obj/item/device/transfer_valve)) var/obj/item/tempCheck = I if(initial(tempCheck.icon_state) != null) critical_items += I @@ -111,7 +111,7 @@ /obj/machinery/r_n_d/experimentor/proc/checkCircumstances(obj/item/O) //snowflake check to only take "made" bombs - if(istype(O,/obj/item/device/transfer_valve)) + if(istype(O, /obj/item/device/transfer_valve)) var/obj/item/device/transfer_valve/T = O if(!T.tank_one || !T.tank_two || !T.attached_device) return FALSE @@ -163,7 +163,7 @@ dat += "
Burn" dat += "
Freeze" dat += "
Destroy
" - if(istype(loaded_item,/obj/item/weapon/relic)) + if(istype(loaded_item, /obj/item/weapon/relic)) dat += "
Discover
" dat += "
Eject" else @@ -282,7 +282,7 @@ loaded_item = new newPath(src) visible_message("[src] malfunctions, transforming [savedName] into [loaded_item]!") investigate_log("Experimentor has transformed [savedName] into [loaded_item]", INVESTIGATE_EXPERIMENTOR) - if(istype(loaded_item,/obj/item/weapon/grenade/chem_grenade)) + if(istype(loaded_item, /obj/item/weapon/grenade/chem_grenade)) var/obj/item/weapon/grenade/chem_grenade/CG = loaded_item CG.prime() ejectItem() @@ -658,7 +658,7 @@ to_chat(user, message) var/animals = rand(1,25) var/counter - var/list/valid_animals = list(/mob/living/simple_animal/parrot,/mob/living/simple_animal/butterfly,/mob/living/simple_animal/pet/cat,/mob/living/simple_animal/pet/dog/corgi,/mob/living/simple_animal/crab,/mob/living/simple_animal/pet/fox,/mob/living/simple_animal/hostile/lizard,/mob/living/simple_animal/mouse,/mob/living/simple_animal/pet/dog/pug,/mob/living/simple_animal/hostile/bear,/mob/living/simple_animal/hostile/poison/bees,/mob/living/simple_animal/hostile/carp) + var/list/valid_animals = list(/mob/living/simple_animal/parrot, /mob/living/simple_animal/butterfly, /mob/living/simple_animal/pet/cat, /mob/living/simple_animal/pet/dog/corgi, /mob/living/simple_animal/crab, /mob/living/simple_animal/pet/fox, /mob/living/simple_animal/hostile/lizard, /mob/living/simple_animal/mouse, /mob/living/simple_animal/pet/dog/pug, /mob/living/simple_animal/hostile/bear, /mob/living/simple_animal/hostile/poison/bees, /mob/living/simple_animal/hostile/carp) for(counter = 1; counter < animals; counter++) var/mobType = pick(valid_animals) new mobType(get_turf(src)) diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index e2d8a64958..b4d3861ea6 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -321,7 +321,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, for(var/obj/I in linked_destroy.contents) for(var/mob/M in I.contents) M.death() - if(istype(I,/obj/item/stack/sheet))//Only deconsturcts one sheet at a time instead of the entire stack + if(istype(I, /obj/item/stack/sheet))//Only deconsturcts one sheet at a time instead of the entire stack var/obj/item/stack/sheet/S = I if(S.amount > 1) S.amount-- diff --git a/code/modules/spells/spell_types/barnyard.dm b/code/modules/spells/spell_types/barnyard.dm index d21b54b070..f026cd1483 100644 --- a/code/modules/spells/spell_types/barnyard.dm +++ b/code/modules/spells/spell_types/barnyard.dm @@ -12,7 +12,7 @@ range = 7 cooldown_min = 30 selection_type = "range" - var/list/compatible_mobs = list(/mob/living/carbon/human,/mob/living/carbon/monkey) + var/list/compatible_mobs = list(/mob/living/carbon/human, /mob/living/carbon/monkey) action_icon_state = "barn" diff --git a/code/modules/spells/spell_types/charge.dm b/code/modules/spells/spell_types/charge.dm index 9cc3e3b5a8..5f5547c281 100644 --- a/code/modules/spells/spell_types/charge.dm +++ b/code/modules/spells/spell_types/charge.dm @@ -55,7 +55,7 @@ I.max_charges = 0 burnt_out = 1 I.charges = I.max_charges - if(istype(item,/obj/item/weapon/gun/magic/wand) && I.max_charges != 0) + if(istype(item, /obj/item/weapon/gun/magic/wand) && I.max_charges != 0) var/obj/item/weapon/gun/magic/W = item W.icon_state = initial(W.icon_state) I.recharge_newshot() @@ -84,7 +84,7 @@ C.maxcharge = 1 burnt_out = 1 C.charge = C.maxcharge - if(istype(C.loc,/obj/item/weapon/gun)) + if(istype(C.loc, /obj/item/weapon/gun)) var/obj/item/weapon/gun/G = C.loc G.process_chamber() item.update_icon() diff --git a/code/modules/spells/spell_types/conjure.dm b/code/modules/spells/spell_types/conjure.dm index 3985328827..bc88dacf7d 100644 --- a/code/modules/spells/spell_types/conjure.dm +++ b/code/modules/spells/spell_types/conjure.dm @@ -28,7 +28,7 @@ var/spawn_place = pick(targets) if(summon_ignore_prev_spawn_points) targets -= spawn_place - if(ispath(summoned_object_type,/turf)) + if(ispath(summoned_object_type, /turf)) var/turf/O = spawn_place var/N = summoned_object_type O.ChangeTurf(N) diff --git a/code/modules/spells/spell_types/dumbfire.dm b/code/modules/spells/spell_types/dumbfire.dm index 6e29b433c2..a028ec36bd 100644 --- a/code/modules/spells/spell_types/dumbfire.dm +++ b/code/modules/spells/spell_types/dumbfire.dm @@ -44,7 +44,7 @@ if(istext(proj_type)) var/projectile_type = text2path(proj_type) projectile = new projectile_type(user) - else if(istype(proj_type,/obj/effect/proc_holder/spell)) + else if(istype(proj_type, /obj/effect/proc_holder/spell)) projectile = new /obj/effect/proc_holder/spell/targeted/trigger(user) var/obj/effect/proc_holder/spell/targeted/trigger/T = projectile T.linked_spells += proj_type diff --git a/code/modules/spells/spell_types/lichdom.dm b/code/modules/spells/spell_types/lichdom.dm index 0442b2c02a..bc5ce48c7b 100644 --- a/code/modules/spells/spell_types/lichdom.dm +++ b/code/modules/spells/spell_types/lichdom.dm @@ -131,7 +131,7 @@ lich.real_name = mind.name mind.transfer_to(lich) mind.grab_ghost(force=TRUE) - lich.hardset_dna(null,null,lich.real_name,null,/datum/species/skeleton) + lich.hardset_dna(null,null,lich.real_name,null, /datum/species/skeleton) to_chat(lich, "Your bones clatter and shutter as you are pulled back into this world!") var/turf/body_turf = get_turf(old_body) lich.Knockdown(200 + 200*resurrections) diff --git a/code/modules/spells/spell_types/projectile.dm b/code/modules/spells/spell_types/projectile.dm index 74afd90ef2..1a682639eb 100644 --- a/code/modules/spells/spell_types/projectile.dm +++ b/code/modules/spells/spell_types/projectile.dm @@ -36,7 +36,7 @@ if(istext(proj_type)) var/projectile_type = text2path(proj_type) projectile = new projectile_type(user) - if(istype(proj_type,/obj/effect/proc_holder/spell)) + if(istype(proj_type, /obj/effect/proc_holder/spell)) projectile = new /obj/effect/proc_holder/spell/targeted/trigger(user) var/obj/effect/proc_holder/spell/targeted/trigger/T = projectile T.linked_spells += proj_type diff --git a/code/modules/spells/spell_types/summonitem.dm b/code/modules/spells/spell_types/summonitem.dm index 90c7730f5a..74490fea28 100644 --- a/code/modules/spells/spell_types/summonitem.dm +++ b/code/modules/spells/spell_types/summonitem.dm @@ -86,7 +86,7 @@ break else - if(istype(item_to_retrieve.loc,/obj/machinery/portable_atmospherics/)) //Edge cases for moved machinery + if(istype(item_to_retrieve.loc, /obj/machinery/portable_atmospherics/)) //Edge cases for moved machinery var/obj/machinery/portable_atmospherics/P = item_to_retrieve.loc P.disconnect() P.update_icon() diff --git a/code/modules/station_goals/bsa.dm b/code/modules/station_goals/bsa.dm index 9ce3d28070..074c206c1f 100644 --- a/code/modules/station_goals/bsa.dm +++ b/code/modules/station_goals/bsa.dm @@ -73,11 +73,11 @@ if(istype(W, /obj/item/device/multitool)) var/obj/item/device/multitool/M = W if(M.buffer) - if(istype(M.buffer,/obj/machinery/bsa/back)) + if(istype(M.buffer, /obj/machinery/bsa/back)) back = M.buffer M.buffer = null to_chat(user, "You link [src] with [back].") - else if(istype(M.buffer,/obj/machinery/bsa/front)) + else if(istype(M.buffer, /obj/machinery/bsa/front)) front = M.buffer M.buffer = null to_chat(user, "You link [src] with [front].") @@ -291,17 +291,17 @@ /obj/machinery/computer/bsa_control/proc/get_target_name() - if(istype(target,/area)) + if(istype(target, /area)) var/area/A = target return A.name - else if(istype(target,/obj/item/device/gps)) + else if(istype(target, /obj/item/device/gps)) var/obj/item/device/gps/G = target return G.gpstag /obj/machinery/computer/bsa_control/proc/get_impact_turf() - if(istype(target,/area)) + if(istype(target, /area)) return pick(get_area_turfs(target)) - else if(istype(target,/obj/item/device/gps)) + else if(istype(target, /obj/item/device/gps)) return get_turf(target) /obj/machinery/computer/bsa_control/proc/fire(mob/user) diff --git a/code/modules/station_goals/dna_vault.dm b/code/modules/station_goals/dna_vault.dm index ddcfaf08d1..55ae1cc2b0 100644 --- a/code/modules/station_goals/dna_vault.dm +++ b/code/modules/station_goals/dna_vault.dm @@ -80,7 +80,7 @@ if(!proximity || !target) return //tray plants - if(istype(target,/obj/machinery/hydroponics)) + if(istype(target, /obj/machinery/hydroponics)) var/obj/machinery/hydroponics/H = target if(!H.myseed) return @@ -94,7 +94,7 @@ to_chat(user, "Plant data added to local storage.") //animals - var/static/list/non_simple_animals = typecacheof(list(/mob/living/carbon/monkey,/mob/living/carbon/alien)) + var/static/list/non_simple_animals = typecacheof(list(/mob/living/carbon/monkey, /mob/living/carbon/alien)) if(isanimal(target) || is_type_in_typecache(target,non_simple_animals)) if(isanimal(target)) var/mob/living/simple_animal/A = target diff --git a/code/modules/surgery/organs/heart.dm b/code/modules/surgery/organs/heart.dm index 9c19826fc5..dc1a4d0f64 100644 --- a/code/modules/surgery/organs/heart.dm +++ b/code/modules/surgery/organs/heart.dm @@ -117,7 +117,7 @@ //You are now brea- pumping blood manually /datum/action/item_action/organ_action/cursed_heart/Trigger() . = ..() - if(. && istype(target,/obj/item/organ/heart/cursed)) + if(. && istype(target, /obj/item/organ/heart/cursed)) var/obj/item/organ/heart/cursed/cursed_heart = target if(world.time < (cursed_heart.last_pump + (cursed_heart.pump_delay-10))) //no spam diff --git a/code/modules/uplink/uplink_item.dm b/code/modules/uplink/uplink_item.dm index 30318a64c2..7b455b7d80 100644 --- a/code/modules/uplink/uplink_item.dm +++ b/code/modules/uplink/uplink_item.dm @@ -647,7 +647,7 @@ GLOBAL_LIST_EMPTY(uplink_items) // Global list so we only initialize this once. falls asleep, they will be able to move and act." item = /obj/item/weapon/pen/sleepy cost = 4 - exclude_modes = list(/datum/game_mode/nuclear,/datum/game_mode/gang) + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/gang) /datum/uplink_item/stealthy_weapons/soap name = "Syndicate Soap" From 88bef4f0c0aca1139eea84dfa282308c4ac25b29 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 18 Jul 2017 09:47:52 -0500 Subject: [PATCH 002/219] Unwrenching clockwork structures no longer damages them --- .../gamemodes/clock_cult/clock_structure.dm | 11 ++--------- .../clock_structures/ocular_warden.dm | 14 +++++--------- strings/tips.txt.rej | 19 +++++++++++++++++++ 3 files changed, 26 insertions(+), 18 deletions(-) create mode 100644 strings/tips.txt.rej diff --git a/code/game/gamemodes/clock_cult/clock_structure.dm b/code/game/gamemodes/clock_cult/clock_structure.dm index 7c5064127a..3771be0271 100644 --- a/code/game/gamemodes/clock_cult/clock_structure.dm +++ b/code/game/gamemodes/clock_cult/clock_structure.dm @@ -87,13 +87,6 @@ . *= min(max_integrity/max(obj_integrity, 1), 4) . = round(., 0.01) -/obj/structure/destructible/clockwork/can_be_unfasten_wrench(mob/user, silent) - if(anchored && obj_integrity <= round(max_integrity * 0.25, 1)) - if(!silent) - to_chat(user, "[src] is too damaged to unsecure!") - return FAILED_UNFASTEN - return ..() - /obj/structure/destructible/clockwork/attack_ai(mob/user) if(is_servant_of_ratvar(user)) attack_hand(user) @@ -108,7 +101,7 @@ /obj/structure/destructible/clockwork/attackby(obj/item/I, mob/user, params) if(is_servant_of_ratvar(user) && istype(I, /obj/item/weapon/wrench) && unanchored_icon) if(default_unfasten_wrench(user, I, 50) == SUCCESSFUL_UNFASTEN) - update_anchored(user, TRUE) + update_anchored(user) return 1 return ..() @@ -125,7 +118,7 @@ if(do_damage) playsound(src, break_sound, 10 * get_efficiency_mod(TRUE), 1) take_damage(round(max_integrity * 0.25, 1), BRUTE) - to_chat(user, "As you unsecure [src] from the floor, you see cracks appear in its surface!") + to_chat(user, "As you unsecure [src] from the floor, you see cracks appear in its surface!") /obj/structure/destructible/clockwork/emp_act(severity) if(anchored && unanchored_icon) diff --git a/code/game/gamemodes/clock_cult/clock_structures/ocular_warden.dm b/code/game/gamemodes/clock_cult/clock_structures/ocular_warden.dm index bd315353b9..5e939ed525 100644 --- a/code/game/gamemodes/clock_cult/clock_structures/ocular_warden.dm +++ b/code/game/gamemodes/clock_cult/clock_structures/ocular_warden.dm @@ -32,16 +32,12 @@ return 25 /obj/structure/destructible/clockwork/ocular_warden/can_be_unfasten_wrench(mob/user, silent) - if(anchored) - if(obj_integrity <= max_integrity * 0.25) - if(!silent) - to_chat(user, "[src] is too damaged to unsecure!") - return FAILED_UNFASTEN - else + if(!anchored) for(var/obj/structure/destructible/clockwork/ocular_warden/W in orange(OCULAR_WARDEN_EXCLUSION_RANGE, src)) - if(!silent) - to_chat(user, "You sense another ocular warden too near this location. Activating this one this close would cause them to fight.") - return FAILED_UNFASTEN + if(W.anchored) + if(!silent) + to_chat(user, "You sense another ocular warden too near this location. Activating this one this close would cause them to fight.") + return FAILED_UNFASTEN return SUCCESSFUL_UNFASTEN /obj/structure/destructible/clockwork/ocular_warden/ratvar_act() diff --git a/strings/tips.txt.rej b/strings/tips.txt.rej new file mode 100644 index 0000000000..42357417ac --- /dev/null +++ b/strings/tips.txt.rej @@ -0,0 +1,19 @@ +diff a/strings/tips.txt b/strings/tips.txt (rejected hunks) +@@ -161,7 +161,7 @@ As a Servant, the Judicial Visor is an effective defensive combat tool in small + As a Servant, making, and protecting, Tinkerer's Caches is extremely important, as caches are required to unlock scripture and share components. + As a Servant, Ocular Wardens, while fragile, do very high, rapid damage to a target non-Servant that can see them and will even attack mechs that contain heretics. Place them behind objects that don't block vision to get the most use out of them. + As a Servant, Clockwork Structures that require power will draw power from the APC if they cannot find a different source of power, and most power-using Structures will rapidly drain the APC. +-As a Servant, you can repair Servant cyborgs and Clockwork Structures with a Replica Fabricator at a rate of 25W power to 1 health. ++As a Servant, you can repair Servant cyborgs and Clockwork Structures with a Replica Fabricator at a rate of 25W power to 1 health. Damaged Clockwork Structures are less efficient, so don't forget to repair them! + As a Servant, securing a reliable source of component generation is high-priority, as simply handing out slabs will slowly become inefficient. Try placing Tinkerer's Caches near clockwork walls or creating and powering Tinkerer's Daemons. + As a Servant, only a single held Clockwork Slab will generate components, no matter how many you're holding. In addition, slabs will generate components slower with large amounts of Servants; you can see the exact time with Recollection. + As a Servant, you can use Geis to easily convert single targets, as it binds them in place, preventing escape unless they react quickly enough. Having another Servant apply Geis to someone already bound will prevent their escape and mute them, even if they reacted quickly. +@@ -174,7 +174,7 @@ As a Servant, creating and activating the Gateway to the Celestial Derelict is y + As a Servant, you can impale human targets with a Ratvarian Spear by pulling them, then attacking them. This does massive damage and stuns them, and should effectively win the fight. + As a Servant, Sentinel's Compromise can instantly return you or another Servant to a fighting state by converting half of all their brute, burn, and oxygen damage to toxin, effectively halving the damage they have. Clockwork Floors will also rapidly heal toxin damage in Servants, allowing the Compromise more effectiveness. + As a Servant, Belligerent and Taunting Tirade are extremely powerful for disabling and disrupting large groups of enemies, though they render you somewhat vulnerable, as Belligerent requires that you stand still, and Taunting Tirade makes you extremely obvious. +-As a Servant, you can unwrench Clockwork Structures, but doing so will damage them, severely weakening them until repaired with a Replica Fabricator or Mending Mantra. Damage from other sources will also similarly weaken structures. ++As a Servant, you can unwrench Clockwork Structures to move them around. + You can deconvert Cultists of Nar-Sie and Servants of Ratvar by feeding them large amounts of holy water. + As a Wizard, you can turn people to stone, then animate the resulting statue with a staff of animation to create an extremely powerful minion, for all of 5 minutes at least. + As a Wizard, the fireball spell performs very poorly at close range, as it can easily catch you in the blast. It is best used as a form of artillery down long hallways. From 1ebdf19cdba24942436df976fc4d75a863af96a4 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 18 Jul 2017 09:59:09 -0500 Subject: [PATCH 003/219] Refactor Lung Handling --- code/__DEFINES/atmospherics.dm | 4 +- code/__DEFINES/combat.dm.rej | 9 + code/_onclick/hud/alert.dm | 24 ++- code/modules/flufftext/Hallucination.dm | 10 +- .../mob/living/carbon/damage_procs.dm.rej | 10 + code/modules/mob/living/carbon/human/life.dm | 4 +- .../mob/living/carbon/human/species.dm | 2 + code/modules/mob/living/carbon/life.dm | 13 +- code/modules/mob/living/damage_procs.dm.rej | 41 +++++ code/modules/mob/living/living.dm | 2 +- code/modules/surgery/organs/lungs.dm | 174 ++++++++++++------ 11 files changed, 211 insertions(+), 82 deletions(-) create mode 100644 code/__DEFINES/combat.dm.rej create mode 100644 code/modules/mob/living/carbon/damage_procs.dm.rej create mode 100644 code/modules/mob/living/damage_procs.dm.rej diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm index 5ce803fa3c..a79850b04f 100644 --- a/code/__DEFINES/atmospherics.dm +++ b/code/__DEFINES/atmospherics.dm @@ -67,8 +67,8 @@ #define PLASMA_MINIMUM_OXYGEN_NEEDED 2 #define PLASMA_MINIMUM_OXYGEN_PLASMA_RATIO 30 #define PLASMA_OXYGEN_FULLBURN 10 -#define MIN_PLASMA_DAMAGE 1 -#define MAX_PLASMA_DAMAGE 10 +#define MIN_TOXIC_GAS_DAMAGE 1 +#define MAX_TOXIC_GAS_DAMAGE 10 #define MOLES_PLASMA_VISIBLE 0.5 //Moles in a standard cell after which plasma is visible //Plasma fusion properties #define PLASMA_BINDING_ENERGY 3000000 diff --git a/code/__DEFINES/combat.dm.rej b/code/__DEFINES/combat.dm.rej new file mode 100644 index 0000000000..b765917e85 --- /dev/null +++ b/code/__DEFINES/combat.dm.rej @@ -0,0 +1,9 @@ +diff a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm (rejected hunks) +@@ -9,6 +9,7 @@ + #define OXY "oxy" + #define CLONE "clone" + #define STAMINA "stamina" ++#define BRAIN "brain" + + //bitflag damage defines used for suicide_act + #define BRUTELOSS 1 diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index b792f4399e..b944f32754 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -109,17 +109,26 @@ //Gas alerts -/obj/screen/alert/oxy +/obj/screen/alert/not_enough_oxy name = "Choking (No O2)" - desc = "You're not getting enough oxygen. Find some good air before you pass out! \ -The box in your backpack has an oxygen tank and breath mask in it." - icon_state = "oxy" + desc = "You're not getting enough oxygen. Find some good air before you pass out! The box in your backpack has an oxygen tank and breath mask in it." + icon_state = "not_enough_oxy" /obj/screen/alert/too_much_oxy name = "Choking (O2)" desc = "There's too much oxygen in the air, and you're breathing it in! Find some good air before you pass out!" icon_state = "too_much_oxy" +/obj/screen/alert/not_enough_nitro + name = "Choking (No N2)" + desc = "You're not getting enough nitrogen. Find some good air before you pass out!" + icon_state = "not_enough_nitro" + +/obj/screen/alert/too_much_nitro + name = "Choking (N2)" + desc = "There's too much nitrogen in the air, and you're breathing it in! Find some good air before you pass out!" + icon_state = "too_much_nitro" + /obj/screen/alert/not_enough_co2 name = "Choking (No CO2)" desc = "You're not getting enough carbon dioxide. Find some good air before you pass out!" @@ -135,11 +144,10 @@ The box in your backpack has an oxygen tank and breath mask in it." desc = "You're not getting enough plasma. Find some good air before you pass out!" icon_state = "not_enough_tox" -/obj/screen/alert/tox_in_air +/obj/screen/alert/too_much_tox name = "Choking (Plasma)" - desc = "There's highly flammable, toxic plasma in the air and you're breathing it in. Find some fresh air. \ -The box in your backpack has an oxygen tank and gas mask in it." - icon_state = "tox_in_air" + desc = "There's highly flammable, toxic plasma in the air and you're breathing it in. Find some fresh air. The box in your backpack has an oxygen tank and gas mask in it." + icon_state = "too_much_tox" //End gas alerts diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 0b1187e9bc..32e3d1b2f5 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -874,12 +874,12 @@ Gunshots/explosions/opening doors/less rare audio (done) hal_screwyhud = 0 if("fake_alert") - var/alert_type = pick("oxy","not_enough_tox","not_enough_co2","too_much_oxy","too_much_co2","tox_in_air","newlaw","nutrition","charge","weightless","fire","locked","hacked","temp","pressure") + var/alert_type = pick("not_enough_oxy","not_enough_tox","not_enough_co2","too_much_oxy","too_much_co2","too_much_tox","newlaw","nutrition","charge","weightless","fire","locked","hacked","temp","pressure") if(specific) alert_type = specific switch(alert_type) - if("oxy") - throw_alert("oxy", /obj/screen/alert/oxy, override = TRUE) + if("not_enough_oxy") + throw_alert("not_enough_oxy", /obj/screen/alert/not_enough_oxy, override = TRUE) if("not_enough_tox") throw_alert("not_enough_tox", /obj/screen/alert/not_enough_tox, override = TRUE) if("not_enough_co2") @@ -888,8 +888,8 @@ Gunshots/explosions/opening doors/less rare audio (done) throw_alert("too_much_oxy", /obj/screen/alert/too_much_oxy, override = TRUE) if("too_much_co2") throw_alert("too_much_co2", /obj/screen/alert/too_much_co2, override = TRUE) - if("tox_in_air") - throw_alert("tox_in_air", /obj/screen/alert/tox_in_air, override = TRUE) + if("too_much_tox") + throw_alert("too_much_tox", /obj/screen/alert/too_much_tox, override = TRUE) if("nutrition") if(prob(50)) throw_alert("nutrition", /obj/screen/alert/fat, override = TRUE) diff --git a/code/modules/mob/living/carbon/damage_procs.dm.rej b/code/modules/mob/living/carbon/damage_procs.dm.rej new file mode 100644 index 0000000000..9819e18e18 --- /dev/null +++ b/code/modules/mob/living/carbon/damage_procs.dm.rej @@ -0,0 +1,10 @@ +diff a/code/modules/mob/living/carbon/damage_procs.dm b/code/modules/mob/living/carbon/damage_procs.dm (rejected hunks) +@@ -36,6 +36,8 @@ + adjustCloneLoss(damage * hit_percent) + if(STAMINA) + adjustStaminaLoss(damage * hit_percent) ++ if(BRAIN) ++ adjustBrainLoss(damage * hit_percent) + return 1 + + diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index cefb77e248..b8e5a06d59 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -103,11 +103,13 @@ var/datum/species/S = dna.species if(S.breathid == "o2") - throw_alert("oxy", /obj/screen/alert/oxy) + throw_alert("not_enough_oxy", /obj/screen/alert/not_enough_oxy) else if(S.breathid == "tox") throw_alert("not_enough_tox", /obj/screen/alert/not_enough_tox) else if(S.breathid == "co2") throw_alert("not_enough_co2", /obj/screen/alert/not_enough_co2) + else if(S.breathid == "n2") + throw_alert("not_enough_nitro", /obj/screen/alert/not_enough_nitro) return 0 else diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 4844a4e804..36611b5e13 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1502,6 +1502,8 @@ H.adjustCloneLoss(damage * hit_percent) if(STAMINA) H.adjustStaminaLoss(damage * hit_percent) + if(BRAIN) + H.adjustBrainLoss(damage * hit_percent) return 1 /datum/species/proc/on_hit(obj/item/projectile/P, mob/living/carbon/human/H) diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 1d60ae4982..8c20c12b80 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -113,7 +113,7 @@ return adjustOxyLoss(1) failed_last_breath = 1 - throw_alert("oxy", /obj/screen/alert/oxy) + throw_alert("not_enough_oxy", /obj/screen/alert/not_enough_oxy) return 0 var/safe_oxy_min = 16 @@ -144,14 +144,14 @@ else adjustOxyLoss(3) failed_last_breath = 1 - throw_alert("oxy", /obj/screen/alert/oxy) + throw_alert("not_enough_oxy", /obj/screen/alert/not_enough_oxy) else //Enough oxygen failed_last_breath = 0 if(oxyloss) adjustOxyLoss(-5) oxygen_used = breath_gases["o2"][MOLES] - clear_alert("oxy") + clear_alert("not_enough_oxy") breath_gases["o2"][MOLES] -= oxygen_used breath_gases["co2"][MOLES] += oxygen_used @@ -174,11 +174,10 @@ //TOXINS/PLASMA if(Toxins_partialpressure > safe_tox_max) var/ratio = (breath_gases["plasma"][MOLES]/safe_tox_max) * 10 - if(reagents) - reagents.add_reagent("plasma", Clamp(ratio, MIN_PLASMA_DAMAGE, MAX_PLASMA_DAMAGE)) - throw_alert("tox_in_air", /obj/screen/alert/tox_in_air) + adjustToxLoss(Clamp(ratio, MIN_TOXIC_GAS_DAMAGE, MAX_TOXIC_GAS_DAMAGE)) + throw_alert("too_much_tox", /obj/screen/alert/too_much_tox) else - clear_alert("tox_in_air") + clear_alert("too_much_tox") //NITROUS OXIDE if(breath_gases["n2o"]) diff --git a/code/modules/mob/living/damage_procs.dm.rej b/code/modules/mob/living/damage_procs.dm.rej new file mode 100644 index 0000000000..375db36138 --- /dev/null +++ b/code/modules/mob/living/damage_procs.dm.rej @@ -0,0 +1,41 @@ +diff a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm (rejected hunks) +@@ -25,6 +25,8 @@ + adjustCloneLoss(damage * hit_percent) + if(STAMINA) + adjustStaminaLoss(damage * hit_percent) ++ if(BRAIN) ++ adjustBrainLoss(damage * hit_percent) + return 1 + + /mob/living/proc/apply_damage_type(damage = 0, damagetype = BRUTE) //like apply damage except it always uses the damage procs +@@ -41,6 +43,8 @@ + return adjustCloneLoss(damage) + if(STAMINA) + return adjustStaminaLoss(damage) ++ if(BRAIN) ++ return adjustBrainLoss(damage) + + /mob/living/proc/get_damage_amount(damagetype = BRUTE) + switch(damagetype) +@@ -56,9 +60,11 @@ + return getCloneLoss() + if(STAMINA) + return getStaminaLoss() ++ if(BRAIN) ++ return getBrainLoss() + + +-/mob/living/proc/apply_damages(brute = 0, burn = 0, tox = 0, oxy = 0, clone = 0, def_zone = null, blocked = FALSE, stamina = 0) ++/mob/living/proc/apply_damages(brute = 0, burn = 0, tox = 0, oxy = 0, clone = 0, def_zone = null, blocked = FALSE, stamina = 0, brain = 0) + if(blocked >= 100) + return 0 + if(brute) +@@ -73,6 +79,8 @@ + apply_damage(clone, CLONE, def_zone, blocked) + if(stamina) + apply_damage(stamina, STAMINA, def_zone, blocked) ++ if(brain) ++ apply_damage(brain, BRAIN, def_zone, blocked) + return 1 + + diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 829b031d21..6510b46bf3 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -357,7 +357,7 @@ updatehealth() //then we check if the mob should wake up. update_canmove() update_sight() - clear_alert("oxy") + clear_alert("not_enough_oxy") reload_fullscreen() . = 1 if(mind) diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm index 4a529409c9..f95e2cd996 100644 --- a/code/modules/surgery/organs/lungs.dm +++ b/code/modules/surgery/organs/lungs.dm @@ -15,13 +15,13 @@ slot = "lungs" gender = PLURAL w_class = WEIGHT_CLASS_NORMAL - var/list/breathlevels = list("safe_oxygen_min" = 16,"safe_oxygen_max" = 0,"safe_co2_min" = 0,"safe_co2_max" = 10, - "safe_toxins_min" = 0,"safe_toxins_max" = 0.05,"SA_para_min" = 1,"SA_sleep_min" = 5,"BZ_trip_balls_min" = 1) //Breath damage var/safe_oxygen_min = 16 // Minimum safe partial pressure of O2, in kPa var/safe_oxygen_max = 0 + var/safe_nitro_min = 0 + var/safe_nitro_max = 0 var/safe_co2_min = 0 var/safe_co2_max = 10 // Yes it's an arbitrary value who cares? var/safe_toxins_min = 0 @@ -30,16 +30,41 @@ var/SA_sleep_min = 5 //Sleeping agent var/BZ_trip_balls_min = 1 //BZ gas. - var/oxy_breath_dam_min = 1 - var/oxy_breath_dam_max = 10 - var/co2_breath_dam_min = 1 - var/co2_breath_dam_max = 10 - var/tox_breath_dam_min = MIN_PLASMA_DAMAGE - var/tox_breath_dam_max = MAX_PLASMA_DAMAGE + var/oxy_breath_dam_min = MIN_TOXIC_GAS_DAMAGE + var/oxy_breath_dam_max = MAX_TOXIC_GAS_DAMAGE + var/oxy_damage_type = OXY + var/nitro_breath_dam_min = MIN_TOXIC_GAS_DAMAGE + var/nitro_breath_dam_max = MAX_TOXIC_GAS_DAMAGE + var/nitro_damage_type = OXY + var/co2_breath_dam_min = MIN_TOXIC_GAS_DAMAGE + var/co2_breath_dam_max = MAX_TOXIC_GAS_DAMAGE + var/co2_damage_type = OXY + var/tox_breath_dam_min = MIN_TOXIC_GAS_DAMAGE + var/tox_breath_dam_max = MAX_TOXIC_GAS_DAMAGE + var/tox_damage_type = TOX + + var/cold_message = "your face freezing and an icicle forming" + var/cold_level_1_threshold = 260 + var/cold_level_2_threshold = 200 + var/cold_level_3_threshold = 120 + var/cold_level_1_damage = COLD_GAS_DAMAGE_LEVEL_1 //Keep in mind with gas damage levels, you can set these to be negative, if you want someone to heal, instead. + var/cold_level_2_damage = COLD_GAS_DAMAGE_LEVEL_2 + var/cold_level_3_damage = COLD_GAS_DAMAGE_LEVEL_3 + var/cold_damage_type = BURN + + var/hot_message = "your face burning and a searing heat" + var/heat_level_1_threshold = 360 + var/heat_level_2_threshold = 400 + var/heat_level_3_threshold = 1000 + var/heat_level_1_damage = HEAT_GAS_DAMAGE_LEVEL_1 + var/heat_level_2_damage = HEAT_GAS_DAMAGE_LEVEL_2 + var/heat_level_3_damage = HEAT_GAS_DAMAGE_LEVEL_3 + var/heat_damage_type = BURN + + var/crit_stabilizing_reagent = "epinephrine" - -/obj/item/organ/lungs/proc/check_breath(datum/gas_mixture/breath, var/mob/living/carbon/human/H) +/obj/item/organ/lungs/proc/check_breath(datum/gas_mixture/breath, mob/living/carbon/human/H) if((H.status_flags & GODMODE)) return @@ -48,30 +73,33 @@ species_traits = H.dna.species.species_traits if(!breath || (breath.total_moles() == 0)) - if(H.reagents.has_reagent("epinephrine")) + if(H.reagents.has_reagent(crit_stabilizing_reagent)) return if(H.health >= HEALTH_THRESHOLD_CRIT) H.adjustOxyLoss(HUMAN_MAX_OXYLOSS) else if(!(NOCRITDAMAGE in species_traits)) H.adjustOxyLoss(HUMAN_CRIT_MAX_OXYLOSS) - H.failed_last_breath = 1 + H.failed_last_breath = TRUE if(safe_oxygen_min) - H.throw_alert("oxy", /obj/screen/alert/oxy) + H.throw_alert("not_enough_oxy", /obj/screen/alert/not_enough_oxy) else if(safe_toxins_min) H.throw_alert("not_enough_tox", /obj/screen/alert/not_enough_tox) else if(safe_co2_min) H.throw_alert("not_enough_co2", /obj/screen/alert/not_enough_co2) - return 0 + else if(safe_nitro_min) + H.throw_alert("not_enough_nitro", /obj/screen/alert/not_enough_nitro) + return FALSE var/gas_breathed = 0 var/list/breath_gases = breath.gases - breath.assert_gases("o2", "plasma", "co2", "n2o", "bz") + breath.assert_gases("o2", "n2", "plasma", "co2", "n2o", "bz") //Partial pressures in our breath var/O2_pp = breath.get_breath_partial_pressure(breath_gases["o2"][MOLES]) + var/N2_pp = breath.get_breath_partial_pressure(breath_gases["n2"][MOLES]) var/Toxins_pp = breath.get_breath_partial_pressure(breath_gases["plasma"][MOLES]) var/CO2_pp = breath.get_breath_partial_pressure(breath_gases["co2"][MOLES]) @@ -82,7 +110,7 @@ if(safe_oxygen_max) if(O2_pp > safe_oxygen_max) var/ratio = (breath_gases["o2"][MOLES]/safe_oxygen_max) * 10 - H.adjustOxyLoss(Clamp(ratio,oxy_breath_dam_min,oxy_breath_dam_max)) + H.apply_damage_type(Clamp(ratio, oxy_breath_dam_min, oxy_breath_dam_max), oxy_damage_type) H.throw_alert("too_much_oxy", /obj/screen/alert/too_much_oxy) else H.clear_alert("too_much_oxy") @@ -90,20 +118,45 @@ //Too little oxygen! if(safe_oxygen_min) if(O2_pp < safe_oxygen_min) - gas_breathed = handle_too_little_breath(H,O2_pp,safe_oxygen_min,breath_gases["o2"][MOLES]) - H.throw_alert("oxy", /obj/screen/alert/oxy) + gas_breathed = handle_too_little_breath(H, O2_pp, safe_oxygen_min, breath_gases["o2"][MOLES]) + H.throw_alert("not_enough_oxy", /obj/screen/alert/not_enough_oxy) else - H.failed_last_breath = 0 - if(H.getOxyLoss()) - H.adjustOxyLoss(-5) + H.failed_last_breath = FALSE + H.adjustOxyLoss(-5) gas_breathed = breath_gases["o2"][MOLES] - H.clear_alert("oxy") + H.clear_alert("not_enough_oxy") //Exhale breath_gases["o2"][MOLES] -= gas_breathed breath_gases["co2"][MOLES] += gas_breathed gas_breathed = 0 + //-- Nitrogen --// + + //Too much nitrogen! + if(safe_nitro_max) + if(N2_pp > safe_nitro_max) + var/ratio = (breath_gases["n2"][MOLES]/safe_nitro_max) * 10 + H.apply_damage_type(Clamp(ratio, nitro_breath_dam_min, nitro_breath_dam_max), nitro_damage_type) + H.throw_alert("too_much_nitro", /obj/screen/alert/too_much_nitro) + else + H.clear_alert("too_much_nitro") + + //Too little nitrogen! + if(safe_nitro_min) + if(N2_pp < safe_nitro_min) + gas_breathed = handle_too_little_breath(H, N2_pp, safe_nitro_min, breath_gases["n2"][MOLES]) + H.throw_alert("nitro", /obj/screen/alert/not_enough_nitro) + else + H.failed_last_breath = FALSE + H.adjustOxyLoss(-5) + gas_breathed = breath_gases["n2"][MOLES] + H.clear_alert("nitro") + + //Exhale + breath_gases["n2"][MOLES] -= gas_breathed + breath_gases["co2"][MOLES] += gas_breathed + gas_breathed = 0 //-- CO2 --// @@ -114,9 +167,9 @@ H.co2overloadtime = world.time else if(world.time - H.co2overloadtime > 120) H.Unconscious(60) - H.adjustOxyLoss(3) // Lets hurt em a little, let them know we mean business + H.apply_damage_type(3, co2_damage_type) // Lets hurt em a little, let them know we mean business if(world.time - H.co2overloadtime > 300) // They've been in here 30s now, lets start to kill them for their own good! - H.adjustOxyLoss(8) + H.apply_damage_type(8, co2_damage_type) H.throw_alert("too_much_co2", /obj/screen/alert/too_much_co2) if(prob(20)) // Lets give them some chance to know somethings not right though I guess. H.emote("cough") @@ -126,12 +179,12 @@ H.clear_alert("too_much_co2") //Too little CO2! - if(breathlevels["safe_co2_min"]) + if(safe_co2_min) if(CO2_pp < safe_co2_min) - gas_breathed = handle_too_little_breath(H,CO2_pp, safe_co2_min,breath_gases["co2"][MOLES]) + gas_breathed = handle_too_little_breath(H, CO2_pp, safe_co2_min, breath_gases["co2"][MOLES]) H.throw_alert("not_enough_co2", /obj/screen/alert/not_enough_co2) else - H.failed_last_breath = 0 + H.failed_last_breath = FALSE H.adjustOxyLoss(-5) gas_breathed = breath_gases["co2"][MOLES] H.clear_alert("not_enough_co2") @@ -148,20 +201,19 @@ if(safe_toxins_max) if(Toxins_pp > safe_toxins_max) var/ratio = (breath_gases["plasma"][MOLES]/safe_toxins_max) * 10 - if(H.reagents) - H.reagents.add_reagent("plasma", Clamp(ratio, tox_breath_dam_min, tox_breath_dam_max)) - H.throw_alert("tox_in_air", /obj/screen/alert/tox_in_air) + H.apply_damage_type(Clamp(ratio, tox_breath_dam_min, tox_breath_dam_max), tox_damage_type) + H.throw_alert("too_much_tox", /obj/screen/alert/too_much_tox) else - H.clear_alert("tox_in_air") + H.clear_alert("too_much_tox") //Too little toxins! if(safe_toxins_min) if(Toxins_pp < safe_toxins_min) - gas_breathed = handle_too_little_breath(H,Toxins_pp, safe_toxins_min, breath_gases["plasma"][MOLES]) + gas_breathed = handle_too_little_breath(H, Toxins_pp, safe_toxins_min, breath_gases["plasma"][MOLES]) H.throw_alert("not_enough_tox", /obj/screen/alert/not_enough_tox) else - H.failed_last_breath = 0 + H.failed_last_breath = FALSE H.adjustOxyLoss(-5) gas_breathed = breath_gases["plasma"][MOLES] H.clear_alert("not_enough_tox") @@ -199,50 +251,56 @@ handle_breath_temperature(breath, H) breath.garbage_collect() - return 1 + return TRUE -/obj/item/organ/lungs/proc/handle_too_little_breath(mob/living/carbon/human/H = null,breath_pp = 0, safe_breath_min = 0, true_pp = 0) +/obj/item/organ/lungs/proc/handle_too_little_breath(mob/living/carbon/human/H = null, breath_pp = 0, safe_breath_min = 0, true_pp = 0) . = 0 if(!H || !safe_breath_min) //the other args are either: Ok being 0 or Specifically handled. - return 0 + return FALSE if(prob(20)) H.emote("gasp") if(breath_pp > 0) var/ratio = safe_breath_min/breath_pp H.adjustOxyLoss(min(5*ratio, HUMAN_MAX_OXYLOSS)) // Don't fuck them up too fast (space only does HUMAN_MAX_OXYLOSS after all! - H.failed_last_breath = 1 + H.failed_last_breath = TRUE . = true_pp*ratio/6 else H.adjustOxyLoss(HUMAN_MAX_OXYLOSS) - H.failed_last_breath = 1 + H.failed_last_breath = TRUE /obj/item/organ/lungs/proc/handle_breath_temperature(datum/gas_mixture/breath, mob/living/carbon/human/H) // called by human/life, handles temperatures - if(abs(310.15 - breath.temperature) > 50) + var/breath_temperature = breath.temperature - var/species_traits = list() - if(H && H.dna && H.dna.species && H.dna.species.species_traits) - species_traits = H.dna.species.species_traits + var/species_traits = list() + if(H && H.dna && H.dna.species && H.dna.species.species_traits) + species_traits = H.dna.species.species_traits - if(!(GLOB.mutations_list[COLDRES] in H.dna.mutations) && !(RESISTCOLD in species_traits)) // COLD DAMAGE - switch(breath.temperature) - if(-INFINITY to 120) - H.apply_damage(COLD_GAS_DAMAGE_LEVEL_3, BURN, "head") - if(120 to 200) - H.apply_damage(COLD_GAS_DAMAGE_LEVEL_2, BURN, "head") - if(200 to 260) - H.apply_damage(COLD_GAS_DAMAGE_LEVEL_1, BURN, "head") + if(!(GLOB.mutations_list[COLDRES] in H.dna.mutations) && !(RESISTCOLD in species_traits)) // COLD DAMAGE + var/cold_modifier = H.dna.species.coldmod + if(breath_temperature < cold_level_3_threshold) + H.apply_damage_type(cold_level_3_damage*cold_modifier, cold_damage_type) + if(breath_temperature > cold_level_3_threshold && breath_temperature < cold_level_2_threshold) + H.apply_damage_type(cold_level_2_damage*cold_modifier, cold_damage_type) + if(breath_temperature > cold_level_2_threshold && breath_temperature < cold_level_1_threshold) + H.apply_damage_type(cold_level_1_damage*cold_modifier, cold_damage_type) + if(breath_temperature < cold_level_1_threshold) + if(prob(20)) + to_chat(H, "You feel [cold_message] in your [name]!") - if(!(RESISTHOT in species_traits)) // HEAT DAMAGE - switch(breath.temperature) - if(360 to 400) - H.apply_damage(HEAT_GAS_DAMAGE_LEVEL_1, BURN, "head") - if(400 to 1000) - H.apply_damage(HEAT_GAS_DAMAGE_LEVEL_2, BURN, "head") - if(1000 to INFINITY) - H.apply_damage(HEAT_GAS_DAMAGE_LEVEL_3, BURN, "head") + if(!(RESISTHOT in species_traits)) // HEAT DAMAGE + var/heat_modifier = H.dna.species.heatmod + if(breath_temperature > heat_level_1_threshold && breath_temperature < heat_level_2_threshold) + H.apply_damage_type(heat_level_1_damage*heat_modifier, heat_damage_type) + if(breath_temperature > heat_level_2_threshold && breath_temperature < heat_level_3_threshold) + H.apply_damage_type(heat_level_2_damage*heat_modifier, heat_damage_type) + if(breath_temperature > heat_level_3_threshold) + H.apply_damage_type(heat_level_3_damage*heat_modifier, heat_damage_type) + if(breath_temperature > heat_level_1_threshold) + if(prob(20)) + to_chat(H, "You feel [hot_message] in your [name]!") /obj/item/organ/lungs/prepare_eat() var/obj/S = ..() From 4d79c387a8ce1cd78f4a88f0efb4d41563200ffa Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 19 Jul 2017 04:09:00 -0500 Subject: [PATCH 004/219] Fix missing keyword argument syntax in typecache_filter_list --- code/__HELPERS/_lists.dm.rej | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 code/__HELPERS/_lists.dm.rej diff --git a/code/__HELPERS/_lists.dm.rej b/code/__HELPERS/_lists.dm.rej new file mode 100644 index 0000000000..94df951ce7 --- /dev/null +++ b/code/__HELPERS/_lists.dm.rej @@ -0,0 +1,10 @@ +diff a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm (rejected hunks) +@@ -90,7 +90,7 @@ + + //returns a new list with only atoms that are in typecache L + //if reversed, return a new list with only atoms that aren't in typecache L +-/proc/typecache_filter_list(list/atoms, list/typecache, reversed) ++/proc/typecache_filter_list(list/atoms, list/typecache, reversed=FALSE) + . = list() + for (var/thing in atoms) + var/atom/A = thing From f61e22958f390485122d6fa8c80e23496ab1a74a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 19 Jul 2017 05:12:17 -0500 Subject: [PATCH 005/219] split typecache filters into two procs --- code/__HELPERS/_lists.dm.rej | 23 +++++++++++++++++++++++ code/game/turfs/turf.dm.rej | 10 ++++++++++ 2 files changed, 33 insertions(+) create mode 100644 code/__HELPERS/_lists.dm.rej create mode 100644 code/game/turfs/turf.dm.rej diff --git a/code/__HELPERS/_lists.dm.rej b/code/__HELPERS/_lists.dm.rej new file mode 100644 index 0000000000..cb63e7e160 --- /dev/null +++ b/code/__HELPERS/_lists.dm.rej @@ -0,0 +1,23 @@ +diff a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm (rejected hunks) +@@ -89,12 +89,18 @@ + return + + //returns a new list with only atoms that are in typecache L +-//if reversed, return a new list with only atoms that aren't in typecache L +-/proc/typecache_filter_list(list/atoms, list/typecache, reversed=FALSE) ++/proc/typecache_filter_list(list/atoms, list/typecache) + . = list() + for (var/thing in atoms) + var/atom/A = thing +- if(typecache[A.type] != reversed) //This assumes typecache[A.type] is either null or TRUE. God help you if it's FALSE ++ if (typecache[A.type]) ++ . += A ++ ++/proc/typecache_filter_list_reverse(list/atoms, list/typecache) ++ . = list() ++ for (var/thing in atoms) ++ var/atom/A = thing ++ if (!typecache[A.type]) + . += A + + //Like typesof() or subtypesof(), but returns a typecache instead of a list diff --git a/code/game/turfs/turf.dm.rej b/code/game/turfs/turf.dm.rej new file mode 100644 index 0000000000..f4c27f5c30 --- /dev/null +++ b/code/game/turfs/turf.dm.rej @@ -0,0 +1,10 @@ +diff a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm (rejected hunks) +@@ -410,7 +410,7 @@ + /turf/proc/empty(turf_type=/turf/open/space, baseturf_type) + // Remove all atoms except observers, landmarks, docking ports + var/static/list/ignored_atoms = typecacheof(list(/mob/dead, /obj/effect/landmark, /obj/docking_port, /atom/movable/lighting_object)) +- var/list/allowed_contents = typecache_filter_list(GetAllContents(),ignored_atoms,reversed=TRUE) ++ var/list/allowed_contents = typecache_filter_list_reverse(GetAllContents(),ignored_atoms) + allowed_contents -= src + for(var/i in 1 to allowed_contents.len) + var/thing = allowed_contents[i] From 96179eded8629c06ac8129bcf75ad25fe7812fd4 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Wed, 19 Jul 2017 13:32:38 -0500 Subject: [PATCH 006/219] Update combat.dm --- code/__DEFINES/combat.dm | 285 +++++++++++++++++++-------------------- 1 file changed, 141 insertions(+), 144 deletions(-) diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm index 6ca2d80974..a307a0819d 100644 --- a/code/__DEFINES/combat.dm +++ b/code/__DEFINES/combat.dm @@ -1,147 +1,144 @@ -/*ALL DEFINES RELATED TO COMBAT GO HERE*/ - -//Damage and status effect defines - -//Damage defines //TODO: merge these down to reduce on defines -#define BRUTE "brute" -#define BURN "fire" -#define TOX "tox" -#define OXY "oxy" -#define CLONE "clone" -#define STAMINA "stamina" -//citadel code -#define AROUSAL "arousal" - -//bitflag damage defines used for suicide_act -#define BRUTELOSS 1 -#define FIRELOSS 2 -#define TOXLOSS 4 -#define OXYLOSS 8 -#define SHAME 16 -//citadel code -#define AROUSAL 32 - -#define STUN "stun" -#define KNOCKDOWN "knockdown" -#define UNCONSCIOUS "unconscious" -#define IRRADIATE "irradiate" -#define STUTTER "stutter" -#define SLUR "slur" -#define EYE_BLUR "eye_blur" -#define DROWSY "drowsy" -#define JITTER "jitter" - -//Bitflags defining which status effects could be or are inflicted on a mob -#define CANSTUN 1 -#define CANKNOCKDOWN 2 -#define CANUNCONSCIOUS 4 -#define CANPUSH 8 -#define IGNORESLOWDOWN 16 -#define GOTTAGOFAST 32 -#define GOTTAGOREALLYFAST 64 -#define GODMODE 4096 -#define FAKEDEATH 8192 //Replaces stuff like changeling.changeling_fakedeath -#define DISFIGURED 16384 //I'll probably move this elsewhere if I ever get wround to writing a bitflag mob-damage system -#define XENO_HOST 32768 //Tracks whether we're gonna be a baby alien's mummy. - -//Health Defines -#define HEALTH_THRESHOLD_CRIT 0 -#define HEALTH_THRESHOLD_DEAD -100 - -//Actual combat defines - -//click cooldowns, in tenths of a second, used for various combat actions -#define CLICK_CD_MELEE 8 -#define CLICK_CD_RANGE 4 -#define CLICK_CD_RAPID 2 -#define CLICK_CD_CLICK_ABILITY 6 -#define CLICK_CD_BREAKOUT 100 -#define CLICK_CD_HANDCUFFED 10 -#define CLICK_CD_RESIST 20 -#define CLICK_CD_GRABBING 10 - -//Cuff resist speeds -#define FAST_CUFFBREAK 1 -#define INSTANT_CUFFBREAK 2 - -//Grab levels -#define GRAB_PASSIVE 0 -#define GRAB_AGGRESSIVE 1 -#define GRAB_NECK 2 -#define GRAB_KILL 3 - -//Attack types for checking shields/hit reactions -#define MELEE_ATTACK 1 -#define UNARMED_ATTACK 2 -#define PROJECTILE_ATTACK 3 -#define THROWN_PROJECTILE_ATTACK 4 -#define LEAP_ATTACK 5 - -//attack visual effects -#define ATTACK_EFFECT_PUNCH "punch" -#define ATTACK_EFFECT_KICK "kick" -#define ATTACK_EFFECT_SMASH "smash" -#define ATTACK_EFFECT_CLAW "claw" -#define ATTACK_EFFECT_DISARM "disarm" -#define ATTACK_EFFECT_BITE "bite" -#define ATTACK_EFFECT_MECHFIRE "mech_fire" -#define ATTACK_EFFECT_MECHTOXIN "mech_toxin" -#define ATTACK_EFFECT_BOOP "boop" //Honk - -//intent defines -#define INTENT_HELP "help" -#define INTENT_GRAB "grab" -#define INTENT_DISARM "disarm" -#define INTENT_HARM "harm" -//NOTE: INTENT_HOTKEY_* defines are not actual intents! -//they are here to support hotkeys -#define INTENT_HOTKEY_LEFT "left" -#define INTENT_HOTKEY_RIGHT "right" - -//the define for visible message range in combat -#define COMBAT_MESSAGE_RANGE 3 - -//Combat object defines - -//Embedded objects -#define EMBEDDED_PAIN_CHANCE 15 //Chance for embedded objects to cause pain (damage user) -#define EMBEDDED_ITEM_FALLOUT 5 //Chance for embedded object to fall out (causing pain but removing the object) -#define EMBED_CHANCE 45 //Chance for an object to embed into somebody when thrown (if it's sharp) -#define EMBEDDED_PAIN_MULTIPLIER 2 //Coefficient of multiplication for the damage the item does while embedded (this*item.w_class) -#define EMBEDDED_FALL_PAIN_MULTIPLIER 5 //Coefficient of multiplication for the damage the item does when it falls out (this*item.w_class) -#define EMBEDDED_IMPACT_PAIN_MULTIPLIER 4 //Coefficient of multiplication for the damage the item does when it first embeds (this*item.w_class) -#define EMBED_THROWSPEED_THRESHOLD 4 //The minimum value of an item's throw_speed for it to embed (Unless it has embedded_ignore_throwspeed_threshold set to 1) -#define EMBEDDED_UNSAFE_REMOVAL_PAIN_MULTIPLIER 8 //Coefficient of multiplication for the damage the item does when removed without a surgery (this*item.w_class) -#define EMBEDDED_UNSAFE_REMOVAL_TIME 30 //A Time in ticks, total removal time = (this*item.w_class) - -//Gun Stuff -#define SAWN_INTACT 0 -#define SAWN_OFF 1 -//Gun weapon weight -#define WEAPON_DUAL_WIELD 0 -#define WEAPON_LIGHT 1 -#define WEAPON_MEDIUM 2 -#define WEAPON_HEAVY 3 -//Gun trigger guards -#define TRIGGER_GUARD_ALLOW_ALL -1 -#define TRIGGER_GUARD_NONE 0 -#define TRIGGER_GUARD_NORMAL 1 - -//Object/Item sharpness -#define IS_BLUNT 0 -#define IS_SHARP 1 -#define IS_SHARP_ACCURATE 2 - -//His Grace. -#define HIS_GRACE_SATIATED 0 //He hungers not. If bloodthirst is set to this, His Grace is asleep. -#define HIS_GRACE_PECKISH 20 //Slightly hungry. -#define HIS_GRACE_HUNGRY 60 //Getting closer. Increases damage up to a minimum of 20. -#define HIS_GRACE_FAMISHED 100 //Dangerous. Increases damage up to a minimum of 25 and cannot be dropped. -#define HIS_GRACE_STARVING 120 //Incredibly close to breaking loose. Increases damage up to a minimum of 30. -#define HIS_GRACE_CONSUME_OWNER 140 //His Grace consumes His owner at this point and becomes aggressive. -#define HIS_GRACE_FALL_ASLEEP 160 //If it reaches this point, He falls asleep and resets. - -#define HIS_GRACE_FORCE_BONUS 4 //How much force is gained per kill. +/*ALL DEFINES RELATED TO COMBAT GO HERE*/ + +//Damage and status effect defines + +//Damage defines //TODO: merge these down to reduce on defines +#define BRUTE "brute" +#define BURN "fire" +#define TOX "tox" +#define OXY "oxy" +#define CLONE "clone" +#define STAMINA "stamina" +#define BRAIN "brain" + +//bitflag damage defines used for suicide_act +#define BRUTELOSS 1 +#define FIRELOSS 2 +#define TOXLOSS 4 +#define OXYLOSS 8 +#define SHAME 16 + +#define STUN "stun" +#define KNOCKDOWN "knockdown" +#define UNCONSCIOUS "unconscious" +#define IRRADIATE "irradiate" +#define STUTTER "stutter" +#define SLUR "slur" +#define EYE_BLUR "eye_blur" +#define DROWSY "drowsy" +#define JITTER "jitter" + +//Bitflags defining which status effects could be or are inflicted on a mob +#define CANSTUN 1 +#define CANKNOCKDOWN 2 +#define CANUNCONSCIOUS 4 +#define CANPUSH 8 +#define IGNORESLOWDOWN 16 +#define GOTTAGOFAST 32 +#define GOTTAGOREALLYFAST 64 +#define GODMODE 4096 +#define FAKEDEATH 8192 //Replaces stuff like changeling.changeling_fakedeath +#define DISFIGURED 16384 //I'll probably move this elsewhere if I ever get wround to writing a bitflag mob-damage system +#define XENO_HOST 32768 //Tracks whether we're gonna be a baby alien's mummy. + +//Health Defines +#define HEALTH_THRESHOLD_CRIT 0 +#define HEALTH_THRESHOLD_DEAD -100 + +//Actual combat defines + +//click cooldowns, in tenths of a second, used for various combat actions +#define CLICK_CD_MELEE 8 +#define CLICK_CD_RANGE 4 +#define CLICK_CD_RAPID 2 +#define CLICK_CD_CLICK_ABILITY 6 +#define CLICK_CD_BREAKOUT 100 +#define CLICK_CD_HANDCUFFED 10 +#define CLICK_CD_RESIST 20 +#define CLICK_CD_GRABBING 10 + +//Cuff resist speeds +#define FAST_CUFFBREAK 1 +#define INSTANT_CUFFBREAK 2 + +//Grab levels +#define GRAB_PASSIVE 0 +#define GRAB_AGGRESSIVE 1 +#define GRAB_NECK 2 +#define GRAB_KILL 3 + +//Attack types for checking shields/hit reactions +#define MELEE_ATTACK 1 +#define UNARMED_ATTACK 2 +#define PROJECTILE_ATTACK 3 +#define THROWN_PROJECTILE_ATTACK 4 +#define LEAP_ATTACK 5 + +//attack visual effects +#define ATTACK_EFFECT_PUNCH "punch" +#define ATTACK_EFFECT_KICK "kick" +#define ATTACK_EFFECT_SMASH "smash" +#define ATTACK_EFFECT_CLAW "claw" +#define ATTACK_EFFECT_DISARM "disarm" +#define ATTACK_EFFECT_BITE "bite" +#define ATTACK_EFFECT_MECHFIRE "mech_fire" +#define ATTACK_EFFECT_MECHTOXIN "mech_toxin" +#define ATTACK_EFFECT_BOOP "boop" //Honk + +//intent defines +#define INTENT_HELP "help" +#define INTENT_GRAB "grab" +#define INTENT_DISARM "disarm" +#define INTENT_HARM "harm" +//NOTE: INTENT_HOTKEY_* defines are not actual intents! +//they are here to support hotkeys +#define INTENT_HOTKEY_LEFT "left" +#define INTENT_HOTKEY_RIGHT "right" + +//the define for visible message range in combat +#define COMBAT_MESSAGE_RANGE 3 + +//Combat object defines + +//Embedded objects +#define EMBEDDED_PAIN_CHANCE 15 //Chance for embedded objects to cause pain (damage user) +#define EMBEDDED_ITEM_FALLOUT 5 //Chance for embedded object to fall out (causing pain but removing the object) +#define EMBED_CHANCE 45 //Chance for an object to embed into somebody when thrown (if it's sharp) +#define EMBEDDED_PAIN_MULTIPLIER 2 //Coefficient of multiplication for the damage the item does while embedded (this*item.w_class) +#define EMBEDDED_FALL_PAIN_MULTIPLIER 5 //Coefficient of multiplication for the damage the item does when it falls out (this*item.w_class) +#define EMBEDDED_IMPACT_PAIN_MULTIPLIER 4 //Coefficient of multiplication for the damage the item does when it first embeds (this*item.w_class) +#define EMBED_THROWSPEED_THRESHOLD 4 //The minimum value of an item's throw_speed for it to embed (Unless it has embedded_ignore_throwspeed_threshold set to 1) +#define EMBEDDED_UNSAFE_REMOVAL_PAIN_MULTIPLIER 8 //Coefficient of multiplication for the damage the item does when removed without a surgery (this*item.w_class) +#define EMBEDDED_UNSAFE_REMOVAL_TIME 30 //A Time in ticks, total removal time = (this*item.w_class) + +//Gun Stuff +#define SAWN_INTACT 0 +#define SAWN_OFF 1 +//Gun weapon weight +#define WEAPON_DUAL_WIELD 0 +#define WEAPON_LIGHT 1 +#define WEAPON_MEDIUM 2 +#define WEAPON_HEAVY 3 +//Gun trigger guards +#define TRIGGER_GUARD_ALLOW_ALL -1 +#define TRIGGER_GUARD_NONE 0 +#define TRIGGER_GUARD_NORMAL 1 + +//Object/Item sharpness +#define IS_BLUNT 0 +#define IS_SHARP 1 +#define IS_SHARP_ACCURATE 2 + +//His Grace. +#define HIS_GRACE_SATIATED 0 //He hungers not. If bloodthirst is set to this, His Grace is asleep. +#define HIS_GRACE_PECKISH 20 //Slightly hungry. +#define HIS_GRACE_HUNGRY 60 //Getting closer. Increases damage up to a minimum of 20. +#define HIS_GRACE_FAMISHED 100 //Dangerous. Increases damage up to a minimum of 25 and cannot be dropped. +#define HIS_GRACE_STARVING 120 //Incredibly close to breaking loose. Increases damage up to a minimum of 30. +#define HIS_GRACE_CONSUME_OWNER 140 //His Grace consumes His owner at this point and becomes aggressive. +#define HIS_GRACE_FALL_ASLEEP 160 //If it reaches this point, He falls asleep and resets. + +#define HIS_GRACE_FORCE_BONUS 4 //How much force is gained per kill. #define EXPLODE_NONE 0 //Don't even ask me why we need this. #define EXPLODE_DEVASTATE 1 From cd0845bcd82f2b46e0f699d4d1c4a654232fa1d0 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Wed, 19 Jul 2017 13:34:20 -0500 Subject: [PATCH 007/219] Update damage_procs.dm --- code/modules/mob/living/carbon/damage_procs.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/mob/living/carbon/damage_procs.dm b/code/modules/mob/living/carbon/damage_procs.dm index f980ed149c..ebf1d6284d 100644 --- a/code/modules/mob/living/carbon/damage_procs.dm +++ b/code/modules/mob/living/carbon/damage_procs.dm @@ -36,6 +36,8 @@ adjustCloneLoss(damage * hit_percent) if(STAMINA) adjustStaminaLoss(damage * hit_percent) + if(BRAIN) + adjustBrainLoss(damage * hit_percent) //citadel code if(AROUSAL) adjustArousalLoss(damage * hit_percent) From c38fe60fc4ef860a6dd33233a1c0c79299e7a0c0 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Wed, 19 Jul 2017 13:36:43 -0500 Subject: [PATCH 008/219] Update damage_procs.dm --- code/modules/mob/living/damage_procs.dm | 574 ++++++++++++------------ 1 file changed, 291 insertions(+), 283 deletions(-) diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index 922febe423..4edcd3be21 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -1,286 +1,294 @@ - -/* - apply_damage(a,b,c) - args - a:damage - How much damage to take - b:damage_type - What type of damage to take, brute, burn - c:def_zone - Where to take the damage if its brute or burn - Returns - standard 0 if fail -*/ + +/* + apply_damage(a,b,c) + args + a:damage - How much damage to take + b:damage_type - What type of damage to take, brute, burn + c:def_zone - Where to take the damage if its brute or burn + Returns + standard 0 if fail +*/ /mob/living/proc/apply_damage(damage = 0,damagetype = BRUTE, def_zone = null, blocked = FALSE) - var/hit_percent = (100-blocked)/100 - if(!damage || (hit_percent <= 0)) - return 0 - switch(damagetype) - if(BRUTE) - adjustBruteLoss(damage * hit_percent) - if(BURN) - adjustFireLoss(damage * hit_percent) - if(TOX) - adjustToxLoss(damage * hit_percent) - if(OXY) - adjustOxyLoss(damage * hit_percent) - if(CLONE) - adjustCloneLoss(damage * hit_percent) - if(STAMINA) - adjustStaminaLoss(damage * hit_percent) - //citadel code - if(AROUSAL) - adjustArousalLoss(damage * hit_percent) - return 1 - -/mob/living/proc/apply_damage_type(damage = 0, damagetype = BRUTE) //like apply damage except it always uses the damage procs - switch(damagetype) - if(BRUTE) - return adjustBruteLoss(damage) - if(BURN) - return adjustFireLoss(damage) - if(TOX) - return adjustToxLoss(damage) - if(OXY) - return adjustOxyLoss(damage) - if(CLONE) - return adjustCloneLoss(damage) - if(STAMINA) - return adjustStaminaLoss(damage) - //citadel code - if(AROUSAL) - return adjustArousalLoss(damage) - -/mob/living/proc/get_damage_amount(damagetype = BRUTE) - switch(damagetype) - if(BRUTE) - return getBruteLoss() - if(BURN) - return getFireLoss() - if(TOX) - return getToxLoss() - if(OXY) - return getOxyLoss() - if(CLONE) - return getCloneLoss() - if(STAMINA) - return getStaminaLoss() - //citadel code - if(AROUSAL) - return getArousalLoss() - - -/mob/living/proc/apply_damages(brute = 0, burn = 0, tox = 0, oxy = 0, clone = 0, def_zone = null, blocked = 0, stamina = 0, arousal = 0) - if(blocked >= 100) - return 0 - if(brute) - apply_damage(brute, BRUTE, def_zone, blocked) - if(burn) - apply_damage(burn, BURN, def_zone, blocked) - if(tox) - apply_damage(tox, TOX, def_zone, blocked) - if(oxy) - apply_damage(oxy, OXY, def_zone, blocked) - if(clone) - apply_damage(clone, CLONE, def_zone, blocked) - if(stamina) - apply_damage(stamina, STAMINA, def_zone, blocked) - //citadel code - if(arousal) - apply_damage(arousal, AROUSAL, def_zone, blocked) - return 1 - - - + var/hit_percent = (100-blocked)/100 + if(!damage || (hit_percent <= 0)) + return 0 + switch(damagetype) + if(BRUTE) + adjustBruteLoss(damage * hit_percent) + if(BURN) + adjustFireLoss(damage * hit_percent) + if(TOX) + adjustToxLoss(damage * hit_percent) + if(OXY) + adjustOxyLoss(damage * hit_percent) + if(CLONE) + adjustCloneLoss(damage * hit_percent) + if(STAMINA) + adjustStaminaLoss(damage * hit_percent) + if(BRAIN) + adjustBrainLoss(damage * hit_percent) + //citadel code + if(AROUSAL) + adjustArousalLoss(damage * hit_percent) + return 1 + +/mob/living/proc/apply_damage_type(damage = 0, damagetype = BRUTE) //like apply damage except it always uses the damage procs + switch(damagetype) + if(BRUTE) + return adjustBruteLoss(damage) + if(BURN) + return adjustFireLoss(damage) + if(TOX) + return adjustToxLoss(damage) + if(OXY) + return adjustOxyLoss(damage) + if(CLONE) + return adjustCloneLoss(damage) + if(STAMINA) + return adjustStaminaLoss(damage) + if(BRAIN) + return adjustBrainLoss(damage) + //citadel code + if(AROUSAL) + return adjustArousalLoss(damage) + +/mob/living/proc/get_damage_amount(damagetype = BRUTE) + switch(damagetype) + if(BRUTE) + return getBruteLoss() + if(BURN) + return getFireLoss() + if(TOX) + return getToxLoss() + if(OXY) + return getOxyLoss() + if(CLONE) + return getCloneLoss() + if(STAMINA) + return getStaminaLoss() + if(BRAIN) + return getBrainLoss() + //citadel code + if(AROUSAL) + return getArousalLoss() + + +/mob/living/proc/apply_damages(brute = 0, burn = 0, tox = 0, oxy = 0, clone = 0, def_zone = null, blocked = FALSE, stamina = 0, brain = 0) + if(blocked >= 100) + return 0 + if(brute) + apply_damage(brute, BRUTE, def_zone, blocked) + if(burn) + apply_damage(burn, BURN, def_zone, blocked) + if(tox) + apply_damage(tox, TOX, def_zone, blocked) + if(oxy) + apply_damage(oxy, OXY, def_zone, blocked) + if(clone) + apply_damage(clone, CLONE, def_zone, blocked) + if(stamina) + apply_damage(stamina, STAMINA, def_zone, blocked) + if(brain) + apply_damage(brain, BRAIN, def_zone, blocked) + //citadel code + if(arousal) + apply_damage(arousal, AROUSAL, def_zone, blocked) + return 1 + + + /mob/living/proc/apply_effect(effect = 0,effecttype = STUN, blocked = FALSE) - var/hit_percent = (100-blocked)/100 - if(!effect || (hit_percent <= 0)) - return 0 - switch(effecttype) - if(STUN) - Stun(effect * hit_percent) - if(KNOCKDOWN) - Knockdown(effect * hit_percent) - if(UNCONSCIOUS) - Unconscious(effect * hit_percent) - if(IRRADIATE) - radiation += max(effect * hit_percent, 0) - if(SLUR) - slurring = max(slurring,(effect * hit_percent)) - if(STUTTER) - if(status_flags & CANSTUN) // stun is usually associated with stutter - stuttering = max(stuttering,(effect * hit_percent)) - if(EYE_BLUR) - blur_eyes(effect * hit_percent) - if(DROWSY) - drowsyness = max(drowsyness,(effect * hit_percent)) - if(JITTER) - if(status_flags & CANSTUN) - jitteriness = max(jitteriness,(effect * hit_percent)) - return 1 - - + var/hit_percent = (100-blocked)/100 + if(!effect || (hit_percent <= 0)) + return 0 + switch(effecttype) + if(STUN) + Stun(effect * hit_percent) + if(KNOCKDOWN) + Knockdown(effect * hit_percent) + if(UNCONSCIOUS) + Unconscious(effect * hit_percent) + if(IRRADIATE) + radiation += max(effect * hit_percent, 0) + if(SLUR) + slurring = max(slurring,(effect * hit_percent)) + if(STUTTER) + if(status_flags & CANSTUN) // stun is usually associated with stutter + stuttering = max(stuttering,(effect * hit_percent)) + if(EYE_BLUR) + blur_eyes(effect * hit_percent) + if(DROWSY) + drowsyness = max(drowsyness,(effect * hit_percent)) + if(JITTER) + if(status_flags & CANSTUN) + jitteriness = max(jitteriness,(effect * hit_percent)) + return 1 + + /mob/living/proc/apply_effects(stun = 0, knockdown = 0, unconscious = 0, irradiate = 0, slur = 0, stutter = 0, eyeblur = 0, drowsy = 0, blocked = FALSE, stamina = 0, jitter = 0) - if(blocked >= 100) - return 0 - if(stun) - apply_effect(stun, STUN, blocked) - if(knockdown) - apply_effect(knockdown, KNOCKDOWN, blocked) - if(unconscious) - apply_effect(unconscious, UNCONSCIOUS, blocked) - if(irradiate) - apply_effect(irradiate, IRRADIATE, blocked) - if(slur) - apply_effect(slur, SLUR, blocked) - if(stutter) - apply_effect(stutter, STUTTER, blocked) - if(eyeblur) - apply_effect(eyeblur, EYE_BLUR, blocked) - if(drowsy) - apply_effect(drowsy, DROWSY, blocked) - if(stamina) - apply_damage(stamina, STAMINA, null, blocked) - if(jitter) - apply_effect(jitter, JITTER, blocked) - return 1 - - -/mob/living/proc/getBruteLoss() - return bruteloss - -/mob/living/proc/adjustBruteLoss(amount, updating_health = TRUE, forced = FALSE) - if(!forced && (status_flags & GODMODE)) - return FALSE - bruteloss = Clamp((bruteloss + (amount * config.damage_multiplier)), 0, maxHealth*2) - if(updating_health) - updatehealth() - return amount - -/mob/living/proc/getOxyLoss() - return oxyloss - -/mob/living/proc/adjustOxyLoss(amount, updating_health = TRUE, forced = FALSE) - if(!forced && (status_flags & GODMODE)) - return FALSE - oxyloss = Clamp((oxyloss + (amount * config.damage_multiplier)), 0, maxHealth*2) - if(updating_health) - updatehealth() - return amount - -/mob/living/proc/setOxyLoss(amount, updating_health = TRUE, forced = FALSE) - if(status_flags & GODMODE) - return 0 - oxyloss = amount - if(updating_health) - updatehealth() - return amount - -/mob/living/proc/getToxLoss() - return toxloss - -/mob/living/proc/adjustToxLoss(amount, updating_health = TRUE, forced = FALSE) - if(!forced && (status_flags & GODMODE)) - return FALSE - toxloss = Clamp((toxloss + (amount * config.damage_multiplier)), 0, maxHealth*2) - if(updating_health) - updatehealth() - return amount - -/mob/living/proc/setToxLoss(amount, updating_health = TRUE, forced = FALSE) - if(!forced && (status_flags & GODMODE)) - return FALSE - toxloss = amount - if(updating_health) - updatehealth() - return amount - -/mob/living/proc/getFireLoss() - return fireloss - -/mob/living/proc/adjustFireLoss(amount, updating_health = TRUE, forced = FALSE) - if(!forced && (status_flags & GODMODE)) - return FALSE - fireloss = Clamp((fireloss + (amount * config.damage_multiplier)), 0, maxHealth*2) - if(updating_health) - updatehealth() - return amount - -/mob/living/proc/getCloneLoss() - return cloneloss - -/mob/living/proc/adjustCloneLoss(amount, updating_health = TRUE, forced = FALSE) - if(!forced && (status_flags & GODMODE)) - return FALSE - cloneloss = Clamp((cloneloss + (amount * config.damage_multiplier)), 0, maxHealth*2) - if(updating_health) - updatehealth() - return amount - -/mob/living/proc/setCloneLoss(amount, updating_health = TRUE, forced = FALSE) - if(!forced && (status_flags & GODMODE)) - return FALSE - cloneloss = amount - if(updating_health) - updatehealth() - return amount - -/mob/living/proc/getBrainLoss() - return brainloss - -/mob/living/proc/adjustBrainLoss(amount) - if(status_flags & GODMODE) - return 0 - brainloss = Clamp((brainloss + (amount * config.damage_multiplier)), 0, maxHealth*2) - -/mob/living/proc/setBrainLoss(amount) - if(status_flags & GODMODE) - return 0 - brainloss = amount - -/mob/living/proc/getStaminaLoss() - return staminaloss - -/mob/living/proc/adjustStaminaLoss(amount, updating_stamina = TRUE, forced = FALSE) - return - -/mob/living/proc/setStaminaLoss(amount, updating_stamina = TRUE, forced = FALSE) - return - - -// heal ONE external organ, organ gets randomly selected from damaged ones. -/mob/living/proc/heal_bodypart_damage(brute, burn, updating_health = 1) - adjustBruteLoss(-brute, 0) //zero as argument for no instant health update - adjustFireLoss(-burn, 0) - if(updating_health) - updatehealth() - -// damage ONE external organ, organ gets randomly selected from damaged ones. -/mob/living/proc/take_bodypart_damage(brute, burn, updating_health = 1) - adjustBruteLoss(brute, 0) //zero as argument for no instant health update - adjustFireLoss(burn, 0) - if(updating_health) - updatehealth() - -// heal MANY bodyparts, in random order -/mob/living/proc/heal_overall_damage(brute, burn, only_robotic = 0, only_organic = 1, updating_health = 1) - adjustBruteLoss(-brute, 0) //zero as argument for no instant health update - adjustFireLoss(-burn, 0) - if(updating_health) - updatehealth() - -// damage MANY bodyparts, in random order -/mob/living/proc/take_overall_damage(brute, burn, updating_health = 1) - adjustBruteLoss(brute, 0) //zero as argument for no instant health update - adjustFireLoss(burn, 0) - if(updating_health) - updatehealth() - -//heal up to amount damage, in a given order -/mob/living/proc/heal_ordered_damage(amount, list/damage_types) - . = amount //we'll return the amount of damage healed - for(var/i in damage_types) - var/amount_to_heal = min(amount, get_damage_amount(i)) //heal only up to the amount of damage we have - if(amount_to_heal) - apply_damage_type(-amount_to_heal, i) - amount -= amount_to_heal //remove what we healed from our current amount - if(!amount) - break - . -= amount //if there's leftover healing, remove it from what we return + if(blocked >= 100) + return 0 + if(stun) + apply_effect(stun, STUN, blocked) + if(knockdown) + apply_effect(knockdown, KNOCKDOWN, blocked) + if(unconscious) + apply_effect(unconscious, UNCONSCIOUS, blocked) + if(irradiate) + apply_effect(irradiate, IRRADIATE, blocked) + if(slur) + apply_effect(slur, SLUR, blocked) + if(stutter) + apply_effect(stutter, STUTTER, blocked) + if(eyeblur) + apply_effect(eyeblur, EYE_BLUR, blocked) + if(drowsy) + apply_effect(drowsy, DROWSY, blocked) + if(stamina) + apply_damage(stamina, STAMINA, null, blocked) + if(jitter) + apply_effect(jitter, JITTER, blocked) + return 1 + + +/mob/living/proc/getBruteLoss() + return bruteloss + +/mob/living/proc/adjustBruteLoss(amount, updating_health = TRUE, forced = FALSE) + if(!forced && (status_flags & GODMODE)) + return FALSE + bruteloss = Clamp((bruteloss + (amount * config.damage_multiplier)), 0, maxHealth*2) + if(updating_health) + updatehealth() + return amount + +/mob/living/proc/getOxyLoss() + return oxyloss + +/mob/living/proc/adjustOxyLoss(amount, updating_health = TRUE, forced = FALSE) + if(!forced && (status_flags & GODMODE)) + return FALSE + oxyloss = Clamp((oxyloss + (amount * config.damage_multiplier)), 0, maxHealth*2) + if(updating_health) + updatehealth() + return amount + +/mob/living/proc/setOxyLoss(amount, updating_health = TRUE, forced = FALSE) + if(status_flags & GODMODE) + return 0 + oxyloss = amount + if(updating_health) + updatehealth() + return amount + +/mob/living/proc/getToxLoss() + return toxloss + +/mob/living/proc/adjustToxLoss(amount, updating_health = TRUE, forced = FALSE) + if(!forced && (status_flags & GODMODE)) + return FALSE + toxloss = Clamp((toxloss + (amount * config.damage_multiplier)), 0, maxHealth*2) + if(updating_health) + updatehealth() + return amount + +/mob/living/proc/setToxLoss(amount, updating_health = TRUE, forced = FALSE) + if(!forced && (status_flags & GODMODE)) + return FALSE + toxloss = amount + if(updating_health) + updatehealth() + return amount + +/mob/living/proc/getFireLoss() + return fireloss + +/mob/living/proc/adjustFireLoss(amount, updating_health = TRUE, forced = FALSE) + if(!forced && (status_flags & GODMODE)) + return FALSE + fireloss = Clamp((fireloss + (amount * config.damage_multiplier)), 0, maxHealth*2) + if(updating_health) + updatehealth() + return amount + +/mob/living/proc/getCloneLoss() + return cloneloss + +/mob/living/proc/adjustCloneLoss(amount, updating_health = TRUE, forced = FALSE) + if(!forced && (status_flags & GODMODE)) + return FALSE + cloneloss = Clamp((cloneloss + (amount * config.damage_multiplier)), 0, maxHealth*2) + if(updating_health) + updatehealth() + return amount + +/mob/living/proc/setCloneLoss(amount, updating_health = TRUE, forced = FALSE) + if(!forced && (status_flags & GODMODE)) + return FALSE + cloneloss = amount + if(updating_health) + updatehealth() + return amount + +/mob/living/proc/getBrainLoss() + return brainloss + +/mob/living/proc/adjustBrainLoss(amount) + if(status_flags & GODMODE) + return 0 + brainloss = Clamp((brainloss + (amount * config.damage_multiplier)), 0, maxHealth*2) + +/mob/living/proc/setBrainLoss(amount) + if(status_flags & GODMODE) + return 0 + brainloss = amount + +/mob/living/proc/getStaminaLoss() + return staminaloss + +/mob/living/proc/adjustStaminaLoss(amount, updating_stamina = TRUE, forced = FALSE) + return + +/mob/living/proc/setStaminaLoss(amount, updating_stamina = TRUE, forced = FALSE) + return + + +// heal ONE external organ, organ gets randomly selected from damaged ones. +/mob/living/proc/heal_bodypart_damage(brute, burn, updating_health = 1) + adjustBruteLoss(-brute, 0) //zero as argument for no instant health update + adjustFireLoss(-burn, 0) + if(updating_health) + updatehealth() + +// damage ONE external organ, organ gets randomly selected from damaged ones. +/mob/living/proc/take_bodypart_damage(brute, burn, updating_health = 1) + adjustBruteLoss(brute, 0) //zero as argument for no instant health update + adjustFireLoss(burn, 0) + if(updating_health) + updatehealth() + +// heal MANY bodyparts, in random order +/mob/living/proc/heal_overall_damage(brute, burn, only_robotic = 0, only_organic = 1, updating_health = 1) + adjustBruteLoss(-brute, 0) //zero as argument for no instant health update + adjustFireLoss(-burn, 0) + if(updating_health) + updatehealth() + +// damage MANY bodyparts, in random order +/mob/living/proc/take_overall_damage(brute, burn, updating_health = 1) + adjustBruteLoss(brute, 0) //zero as argument for no instant health update + adjustFireLoss(burn, 0) + if(updating_health) + updatehealth() + +//heal up to amount damage, in a given order +/mob/living/proc/heal_ordered_damage(amount, list/damage_types) + . = amount //we'll return the amount of damage healed + for(var/i in damage_types) + var/amount_to_heal = min(amount, get_damage_amount(i)) //heal only up to the amount of damage we have + if(amount_to_heal) + apply_damage_type(-amount_to_heal, i) + amount -= amount_to_heal //remove what we healed from our current amount + if(!amount) + break + . -= amount //if there's leftover healing, remove it from what we return From 0b27e4c11b67fd8c6c89ec74186b28204d0a5f6e Mon Sep 17 00:00:00 2001 From: LetterJay Date: Wed, 19 Jul 2017 13:39:49 -0500 Subject: [PATCH 009/219] Update _lists.dm --- code/__HELPERS/_lists.dm | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index 393c5a465d..c24f93d32a 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -88,16 +88,21 @@ L -= V //No return here so that it removes all strings of that type return -//returns a new list with only atoms that are in typecache L -/proc/typecache_filter_list(list/atoms, list/typecache, reversed=FALSE) + +/proc/typecache_filter_list(list/atoms, list/typecache) . = list() for (var/thing in atoms) var/atom/A = thing - if (typecache[A.type] && !reversed) - . += A - else if(reversed) + if (typecache[A.type]) . += A +/proc/typecache_filter_list_reverse(list/atoms, list/typecache) + . = list() + for (var/thing in atoms) + var/atom/A = thing + if (!typecache[A.type]) + . += A + //Like typesof() or subtypesof(), but returns a typecache instead of a list /proc/typecacheof(path, ignore_root_path, only_root_path = FALSE) if(ispath(path)) From b2032ed7f57aa43796092f66fb15bb565525e9db Mon Sep 17 00:00:00 2001 From: LetterJay Date: Wed, 19 Jul 2017 13:40:24 -0500 Subject: [PATCH 010/219] Update turf.dm --- code/game/turfs/turf.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 38247ea887..9ff36bf6c8 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -411,7 +411,7 @@ // Remove all atoms except observers, landmarks, docking ports var/turf/T0 = src var/static/list/ignored_atoms = typecacheof(list(/turf, /mob/dead, /obj/effect/landmark, /obj/docking_port, /atom/movable/lighting_object)) - var/list/allowed_contents = typecache_filter_list(T0.GetAllContents(),ignored_atoms,reversed=TRUE) + var/list/allowed_contents = typecache_filter_list_reverse(GetAllContents(),ignored_atoms) for(var/i in 1 to allowed_contents.len) var/thing = allowed_contents[i] qdel(thing, force=TRUE) From 45de96b542f3ffc9ab6a7c12c3e7ce1fcded7fd6 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Wed, 19 Jul 2017 13:43:38 -0500 Subject: [PATCH 011/219] Update tips.txt --- strings/tips.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/strings/tips.txt b/strings/tips.txt index 954b4326fb..4d1a8aa28a 100644 --- a/strings/tips.txt +++ b/strings/tips.txt @@ -161,7 +161,7 @@ As a Servant, the Judicial Visor is an effective defensive combat tool in small As a Servant, making, and protecting, Tinkerer's Caches is extremely important, as caches are required to unlock scripture and share components. As a Servant, Ocular Wardens, while fragile, do very high, rapid damage to a target non-servant that can see them and will even attack mechs that contain heretics. Place them behind objects that don't block vision to get the most use out of them. As a Servant, Clockwork Structures that require power will draw power from the APC if they cannot find a different source of power, and most power-using Structures will rapidly drain the APC. -As a Servant, you can repair Servant cyborgs, Clockwork Constructs, and Clockwork Structures with a Clockwork Proselytizer at a rate of 25W power to 1 health. +As a Servant, you can repair Servant cyborgs and Clockwork Structures with a Replica Fabricator at a rate of 25W power to 1 health. Damaged Clockwork Structures are less efficient, so don't forget to repair them! As a Servant, securing a reliable source of component generation is high-priority, as simply handing out slabs will slowly become inefficient. Try placing Tinkerer's Caches near clockwork walls or creating and powering Tinkerer's Daemons. As a Servant, only a single held Clockwork Slab will generate components, no matter how many you're holding. In addition, slabs will generate components slower with large amounts of servants; you can see the exact time with Recollection. As a Servant, you can use Geis to easily convert single targets, as it binds them in place, preventing escape unless they react quickly enough. Having another Servant apply Geis to someone already bound will prevent their escape and mute them, even if they reacted quickly. @@ -176,7 +176,7 @@ As a Servant, you can impale human targets with a Ratvarian Spear by pulling the As a Servant, Sentinel's Compromise can instantly return you or another Servant to a fighting state by converting half of all their brute, burn, and oxygen damage to toxin, effectively halving the damage they have. Clockwork Floors will also rapidly heal toxin damage in Servants, allowing the Compromise more effectiveness. As a Servant, Belligerent and Taunting Tirade are extremely powerful for disabling and disrupting large groups of enemies, though they render you somewhat vulnerable, as Belligerent requires that you stand still, and Taunting Tirade makes you extremely obvious. As a Servant, Soul Vessels can be placed in cyborg shells, mecha, Cogscarab shells, and Anima Fragment shells. -As a Servant, you can unwrench Clockwork Structures, but doing so will damage them, severely weakening them until repaired with a Proselytizer or Mending Mantra. Damage from other sources will also similarly weaken structures. +As a Servant, you can unwrench Clockwork Structures to move them around. You can deconvert Cultists of Nar-Sie and Servants of Ratvar by feeding them large amounts of holy water. As a Wizard, you can turn people to stone, then animate the resulting statue with a staff of animation to create an extremely powerful minion, for all of 5 minutes at least. As a Wizard, the fireball spell performs very poorly at close range, as it can easily catch you in the blast. It is best used as a form of artillery down long hallways. @@ -204,4 +204,4 @@ As a Ghost, you can see the inside of a container on the ground by clicking on i As a Ghost, you can double click on people, bots, or the singularity to follow them. As a Devil, you gain power for every three souls you control, however you also become more obvious. As a Devil, as long as you control at least one other soul, you will automatically resurrect, as long as a banishment ritual is not performed. -At which time a Devil's nameth is spake on the tongue of man, the Devil may appeareth. \ No newline at end of file +At which time a Devil's nameth is spake on the tongue of man, the Devil may appeareth. From 50adcbb302bda326baff434b2c5ffcbad51d247c Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 24 Jul 2017 16:45:14 -0500 Subject: [PATCH 012/219] DCS Continued --- code/controllers/subsystem/garbage.dm | 8 +- code/datums/components/README.md | 99 +++++++++++++++++++++++++ code/datums/components/component.dm | 44 ++++++----- code/datums/components/component.dm.rej | 35 +++++++++ 4 files changed, 168 insertions(+), 18 deletions(-) create mode 100644 code/datums/components/README.md create mode 100644 code/datums/components/component.dm.rej diff --git a/code/controllers/subsystem/garbage.dm b/code/controllers/subsystem/garbage.dm index 2cee9a192a..20672ea975 100644 --- a/code/controllers/subsystem/garbage.dm +++ b/code/controllers/subsystem/garbage.dm @@ -247,7 +247,13 @@ SUBSYSTEM_DEF(garbage) if (timer.spent) continue qdel(timer) - QDEL_LIST(datum_components) + var/list/dc = datum_components + for(var/I in dc) + var/datum/component/C = I + C._RemoveNoSignal() + qdel(C) + if(dc) + dc.Cut() return QDEL_HINT_QUEUE /datum/var/gc_destroyed //Time when this object was destroyed. diff --git a/code/datums/components/README.md b/code/datums/components/README.md new file mode 100644 index 0000000000..f92e618a7f --- /dev/null +++ b/code/datums/components/README.md @@ -0,0 +1,99 @@ +# Datum Component System (DCS) + +## Concept + +Loosely adapted from /vg/. This is an entity component system for adding behaviours to datums when inheritance doesn't quite cut it. By using signals and events instead of direct inheritance, you can inject behaviours without hacky overloads. It requires a different method of thinking, but is not hard to use correctly. If a behaviour can have application across more than one thing. Make it generic, make it a component. Atom/mob/obj event? Give it a signal, and forward it's arguments with a `SendSignal()` call. Now every component that want's to can also know about this happening. + +### In the code + +#### Slippery things + +At the time of this writing, every object that is slippery overrides atom/Crossed does some checks, then slips the mob. Instead of all those Crossed overrides they could add a slippery component to all these objects. And have the checks in one proc that is run by the Crossed event + +#### Powercells + +A lot of objects have powercells. The `get_cell()` proc was added to give generic access to the cell var if it had one. This is just a specific use case of `GetComponent()` + +#### Radios + +The radio object as it is should not exist, given that more things use the _concept_ of radios rather than the object itself. The actual function of the radio can exist in a component which all the things that use it (Request consoles, actual radios, the SM shard) can add to themselves. + +#### Standos + +Stands have a lot of procs which mimic mob procs. Rather than inserting hooks for all these procs in overrides, the same can be accomplished with signals + +## API + +### Vars + +1. `/datum/var/list/datum_components` (private) + * Lazy list of all components a datum has (TODO: Make this a typecache with longer paths overwriting shorter ones maybe? It'd be weird) +1. `/datum/component/var/enabled` (protected, boolean) + * If the component is enabled. If not, it will not react to signals + * TRUE by default +1. `/datum/component/var/dupe_mode` (protected, enum) + * How multiple components of the exact same type are handled when added to the datum. + * `COMPONENT_DUPE_HIGHLANDER` (default): Old component will be deleted, new component will first have `/datum/component/proc/InheritComponent(datum/component/old, FALSE)` on it + * `COMPONENT_DUPE_ALLOWED`: The components will be treated as seperate, `GetComponent()` will return the first added + * `COMPONENT_DUPE_UNIQUE`: New component will be deleted, old component will first have `/datum/component/proc/InheritComponent(datum/component/new, TRUE)` on it +1. `/datum/component/var/list/signal_procs` (private) + * Associated lazy list of signals -> callbacks that will be run when the parent datum recieves that signal +1. `/datum/component/var/datum/parent` (protected, read-only) + * The datum this component belongs to + +### Procs + +1. `/datum/proc/GetComponent(component_type(type)) -> datum/component?` (public, final) + * Returns a reference to a component of component_type if it exists in the datum, null otherwise +1. `/datum/proc/GetComponents(component_type(type)) -> list` (public, final) + * Returns a list of references to all components of component_type that exist in the datum +1. `/datum/proc/GetExactComponent(component_type(type)) -> datum/component?` (public, final) + * Returns a reference to a component whose type MATCHES component_type if that component exists in the datum, null otherwise +1. `GET_COMPONENT(varname, component_type)` OR `GET_COMPONENT_FROM(varname, component_type, src)` + * Shorthand for `var/component_type/varname = src.GetComponent(component_type)` +1. `/datum/proc/AddComponent(component_type(type), ...) -> datum/component` (public, final) + * Creates an instance of `component_type` in the datum and passes `...` to it's `New()` call + * Sends the `COMSIG_COMPONENT_ADDED` signal to the datum + * All components a datum owns are deleted with the datum + * Returns the component that was created. Or the old component in a dupe situation where `COMPONENT_DUPE_UNIQUE` was set +1. `/datum/proc/ComponentActivated(datum/component/C)` (abstract) + * Called on a component's `parent` after a signal recieved causes it to activate. `src` is the parameter + * Will only be called if a component's callback returns `TRUE` +1. `/datum/proc/TakeComponent(datum/component/C)` (public, final) + * Properly transfers ownership of a component from one datum to another + * Singals `COMSIG_COMPONENT_REMOVING` on the parent + * Called on the datum you want to own the component with another datum's component +1. `/datum/proc/SendSignal(signal, ...)` (public, final) + * Call to send a signal to the components of the target datum + * Extra arguments are to be specified in the signal definition +1. `/datum/component/New(datum/parent, ...)` (protected, virtual) + * Forwarded the arguments from `AddComponent()` +1. `/datum/component/Destroy()` (virtual) + * Sends the `COMSIG_COMPONENT_REMOVING` signal to the parent datum if the `parent` isn't being qdeleted + * Properly removes the component from `parent` and cleans up references +1. `/datum/component/proc/InheritComponent(datum/component/C, i_am_original(boolean))` (abstract) + * Called on a component when a component of the same type was added to the same parent + * See `/datum/component/var/dupe_mode` + * `C`'s type will always be the same of the called component +1. `/datum/component/proc/OnTransfer(datum/new_parent)` (abstract) + * Called before the new `parent` is assigned in `TakeComponent()`, after the remove signal, before the added signal + * Allows the component to react to ownership transfers +1. `/datum/component/proc/_RemoveNoSignal()` (private, final) + * Internal, clears the parent var and removes the component from the parents component list +1. `/datum/component/proc/RegisterSignal(signal(string), proc_ref(type), override(boolean))` (protected, final) (Consider removing for performance gainz) + * Makes a component listen for the specified `signal` on it's `parent` datum. + * When that signal is recieved `proc_ref` will be called on the component, along with associated arguments + * Example proc ref: `.proc/OnEvent` + * If a previous registration is overwritten by the call, a runtime occurs. Setting `override` to TRUE prevents this + * These callbacks run asyncronously + * Returning `TRUE` from these callbacks will trigger a `TRUE` return from the `SendSignal()` that initiated it +1. `/datum/component/proc/ReceiveSignal(signal, ...)` (virtual) + * Called when a component recieves any signal and is enabled + * Default implementation looks if the signal is registered and runs the appropriate proc + +### See signals and their arguments in __DEFINES\components.dm + +## Examples + Material Containers: #29268 (Too many GetComponent calls, but not bad) + Slips: #00000 (PR DIS) + Powercells: (TODO) \ No newline at end of file diff --git a/code/datums/components/component.dm b/code/datums/components/component.dm index b9212d2786..1bbd785d22 100644 --- a/code/datums/components/component.dm +++ b/code/datums/components/component.dm @@ -1,8 +1,8 @@ /datum/component - var/enabled = TRUE // Enables or disables the components - var/dupe_mode = COMPONENT_DUPE_HIGHLANDER // How components of the same type are handled in the same parent - var/list/signal_procs // list of signals -> callbacks - var/datum/parent // parent datum + var/enabled = TRUE + var/dupe_mode = COMPONENT_DUPE_HIGHLANDER + var/list/signal_procs + var/datum/parent /datum/component/New(datum/P, ...) var/dm = dupe_mode @@ -11,26 +11,34 @@ if(old) switch(dm) if(COMPONENT_DUPE_HIGHLANDER) - P.RemoveComponent(old) - old = null //in case SendSignal() blocks + InheritComponent(old, FALSE) + qdel(old) if(COMPONENT_DUPE_UNIQUE) + old.InheritComponent(src, TRUE) qdel(src) return - P.SendSignal(COMSIG_COMPONENT_ADDED, list(src), FALSE) + P.SendSignal(COMSIG_COMPONENT_ADDED, src) LAZYADD(P.datum_components, src) parent = P /datum/component/Destroy() - RemoveNoSignal() + enabled = FALSE + var/datum/P = parent + if(P) + _RemoveNoSignal() + P.SendSignal(COMSIG_COMPONENT_REMOVING, src) + LAZYCLEARLIST(signal_procs) return ..() -/datum/component/proc/RemoveNoSignal() +/datum/component/proc/_RemoveNoSignal() var/datum/P = parent if(P) LAZYREMOVE(P.datum_components, src) parent = null /datum/component/proc/RegisterSignal(sig_type, proc_on_self, override = FALSE) + if(QDELETED(src)) + return var/list/procs = signal_procs if(!procs) procs = list() @@ -79,19 +87,21 @@ if(istype(I, c_type)) . += I -/datum/proc/AddComponents(list/new_types) - for(var/new_type in new_types) - AddComponent(new_type) - /datum/proc/AddComponent(new_type, ...) var/nt = new_type args[1] = src var/datum/component/C = new nt(arglist(args)) return QDELING(C) ? GetComponent(new_type) : C -/datum/proc/RemoveComponent(datum/component/C) +/datum/proc/TakeComponent(datum/component/C) if(!C) return - C.RemoveNoSignal() - SendSignal(COMSIG_COMPONENT_REMOVING, list(C), FALSE) - qdel(C) + var/datum/helicopter = C.parent + if(helicopter == src) + //wat + return + C._RemoveNoSignal() + helicopter.SendSignal(COMSIG_COMPONENT_REMOVING, C) + C.OnTransfer(src) + C.parent = src + SendSignal(COMSIG_COMPONENT_ADDED, C) \ No newline at end of file diff --git a/code/datums/components/component.dm.rej b/code/datums/components/component.dm.rej new file mode 100644 index 0000000000..2116ae9d81 --- /dev/null +++ b/code/datums/components/component.dm.rej @@ -0,0 +1,35 @@ +diff a/code/datums/components/component.dm b/code/datums/components/component.dm (rejected hunks) +@@ -47,12 +47,14 @@ + + procs[sig_type] = CALLBACK(src, proc_on_self) + +-/datum/component/proc/ReceiveSignal(sigtype, list/sig_args) ++/datum/component/proc/ReceiveSignal(sigtype, ...) + var/list/sps = signal_procs + var/datum/callback/CB = LAZYACCESS(sps, sigtype) + if(!CB) + return FALSE +- return CB.InvokeAsync(arglist(sig_args)) ++ var/list/arguments = args.Copy() ++ arguments.Cut(1, 2) ++ return CB.InvokeAsync(arglist(arguments)) + + /datum/component/proc/InheritComponent(datum/component/C, i_am_original) + return +@@ -62,14 +64,14 @@ + + /datum/var/list/datum_components //list of /datum/component + +-/datum/proc/SendSignal(sigtype, list/sig_args) ++/datum/proc/SendSignal(sigtype, ...) + var/list/comps = datum_components + . = FALSE + for(var/I in comps) + var/datum/component/C = I + if(!C.enabled) + continue +- if(C.ReceiveSignal(sigtype, sig_args)) ++ if(C.ReceiveSignal(arglist(args))) + ComponentActivated(C) + . = TRUE + From 9b7a0c5d548dce14052068133060c3b6994d8b7a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 26 Jul 2017 15:44:58 -0500 Subject: [PATCH 013/219] Tweaks the ash walker nest so that lava rivers won't wreck them --- .../lavaland_surface_ash_walker1.dmm | 309 ++++++++++-------- .../lavaland_surface_ash_walker1.dmm.rej | 307 +++++++++++++++++ 2 files changed, 475 insertions(+), 141 deletions(-) create mode 100644 _maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm.rej diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm index 7537f91f09..0fa2f0795c 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm @@ -6,13 +6,13 @@ /obj/structure/stone_tile/surrounding_tile{ dir = 4 }, -/turf/closed/mineral/volcanic/lava_land_surface, +/turf/closed/mineral/volcanic, /area/lavaland/surface/outdoors) "ac" = ( /obj/structure/stone_tile/block{ dir = 1 }, -/turf/closed/mineral/volcanic/lava_land_surface, +/turf/closed/mineral/volcanic, /area/lavaland/surface/outdoors) "ad" = ( /obj/structure/stone_tile/block{ @@ -21,13 +21,13 @@ /obj/structure/stone_tile/cracked{ dir = 8 }, -/turf/closed/mineral/volcanic/lava_land_surface, +/turf/closed/mineral/volcanic, /area/lavaland/surface/outdoors) "ae" = ( /obj/structure/stone_tile/block/cracked{ dir = 1 }, -/turf/closed/mineral/volcanic/lava_land_surface, +/turf/closed/mineral/volcanic, /area/lavaland/surface/outdoors) "af" = ( /obj/structure/stone_tile/block{ @@ -36,26 +36,26 @@ /obj/structure/stone_tile{ dir = 8 }, -/turf/closed/mineral/volcanic/lava_land_surface, +/turf/closed/mineral/volcanic, /area/lavaland/surface/outdoors) "ag" = ( /obj/structure/stone_tile/surrounding_tile/cracked{ dir = 1 }, -/turf/closed/mineral/volcanic/lava_land_surface, +/turf/closed/mineral/volcanic, /area/lavaland/surface/outdoors) "ah" = ( -/turf/closed/mineral/volcanic/lava_land_surface, +/turf/closed/mineral/volcanic, /area/lavaland/surface/outdoors) "ai" = ( /obj/structure/stone_tile/surrounding_tile/cracked{ dir = 4 }, -/turf/closed/mineral/volcanic/lava_land_surface, +/turf/closed/mineral/volcanic, /area/lavaland/surface/outdoors) "aj" = ( /obj/structure/stone_tile/slab, -/turf/closed/mineral/volcanic/lava_land_surface, +/turf/closed/mineral/volcanic, /area/lavaland/surface/outdoors) "ak" = ( /turf/closed/indestructible/riveted/boss, @@ -64,7 +64,7 @@ /obj/structure/stone_tile/surrounding_tile{ dir = 1 }, -/turf/closed/mineral/volcanic/lava_land_surface, +/turf/closed/mineral/volcanic, /area/lavaland/surface/outdoors) "am" = ( /obj/structure/stone_tile{ @@ -95,7 +95,10 @@ /obj/structure/stone_tile/block/cracked{ dir = 8 }, -/turf/closed/mineral/volcanic/lava_land_surface, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/turf/closed/mineral/volcanic, /area/lavaland/surface/outdoors) "ar" = ( /obj/structure/stone_tile/block/cracked{ @@ -104,7 +107,7 @@ /obj/structure/stone_tile{ dir = 4 }, -/turf/closed/mineral/volcanic/lava_land_surface, +/turf/closed/mineral/volcanic, /area/lavaland/surface/outdoors) "as" = ( /turf/closed/wall/mineral/wood, @@ -113,10 +116,10 @@ /obj/structure/stone_tile/block{ dir = 8 }, -/obj/structure/stone_tile{ - dir = 1 +/obj/structure/stone_tile/block{ + dir = 4 }, -/turf/closed/mineral/volcanic/lava_land_surface, +/turf/closed/mineral/volcanic, /area/lavaland/surface/outdoors) "au" = ( /obj/structure/stone_tile, @@ -181,7 +184,7 @@ /obj/structure/stone_tile/block{ dir = 4 }, -/turf/closed/mineral/volcanic/lava_land_surface, +/turf/closed/mineral/volcanic, /area/lavaland/surface/outdoors) "aA" = ( /obj/structure/stone_tile/cracked{ @@ -222,10 +225,7 @@ /obj/structure/stone_tile/block{ dir = 8 }, -/obj/structure/stone_tile/cracked{ - dir = 1 - }, -/turf/closed/mineral/volcanic/lava_land_surface, +/turf/closed/mineral/volcanic, /area/lavaland/surface/outdoors) "aG" = ( /obj/structure/stone_tile/block/cracked{ @@ -297,7 +297,10 @@ /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) "aO" = ( -/obj/item/weapon/storage/box/rxglasses, +/obj/structure/stone_tile/surrounding/cracked{ + icon_state = "cracked_surrounding1"; + dir = 1 + }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) "aP" = ( @@ -316,8 +319,10 @@ /obj/structure/stone_tile/block{ dir = 8 }, -/obj/structure/stone_tile, -/turf/closed/mineral/volcanic/lava_land_surface, +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/turf/closed/mineral/volcanic, /area/lavaland/surface/outdoors) "aS" = ( /obj/structure/stone_tile/block{ @@ -465,13 +470,13 @@ /obj/structure/stone_tile{ dir = 8 }, -/turf/closed/mineral/volcanic/lava_land_surface, +/turf/closed/mineral/volcanic, /area/lavaland/surface/outdoors) "bi" = ( -/obj/structure/stone_tile/cracked{ - dir = 4 +/obj/structure/stone_tile/block/cracked{ + dir = 8 }, -/turf/closed/mineral/volcanic/lava_land_surface, +/turf/closed/mineral/volcanic, /area/lavaland/surface/outdoors) "bj" = ( /obj/structure/stone_tile/block/cracked{ @@ -677,7 +682,7 @@ /obj/structure/stone_tile/block/cracked{ dir = 4 }, -/turf/closed/mineral/volcanic/lava_land_surface, +/turf/closed/mineral/volcanic, /area/lavaland/surface/outdoors) "bD" = ( /obj/structure/stone_tile/block{ @@ -713,11 +718,11 @@ /area/ruin/unpowered/ash_walkers) "bI" = ( /obj/structure/stone_tile/slab/cracked, -/turf/closed/mineral/volcanic/lava_land_surface, +/turf/closed/mineral/volcanic, /area/lavaland/surface/outdoors) "bJ" = ( /obj/structure/stone_tile/surrounding_tile, -/turf/closed/mineral/volcanic/lava_land_surface, +/turf/closed/mineral/volcanic, /area/lavaland/surface/outdoors) "bK" = ( /obj/structure/stone_tile{ @@ -908,10 +913,16 @@ "cj" = ( /obj/effect/mob_spawn/human/corpse/damaged, /obj/effect/decal/cleanable/blood, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "ck" = ( /obj/item/weapon/twohanded/spear, +/obj/structure/stone_tile{ + dir = 4 + }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "cl" = ( @@ -931,19 +942,25 @@ /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "cn" = ( -/obj/structure/bonfire/dense, +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "co" = ( -/obj/structure/stone_tile, -/obj/structure/stone_tile/cracked{ +/obj/structure/stone_tile/block/cracked, +/obj/structure/stone_tile/block{ dir = 1 }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "cp" = ( /obj/structure/stone_tile/cracked, -/turf/closed/mineral/volcanic/lava_land_surface, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/closed/mineral/volcanic, /area/lavaland/surface/outdoors) "cq" = ( /obj/structure/stone_tile/cracked{ @@ -1021,6 +1038,10 @@ /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) "cA" = ( +/obj/structure/stone_tile/slab/cracked{ + icon_state = "cracked_slab1"; + dir = 4 + }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) "cB" = ( @@ -1070,18 +1091,26 @@ /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "cI" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, /obj/structure/stone_tile/cracked{ dir = 1 }, -/obj/effect/decal/cleanable/blood, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "cJ" = ( /obj/item/weapon/shovel, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "cK" = ( -/obj/item/weapon/pickaxe, +/obj/machinery/hydroponics/soil, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "cL" = ( @@ -1132,21 +1161,19 @@ /obj/structure/stone_tile/surrounding_tile/cracked{ dir = 8 }, -/turf/closed/mineral/volcanic/lava_land_surface, +/turf/closed/mineral/volcanic, /area/lavaland/surface/outdoors) "cP" = ( /obj/structure/stone_tile/block, -/turf/closed/mineral/volcanic/lava_land_surface, +/turf/closed/mineral/volcanic, /area/lavaland/surface/outdoors) "cQ" = ( -/obj/structure/stone_tile{ - dir = 8 - }, -/turf/closed/mineral/volcanic/lava_land_surface, +/obj/structure/stone_tile/block/cracked, +/turf/closed/mineral/volcanic, /area/lavaland/surface/outdoors) "cR" = ( /obj/structure/stone_tile/surrounding_tile/cracked, -/turf/closed/mineral/volcanic/lava_land_surface, +/turf/closed/mineral/volcanic, /area/lavaland/surface/outdoors) "cS" = ( /obj/effect/decal/cleanable/blood, @@ -1190,15 +1217,15 @@ aa (2,1,1) = {" aa ah +ab +cU +cV ah ah -ah -aL -ah bi -bu -am ah +bi +da ah ah ah @@ -1213,7 +1240,6 @@ aa aa aa ah -am as as as @@ -1221,12 +1247,13 @@ as ak as as +db +ah +ah +bN +bY +dp ah -cp -bX -bL -bM -cC ah ah aa @@ -1235,29 +1262,28 @@ aa aa aa ah -an ak aA aM -aX +cY bj bv ak -bK -bM -bM +db bN -bM -bY -cG +cg +cl +cq +cq +dv +ah ah aa "} (5,1,1) = {" aa aa -ah -ah +ac as aB aN @@ -1265,56 +1291,57 @@ aY bk bw ak -bX -cS -bM -bM -cw -bM +cb +bZ +ch +cm +cr +bY bL +cb ah ah "} (6,1,1) = {" aa aa -ah -ao +cT ak aC +cX aO -aM bl bx bD +bS +de +bV +dg +cs +cy bY -cg -bM -bO -cx -cw -cH +cq ah ah "} (7,1,1) = {" aa aa -ah -ap +ae as -aD +cW aP aZ bm by ak +bV +cb +ci +bA +ct bN -cg -cl -cq -bM -cw +bL cI ah ah @@ -1322,8 +1349,7 @@ ah (8,1,1) = {" aa aa -ah -ah +ae as aE aQ @@ -1331,12 +1357,13 @@ ba bn bz ak +cb +df +bX +dh +bO +dq bZ -ch -cm -cr -bY -bM cJ ah ah @@ -1345,7 +1372,6 @@ ah aa ah ah -ah as ak as @@ -1353,14 +1379,15 @@ as as ak ak -ca -bV +cg +cb +cg cn -cs -cy -cq -bM -ah +bL +dr +dw +dA +dD ah "} (10,1,1) = {" @@ -1368,21 +1395,21 @@ aa ai aq at -aF +cU +aR aR -bb bo bA -bE -bO +cZ +dd +cg cb -ci -bA -ct -bN -bM +di +dn +ds +dx cK -ah +dE ah "} (11,1,1) = {" @@ -1397,14 +1424,14 @@ ak ak bF bE -cc -bX -co -bO -bM -cg -ah -ah +cb +bL +dh +cb +dt +dy +dB +dC aa "} (12,1,1) = {" @@ -1421,11 +1448,11 @@ ak bP bL bX -bM -bY -bM -ah -ah +dh +do +du +dz +dC ah aa "} @@ -1443,7 +1470,7 @@ ak bQ bM cj -bL +dj ah ah ah @@ -1464,14 +1491,14 @@ ak bG bR cd -bM -bM +cg +dk cu ah -ah -aq -ah -cO +bi +bi +bi +da "} (15,1,1) = {" ac @@ -1486,8 +1513,8 @@ bB bH bS ce -bM -bN +dn +dl ak ak as @@ -1508,14 +1535,14 @@ ak bG bT cd -bM -bY +bX +dj as cz cD cL as -cp +ah "} (17,1,1) = {" af @@ -1551,7 +1578,7 @@ ak ak ak bV -bM +bX bN ah as @@ -1559,7 +1586,7 @@ cB cF cN ak -cP +db "} (19,1,1) = {" ag @@ -1599,9 +1626,9 @@ ah ah al ah -an +ah bC -cp +ah ah cR "} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm.rej b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm.rej new file mode 100644 index 0000000000..4fe35ae3e9 --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm.rej @@ -0,0 +1,307 @@ +diff a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm (rejected hunks) +@@ -1161,6 +1188,293 @@ + }, + /turf/open/floor/plating/asteroid/basalt/lava_land_surface, + /area/lavaland/surface/outdoors) ++"cT" = ( ++/obj/structure/stone_tile, ++/obj/structure/stone_tile/block{ ++ dir = 1 ++ }, ++/turf/closed/mineral/volcanic, ++/area/lavaland/surface/outdoors) ++"cU" = ( ++/obj/structure/stone_tile/block{ ++ dir = 8 ++ }, ++/turf/closed/mineral/volcanic, ++/area/lavaland/surface/outdoors) ++"cV" = ( ++/obj/structure/stone_tile/cracked, ++/obj/structure/stone_tile/block{ ++ dir = 8 ++ }, ++/turf/closed/mineral/volcanic, ++/area/lavaland/surface/outdoors) ++"cW" = ( ++/obj/structure/table/optable, ++/obj/structure/stone_tile{ ++ dir = 1 ++ }, ++/turf/open/floor/plating/asteroid/basalt/lava_land_surface, ++/area/ruin/unpowered/ash_walkers) ++"cX" = ( ++/obj/item/weapon/storage/box/rxglasses, ++/obj/structure/stone_tile{ ++ dir = 1 ++ }, ++/turf/open/floor/plating/asteroid/basalt/lava_land_surface, ++/area/ruin/unpowered/ash_walkers) ++"cY" = ( ++/obj/item/seeds/glowshroom, ++/obj/item/seeds/glowshroom, ++/obj/structure/stone_tile/block{ ++ dir = 4 ++ }, ++/turf/open/floor/plating/asteroid/basalt/lava_land_surface, ++/area/ruin/unpowered/ash_walkers) ++"cZ" = ( ++/obj/structure/stone_tile/surrounding_tile{ ++ dir = 8 ++ }, ++/obj/structure/stone_tile/block{ ++ dir = 4 ++ }, ++/turf/open/floor/plating/asteroid/basalt/lava_land_surface, ++/area/lavaland/surface/outdoors) ++"da" = ( ++/obj/structure/stone_tile/surrounding_tile/cracked{ ++ dir = 8 ++ }, ++/turf/closed/mineral/volcanic, ++/area/lavaland/surface/outdoors) ++"db" = ( ++/obj/structure/stone_tile/block, ++/turf/closed/mineral/volcanic, ++/area/lavaland/surface/outdoors) ++"dc" = ( ++/obj/structure/stone_tile/block, ++/turf/closed/mineral/volcanic, ++/area/lavaland/surface/outdoors) ++"dd" = ( ++/obj/structure/stone_tile/surrounding_tile/cracked, ++/turf/open/floor/plating/asteroid/basalt/lava_land_surface, ++/area/lavaland/surface/outdoors) ++"de" = ( ++/obj/structure/stone_tile/block/cracked{ ++ dir = 4 ++ }, ++/obj/structure/stone_tile/block{ ++ dir = 8 ++ }, ++/turf/open/floor/plating/asteroid/basalt/lava_land_surface, ++/area/lavaland/surface/outdoors) ++"df" = ( ++/obj/effect/decal/cleanable/blood, ++/obj/structure/stone_tile/cracked{ ++ dir = 8 ++ }, ++/obj/structure/stone_tile/cracked{ ++ dir = 4 ++ }, ++/turf/open/floor/plating/asteroid/basalt/lava_land_surface, ++/area/lavaland/surface/outdoors) ++"dg" = ( ++/obj/structure/bonfire/dense, ++/obj/structure/stone_tile/center, ++/turf/open/floor/plating/asteroid/basalt/lava_land_surface, ++/area/lavaland/surface/outdoors) ++"dh" = ( ++/obj/structure/stone_tile/block/cracked, ++/obj/structure/stone_tile/block{ ++ dir = 1 ++ }, ++/turf/open/floor/plating/asteroid/basalt/lava_land_surface, ++/area/lavaland/surface/outdoors) ++"di" = ( ++/obj/effect/decal/cleanable/blood, ++/obj/structure/stone_tile/block, ++/obj/structure/stone_tile/cracked{ ++ dir = 4 ++ }, ++/obj/structure/stone_tile/cracked{ ++ dir = 1 ++ }, ++/turf/open/floor/plating/asteroid/basalt/lava_land_surface, ++/area/lavaland/surface/outdoors) ++"dj" = ( ++/obj/structure/stone_tile/block, ++/obj/structure/stone_tile/block{ ++ dir = 1 ++ }, ++/turf/open/floor/plating/asteroid/basalt/lava_land_surface, ++/area/lavaland/surface/outdoors) ++"dk" = ( ++/obj/structure/stone_tile/block/cracked{ ++ dir = 1 ++ }, ++/obj/structure/stone_tile/block, ++/turf/open/floor/plating/asteroid/basalt/lava_land_surface, ++/area/lavaland/surface/outdoors) ++"dl" = ( ++/obj/structure/stone_tile/block/cracked{ ++ dir = 1 ++ }, ++/obj/structure/stone_tile/cracked, ++/obj/structure/stone_tile/cracked{ ++ dir = 8 ++ }, ++/turf/open/floor/plating/asteroid/basalt/lava_land_surface, ++/area/lavaland/surface/outdoors) ++"dm" = ( ++/obj/structure/stone_tile/block, ++/obj/structure/stone_tile/block{ ++ dir = 1 ++ }, ++/turf/open/floor/plating/asteroid/basalt/lava_land_surface, ++/area/lavaland/surface/outdoors) ++"dn" = ( ++/obj/structure/stone_tile/block{ ++ dir = 4 ++ }, ++/obj/structure/stone_tile/block/cracked{ ++ dir = 8 ++ }, ++/turf/open/floor/plating/asteroid/basalt/lava_land_surface, ++/area/lavaland/surface/outdoors) ++"do" = ( ++/obj/structure/stone_tile{ ++ dir = 8 ++ }, ++/obj/structure/reagent_dispensers/watertank, ++/turf/open/floor/plating/asteroid/basalt/lava_land_surface, ++/area/lavaland/surface/outdoors) ++"dp" = ( ++/obj/item/weapon/pickaxe, ++/obj/structure/stone_tile/cracked{ ++ dir = 1 ++ }, ++/turf/open/floor/plating/asteroid/basalt/lava_land_surface, ++/area/lavaland/surface/outdoors) ++"dq" = ( ++/obj/item/stack/sheet/mineral/wood, ++/obj/structure/stone_tile{ ++ dir = 4 ++ }, ++/turf/open/floor/plating/asteroid/basalt/lava_land_surface, ++/area/lavaland/surface/outdoors) ++"dr" = ( ++/obj/structure/stone_tile/surrounding_tile/cracked, ++/obj/structure/stone_tile/surrounding_tile/cracked{ ++ dir = 1 ++ }, ++/obj/structure/stone_tile/surrounding_tile{ ++ dir = 8 ++ }, ++/obj/structure/stone_tile/center, ++/turf/open/floor/plating/asteroid/basalt/lava_land_surface, ++/area/lavaland/surface/outdoors) ++"ds" = ( ++/obj/structure/stone_tile/block, ++/turf/open/floor/plating/asteroid/basalt/lava_land_surface, ++/area/lavaland/surface/outdoors) ++"dt" = ( ++/obj/structure/stone_tile/surrounding_tile/cracked{ ++ dir = 4 ++ }, ++/obj/structure/stone_tile/surrounding_tile/cracked, ++/obj/structure/stone_tile/surrounding_tile{ ++ dir = 8 ++ }, ++/obj/structure/stone_tile/center, ++/turf/open/floor/plating/asteroid/basalt/lava_land_surface, ++/area/lavaland/surface/outdoors) ++"du" = ( ++/obj/structure/stone_tile/cracked{ ++ dir = 1 ++ }, ++/turf/closed/mineral/volcanic, ++/area/lavaland/surface/outdoors) ++"dv" = ( ++/obj/structure/stone_tile/cracked{ ++ dir = 8 ++ }, ++/obj/effect/mob_spawn/human/corpse/damaged, ++/obj/effect/decal/cleanable/blood, ++/obj/structure/stone_tile/cracked{ ++ dir = 1 ++ }, ++/turf/open/floor/plating/asteroid/basalt/lava_land_surface, ++/area/lavaland/surface/outdoors) ++"dw" = ( ++/obj/item/weapon/reagent_containers/glass/bucket, ++/obj/structure/stone_tile/block/cracked{ ++ dir = 4 ++ }, ++/turf/open/floor/plating/asteroid/basalt/lava_land_surface, ++/area/lavaland/surface/outdoors) ++"dx" = ( ++/obj/item/device/flashlight/lantern, ++/obj/structure/stone_tile/center, ++/turf/open/floor/plating/asteroid/basalt/lava_land_surface, ++/area/lavaland/surface/outdoors) ++"dy" = ( ++/obj/machinery/hydroponics/soil, ++/obj/structure/stone_tile/block{ ++ dir = 8 ++ }, ++/turf/open/floor/plating/asteroid/basalt/lava_land_surface, ++/area/lavaland/surface/outdoors) ++"dz" = ( ++/obj/structure/stone_tile/cracked{ ++ dir = 1 ++ }, ++/obj/structure/stone_tile/cracked, ++/turf/closed/mineral/volcanic, ++/area/lavaland/surface/outdoors) ++"dA" = ( ++/obj/machinery/hydroponics/soil, ++/obj/structure/stone_tile/surrounding_tile/cracked{ ++ dir = 1 ++ }, ++/obj/structure/stone_tile/surrounding_tile, ++/obj/structure/stone_tile/surrounding_tile{ ++ dir = 4 ++ }, ++/obj/structure/stone_tile/center, ++/turf/open/floor/plating/asteroid/basalt/lava_land_surface, ++/area/lavaland/surface/outdoors) ++"dB" = ( ++/obj/structure/stone_tile/surrounding_tile/cracked{ ++ dir = 4 ++ }, ++/obj/structure/stone_tile/surrounding_tile/cracked{ ++ dir = 1 ++ }, ++/obj/structure/stone_tile/surrounding_tile/cracked{ ++ dir = 8 ++ }, ++/obj/structure/stone_tile/center/cracked, ++/turf/closed/mineral/volcanic, ++/area/lavaland/surface/outdoors) ++"dC" = ( ++/obj/structure/stone_tile, ++/turf/closed/mineral/volcanic, ++/area/lavaland/surface/outdoors) ++"dD" = ( ++/obj/structure/stone_tile/cracked{ ++ dir = 8 ++ }, ++/turf/closed/mineral/volcanic, ++/area/lavaland/surface/outdoors) ++"dE" = ( ++/obj/structure/stone_tile, ++/obj/structure/stone_tile/cracked{ ++ dir = 8 ++ }, ++/turf/closed/mineral/volcanic, ++/area/lavaland/surface/outdoors) ++"dF" = ( ++/obj/structure/stone_tile, ++/turf/closed/mineral/volcanic, ++/area/lavaland/surface/outdoors) + + (1,1,1) = {" + aa +@@ -1526,9 +1840,9 @@ bt + ak + ak + bU +-bM ++cg + ck +-cb ++bS + cv + cA + cE From 37c1cf502eb9752803c77f4175143d1d8597b2ca Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 26 Jul 2017 15:45:14 -0500 Subject: [PATCH 014/219] Adds info about schema versioning to head of db changelog file --- SQL/database_changelog.txt.rej | 15 +++++++++++++++ code/world.dm | 20 ++++++++++---------- 2 files changed, 25 insertions(+), 10 deletions(-) create mode 100644 SQL/database_changelog.txt.rej diff --git a/SQL/database_changelog.txt.rej b/SQL/database_changelog.txt.rej new file mode 100644 index 0000000000..1b201ec4aa --- /dev/null +++ b/SQL/database_changelog.txt.rej @@ -0,0 +1,15 @@ +diff a/SQL/database_changelog.txt b/SQL/database_changelog.txt (rejected hunks) +@@ -1,10 +1,10 @@ + Any time you make a change to the schema files, remember to increment the database schema version. Generally increment the minor number, major should be reserved for significant changes to the schema. Both values go up to 255. + +-The latest database version is 3.1; The query to update the schema revision table is: ++The latest database version is 3.0; The query to update the schema revision table is: + +-UPDATE `schema_revision` SET major = 3, minor = 1 LIMIT 1; ++INSERT INTO `schema_revision` (`major`, `minor`) VALUES (3, 0); + or +-UPDATE `SS13_schema_revision` SET major = 3, minor = 1 LIMIT 1; ++INSERT INTO `SS13_schema_revision` (`major`, `minor`) VALUES (3, 0); + + ---------------------------------------------------- + diff --git a/code/world.dm b/code/world.dm index b6badeb348..1fe2b5f25d 100644 --- a/code/world.dm +++ b/code/world.dm @@ -59,16 +59,16 @@ if(config.sql_enabled) if(SSdbcore.Connect()) log_world("Database connection established.") - var/datum/DBQuery/db_version = SSdbcore.NewQuery("SELECT major, minor FROM [format_table_name("schema_version")]") - db_version.Execute() - if(db_version.NextRow()) - var/db_major = db_version.item[1] - var/db_minor = db_version.item[2] + var/datum/DBQuery/query_db_version = SSdbcore.NewQuery("SELECT major, minor FROM [format_table_name("schema_version")] ORDER BY date DESC LIMIT 1") + query_db_version.Execute() + if(query_db_version.NextRow()) + var/db_major = query_db_version.item[1] + var/db_minor = query_db_version.item[2] if(db_major < DB_MAJOR_VERSION || db_minor < DB_MINOR_VERSION) - message_admins("db schema ([db_major].[db_minor]) is behind latest tg schema version ([DB_MAJOR_VERSION].[DB_MINOR_VERSION]), this may lead to undefined behaviour or errors") - log_sql("db schema ([db_major].[db_minor]) is behind latest tg schema version ([DB_MAJOR_VERSION].[DB_MINOR_VERSION]), this may lead to undefined behaviour or errors") + message_admins("Database schema ([db_major].[db_minor]) is behind latest schema version ([DB_MAJOR_VERSION].[DB_MINOR_VERSION]), this may lead to undefined behaviour or errors") + log_sql("Database schema ([db_major].[db_minor]) is behind latest schema version ([DB_MAJOR_VERSION].[DB_MINOR_VERSION]), this may lead to undefined behaviour or errors") else - message_admins("Could not get schema version from db") + message_admins("Could not get schema version from database") else log_world("Your server failed to establish a connection with the database.") @@ -105,10 +105,10 @@ /world/Topic(T, addr, master, key) var/list/input = params2list(T) - + var/pinging = ("ping" in input) var/playing = ("players" in input) - + if(!pinging && !playing && config && config.log_world_topic) GLOB.world_game_log << "TOPIC: \"[T]\", from:[addr], master:[master], key:[key]" From 452421cd1b5ad2488d7103e8b5b3ef24f08617be Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 27 Jul 2017 06:56:56 -0500 Subject: [PATCH 015/219] Alcohol Bottle Resprite --- .../computers/item/tablet.dm.rej | 15 +++++++++++++++ icons/obj/contraband.dmi | Bin 69224 -> 69002 bytes icons/obj/drinks.dmi | Bin 64535 -> 60401 bytes 3 files changed, 15 insertions(+) create mode 100644 code/modules/modular_computers/computers/item/tablet.dm.rej diff --git a/code/modules/modular_computers/computers/item/tablet.dm.rej b/code/modules/modular_computers/computers/item/tablet.dm.rej new file mode 100644 index 0000000000..ee3bfe26b9 --- /dev/null +++ b/code/modules/modular_computers/computers/item/tablet.dm.rej @@ -0,0 +1,15 @@ +diff a/code/modules/modular_computers/computers/item/tablet.dm b/code/modules/modular_computers/computers/item/tablet.dm (rejected hunks) +@@ -12,3 +13,12 @@ + slot_flags = SLOT_ID | SLOT_BELT + has_light = TRUE //LED flashlight! + comp_light_luminosity = 2.3 //Same as the PDA ++ var/finish_color = null ++ ++/obj/item/device/modular_computer/tablet/update_icon() ++ ..() ++ if(!finish_color) ++ finish_color = pick("red","blue","brown","green","black") ++ icon_state = "tablet-[finish_color]" ++ icon_state_unpowered = "tablet-[finish_color]" ++ icon_state_powered = "tablet-[finish_color]" +\ No newline at end of file diff --git a/icons/obj/contraband.dmi b/icons/obj/contraband.dmi index 771ab2edb3656b943d56ebe0d952d8d1e1af10fb..f86dd2e7d00d1d2cddf435a24333963276d4566d 100644 GIT binary patch delta 37884 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 delta 38108 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 THvdFD8+e(bERhw4H)8(}-`iSf diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index 69f6c087111f8f08d346ea815cd89a0bba8546cc..ddb152152c06e35b31c2d7690814c3e1efb4eaa1 100644 GIT binary patch literal 60401 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 ZGsj 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 d81{G1Vk+ZApf<_Mjk_+THRo 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 From b2e176346c33afbefeb744b4e88198d1ea9fe3aa Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Thu, 27 Jul 2017 05:29:27 -0700 Subject: [PATCH 016/219] Update cit_objectives.dm --- code/game/gamemodes/cit_objectives.dm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/code/game/gamemodes/cit_objectives.dm b/code/game/gamemodes/cit_objectives.dm index a6b1b4d464..3874ea95db 100644 --- a/code/game/gamemodes/cit_objectives.dm +++ b/code/game/gamemodes/cit_objectives.dm @@ -4,7 +4,7 @@ //Hit chance is here to avoid people checking github and then hovering around new arrivals within the max minute range every round. /datum/objective/assassinate/late - martyr_compatible = 0 + martyr_compatible = FALSE /datum/objective/assassinate/late/find_target() @@ -15,7 +15,7 @@ possible_targets += possible_target if(possible_targets.len > 0 && prob(LATE_TARGET_HIT_CHANCE)) target = pick(possible_targets) - martyr_compatible = 1 //Might never matter, but I guess if an admin gives another random objective, this should now be compatible + martyr_compatible = TRUE //Might never matter, but I guess if an admin gives another random objective, this should now be compatible update_explanation_text() message_admins("[target] has been selected as the assassination target of [owner].") @@ -68,14 +68,14 @@ /datum/objective/assassinate/late/check_completion() if(target && target.current) //If target WAS assigned if(target.current.stat == DEAD || issilicon(target.current) || isbrain(target.current) || target.current.z > 6 || !target.current.ckey) //Borgs/brains/AIs count as dead for traitor objectives. --NeoFite - return 1 - return 0 + return TRUE + return FALSE else //If no target was ever given if(!owner.current || owner.current.stat == DEAD || isbrain(owner.current)) - return 0 + return FALSE if(!is_special_character(owner.current)) - return 0 - return 1 + return FALSE + return TRUE /datum/objective/assassinate/late/update_explanation_text() //..() From e3334ad1a800467ec8f446f5f350ea3073a1ec7c Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 28 Jul 2017 09:02:02 -0500 Subject: [PATCH 017/219] Fixes mutation toxins not stunning properly --- code/modules/reagents/chemistry/reagents/other_reagents.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index fb7b99ce4d..fe3cfb1c1a 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -410,7 +410,7 @@ return to_chat(H, "You crumple in agony as your flesh wildly morphs into new forms!") H.visible_message("[H] falls to the ground and screams as [H.p_their()] skin bubbles and froths!") //'froths' sounds painful when used with SKIN. - H.Knockdown(60, 0) + H.Knockdown(60) addtimer(CALLBACK(src, .proc/mutate, H), 30) return From 3db9c9ddb770601fa7829385b6daad253ffca989 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 28 Jul 2017 09:02:21 -0500 Subject: [PATCH 018/219] Adds 3D Sound System --- code/__DEFINES/misc.dm | 4 -- code/__DEFINES/sound.dm.rej | 51 ++++++++++++++++++++ code/game/area/areas.dm | 4 +- code/game/sound.dm | 54 +++++++++++----------- code/game/sound.dm.rej | 9 ++++ code/modules/client/preferences_toggles.dm | 6 +-- code/modules/vehicles/bicycle.dm | 4 +- 7 files changed, 94 insertions(+), 38 deletions(-) create mode 100644 code/__DEFINES/sound.dm.rej create mode 100644 code/game/sound.dm.rej diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index dcad7f531e..e0ab84f832 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -167,10 +167,6 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s #define GAME_STATE_SETTING_UP 2 #define GAME_STATE_PLAYING 3 #define GAME_STATE_FINISHED 4 -//SOUND: -#define SOUND_MINIMUM_PRESSURE 10 -#define FALLOFF_SOUNDS 1 -#define SURROUND_CAP 7 //FONTS: // Used by Paper and PhotoCopier (and PaperBin once a year). diff --git a/code/__DEFINES/sound.dm.rej b/code/__DEFINES/sound.dm.rej new file mode 100644 index 0000000000..c54b9b4b64 --- /dev/null +++ b/code/__DEFINES/sound.dm.rej @@ -0,0 +1,51 @@ +diff a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm (rejected hunks) +@@ -5,42 +5,15 @@ + #define CHANNEL_JUKEBOX 1021 + #define CHANNEL_JUSTICAR_ARK 1020 + #define CHANNEL_HEARTBEAT 1019 //sound channel for heartbeats ++#define CHANNEL_AMBIENCE 1018 ++#define CHANNEL_BUZZ 1017 ++#define CHANNEL_BICYCLE 1016 + + //THIS SHOULD ALWAYS BE THE LOWEST ONE! + //KEEP IT UPDATED + +-#define CHANNEL_HIGHEST_AVAILABLE 1018 ++#define CHANNEL_HIGHEST_AVAILABLE 1015 + + + #define SOUND_MINIMUM_PRESSURE 10 +-#define FALLOFF_SOUNDS 0.5 +- +-//BYOND Sound Environment defines +- +-#define SOUND_ENV_DEFAULT -1 +-#define SOUND_ENV_GENERIC 0 +-#define SOUND_ENV_PADDED_CELL 1 +-#define SOUND_ENV_ROOM 2 +-#define SOUND_ENV_BATHROOM 3 +-#define SOUND_ENV_LIVINGROOM 4 +-#define SOUND_ENV_STONEROOM 5 +-#define SOUND_ENV_AUDITORIUM 6 +-#define SOUND_ENV_CONCERT_HALL 7 +-#define SOUND_ENV_CAVE 8 +-#define SOUND_ENV_ARENA 9 +-#define SOUND_ENV_HANGAR 10 +-#define SOUND_ENV_CARPETTED_HALLWAY 11 +-#define SOUND_ENV_HALLWAY 12 +-#define SOUND_ENV_STONE_CORRIDOOR 13 +-#define SOUND_ENV_ALLEY 14 +-#define SOUND_ENV_FOREST 15 +-#define SOUND_ENV_CITY 16 +-#define SOUND_ENV_MOUNTAINS 17 +-#define SOUND_ENV_QUARRY 18 +-#define SOUND_ENV_PLAIN 19 +-#define SOUND_ENV_PARKING_LOT 20 +-#define SOUND_ENV_SEWER_PIPE 21 +-#define SOUND_ENV_UNDERWATER 22 +-#define SOUND_ENV_DRUGGED 23 +-#define SOUND_ENV_DIZZY 24 +-#define SOUND_ENV_PSYCHOTIC 25 +\ No newline at end of file ++#define FALLOFF_SOUNDS 0.5 +\ No newline at end of file diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index c71ea6a10f..a0f268344e 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -432,7 +432,7 @@ GLOBAL_LIST_EMPTY(teleportlocs) // Ambience goes down here -- make sure to list each area seperately for ease of adding things in later, thanks! Note: areas adjacent to each other should have the same sounds to prevent cutoff when possible.- LastyScratch if(L.client && !L.client.ambience_playing && L.client.prefs.toggles & SOUND_SHIP_AMBIENCE) L.client.ambience_playing = 1 - L << sound('sound/ambience/shipambience.ogg', repeat = 1, wait = 0, volume = 35, channel = 2) + L << sound('sound/ambience/shipambience.ogg', repeat = 1, wait = 0, volume = 35, channel = CHANNEL_BUZZ) if(!(L.client && (L.client.prefs.toggles & SOUND_AMBIENCE))) return //General ambience check is below the ship ambience so one can play without the other @@ -441,7 +441,7 @@ GLOBAL_LIST_EMPTY(teleportlocs) var/sound = pick(ambientsounds) if(!L.client.played) - L << sound(sound, repeat = 0, wait = 0, volume = 25, channel = 1) + L << sound(sound, repeat = 0, wait = 0, volume = 25, channel = CHANNEL_AMBIENCE) L.client.played = 1 sleep(600) //ewww - this is very very bad if(L.&& L.client) diff --git a/code/game/sound.dm b/code/game/sound.dm index 3cbe2893b7..adee6b39e2 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -1,40 +1,40 @@ -/proc/playsound(atom/source, soundin, vol as num, vary, extrarange as num, falloff, surround = 1, frequency = null, channel = 0, pressure_affected = TRUE) - - soundin = get_sfx(soundin) // same sound for everyone - +/proc/playsound(atom/source, soundin, vol as num, vary, extrarange as num, falloff, frequency = null, channel = 0, pressure_affected = TRUE) if(isarea(source)) throw EXCEPTION("playsound(): source is an area") return - if(isnull(frequency)) - frequency = get_rand_frequency() // Same frequency for everybody var/turf/turf_source = get_turf(source) //allocate a channel if necessary now so its the same for everyone channel = channel || open_sound_channel() // Looping through the player list has the added bonus of working for mobs inside containers - for (var/P in GLOB.player_list) + var/sound/S = sound(get_sfx(soundin)) + var/maxdistance = (world.view + extrarange) * 3 + for(var/P in GLOB.player_list) var/mob/M = P if(!M || !M.client) continue - if(get_dist(M, turf_source) <= world.view + extrarange) - var/turf/T = get_turf(M) - if(T && T.z == turf_source.z) - M.playsound_local(turf_source, soundin, vol, vary, frequency, falloff, surround, channel, pressure_affected) + var/distance = get_dist(M, turf_source) -/mob/proc/playsound_local(turf/turf_source, soundin, vol as num, vary, frequency, falloff, surround = 1, channel = 0, pressure_affected = TRUE) + if(distance <= maxdistance) + var/turf/T = get_turf(M) + + if(T && T.z == turf_source.z) + M.playsound_local(turf_source, soundin, vol, vary, frequency, falloff, channel, pressure_affected, S) + +/mob/proc/playsound_local(turf/turf_source, soundin, vol as num, vary, frequency, falloff, channel = 0, pressure_affected = TRUE, sound/S) if(!client || !can_hear()) return - soundin = get_sfx(soundin) + if(!S) + S = sound(get_sfx(soundin)) - var/sound/S = sound(soundin) S.wait = 0 //No queue S.channel = channel || open_sound_channel() S.volume = vol - if (vary) + if(vary) if(frequency) S.frequency = frequency else @@ -43,6 +43,11 @@ if(isturf(turf_source)) var/turf/T = get_turf(src) + //sound volume falloff with distance + var/distance = get_dist(T, turf_source) + + S.volume -= max(distance - world.view, 0) * 2 //multiplicative falloff to add on top of natural audio falloff. + if(pressure_affected) //Atmosphere affects sound var/pressure_factor = 1 @@ -56,27 +61,22 @@ else //space pressure_factor = 0 - var/distance = get_dist(T, turf_source) if(distance <= 1) pressure_factor = max(pressure_factor, 0.15) //touching the source of the sound S.volume *= pressure_factor //End Atmosphere affecting sound - if(S.volume <= 0) - return //No sound - - // 3D sounds, the technology is here! - if (surround) - var/dx = turf_source.x - T.x // Hearing from the right/left - S.x = round(max(-SURROUND_CAP, min(SURROUND_CAP, dx)), 1) - - var/dz = turf_source.y - T.y // Hearing from infront/behind - S.z = round(max(-SURROUND_CAP, min(SURROUND_CAP, dz)), 1) + if(S.volume <= 0) + return //No sound + var/dx = turf_source.x - T.x // Hearing from the right/left + S.x = dx + var/dz = turf_source.y - T.y // Hearing from infront/behind + S.z = dz // The y value is for above your head, but there is no ceiling in 2d spessmens. S.y = 1 - S.falloff = falloff || FALLOFF_SOUNDS + S.falloff = (falloff ? falloff : FALLOFF_SOUNDS) src << S diff --git a/code/game/sound.dm.rej b/code/game/sound.dm.rej new file mode 100644 index 0000000000..bf2bbbce69 --- /dev/null +++ b/code/game/sound.dm.rej @@ -0,0 +1,9 @@ +diff a/code/game/sound.dm b/code/game/sound.dm (rejected hunks) +@@ -154,6 +151,6 @@ + soundin = pick('sound/effects/can_open1.ogg', 'sound/effects/can_open2.ogg', 'sound/effects/can_open3.ogg') + return soundin + +-/proc/playsound_global(file, repeat=0, wait, channel, volume) ++/proc/playsound_global(file, repeat = 0, wait, channel, volume) + for(var/V in GLOB.clients) + V << sound(file, repeat, wait, channel, volume) diff --git a/code/modules/client/preferences_toggles.dm b/code/modules/client/preferences_toggles.dm index 943999aecc..d56b6e0619 100644 --- a/code/modules/client/preferences_toggles.dm +++ b/code/modules/client/preferences_toggles.dm @@ -174,8 +174,8 @@ TOGGLE_CHECKBOX(/datum/verbs/menu/Settings/Sound, Toggle_Soundscape)() to_chat(usr, "You will now hear ambient sounds.") else to_chat(usr, "You will no longer hear ambient sounds.") - usr << sound(null, repeat = 0, wait = 0, volume = 0, channel = 1) - usr << sound(null, repeat = 0, wait = 0, volume = 0, channel = 2) + usr.stop_sound_channel(CHANNEL_AMBIENCE) + usr.stop_sound_channel(CHANNEL_BUZZ) SSblackbox.add_details("preferences_verb","Toggle Ambience|[usr.client.prefs.toggles & SOUND_AMBIENCE]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/verbs/menu/Settings/Sound/Toggle_Soundscape/Get_checked(client/C) return C.prefs.toggles & SOUND_AMBIENCE @@ -191,7 +191,7 @@ TOGGLE_CHECKBOX(/datum/verbs/menu/Settings/Sound, toggle_ship_ambience)() to_chat(usr, "You will now hear ship ambience.") else to_chat(usr, "You will no longer hear ship ambience.") - usr << sound(null, repeat = 0, wait = 0, volume = 0, channel = 2) + usr.stop_sound_channel(CHANNEL_BUZZ) usr.client.ambience_playing = 0 SSblackbox.add_details("preferences_verb", "Toggle Ship Ambience|[usr.client.prefs.toggles & SOUND_SHIP_AMBIENCE]") //If you are copy-pasting this, I bet you read this comment expecting to see the same thing :^) /datum/verbs/menu/Settings/Sound/toggle_ship_ambience/Get_checked(client/C) diff --git a/code/modules/vehicles/bicycle.dm b/code/modules/vehicles/bicycle.dm index d51de5809c..2d9b3c8258 100644 --- a/code/modules/vehicles/bicycle.dm +++ b/code/modules/vehicles/bicycle.dm @@ -13,12 +13,12 @@ /obj/vehicle/bicycle/buckle_mob(mob/living/M, force = 0, check_loc = 1) if(prob(easter_egg_chance) || (SSevents.holidays && SSevents.holidays[APRIL_FOOLS])) - M << sound(pick(bike_music), repeat = 1, wait = 0, volume = 80, channel = 42) + M << sound(pick(bike_music), repeat = 1, wait = 0, volume = 80, channel = CHANNEL_BICYCLE) . = ..() /obj/vehicle/bicycle/unbuckle_mob(mob/living/buckled_mob,force = 0) if(buckled_mob) - buckled_mob << sound(null, repeat = 0, wait = 0, volume = 80, channel = 42) + buckled_mob.stop_sound_channel(CHANNEL_BICYCLE) . =..() /obj/vehicle/bicycle/tesla_act() // :::^^^))) From 39099f1bc9e09fad355f5746da0b1b3a977ca857 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 29 Jul 2017 19:44:14 -0500 Subject: [PATCH 019/219] Stunbatons now properly appear on security belts when active --- icons/obj/clothing/belt_overlays.dmi | Bin 1278 -> 1279 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/clothing/belt_overlays.dmi b/icons/obj/clothing/belt_overlays.dmi index 07765f7d79c4965a70deb2753a943abe3f8cb608..bbd4df9bb00e86a632ed171988bcad57233e7306 100644 GIT binary patch delta 1200 zcmV;h1W)_^3I7R@7Yd*V0{{R3yb+flks&4$Ut(}WNmoQfM46eH)sX-f9V?MyDt~Tn zZpD5S>zg0R2?oiF1``nxn*adf3k92J0OFnnCL$ss4gf1ACOsSke*ge~RRAk1D;yjg zM@L6(HxF7`T7OX$aBy(3izO~DE>%=iW@ctQ90Y3s0GR*)x&;M190oib1(IeOaBpuo zAP+Yp5<49S9v&Vy7XYE5C-Cq%iGPVeQc_ZYfB;lfRLICDCMG67KR>|0z$;ge#sB~S z0d!JMQvg8b*k%9#0S0kCq_-hYW_vA(;n zt7tWww0L}|D}%N({Iv)SjHz6ldI+Wk*DdNwTMB8fsjCygfKzQehgbjMHS1OLv}$g0 z;L)|f-u)&2CM77g7n~tDudwg)f+CEXQg52WN`s(h32rZm3FbMhBLVk!7Cx3gOE@(=Zr@(-P-UK^@9` zXS(sWj$xghRK=pMPQ>~De~w|CBOj#Cljd309=NZ5yjXIbB!iJNrGEeb008hmfoCrz z2v@v%F_i>rZU3`DNbixlVgPv30*2=nYrAcp*i*Kxwh5F9jd-h8h1k4IK z__ftF>Lq%8{eHazA3SW?pFtm6%mr>ddR*d7;$a0FoAeoMH=k4+s5Z%$=#8h(p0i>9 zCTKDN4xV`zEB)dnAAcqZDC5Nhub2R#7gPJda4Yoc#dN}sS1%^)Fe@bVa=7uO9smFU z004mN2Y2ycbusbUJQQ!t!td;=-JNn>mjQcB;C|JCeI_ufI&cvy zI51~$K==c51`o=0T?Q=T3=W3skPI~5HBfbh{+yl(Ah+0f*MBYU@AXL^?MD`)m;h)0 zmKmG#G2<@+hD;#gmlN1x0tx?)8JqJX#?Luy4W0daW^B$UjK2s_Od#X^!_8lH9{>OV z0B#0j&)(+02Xg!m^bArT#lphz5fdQvQJj`;T4=!dBNI5PdIdlE4wRljHn4Du?Y^Vu zJ1{L=LETk0SAQ%O25PIXiuyi-@)h(RSab$!vVz5L5*@2}8E5b_7kFG?Y7_XSNX1r{ zRN^gW0}Fo-#v{u>at5i7vb1QAM~TfXnwj8)nnCKL>^S>+wX$5nlOu8yr9R5C>{~&g z-9_n`-XgJ2)9*#fst*7F001|TiO}bk^Zb}jf4cZn^M6oqJ~NLEX8!5)mxFJgo{H+TO03g8q8~^|S005{Fe*uWQXRd0aI*|YX O002ovP6b4+LSTY-Ya40+ delta 1198 zcmV;f1X26{3H}L?7Ycv~0{{R3ySuwbI~@nWz`!>b0HJ@OC-Cq%iHSgffB?wICrh*4XaE2J z0d!JMQvg8b*k%9#0QGuQSad{Xb7OL8aCB*JZU6vyoRyP7Zo?oDMc3vODA`6;-9+lD zn<`P2MRNsfY$gU3Lp6+xdi#*nsaGv{$DsGn=Ofng_3(B)$^H9Ld?5wnoqUnIheuIG zqga2ZVf!R1ji%T9GXw_4v|ODn1l@w`SE5peLfWfEbtV{aT5HeY(_g)Mx2c~u^(+S- zT?_2pU-C?Lgi(=6@s_ZSMo^0cH-6wEp(O|*Yjh)XYPKQF$GNlLXswUMcwrFov4wnz z6W3UvK3~Y4F1p^tmgS9vuG58BGoUgZ*iwJIEW$8aHtc==*k7{r?PlSh=GO9X+TT9s z1w}3x=G^a}SO5S5yGcYrRCt{2m}`I1FcgQ=E+RwSCdzbpzkySBDPyI()H$h_Uq$`? z-^S=(C~bDm2_YoY^YmT+P4jS)LODV(48t%CQz!B*fDpwiz7=4+2uex6Hj0e?Jye;KU9f*TvRJqxyB z!8><5^gXCsV%HViym#N=A<VSBw4hUM0Pb-M@MlKlah@AnD@9v4cT_Be& zL77G`xW5cRNoqA~_n=Gys-RYoQo*6xgF_%cP2VwHnSY$2HJC-_LA1gvr;NSH>z?jKF-F3 zS(M;W-HVUxV%KS)w4$FU&v}V{nIR%Gcc|`!}E@63+<_5FP0V?aD8RP?EUyV@`g8O=Db9;ev!{9{$dp)K5zzMM z=y_5U#b=`#O~LweSf1x!7OBH948t%CgHsZ(`#PO|bD3X8p$-b_{?qAqclo7c1x@fb zKOE-_bEWz96uQhACQzuq#NNoVz!l51EW=hTsjoA>2)ld?!!XYH3E2c*RYp+!%m4rY M07*qoM6N<$f}nsLQUCw| From 70df3e85570a464bd79d051a816b530924ad6851 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 29 Jul 2017 19:44:44 -0500 Subject: [PATCH 020/219] Player-controlled medibots are now alerted when they can't heal someone --- code/modules/mob/living/simple_animal/bot/medbot.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/mob/living/simple_animal/bot/medbot.dm b/code/modules/mob/living/simple_animal/bot/medbot.dm index fdb33ff7b8..fee3de6b8e 100644 --- a/code/modules/mob/living/simple_animal/bot/medbot.dm +++ b/code/modules/mob/living/simple_animal/bot/medbot.dm @@ -459,6 +459,8 @@ break if(!reagent_id) //If they don't need any of that they're probably cured! + if(C.maxHealth - C.health < heal_threshold) + to_chat(src, "[C] is healthy! Your programming prevents you from injecting anyone without at least [heal_threshold] damage of any one type ([heal_threshold + 15] for oxygen damage.)") var/list/messagevoice = list("All patched up!" = 'sound/voice/mpatchedup.ogg',"An apple a day keeps me away." = 'sound/voice/mapple.ogg',"Feel better soon!" = 'sound/voice/mfeelbetter.ogg') var/message = pick(messagevoice) speak(message) From a6662da11d4773a668f259b23220bcf1dde43c25 Mon Sep 17 00:00:00 2001 From: Raeschen Date: Sun, 30 Jul 2017 14:03:01 +0100 Subject: [PATCH 021/219] Heavily reduced the amount of mobs on oldstation.dmm due to NPC POOL MC lag. (Previously about 109 hivebots, now there are fewer, stronger ones.) --- _maps/RandomRuins/SpaceRuins/oldstation.dmm | 9945 ++----------------- 1 file changed, 623 insertions(+), 9322 deletions(-) diff --git a/_maps/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/RandomRuins/SpaceRuins/oldstation.dmm index fa12329728..64dc63d24a 100644 --- a/_maps/RandomRuins/SpaceRuins/oldstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldstation.dmm @@ -1,9325 +1,626 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( -/turf/template_noop, -/area/template_noop) -"ab" = ( -/mob/living/simple_animal/hostile/carp, -/turf/template_noop, -/area/template_noop) -"ac" = ( -/turf/closed/mineral, -/area/ruin/unpowered) -"ad" = ( -/turf/closed/wall/r_wall, -/area/ruin/ancientstation/hivebot) -"ae" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/plasteel/twenty, -/obj/item/stack/sheet/glass{ - amount = 50; - pixel_x = 3; - pixel_y = 3 - }, -/turf/open/floor/plasteel/black, -/area/ruin/ancientstation/hivebot) -"af" = ( -/mob/living/simple_animal/hostile/hivebot, -/turf/open/floor/plasteel/black, -/area/ruin/ancientstation/hivebot) -"ag" = ( -/turf/closed/wall, -/area/ruin/ancientstation/hivebot) -"ah" = ( -/turf/open/floor/plasteel/black, -/area/ruin/ancientstation/hivebot) -"ai" = ( -/obj/effect/decal/cleanable/robot_debris, -/turf/open/floor/plasteel/black, -/area/ruin/ancientstation/hivebot) -"aj" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/mineral/silver{ - amount = 15 - }, -/obj/item/stack/sheet/mineral/gold{ - amount = 15 - }, -/obj/item/weapon/ore/bluespace_crystal, -/obj/item/weapon/ore/bluespace_crystal, -/obj/item/weapon/ore/bluespace_crystal, -/turf/open/floor/plasteel/black, -/area/ruin/ancientstation/hivebot) -"ak" = ( -/turf/closed/wall/rust, -/area/ruin/ancientstation/comm) -"al" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/door/poddoor{ - id = "ancient" - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/comm) -"am" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/machinery/door/poddoor{ - id = "ancient" - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/comm) -"an" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/machinery/door/poddoor{ - id = "ancient" - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/comm) -"ao" = ( -/obj/effect/decal/cleanable/oil, -/mob/living/simple_animal/hostile/hivebot, -/turf/open/floor/plasteel/black, -/area/ruin/ancientstation/hivebot) -"ap" = ( -/obj/effect/decal/cleanable/oil, -/obj/effect/decal/cleanable/robot_debris, -/mob/living/simple_animal/hostile/hivebot, -/turf/open/floor/plasteel/black, -/area/ruin/ancientstation/hivebot) -"aq" = ( -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plasteel/black, -/area/ruin/ancientstation/hivebot) -"ar" = ( -/turf/open/floor/plating, -/area/ruin/ancientstation/hivebot) -"as" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/weapon/banner, -/turf/open/floor/plasteel/blue/side{ - dir = 9 - }, -/area/ruin/ancientstation/comm) -"at" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/blue/corner{ - dir = 1 - }, -/area/ruin/ancientstation/comm) -"au" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/computer{ - desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; - name = "Broken Computer" - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/comm) -"av" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/computer{ - desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; - name = "Broken Computer" - }, -/obj/item/weapon/paper/oldstat/damagereport, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/comm) -"aw" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/computer{ - desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; - name = "Broken Computer" - }, -/obj/item/weapon/paper/oldstat/report, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/comm) -"ax" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/blue/corner{ - dir = 4 - }, -/area/ruin/ancientstation/comm) -"ay" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/weapon/banner, -/turf/open/floor/plasteel/blue/side{ - dir = 5 - }, -/area/ruin/ancientstation/comm) -"az" = ( -/turf/closed/mineral/iron, -/area/ruin/unpowered) -"aA" = ( -/obj/structure/lattice, -/turf/template_noop, -/area/template_noop) -"aB" = ( -/obj/effect/decal/cleanable/robot_debris, -/mob/living/simple_animal/hostile/hivebot, -/turf/open/floor/plasteel/black, -/area/ruin/ancientstation/hivebot) -"aC" = ( -/mob/living/simple_animal/hostile/hivebot/range, -/turf/open/floor/plasteel/black, -/area/ruin/ancientstation/hivebot) -"aD" = ( -/mob/living/simple_animal/hostile/hivebot/strong, -/turf/open/floor/plasteel/black, -/area/ruin/ancientstation/hivebot) -"aE" = ( -/obj/effect/decal/cleanable/oil, -/mob/living/simple_animal/hostile/hivebot/strong, -/turf/open/floor/plasteel/black, -/area/ruin/ancientstation/hivebot) -"aF" = ( -/obj/structure/shuttle/engine/large{ - icon_state = "large_engine"; - dir = 4 - }, -/turf/closed/wall, -/area/ruin/ancientstation/hivebot) -"aG" = ( -/turf/closed/wall/rust, -/area/ruin/ancientstation) -"aH" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/blue/side{ - dir = 9 - }, -/area/ruin/ancientstation/comm) -"aI" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/comm) -"aJ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/machinery/button/door{ - id = "ancient"; - name = "Charlie Station Lockdown Button" - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/comm) -"aK" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/comm) -"aL" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/weapon/deck, -/obj/item/weapon/folder/blue, -/obj/item/weapon/pen, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/comm) -"aM" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/blue/side{ - dir = 5 - }, -/area/ruin/ancientstation/comm) -"aN" = ( -/obj/machinery/door/airlock/highsecurity, -/turf/open/floor/plating, -/area/ruin/ancientstation/hivebot) -"aO" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/power/apc{ - dir = 4; - name = "Charlie Command APC"; - pixel_x = 24; - start_charge = 0 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/comm) -"aP" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/computer{ - desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; - name = "Broken Computer" - }, -/turf/open/floor/plasteel/blue/side{ - dir = 8 - }, -/area/ruin/ancientstation/comm) -"aQ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/comm) -"aR" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/computer{ - desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; - name = "Broken Computer" - }, -/turf/open/floor/plasteel/blue/side{ - dir = 4 - }, -/area/ruin/ancientstation/comm) -"aS" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/turf/open/floor/plating, -/area/ruin/ancientstation) -"aT" = ( -/obj/structure/sign/poster/contraband/pwr_game, -/turf/closed/wall/rust, -/area/ruin/ancientstation) -"aU" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/ruin/ancientstation) -"aV" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/blue/side{ - dir = 8 - }, -/area/ruin/ancientstation/comm) -"aW" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/device/megaphone, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/comm) -"aX" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/airalarm{ - dir = 8; - locked = 0; - pixel_x = 24; - req_access = "0"; - req_one_access = "0" - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/blue/side{ - dir = 4 - }, -/area/ruin/ancientstation/comm) -"aY" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/ruin/ancientstation) -"aZ" = ( -/obj/item/stack/cable_coil, -/turf/template_noop, -/area/template_noop) -"ba" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/weapon/lighter, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/comm) -"bb" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/weapon/coin, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/comm) -"bc" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, -/obj/item/weapon/storage/backpack/old, -/turf/open/floor/plating, -/area/ruin/ancientstation) -"bd" = ( -/obj/structure/transit_tube{ - dir = 4 - }, -/turf/template_noop, -/area/template_noop) -"be" = ( -/obj/effect/decal/cleanable/oil, -/mob/living/simple_animal/hostile/hivebot/range, -/turf/open/floor/plasteel/black, -/area/ruin/ancientstation/hivebot) -"bf" = ( -/turf/open/floor/plating/airless, -/area/template_noop) -"bg" = ( -/obj/structure/girder, -/turf/open/floor/plating/airless, -/area/template_noop) -"bh" = ( -/turf/closed/mineral/diamond, -/area/ruin/unpowered) -"bi" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, -/obj/item/weapon/electronics/airlock, -/obj/item/weapon/electronics/airlock, -/obj/item/weapon/electronics/apc, -/obj/item/weapon/electronics/apc, -/turf/open/floor/plating, -/area/ruin/ancientstation) -"bj" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel/blue/side{ - dir = 10 - }, -/area/ruin/ancientstation/comm) -"bk" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/blue/corner{ - dir = 8 - }, -/area/ruin/ancientstation/comm) -"bl" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/comm) -"bm" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/blue/corner, -/area/ruin/ancientstation/comm) -"bn" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel/blue/side{ - dir = 6 - }, -/area/ruin/ancientstation/comm) -"bo" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/metal{ - amount = 20 - }, -/obj/item/stack/sheet/metal{ - amount = 20 - }, -/turf/open/floor/plasteel/black, -/area/ruin/ancientstation/hivebot) -"bp" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/mineral/plasma{ - amount = 15 - }, -/obj/item/stack/sheet/mineral/uranium{ - amount = 10 - }, -/turf/open/floor/plasteel/black, -/area/ruin/ancientstation/hivebot) -"bq" = ( -/turf/open/floor/plasteel/airless/floorgrime, -/area/template_noop) -"br" = ( -/turf/closed/wall/rust, -/area/template_noop) -"bs" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/machinery/recharger, -/turf/open/floor/plasteel/blue/side{ - dir = 10 - }, -/area/ruin/ancientstation/comm) -"bt" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/weapon/dice/d6, -/turf/open/floor/plasteel/blue/side, -/area/ruin/ancientstation/comm) -"bu" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/weapon/tank/internals/emergency_oxygen, -/turf/open/floor/plasteel/blue/side, -/area/ruin/ancientstation/comm) -"bv" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/weapon/soap/nanotrasen, -/turf/open/floor/plasteel/blue/side{ - dir = 6 - }, -/area/ruin/ancientstation/comm) -"bw" = ( -/obj/machinery/door/airlock/maintenance_hatch, -/turf/open/floor/plating, -/area/ruin/ancientstation/betanorth) -"bx" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/airlock/maintenance_hatch, -/turf/open/floor/plating, -/area/ruin/ancientstation) -"by" = ( -/obj/structure/sign/poster/official/nanotrasen_logo, -/turf/closed/wall/rust, -/area/ruin/ancientstation/comm) -"bz" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/comm) -"bA" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/comm) -"bB" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/glass_command{ - name = "Bridge" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/comm) -"bC" = ( -/obj/machinery/door/airlock/maintenance_hatch, -/turf/open/floor/plating, -/area/ruin/ancientstation) -"bD" = ( -/turf/closed/wall/rust, -/area/ruin/ancientstation/deltacorridor) -"bE" = ( -/turf/closed/wall, -/area/ruin/ancientstation/deltacorridor) -"bF" = ( -/turf/closed/wall/rust, -/area/ruin/ancientstation/hivebot) -"bG" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/ruin/ancientstation/hivebot) -"bH" = ( -/obj/machinery/door/firedoor/closed, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/betanorth) -"bI" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/betanorth) -"bJ" = ( -/turf/closed/wall/rust, -/area/ruin/ancientstation/betanorth) -"bK" = ( -/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/open/floor/plating, -/area/ruin/ancientstation/betanorth) -"bL" = ( -/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/open/floor/plating, -/area/ruin/ancientstation) -"bM" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"bN" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"bO" = ( -/obj/structure/sign/bluecross_2, -/turf/closed/wall/rust, -/area/ruin/ancientstation) -"bP" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-25" - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"bQ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"bR" = ( -/obj/machinery/door/firedoor, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"bS" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"bT" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"bU" = ( -/obj/machinery/door/firedoor, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"bV" = ( -/turf/open/floor/plasteel/airless/floorgrime, -/area/ruin/ancientstation) -"bW" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-25" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"bX" = ( -/obj/structure/sign/science, -/turf/closed/wall/rust, -/area/ruin/ancientstation) -"bY" = ( -/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/open/floor/plating, -/area/ruin/ancientstation/deltacorridor) -"bZ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/remains/human, -/obj/effect/decal/cleanable/blood/old, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"ca" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"cb" = ( -/obj/structure/sign/poster/official/science, -/turf/closed/wall/rust, -/area/ruin/ancientstation/deltacorridor) -"cc" = ( -/obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/hivebot, -/turf/open/floor/plating, -/area/ruin/ancientstation/deltacorridor) -"cd" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, -/obj/item/weapon/circular_saw, -/obj/item/weapon/retractor, -/obj/item/weapon/hemostat, -/obj/item/weapon/scalpel{ - pixel_y = 12 - }, -/obj/item/weapon/cautery{ - pixel_x = 4 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/deltacorridor) -"ce" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/command, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/betanorth) -"cf" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/transit_tube/station/reverse/flipped{ - dir = 1 - }, -/obj/structure/transit_tube_pod{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/betanorth) -"cg" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/transit_tube{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/betanorth) -"ch" = ( -/obj/structure/transit_tube/crossing/horizontal, -/turf/template_noop, -/area/template_noop) -"ci" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/transit_tube{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation) -"cj" = ( -/obj/structure/transit_tube/station/reverse/flipped, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"ck" = ( -/obj/machinery/door/airlock/command{ - name = "Beta Station Access" - }, -/obj/machinery/door/poddoor{ - id = "ancient" - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/powered) -"cl" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"cm" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/effect/decal/cleanable/generic, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"cn" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"co" = ( -/obj/machinery/door/firedoor, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"cp" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"cq" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/shreds, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"cr" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/command{ - name = "Delta Station Access" - }, -/obj/machinery/door/poddoor{ - id = "ancient" - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/powered) -"cs" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/transit_tube/station/reverse/flipped{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"ct" = ( -/obj/structure/transit_tube_pod{ - dir = 4 - }, -/turf/template_noop, -/area/template_noop) -"cu" = ( -/obj/structure/transit_tube, -/turf/template_noop, -/area/template_noop) -"cv" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/transit_tube{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/deltacorridor) -"cw" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/transit_tube/station/reverse/flipped, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"cx" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/stack/medical/bruise_pack, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"cy" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/barricade/wooden, -/obj/machinery/door/airlock/command{ - name = "Charlie Station Access"; - req_access_txt = "200" - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"cz" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-25" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/hivebot/strong, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"cA" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"cB" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/science, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"cC" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/hivebot/range, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"cD" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"cE" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"cF" = ( -/obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/hivebot/range, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"cG" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/science, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"cH" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-25" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"cI" = ( -/obj/machinery/door/airlock/maintenance_hatch, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/ruin/ancientstation/deltacorridor) -"cJ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/deltacorridor) -"cK" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/template_noop) -"cL" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/betanorth) -"cM" = ( -/obj/item/solar_assembly, -/turf/template_noop, -/area/template_noop) -"cN" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/item/weapon/storage/box/lights/mixed, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"cO" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"cP" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"cQ" = ( -/turf/closed/wall/rust, -/area/ruin/ancientstation/hydroponics) -"cR" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/hydroponics) -"cS" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/hydroponics) -"cT" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/hydroponics) -"cU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"cV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"cW" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small{ - brightness = 3; - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"cX" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"cY" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/hivebot, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"cZ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/mob/living/simple_animal/hostile/hivebot, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"da" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/science, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"db" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/mob/living/simple_animal/hostile/hivebot/range, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"dc" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"dd" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/mob/living/simple_animal/hostile/hivebot/range, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"de" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"df" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/mob/living/simple_animal/hostile/hivebot/strong, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"dg" = ( -/obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/hivebot/strong, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"dh" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/ruin/ancientstation/deltacorridor) -"di" = ( -/obj/structure/table, -/obj/item/weapon/storage/firstaid/ancient, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/white/side{ - dir = 5 - }, -/area/template_noop) -"dj" = ( -/obj/structure/sign/poster/official/nanomichi_ad, -/turf/closed/wall/rust, -/area/template_noop) -"dk" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/betanorth) -"dl" = ( -/turf/closed/wall/rust, -/area/ruin/ancientstation/engi) -"dm" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/airalarm{ - dir = 4; - locked = 0; - pixel_x = -23; - req_access = "0"; - req_one_access = "0" - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"dn" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-25" - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/green/side{ - dir = 9 - }, -/area/ruin/ancientstation/hydroponics) -"do" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/green/corner{ - dir = 1 - }, -/area/ruin/ancientstation/hydroponics) -"dp" = ( -/obj/machinery/hydroponics/soil, -/turf/open/floor/grass, -/area/ruin/ancientstation/hydroponics) -"dq" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/reagent_dispensers/watertank/high{ - desc = "A highly-pressurized water tank, this one seems almost empty.."; - tank_volume = 1000 - }, -/obj/item/weapon/reagent_containers/glass/bucket, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/hydroponics) -"dr" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/green/corner{ - dir = 4 - }, -/area/ruin/ancientstation/hydroponics) -"ds" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-25" - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/green/side{ - dir = 5 - }, -/area/ruin/ancientstation/hydroponics) -"dt" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"du" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/airalarm{ - dir = 8; - locked = 0; - pixel_x = 24; - req_access = "0"; - req_one_access = "0" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"dv" = ( -/turf/closed/wall/rust, -/area/ruin/ancientstation/sec) -"dw" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"dx" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"dy" = ( -/turf/closed/wall/rust, -/area/ruin/ancientstation/rnd) -"dz" = ( -/obj/machinery/door/airlock/research{ - name = "Research and Development" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/rnd) -"dA" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/research{ - name = "Research and Development" - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/rnd) -"dB" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"dC" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"dD" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/roller, -/turf/open/floor/plasteel/white/side{ - dir = 4 - }, -/area/template_noop) -"dE" = ( -/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/open/floor/plating, -/area/template_noop) -"dF" = ( -/obj/structure/lattice, -/turf/template_noop, -/area/space) -"dG" = ( -/turf/open/floor/plasteel/airless, -/area/template_noop) -"dH" = ( -/obj/structure/lattice/catwalk, -/turf/template_noop, -/area/template_noop) -"dI" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "floorscorched1" - }, -/area/template_noop) -"dJ" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged5" - }, -/area/template_noop) -"dK" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/template_noop, -/area/template_noop) -"dL" = ( -/obj/machinery/power/solar, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating/airless{ - tag = "icon-floor"; - icon_state = "floor" - }, -/area/template_noop) -"dM" = ( -/obj/structure/table, -/obj/item/weapon/tank/internals/oxygen, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/item/clothing/mask/breath, -/turf/open/floor/plasteel/yellow/side{ - dir = 9 - }, -/area/ruin/ancientstation/engi) -"dN" = ( -/obj/structure/rack, -/obj/effect/decal/cleanable/dirt, -/obj/item/clothing/head/helmet/space/nasavoid/old, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/ruin/ancientstation/engi) -"dO" = ( -/obj/structure/rack, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm{ - dir = 8; - locked = 0; - pixel_x = 24; - req_access = "0"; - req_one_access = "0" - }, -/obj/item/clothing/suit/space/nasavoid/old, -/turf/open/floor/plasteel/yellow/side{ - dir = 5 - }, -/area/ruin/ancientstation/engi) -"dP" = ( -/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/open/floor/plating, -/area/ruin/ancientstation/hydroponics) -"dQ" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/hydroponics) -"dR" = ( -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/hydroponics) -"dS" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/power/apc{ - dir = 8; - name = "Charlie Security APC"; - pixel_x = -24; - start_charge = 0 - }, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/ruin/ancientstation/sec) -"dT" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/computer{ - desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; - name = "Broken Computer" - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/ruin/ancientstation/sec) -"dU" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/machinery/recharger, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/ruin/ancientstation/sec) -"dV" = ( -/obj/structure/sign/poster/contraband/donut_corp, -/turf/closed/wall/rust, -/area/ruin/ancientstation/sec) -"dW" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm{ - dir = 4; - locked = 0; - pixel_x = -23; - req_access = "0"; - req_one_access = "0" - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"dX" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"dY" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/white/corner, -/area/ruin/ancientstation/rnd) -"dZ" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/rnd) -"ea" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/white/corner{ - dir = 8 - }, -/area/ruin/ancientstation/rnd) -"eb" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/rnd) -"ec" = ( -/obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/hivebot/strong, -/turf/open/floor/plasteel/white/corner, -/area/ruin/ancientstation/rnd) -"ed" = ( -/obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/hivebot, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"ee" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm{ - dir = 8; - locked = 0; - pixel_x = 24; - req_access = "0"; - req_one_access = "0" - }, -/mob/living/simple_animal/hostile/hivebot, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"ef" = ( -/obj/machinery/door/airlock/glass_medical{ - name = "Medical Bay" - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/betanorth) -"eg" = ( -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/plating/airless, -/area/template_noop) -"eh" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/template_noop) -"ei" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/template_noop, -/area/template_noop) -"ej" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/computer{ - desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; - name = "Broken Computer" - }, -/obj/item/weapon/card/id/away/old/apc, -/turf/open/floor/plasteel/yellow/side{ - dir = 9 - }, -/area/ruin/ancientstation/engi) -"ek" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/weapon/stock_parts/cell{ - charge = 100; - maxcharge = 15000 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/ruin/ancientstation/engi) -"el" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/engi) -"em" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/engi) -"en" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/ruin/ancientstation/engi) -"eo" = ( -/obj/machinery/door/firedoor, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/glass{ - name = "Hydroponics" - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/hydroponics) -"ep" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/weapon/cultivator{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/weapon/cultivator, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/hydroponics) -"eq" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/seed_extractor, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/hydroponics) -"er" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/seeds/harebell, -/obj/item/seeds/carrot, -/obj/item/seeds/potato, -/obj/item/seeds/ambrosia, -/obj/item/seeds/poppy, -/obj/item/seeds/grape, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/hydroponics) -"es" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/glass{ - name = "Hydroponics" - }, -/obj/machinery/door/firedoor/closed, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/hydroponics) -"et" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/ruin/ancientstation/sec) -"eu" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/sec) -"ev" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/ruin/ancientstation/sec) -"ew" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/ruin/ancientstation/sec) -"ex" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/weapon/book/manual/wiki/security_space_law, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/ruin/ancientstation/sec) -"ey" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"ez" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/rnd) -"eA" = ( -/obj/machinery/computer/rdconsole/core, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/rnd) -"eB" = ( -/obj/machinery/r_n_d/destructive_analyzer, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/rnd) -"eC" = ( -/obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/hivebot/strong, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/rnd) -"eD" = ( -/obj/machinery/mecha_part_fabricator, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/rnd) -"eE" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50; - pixel_x = 3; - pixel_y = 3 - }, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/rnd) -"eF" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/rnd) -"eG" = ( -/obj/item/weapon/circuitboard/machine/sleeper, -/turf/open/floor/plasteel/airless/floorgrime, -/area/template_noop) -"eH" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/white/side{ - dir = 4 - }, -/area/template_noop) -"eI" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/power/solar, -/turf/open/floor/plating/airless{ - tag = "icon-floor"; - icon_state = "floor" - }, -/area/template_noop) -"eJ" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating/airless{ - tag = "icon-floor"; - icon_state = "floor" - }, -/area/template_noop) -"eK" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small{ - brightness = 3; - dir = 8 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/ruin/ancientstation/engi) -"eL" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/engi) -"eM" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/engi) -"eN" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/ruin/ancientstation/engi) -"eO" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/ruin/ancientstation) -"eP" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/decal/cleanable/generic, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"eQ" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/green/side{ - dir = 8 - }, -/area/ruin/ancientstation/hydroponics) -"eR" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/hydroponics) -"eS" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/hydroponics) -"eT" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/green/side{ - dir = 4 - }, -/area/ruin/ancientstation/hydroponics) -"eU" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/ruin/ancientstation/sec) -"eV" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/device/assembly/flash/handheld, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/ruin/ancientstation/sec) -"eW" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/hivebot, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"eX" = ( -/obj/machinery/door/firedoor, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/mob/living/simple_animal/hostile/hivebot, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"eY" = ( -/obj/machinery/door/firedoor, -/obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/hivebot, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"eZ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/power/emitter, -/turf/open/floor/plating, -/area/ruin/ancientstation/deltacorridor) -"fa" = ( -/obj/item/solar_assembly, -/obj/item/weapon/electronics/tracker, -/turf/open/floor/plating/airless, -/area/template_noop) -"fb" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/engi) -"fc" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/yellow/corner{ - dir = 1 - }, -/area/ruin/ancientstation/engi) -"fd" = ( -/obj/machinery/power/terminal{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/ruin/ancientstation/engi) -"fe" = ( -/obj/machinery/power/smes/engineering{ - charge = 0 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/engi) -"ff" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/yellow/corner{ - dir = 4 - }, -/area/ruin/ancientstation/engi) -"fg" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/yellow/corner{ - dir = 1 - }, -/area/ruin/ancientstation) -"fh" = ( -/obj/machinery/door/firedoor, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"fi" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/green/side{ - dir = 8 - }, -/area/ruin/ancientstation/hydroponics) -"fj" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small, -/turf/open/floor/plasteel/green/corner, -/area/ruin/ancientstation/hydroponics) -"fk" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/green/side, -/area/ruin/ancientstation/hydroponics) -"fl" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/plasteel/green/corner{ - dir = 8 - }, -/area/ruin/ancientstation/hydroponics) -"fm" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/green/side{ - dir = 4 - }, -/area/ruin/ancientstation/hydroponics) -"fn" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"fo" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/airless/floorgrime, -/area/ruin/ancientstation) -"fp" = ( -/obj/structure/sign/poster/official/here_for_your_safety, -/turf/closed/wall/rust, -/area/ruin/ancientstation/sec) -"fq" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/weapon/paper, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/sec) -"fr" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/sec) -"fs" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/ruin/ancientstation/sec) -"ft" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"fu" = ( -/obj/machinery/r_n_d/protolathe, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/rnd) -"fv" = ( -/obj/machinery/r_n_d/circuit_imprinter, -/obj/effect/decal/cleanable/dirt, -/obj/item/weapon/reagent_containers/dropper, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/rnd) -"fw" = ( -/obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/hivebot/strong, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/rnd) -"fx" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/weapon/tank/internals/anesthetic, -/obj/item/clothing/mask/breath/medical, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/rnd) -"fy" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table/optable{ - name = "Robotics Operating Table" - }, -/obj/item/weapon/surgical_drapes, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/rnd) -"fz" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/field/generator, -/turf/open/floor/plating, -/area/ruin/ancientstation/deltacorridor) -"fA" = ( -/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/open/floor/plating/airless, -/area/template_noop) -"fB" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/engi) -"fC" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/engi) -"fD" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/engi) -"fE" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/ruin/ancientstation/engi) -"fF" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/ash, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/engi) -"fG" = ( -/obj/machinery/door/airlock/engineering{ - name = "Engineering" - }, -/obj/machinery/door/poddoor{ - id = "ancient" - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/powered) -"fH" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"fI" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/maintenance_hatch, -/obj/machinery/atmospherics/pipe/simple/supply/visible, -/turf/open/floor/plating, -/area/ruin/ancientstation/hydroponics) -"fJ" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"fK" = ( -/obj/machinery/door/airlock/security, -/obj/machinery/door/firedoor/closed, -/obj/machinery/door/poddoor{ - id = "ancient" - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/sec) -"fL" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/ruin/ancientstation/sec) -"fM" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/weapon/pen, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/sec) -"fN" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/computer{ - desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; - name = "Broken Computer" - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/sec) -"fO" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/ruin/ancientstation/sec) -"fP" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/weapon/electronics/apc, -/turf/open/floor/plating, -/area/ruin/ancientstation/deltacorridor) -"fQ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Delta Main Corridor APC"; - pixel_y = 24; - start_charge = 0 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/deltacorridor) -"fR" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/hivebot, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"fS" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/mob/living/simple_animal/hostile/hivebot, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"fT" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 4 - }, -/area/ruin/ancientstation/rnd) -"fU" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/white/corner{ - dir = 1 - }, -/area/ruin/ancientstation/rnd) -"fV" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/white/corner{ - dir = 4 - }, -/area/ruin/ancientstation/rnd) -"fW" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 1 - }, -/area/ruin/ancientstation/rnd) -"fX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/airless/floorgrime, -/area/template_noop) -"fY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/airless/floorgrime, -/area/template_noop) -"fZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/airless/floorgrime, -/area/template_noop) -"ga" = ( -/obj/machinery/atmospherics/pipe/simple/supply/visible{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/airless, -/area/template_noop) -"gb" = ( -/obj/structure/lattice/catwalk, -/obj/item/stack/cable_coil{ - amount = 2 - }, -/obj/machinery/atmospherics/pipe/simple/supply/visible{ - dir = 4 - }, -/turf/template_noop, -/area/template_noop) -"gc" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/visible{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/template_noop, -/area/template_noop) -"gd" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/visible{ - dir = 4 - }, -/turf/template_noop, -/area/template_noop) -"ge" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4"; - tag = "" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/visible{ - dir = 4 - }, -/turf/template_noop, -/area/template_noop) -"gf" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/visible{ - dir = 4 - }, -/turf/template_noop, -/area/template_noop) -"gg" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 2; - name = "Engineering External Access"; - req_access = null; - req_access_txt = "200" - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/engi) -"gh" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/engi) -"gi" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/engi) -"gj" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/engi) -"gk" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4"; - tag = "" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/engi) -"gl" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/stack/cable_coil{ - amount = 2 - }, -/obj/machinery/atmospherics/pipe/simple/supply/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/engi) -"gm" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/engi) -"gn" = ( -/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/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/poddoor{ - id = "ancient" - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/powered) -"go" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"gp" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"gq" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/airlock/maintenance_hatch, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation) -"gr" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation) -"gs" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/power/apc{ - dir = 1; - name = "Charlie Hydroponics APC"; - pixel_y = 24; - start_charge = 0 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/hydroponics) -"gt" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/supply/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation) -"gu" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/ruin/ancientstation) -"gv" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/power/apc{ - dir = 2; - name = "Charlie Kitchen APC"; - pixel_y = -24; - start_charge = 0 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/kitchen) -"gw" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/turf/open/floor/plating, -/area/ruin/ancientstation) -"gx" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/airlock/maintenance_hatch, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/ruin/ancientstation) -"gy" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"gz" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"gA" = ( -/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/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/poddoor{ - id = "ancient" - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/sec) -"gB" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/sec) -"gC" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/sec) -"gD" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/ruin/ancientstation/sec) -"gE" = ( -/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/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/sec) -"gF" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/visible{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space) -"gG" = ( -/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/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/deltacorridor) -"gH" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/deltacorridor) -"gI" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/deltacorridor) -"gJ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/airlock/maintenance_hatch, -/obj/machinery/atmospherics/pipe/simple/supply/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/deltacorridor) -"gK" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"gL" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/power/apc{ - dir = 4; - name = "Delta RnD APC"; - pixel_x = 24; - start_charge = 0 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/rnd) -"gM" = ( -/obj/structure/table, -/obj/item/stack/sheet/glass{ - amount = 50; - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/rnd) -"gN" = ( -/obj/structure/table, -/obj/item/weapon/storage/toolbox/mechanical/old, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/rnd) -"gO" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/rnd) -"gP" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/rnd) -"gQ" = ( -/obj/structure/table, -/obj/item/weapon/stock_parts/console_screen, -/obj/item/weapon/stock_parts/console_screen, -/obj/item/weapon/stock_parts/matter_bin, -/obj/item/weapon/stock_parts/scanning_module{ - pixel_x = 2; - pixel_y = 3 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/rnd) -"gR" = ( -/obj/structure/table, -/obj/item/weapon/stock_parts/manipulator, -/obj/item/weapon/stock_parts/capacitor, -/obj/item/weapon/stock_parts/micro_laser, -/obj/item/stack/cable_coil, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/rnd) -"gS" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Engineering Storage" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/ruin/ancientstation/deltacorridor) -"gT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating/airless, -/area/template_noop) -"gU" = ( -/obj/item/stack/cable_coil, -/turf/open/floor/plasteel/airless/floorgrime, -/area/template_noop) -"gV" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/engi) -"gW" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/engi) -"gX" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/engi) -"gY" = ( -/turf/closed/wall/rust, -/area/ruin/ancientstation/kitchen) -"gZ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/maintenance_hatch, -/obj/machinery/atmospherics/pipe/simple/supply/visible, -/turf/open/floor/plating, -/area/ruin/ancientstation/kitchen) -"ha" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/red/corner{ - dir = 8 - }, -/area/ruin/ancientstation/sec) -"hb" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/sec) -"hc" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/visible, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/ruin/ancientstation/sec) -"hd" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small, -/obj/structure/table, -/obj/item/trash/plate, -/turf/open/floor/plating, -/area/ruin/ancientstation/deltacorridor) -"he" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/deltacorridor) -"hf" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/ruin/ancientstation/rnd) -"hg" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/ruin/ancientstation/rnd) -"hh" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/ruin/ancientstation/rnd) -"hi" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/rnd) -"hj" = ( -/obj/item/solar_assembly, -/turf/open/floor/plating/airless, -/area/template_noop) -"hk" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/engi) -"hl" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/yellow/corner{ - icon_state = "yellowcorner"; - dir = 8 - }, -/area/ruin/ancientstation/engi) -"hm" = ( -/obj/machinery/power/terminal{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/ruin/ancientstation/engi) -"hn" = ( -/obj/machinery/power/smes/engineering{ - charge = 0 - }, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/engi) -"ho" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/yellow/corner, -/area/ruin/ancientstation/engi) -"hp" = ( -/obj/structure/sign/poster/official/build, -/turf/closed/wall/rust, -/area/ruin/ancientstation/engi) -"hq" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/yellow/corner{ - icon_state = "yellowcorner"; - dir = 8 - }, -/area/ruin/ancientstation) -"hr" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/vending/dinnerware, -/turf/open/floor/plasteel/cafeteria, -/area/ruin/ancientstation/kitchen) -"hs" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/secure_closet/freezer/fridge, -/turf/open/floor/plasteel/cafeteria, -/area/ruin/ancientstation/kitchen) -"ht" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/cafeteria, -/area/ruin/ancientstation/kitchen) -"hu" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/cafeteria, -/area/ruin/ancientstation/kitchen) -"hv" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/cafeteria, -/area/ruin/ancientstation/kitchen) -"hw" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm{ - frequency = 1439; - locked = 0; - pixel_y = 23; - req_access = "0"; - req_one_access = "0" - }, -/obj/effect/decal/cleanable/egg_smudge, -/turf/open/floor/plasteel/cafeteria, -/area/ruin/ancientstation/kitchen) -"hx" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/processor, -/turf/open/floor/plasteel/cafeteria, -/area/ruin/ancientstation/kitchen) -"hy" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/machinery/microwave{ - pixel_x = -3; - pixel_y = 6 - }, -/turf/open/floor/plasteel/cafeteria, -/area/ruin/ancientstation/kitchen) -"hz" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/ruin/ancientstation/sec) -"hA" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/weapon/folder/red, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/sec) -"hB" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/visible, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/ruin/ancientstation/sec) -"hC" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"hD" = ( -/obj/machinery/door/firedoor, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"hE" = ( -/obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/hivebot, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/rnd) -"hF" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/glass/beaker/large/aluminium{ - pixel_x = 6 - }, -/obj/item/weapon/reagent_containers/glass/beaker/large/bromine{ - pixel_x = -6 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/orange/side{ - tag = "icon-orange (NORTHWEST)"; - icon_state = "orange"; - dir = 9 - }, -/area/ruin/ancientstation/rnd) -"hG" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/glass/beaker/large/carbon{ - pixel_x = 6 - }, -/obj/item/weapon/reagent_containers/glass/beaker/large/chlorine{ - pixel_x = -6 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/orange/side{ - tag = "icon-orange (NORTH)"; - icon_state = "orange"; - dir = 1 - }, -/area/ruin/ancientstation/rnd) -"hH" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/glass/beaker/large/copper{ - pixel_x = 6 - }, -/obj/item/weapon/reagent_containers/glass/beaker/large/ethanol{ - pixel_x = -6 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/orange/side{ - tag = "icon-orange (NORTHEAST)"; - icon_state = "orange"; - dir = 5 - }, -/area/ruin/ancientstation/rnd) -"hI" = ( -/obj/machinery/door/firedoor, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"hJ" = ( -/obj/machinery/door/firedoor, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"hK" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/power/rad_collector, -/turf/open/floor/plating, -/area/ruin/ancientstation/deltacorridor) -"hL" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating/airless, -/area/template_noop) -"hM" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plating/airless{ - tag = "icon-floor"; - icon_state = "floor" - }, -/area/template_noop) -"hN" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/template_noop, -/area/template_noop) -"hO" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/light/small{ - brightness = 3; - dir = 8 - }, -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/ruin/ancientstation/engi) -"hP" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/clothing/head/welding{ - pixel_x = -3; - pixel_y = 5 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/engi) -"hQ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/ruin/ancientstation/engi) -"hR" = ( -/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/open/floor/plating, -/area/ruin/ancientstation/kitchen) -"hS" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/flour, -/turf/open/floor/plasteel/cafeteria, -/area/ruin/ancientstation/kitchen) -"hT" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/weapon/kitchen/rollingpin, -/turf/open/floor/plasteel/cafeteria, -/area/ruin/ancientstation/kitchen) -"hU" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/weapon/reagent_containers/food/condiment/enzyme{ - layer = 5 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/cafeteria, -/area/ruin/ancientstation/kitchen) -"hV" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/machinery/reagentgrinder, -/turf/open/floor/plasteel/cafeteria, -/area/ruin/ancientstation/kitchen) -"hW" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/ruin/ancientstation/sec) -"hX" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/item/weapon/storage/backpack/old, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/ruin/ancientstation/sec) -"hY" = ( -/obj/structure/chair, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/rnd) -"hZ" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/glass/beaker/large/fluorine{ - pixel_x = 6 - }, -/obj/item/weapon/reagent_containers/glass/beaker/large/hydrogen{ - pixel_x = -6 - }, -/obj/item/weapon/reagent_containers/glass/beaker/large/water{ - pixel_y = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/orange/side{ - tag = "icon-orange (EAST)"; - icon_state = "orange"; - dir = 4 - }, -/area/ruin/ancientstation/rnd) -"ia" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "floorscorched2" - }, -/area/template_noop) -"ib" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4"; - tag = "" - }, -/turf/template_noop, -/area/template_noop) -"ic" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plasteel/airless, -/area/template_noop) -"id" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/power/solar_control{ - name = "Station Solar Control Computer" - }, -/obj/item/weapon/paper/solar, -/obj/structure/cable, -/turf/open/floor/plasteel/yellow/side{ - dir = 10 - }, -/area/ruin/ancientstation/engi) -"ie" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/stack/sheet/glass{ - amount = 30 - }, -/turf/open/floor/plasteel/yellow/side, -/area/ruin/ancientstation/engi) -"if" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/yellow/corner{ - icon_state = "yellowcorner"; - dir = 8 - }, -/area/ruin/ancientstation/engi) -"ig" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/ruin/ancientstation/engi) -"ih" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/generic, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"ii" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Dining Area" - }, -/turf/open/floor/plasteel/cafeteria, -/area/ruin/ancientstation/kitchen) -"ij" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/glass{ - name = "Dining Area" - }, -/obj/machinery/door/firedoor/closed, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/kitchen) -"ik" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/red/corner, -/area/ruin/ancientstation/sec) -"il" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/red/side, -/area/ruin/ancientstation/sec) -"im" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/weapon/restraints/handcuffs, -/obj/item/clothing/mask/gas, -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/ruin/ancientstation/sec) -"in" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light{ - dir = 8 - }, -/obj/item/weapon/broken_bottle, -/obj/item/weapon/soap/nanotrasen, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/rnd) -"io" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/item/weapon/folder/white, -/obj/item/weapon/reagent_containers/glass/beaker, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/rnd) -"ip" = ( -/obj/machinery/chem_master, -/obj/effect/decal/cleanable/dirt, -/obj/item/weapon/reagent_containers/glass/beaker, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/rnd) -"iq" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/mob/living/simple_animal/hostile/hivebot/range, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/rnd) -"ir" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/orange/side{ - tag = "icon-orange (EAST)"; - icon_state = "orange"; - dir = 4 - }, -/area/ruin/ancientstation/rnd) -"is" = ( -/obj/machinery/door/airlock/glass_medical{ - name = "Chemical Storage"; - req_access_txt = "200" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/rnd) -"it" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/glass/beaker/large/mercury{ - pixel_x = 6; - pixel_y = 8 - }, -/obj/item/weapon/reagent_containers/glass/beaker/large/nitrogen{ - pixel_x = -6; - pixel_y = 8 - }, -/obj/item/weapon/reagent_containers/glass/beaker/large/oxygen{ - pixel_x = 6 - }, -/obj/item/weapon/reagent_containers/glass/beaker/large/phosphorus{ - pixel_x = -6 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/rnd) -"iu" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/glass/beaker/large/iodine{ - pixel_y = 8 - }, -/obj/item/weapon/reagent_containers/glass/beaker/large/iron{ - pixel_x = 6 - }, -/obj/item/weapon/reagent_containers/glass/beaker/large/lithium{ - pixel_x = -6 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/airalarm{ - dir = 8; - locked = 0; - pixel_x = 24; - req_access = "0"; - req_one_access = "0" - }, -/turf/open/floor/plasteel/orange/side{ - tag = "icon-orange (EAST)"; - icon_state = "orange"; - dir = 4 - }, -/area/ruin/ancientstation/rnd) -"iv" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/item/clothing/gloves/color/fyellow/old, -/obj/item/clothing/gloves/color/fyellow/old, -/obj/item/device/multitool, -/turf/open/floor/plasteel/yellow/side{ - dir = 10 - }, -/area/ruin/ancientstation/engi) -"iw" = ( -/obj/structure/rack, -/obj/item/weapon/storage/toolbox/mechanical/old, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/yellow/side, -/area/ruin/ancientstation/engi) -"ix" = ( -/obj/structure/rack, -/obj/item/stack/cable_coil, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/power/apc{ - dir = 4; - name = "Charlie Engineering APC"; - pixel_x = 24; - start_charge = 0 - }, -/obj/structure/cable, -/turf/open/floor/plasteel/yellow/side{ - dir = 6 - }, -/area/ruin/ancientstation/engi) -"iy" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/vomit/old, -/turf/open/floor/plasteel/cafeteria, -/area/ruin/ancientstation/kitchen) -"iz" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/rack, -/obj/item/weapon/gun/energy/laser/retro/old{ - pixel_x = -2; - pixel_y = -2 - }, -/obj/item/weapon/gun/energy/laser/retro/old{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/machinery/airalarm{ - dir = 4; - locked = 0; - pixel_x = -23 - }, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/ruin/ancientstation/sec) -"iA" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/rack, -/obj/item/clothing/suit/armor/vest/old, -/turf/open/floor/plasteel/red/side, -/area/ruin/ancientstation/sec) -"iB" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/rack, -/obj/item/clothing/head/helmet/old, -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/ruin/ancientstation/sec) -"iC" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm{ - dir = 4; - locked = 0; - pixel_x = -23; - req_access = "0"; - req_one_access = "0" - }, -/mob/living/simple_animal/hostile/hivebot, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"iD" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/item/toy/nuke, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/rnd) -"iE" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/recharger, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/rnd) -"iF" = ( -/obj/machinery/chem_heater, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/rnd) -"iG" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/glass/beaker/large/potassium{ - pixel_x = 6 - }, -/obj/item/weapon/reagent_containers/glass/beaker/large/radium{ - pixel_x = -6 - }, -/obj/item/weapon/reagent_containers/glass/beaker/large/welding_fuel{ - pixel_y = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/orange/side{ - tag = "icon-orange (EAST)"; - icon_state = "orange"; - dir = 4 - }, -/area/ruin/ancientstation/rnd) -"iH" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/light/small{ - brightness = 3; - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/ruin/ancientstation/kitchen) -"iI" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/weapon/kitchen/fork, -/turf/open/floor/plasteel/cafeteria, -/area/ruin/ancientstation/kitchen) -"iJ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/ruin/ancientstation/kitchen) -"iK" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/ruin/ancientstation/kitchen) -"iL" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/weapon/reagent_containers/food/condiment/peppermill{ - pixel_x = 5; - pixel_y = -2 - }, -/obj/item/weapon/reagent_containers/food/condiment/saltshaker{ - pixel_x = -2; - pixel_y = 2 - }, -/turf/open/floor/plasteel/cafeteria, -/area/ruin/ancientstation/kitchen) -"iM" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/trash/plate, -/turf/open/floor/plasteel/cafeteria, -/area/ruin/ancientstation/kitchen) -"iN" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/ruin/ancientstation/kitchen) -"iO" = ( -/obj/machinery/airalarm{ - dir = 8; - locked = 0; - pixel_x = 24; - req_access = "0"; - req_one_access = "0" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"iP" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/rnd) -"iQ" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/glass/beaker/large/sugar{ - pixel_x = 6 - }, -/obj/item/weapon/reagent_containers/glass/beaker/large/sulfur{ - pixel_x = -6 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/orange/side{ - tag = "icon-orange (SOUTHWEST)"; - icon_state = "orange"; - dir = 10 - }, -/area/ruin/ancientstation/rnd) -"iR" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/glass/beaker/large/silver{ - pixel_x = 6 - }, -/obj/item/weapon/reagent_containers/glass/beaker/large/sodium{ - pixel_x = -6 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/rnd) -"iS" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/glass/beaker/large/sacid{ - pixel_x = 6 - }, -/obj/item/weapon/reagent_containers/glass/beaker/large/silicon{ - pixel_x = -6 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/orange/side{ - tag = "icon-orange (SOUTHEAST)"; - icon_state = "orange"; - dir = 6 - }, -/area/ruin/ancientstation/rnd) -"iT" = ( -/obj/structure/closet/crate, -/turf/open/floor/plating/airless, -/area/template_noop) -"iU" = ( -/obj/machinery/power/terminal{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating, -/area/ruin/ancientstation/engi) -"iV" = ( -/obj/machinery/power/smes/engineering{ - charge = 0; - name = "backup power storage unit" - }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/ruin/ancientstation/engi) -"iW" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/weapon/wrench, -/obj/item/weapon/wirecutters, -/turf/open/floor/plating, -/area/ruin/ancientstation/engi) -"iX" = ( -/obj/structure/sign/radiation, -/turf/closed/wall/rust, -/area/ruin/ancientstation/engi) -"iY" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/kitchen) -"iZ" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/kitchen) -"ja" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/kitchen) -"jb" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"jc" = ( -/obj/machinery/door/airlock/research{ - name = "Research and Development" - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/rnd) -"jd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/airlock/research{ - name = "Research and Development" - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/rnd) -"je" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"jf" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"jg" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/recharge_station, -/turf/open/floor/plating, -/area/ruin/ancientstation/deltacorridor) -"jh" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/airless, -/area/template_noop) -"ji" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/engi) -"jj" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/ruin/ancientstation/engi) -"jk" = ( -/obj/machinery/door/airlock/engineering{ - name = "Backup Generator Room" - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/engi) -"jl" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"jm" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"jn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"jo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"jp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"jq" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/transit_tube/station/reverse/flipped{ - dir = 1 - }, -/obj/structure/transit_tube_pod{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"jr" = ( -/obj/structure/transit_tube/station/reverse/flipped, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"js" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/command{ - name = "Charlie Station Access"; - req_access_txt = "200" - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"jt" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/mob/living/simple_animal/hostile/hivebot, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"ju" = ( -/obj/machinery/door/firedoor, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"jv" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"jw" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/mob/living/simple_animal/hostile/hivebot, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"jx" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/mob/living/simple_animal/hostile/hivebot, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"jy" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"jz" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/closet/crate, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/weapon/storage/box/firingpins, -/turf/open/floor/plating, -/area/ruin/ancientstation/deltacorridor) -"jA" = ( -/turf/open/floor/plasteel/floorgrime, -/area/template_noop) -"jB" = ( -/obj/structure/closet/crate/radiation, -/obj/item/stack/sheet/mineral/uranium{ - amount = 10 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/ruin/ancientstation/engi) -"jC" = ( -/obj/machinery/power/port_gen/pacman/super{ - name = "\improper emergency power generator" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/ruin/ancientstation/engi) -"jD" = ( -/obj/structure/table, -/obj/item/stack/cable_coil{ - amount = 15 - }, -/obj/item/weapon/paper, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/ruin/ancientstation/engi) -"jE" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4"; - tag = "" - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-25" - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"jF" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"jG" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"jH" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"jI" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"jJ" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-25" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4"; - tag = "" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"jK" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/hivebot, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"jL" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"jM" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"jN" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, -/obj/item/weapon/disk/tech_disk, -/turf/open/floor/plating, -/area/ruin/ancientstation/deltacorridor) -"jO" = ( -/turf/open/floor/plating/airless, -/area/ruin/ancientstation/atmo) -"jP" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating/airless, -/area/ruin/ancientstation/atmo) -"jQ" = ( -/obj/structure/lattice, -/obj/item/solar_assembly, -/turf/template_noop, -/area/template_noop) -"jR" = ( -/obj/structure/cable, -/turf/open/floor/plating/airless, -/area/template_noop) -"jS" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation) -"jT" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation) -"jU" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/glass{ - name = "Cryogenics Room" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"jV" = ( -/turf/closed/wall/r_wall/rust, -/area/ruin/ancientstation/proto) -"jW" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/highsecurity{ - name = "Prototype Laboratory"; - req_access_txt = "200" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white/side, -/area/ruin/ancientstation/proto) -"jX" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/airlock/highsecurity{ - name = "Prototype Laboratory"; - req_access_txt = "200" - }, -/turf/open/floor/plasteel/white/side, -/area/ruin/ancientstation/proto) -"jY" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Beta Atmospherics APC"; - pixel_x = 24; - start_charge = 0 - }, -/obj/structure/cable, -/turf/open/floor/plasteel/airless/floorgrime, -/area/ruin/ancientstation/atmo) -"jZ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating, -/area/ruin/ancientstation) -"ka" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"kb" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, -/turf/open/floor/plating, -/area/ruin/ancientstation) -"kc" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/cobweb{ - icon_state = "cobweb2" - }, -/turf/open/floor/plating, -/area/ruin/ancientstation) -"kd" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/suit/space/hardsuit/ancient, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/proto) -"ke" = ( -/obj/machinery/door/poddoor{ - id = "proto" - }, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/proto) -"kf" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/proto) -"kg" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/power/apc{ - dir = 1; - name = "Delta Prototype Lab APC"; - pixel_y = 24; - start_charge = 0 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/proto) -"kh" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/proto) -"ki" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/proto) -"kj" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm{ - frequency = 1439; - locked = 0; - pixel_y = 23; - req_access = "0"; - req_one_access = "0" - }, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/proto) -"kk" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - icon_state = "warningline"; - dir = 4 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/proto) -"kl" = ( -/obj/structure/table/reinforced, -/obj/machinery/the_singularitygen, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/proto) -"km" = ( -/turf/open/floor/plasteel/airless/floorgrime, -/area/ruin/ancientstation/atmo) -"kn" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/engine/airless, -/area/ruin/ancientstation/atmo) -"ko" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/template_noop) -"kp" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/showcase/oldpod, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"kq" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/showcase/oldpod, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"kr" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mob_spawn/human/oldsec, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"ks" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/cobweb{ - icon_state = "cobweb2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"kt" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/table/reinforced, -/obj/item/weapon/paper/oldstat/protosuit, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/proto) -"ku" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/door/poddoor{ - id = "proto" - }, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/proto) -"kv" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/proto) -"kw" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/proto) -"kx" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - icon_state = "warningline"; - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/proto) -"ky" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/door/poddoor{ - id = "proto" - }, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/proto) -"kz" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/table/reinforced, -/obj/item/weapon/paper/oldstat/protosing, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/proto) -"kA" = ( -/obj/structure/window/reinforced, -/turf/open/floor/engine/airless, -/area/ruin/ancientstation/atmo) -"kB" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/template_noop) -"kC" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/solar_assembly, -/obj/item/stack/sheet/glass{ - amount = 30 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation) -"kD" = ( -/obj/structure/table, -/obj/item/weapon/crowbar, -/obj/item/device/flashlight/glowstick, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"kE" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/deadcockroach, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"kF" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/computer{ - desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; - name = "Broken Computer" - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/powered) -"kG" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, -/obj/item/weapon/reagent_containers/spray/weedspray, -/obj/item/weapon/reagent_containers/spray/pestspray, -/turf/open/floor/plating, -/area/ruin/ancientstation) -"kH" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/turf/open/floor/plating, -/area/ruin/ancientstation) -"kI" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/corner{ - icon_state = "warninglinecorner"; - dir = 1 - }, -/obj/effect/turf_decal/stripes/corner{ - icon_state = "warninglinecorner"; - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/proto) -"kJ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/corner, -/obj/effect/turf_decal/stripes/corner{ - icon_state = "warninglinecorner"; - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/proto) -"kK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating/airless, -/area/ruin/ancientstation/atmo) -"kL" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/pipedispenser, -/turf/open/floor/plasteel/airless/floorgrime, -/area/ruin/ancientstation/atmo) -"kM" = ( -/obj/structure/sign/poster/official/work_for_a_future, -/turf/closed/wall/rust, -/area/ruin/ancientstation) -"kN" = ( -/obj/structure/table, -/obj/item/weapon/crowbar, -/obj/item/device/flashlight/glowstick, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"kO" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mob_spawn/human/oldsci, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"kP" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/mob_spawn/human/oldeng, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"kQ" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/item/weapon/paper/oldstat, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"kR" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/table/reinforced, -/obj/item/weapon/paper/oldstat/protohealth, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/proto) -"kS" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/chair, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/proto) -"kT" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/machinery/button/door{ - id = "proto"; - name = "Prototype Lab Lockdown" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/item/weapon/paper/oldstat/protoinv, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/proto) -"kU" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/table/reinforced, -/obj/item/weapon/paper/oldstat/protogun, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/proto) -"kV" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/visible{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/ruin/ancientstation/atmo) -"kW" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Air Outlet Pump"; - on = 1 - }, -/turf/open/floor/plasteel/airless/floorgrime, -/area/ruin/ancientstation/atmo) -"kX" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on{ - dir = 8; - frequency = 1441; - id_tag = "air_out"; - name = "air output" - }, -/turf/open/floor/engine/air, -/area/ruin/ancientstation/atmo) -"kY" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, -/obj/machinery/power/apc{ - dir = 4; - name = "Charlie Main Corridor APC"; - pixel_x = 24; - start_charge = 0 - }, -/obj/structure/cable, -/obj/item/weapon/storage/backpack/old, -/turf/open/floor/plating, -/area/ruin/ancientstation) -"kZ" = ( -/obj/structure/table/reinforced, -/obj/item/device/healthanalyzer{ - desc = "A prototype hand-held body scanner able to distinguish vital signs of the subject."; - name = "prototype health analyzer" - }, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/proto) -"la" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/proto) -"lb" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/computer{ - desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; - name = "Broken Computer" - }, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/proto) -"lc" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/gun/energy/e_gun/old, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/proto) -"ld" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/ruin/ancientstation/atmo) -"le" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/engine/air, -/area/ruin/ancientstation/atmo) -"lf" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/template_noop) -"lg" = ( -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/turf/template_noop, -/area/template_noop) -"lh" = ( -/turf/closed/mineral/plasma, -/area/ruin/unpowered) -"li" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/proto) -"lj" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/proto) -"lk" = ( -/obj/machinery/airalarm{ - dir = 8; - locked = 0; - pixel_x = 24; - req_access = "0"; - req_one_access = "0" - }, -/turf/open/floor/plasteel/airless/floorgrime, -/area/ruin/ancientstation/atmo) -"ll" = ( -/turf/closed/mineral/uranium, -/area/ruin/unpowered) -"lm" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"ln" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 2; - name = "Engineering External Access"; - req_access = null; - req_access_txt = "10;13" - }, -/turf/closed/mineral, -/area/ruin/unpowered) -"lo" = ( -/turf/closed/mineral/silver, -/area/ruin/unpowered) -"lp" = ( -/turf/closed/mineral/gold, -/area/ruin/unpowered) -"lq" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/weapon/pickaxe, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation/deltacorridor) -"lr" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/weapon/ore/bluespace_crystal, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/rnd) -"ls" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/weapon/ore/bluespace_crystal/refined, -/turf/open/floor/plasteel/white, -/area/ruin/ancientstation/rnd) -"lt" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/mirror{ - name = "dusty mirror"; - pixel_y = 28 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/ancientstation) -"lu" = ( -/obj/item/weapon/stock_parts/manipulator, -/turf/open/floor/plasteel/airless/floorgrime, -/area/template_noop) -"lv" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/weapon/stock_parts/console_screen, -/turf/open/floor/plasteel/white/side{ - tag = "icon-whitehall (EAST)"; - icon_state = "whitehall"; - dir = 4 - }, -/area/template_noop) -"lw" = ( -/obj/item/weapon/stock_parts/matter_bin, -/turf/open/floor/plating/airless, -/area/template_noop) -"lx" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/science{ - name = "Artificial Program Core Room" - }, -/turf/open/floor/plating, -/area/ruin/ancientstation/hivebot) -"ly" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/science, -/turf/open/floor/plating, -/area/ruin/ancientstation/hivebot) -"lz" = ( -/turf/open/floor/plating/airless{ - tag = "icon-floor"; - icon_state = "floor" - }, -/area/template_noop) -"lA" = ( -/turf/open/floor/plating/airless{ - tag = "icon-floor"; - icon_state = "floor" - }, -/area/template_noop) -"lB" = ( -/turf/open/floor/plating/airless{ - tag = "icon-floor"; - icon_state = "floor" - }, -/area/template_noop) -"lC" = ( -/turf/open/floor/plating/airless{ - tag = "icon-floor"; - icon_state = "floor" - }, -/area/template_noop) -"lD" = ( -/turf/open/floor/plating/airless{ - tag = "icon-floor"; - icon_state = "floor" - }, -/area/template_noop) -"lE" = ( -/turf/open/floor/plating/airless{ - tag = "icon-floor"; - icon_state = "floor" - }, -/area/template_noop) -"lF" = ( -/turf/open/floor/plating/airless{ - tag = "icon-floor"; - icon_state = "floor" - }, -/area/template_noop) -"lG" = ( -/turf/open/floor/plating/airless{ - tag = "icon-floor"; - icon_state = "floor" - }, -/area/template_noop) -"lH" = ( -/turf/open/floor/plating/airless{ - tag = "icon-floor"; - icon_state = "floor" - }, -/area/template_noop) -"lI" = ( -/turf/open/floor/plating/airless{ - tag = "icon-floor"; - icon_state = "floor" - }, -/area/template_noop) -"lJ" = ( -/turf/open/floor/plating/airless{ - tag = "icon-floor"; - icon_state = "floor" - }, -/area/template_noop) -"lK" = ( -/turf/open/floor/plating/airless{ - tag = "icon-floor"; - icon_state = "floor" - }, -/area/template_noop) -"lL" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/orange/corner, -/area/ruin/ancientstation/rnd) -"lM" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/orange/side{ - tag = "icon-orange (WEST)"; - icon_state = "orange"; - dir = 8 - }, -/area/ruin/ancientstation/rnd) -"lN" = ( -/turf/open/floor/plating/airless{ - tag = "icon-floor"; - icon_state = "floor" - }, -/area/template_noop) -"lO" = ( -/turf/open/floor/plating/airless{ - tag = "icon-floor"; - icon_state = "floor" - }, -/area/template_noop) -"lP" = ( -/turf/open/floor/plating/airless{ - tag = "icon-floor"; - icon_state = "floor" - }, -/area/template_noop) -"lQ" = ( -/turf/open/floor/plating/airless{ - tag = "icon-floor"; - icon_state = "floor" - }, -/area/template_noop) -"lR" = ( -/turf/open/floor/plating/airless{ - tag = "icon-floor"; - icon_state = "floor" - }, -/area/template_noop) -"lS" = ( -/turf/open/floor/plating/airless{ - tag = "icon-floor"; - icon_state = "floor" - }, -/area/template_noop) -"lT" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/orange/corner{ - tag = "icon-orangecorner (EAST)"; - icon_state = "orangecorner"; - dir = 4 - }, -/area/ruin/ancientstation/rnd) -"lU" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/orange/side{ - tag = "icon-orange (WEST)"; - icon_state = "orange"; - dir = 8 - }, -/area/ruin/ancientstation/rnd) -"lV" = ( -/turf/open/floor/plating/airless{ - tag = "icon-floor"; - icon_state = "floor" - }, -/area/template_noop) -"lW" = ( -/turf/open/floor/plating/airless{ - tag = "icon-floor"; - icon_state = "floor" - }, -/area/template_noop) -"lX" = ( -/turf/open/floor/plating/airless{ - tag = "icon-floor"; - icon_state = "floor" - }, -/area/template_noop) -"lY" = ( -/turf/open/floor/plating/airless{ - tag = "icon-floor"; - icon_state = "floor" - }, -/area/template_noop) -"lZ" = ( -/turf/open/floor/plating/airless{ - tag = "icon-floor"; - icon_state = "floor" - }, -/area/template_noop) -"ma" = ( -/turf/open/floor/plating/airless{ - tag = "icon-floor"; - icon_state = "floor" - }, -/area/template_noop) -"mb" = ( -/turf/open/floor/plating/airless{ - tag = "icon-floor"; - icon_state = "floor" - }, -/area/template_noop) -"mc" = ( -/turf/open/floor/plating/airless{ - tag = "icon-floor"; - icon_state = "floor" - }, -/area/template_noop) -"md" = ( -/turf/open/floor/plating/airless{ - tag = "icon-floor"; - icon_state = "floor" - }, -/area/template_noop) +"aa" = (/turf/template_noop,/area/template_noop) +"ab" = (/mob/living/simple_animal/hostile/carp,/turf/template_noop,/area/template_noop) +"ac" = (/turf/closed/mineral,/area/ruin/unpowered) +"ad" = (/turf/closed/wall/r_wall,/area/ruin/ancientstation/hivebot) +"ae" = (/obj/structure/closet/crate,/obj/item/stack/sheet/plasteel/twenty,/obj/item/stack/sheet/glass{amount = 50; pixel_x = 3; pixel_y = 3},/turf/open/floor/plasteel/black,/area/ruin/ancientstation/hivebot) +"af" = (/turf/open/floor/plasteel/black,/area/ruin/ancientstation/hivebot) +"ag" = (/turf/closed/wall,/area/ruin/ancientstation/hivebot) +"ah" = (/obj/effect/decal/cleanable/robot_debris,/turf/open/floor/plasteel/black,/area/ruin/ancientstation/hivebot) +"ai" = (/obj/structure/closet/crate,/obj/item/stack/sheet/mineral/silver{amount = 15},/obj/item/stack/sheet/mineral/gold{amount = 15},/obj/item/weapon/ore/bluespace_crystal,/obj/item/weapon/ore/bluespace_crystal,/obj/item/weapon/ore/bluespace_crystal,/turf/open/floor/plasteel/black,/area/ruin/ancientstation/hivebot) +"aj" = (/turf/closed/wall/rust,/area/ruin/ancientstation/comm) +"ak" = (/obj/structure/sign/poster/official/nanotrasen_logo,/turf/closed/wall/rust,/area/ruin/ancientstation/comm) +"al" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{id = "ancient"},/turf/open/floor/plating,/area/ruin/ancientstation/comm) +"am" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{id = "ancient"},/turf/open/floor/plating,/area/ruin/ancientstation/comm) +"an" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{id = "ancient"},/turf/open/floor/plating,/area/ruin/ancientstation/comm) +"ao" = (/obj/effect/decal/cleanable/oil,/turf/open/floor/plasteel/black,/area/ruin/ancientstation/hivebot) +"ap" = (/obj/effect/decal/cleanable/oil,/obj/effect/decal/cleanable/robot_debris,/turf/open/floor/plasteel/black,/area/ruin/ancientstation/hivebot) +"aq" = (/turf/open/floor/plating,/area/ruin/ancientstation/hivebot) +"ar" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/blue/side{dir = 9},/area/ruin/ancientstation/comm) +"as" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/blue/corner{dir = 1},/area/ruin/ancientstation/comm) +"at" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/comm) +"au" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/obj/item/weapon/paper/oldstat/damagereport,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/comm) +"av" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/obj/item/weapon/paper/oldstat/report,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/comm) +"aw" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/blue/corner{dir = 4},/area/ruin/ancientstation/comm) +"ax" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/blue/side{dir = 5},/area/ruin/ancientstation/comm) +"ay" = (/turf/closed/mineral/iron,/area/ruin/unpowered) +"az" = (/obj/structure/lattice,/turf/template_noop,/area/template_noop) +"aA" = (/mob/living/simple_animal/hostile/hivebot/strong,/turf/open/floor/plasteel/black,/area/ruin/ancientstation/hivebot) +"aB" = (/obj/effect/decal/cleanable/robot_debris,/mob/living/simple_animal/hostile/hivebot/rapid,/turf/open/floor/plasteel/black,/area/ruin/ancientstation/hivebot) +"aC" = (/obj/structure/shuttle/engine/large{icon_state = "large_engine"; dir = 4},/turf/closed/wall,/area/ruin/ancientstation/hivebot) +"aD" = (/turf/closed/wall/rust,/area/ruin/ancientstation) +"aE" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/comm) +"aF" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/machinery/button/door{id = "ancient"; name = "Charlie Station Lockdown Button"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/comm) +"aG" = (/obj/effect/decal/cleanable/dirt,/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/comm) +"aH" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/deck,/obj/item/weapon/folder/blue,/obj/item/weapon/pen,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/comm) +"aI" = (/obj/machinery/door/airlock/highsecurity,/turf/open/floor/plating,/area/ruin/ancientstation/hivebot) +"aJ" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/power/apc{dir = 4; name = "Charlie Command APC"; pixel_x = 24; start_charge = 0},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/ruin/ancientstation/comm) +"aK" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/turf/open/floor/plasteel/blue/side{dir = 8},/area/ruin/ancientstation/comm) +"aL" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/comm) +"aM" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/turf/open/floor/plasteel/blue/side{dir = 4},/area/ruin/ancientstation/comm) +"aN" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/crate,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/turf/open/floor/plating,/area/ruin/ancientstation) +"aO" = (/mob/living/simple_animal/hostile/hivebot/rapid,/turf/open/floor/plasteel/black,/area/ruin/ancientstation/hivebot) +"aP" = (/obj/structure/sign/poster/contraband/pwr_game,/turf/closed/wall/rust,/area/ruin/ancientstation) +"aQ" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/ruin/ancientstation) +"aR" = (/obj/effect/decal/cleanable/dirt,/obj/structure/chair{dir = 1},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/blue/side{dir = 8},/area/ruin/ancientstation/comm) +"aS" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/device/megaphone,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/comm) +"aT" = (/obj/effect/decal/cleanable/dirt,/obj/structure/chair{dir = 1},/obj/machinery/airalarm{dir = 8; locked = 0; pixel_x = 24; req_access = "0"; req_one_access = "0"},/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 4},/area/ruin/ancientstation/comm) +"aU" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation) +"aV" = (/obj/effect/decal/cleanable/oil,/mob/living/simple_animal/hostile/hivebot/strong,/turf/open/floor/plasteel/black,/area/ruin/ancientstation/hivebot) +"aW" = (/obj/item/stack/cable_coil,/turf/template_noop,/area/template_noop) +"aX" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/lighter,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/comm) +"aY" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/coin,/obj/machinery/atmospherics/components/unary/vent_pump/on,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/comm) +"aZ" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/crate,/obj/item/weapon/storage/backpack/old,/turf/open/floor/plating,/area/ruin/ancientstation) +"ba" = (/obj/structure/transit_tube{dir = 4},/turf/template_noop,/area/template_noop) +"bb" = (/turf/open/floor/plating/airless,/area/template_noop) +"bc" = (/obj/structure/girder,/turf/open/floor/plating/airless,/area/template_noop) +"bd" = (/turf/closed/mineral/diamond,/area/ruin/unpowered) +"be" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/crate,/obj/item/weapon/electronics/airlock,/obj/item/weapon/electronics/airlock,/obj/item/weapon/electronics/apc,/obj/item/weapon/electronics/apc,/turf/open/floor/plating,/area/ruin/ancientstation) +"bf" = (/obj/effect/decal/cleanable/dirt,/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/blue/side{dir = 10},/area/ruin/ancientstation/comm) +"bg" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/blue/corner{dir = 8},/area/ruin/ancientstation/comm) +"bh" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/comm) +"bi" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/blue/corner,/area/ruin/ancientstation/comm) +"bj" = (/obj/effect/decal/cleanable/dirt,/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/blue/side{dir = 6},/area/ruin/ancientstation/comm) +"bk" = (/obj/structure/closet/crate,/obj/item/stack/sheet/metal{amount = 20},/obj/item/stack/sheet/metal{amount = 20},/turf/open/floor/plasteel/black,/area/ruin/ancientstation/hivebot) +"bl" = (/obj/structure/closet/crate,/obj/item/stack/sheet/mineral/plasma{amount = 15},/obj/item/stack/sheet/mineral/uranium{amount = 10},/turf/open/floor/plasteel/black,/area/ruin/ancientstation/hivebot) +"bm" = (/turf/open/floor/plasteel/airless/floorgrime,/area/template_noop) +"bn" = (/turf/closed/wall/rust,/area/template_noop) +"bo" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/plasteel/blue/side{dir = 10},/area/ruin/ancientstation/comm) +"bp" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/dice/d6,/turf/open/floor/plasteel/blue/side,/area/ruin/ancientstation/comm) +"bq" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/tank/internals/emergency_oxygen,/turf/open/floor/plasteel/blue/side,/area/ruin/ancientstation/comm) +"br" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/soap/nanotrasen,/turf/open/floor/plasteel/blue/side{dir = 6},/area/ruin/ancientstation/comm) +"bs" = (/obj/machinery/door/airlock/maintenance_hatch,/turf/open/floor/plating,/area/ruin/ancientstation/betanorth) +"bt" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance_hatch,/turf/open/floor/plating,/area/ruin/ancientstation) +"bu" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/ruin/ancientstation/comm) +"bv" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/ruin/ancientstation/comm) +"bw" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/glass_command{name = "Bridge"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/comm) +"bx" = (/obj/machinery/door/airlock/maintenance_hatch,/turf/open/floor/plating,/area/ruin/ancientstation) +"by" = (/turf/closed/wall/rust,/area/ruin/ancientstation/deltacorridor) +"bz" = (/turf/closed/wall,/area/ruin/ancientstation/deltacorridor) +"bA" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation/hivebot) +"bB" = (/obj/machinery/door/firedoor/closed,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/betanorth) +"bC" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/betanorth) +"bD" = (/turf/closed/wall/rust,/area/ruin/ancientstation/betanorth) +"bE" = (/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/open/floor/plating,/area/ruin/ancientstation/betanorth) +"bF" = (/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/open/floor/plating,/area/ruin/ancientstation) +"bG" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/crate,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"bH" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"bI" = (/obj/structure/sign/bluecross_2,/turf/closed/wall/rust,/area/ruin/ancientstation) +"bJ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/decal/cleanable/dirt,/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-25"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"bK" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"bL" = (/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"bM" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"bN" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"bO" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-25"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"bP" = (/obj/structure/sign/science,/turf/closed/wall/rust,/area/ruin/ancientstation) +"bQ" = (/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/open/floor/plating,/area/ruin/ancientstation/deltacorridor) +"bR" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"bS" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"bT" = (/obj/structure/sign/poster/official/science,/turf/closed/wall/rust,/area/ruin/ancientstation/deltacorridor) +"bU" = (/turf/closed/wall/rust,/area/ruin/ancientstation/hivebot) +"bV" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/science{name = "Artificial Program Core Room"},/turf/open/floor/plating,/area/ruin/ancientstation/hivebot) +"bW" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) +"bX" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/crate,/obj/item/weapon/circular_saw,/obj/item/weapon/retractor,/obj/item/weapon/hemostat,/obj/item/weapon/scalpel{pixel_y = 12},/obj/item/weapon/cautery{pixel_x = 4},/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) +"bY" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/command,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/betanorth) +"bZ" = (/obj/effect/decal/cleanable/dirt,/obj/structure/transit_tube/station/reverse/flipped{dir = 1},/obj/structure/transit_tube_pod{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/betanorth) +"ca" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/transit_tube{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation/betanorth) +"cb" = (/obj/structure/transit_tube/crossing/horizontal,/turf/template_noop,/area/template_noop) +"cc" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/transit_tube{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation) +"cd" = (/obj/structure/transit_tube/station/reverse/flipped,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"ce" = (/obj/machinery/door/airlock/command{name = "Beta Station Access"},/obj/machinery/door/poddoor{id = "ancient"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/powered) +"cf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"cg" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/effect/decal/cleanable/generic,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"ch" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"ci" = (/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"cj" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"ck" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/shreds,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"cl" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/command{name = "Delta Station Access"},/obj/machinery/door/poddoor{id = "ancient"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/powered) +"cm" = (/obj/effect/decal/cleanable/dirt,/obj/structure/transit_tube/station/reverse/flipped{dir = 1},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"cn" = (/obj/structure/transit_tube_pod{dir = 4},/turf/template_noop,/area/template_noop) +"co" = (/obj/structure/transit_tube,/turf/template_noop,/area/template_noop) +"cp" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/transit_tube{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) +"cq" = (/obj/effect/decal/cleanable/dirt,/obj/structure/transit_tube/station/reverse/flipped,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"cr" = (/obj/effect/decal/cleanable/dirt,/obj/item/stack/medical/bruise_pack,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"cs" = (/obj/effect/decal/cleanable/dirt,/obj/structure/barricade/wooden,/obj/machinery/door/airlock/command{name = "Charlie Station Access"; req_access_txt = "200"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"ct" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-25"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"cu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"cv" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/science,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"cw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"cx" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"cy" = (/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot/strong,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"cz" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/science,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"cA" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-25"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"cB" = (/obj/machinery/door/airlock/maintenance_hatch,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) +"cC" = (/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot/strong,/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) +"cD" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) +"cE" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/template_noop) +"cF" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/betanorth) +"cG" = (/obj/item/solar_assembly,/turf/template_noop,/area/template_noop) +"cH" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/crate,/obj/machinery/light/small{dir = 4},/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"cI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"cJ" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"cK" = (/turf/closed/wall/rust,/area/ruin/ancientstation/hydroponics) +"cL" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/ruin/ancientstation/hydroponics) +"cM" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/ruin/ancientstation/hydroponics) +"cN" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/ruin/ancientstation/hydroponics) +"cO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"cP" = (/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"cQ" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{brightness = 3; dir = 8},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"cR" = (/obj/effect/decal/cleanable/dirt,/obj/item/weapon/pickaxe,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"cS" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"cT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"cU" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"cV" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/science,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"cW" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"cX" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/mob/living/simple_animal/hostile/hivebot/rapid,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"cY" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"cZ" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"da" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/ancient,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white/side{dir = 5},/area/template_noop) +"db" = (/obj/structure/sign/poster/official/nanomichi_ad,/turf/closed/wall/rust,/area/template_noop) +"dc" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/betanorth) +"dd" = (/turf/closed/wall/rust,/area/ruin/ancientstation/engi) +"de" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 8},/obj/machinery/airalarm{dir = 4; locked = 0; pixel_x = -23; req_access = "0"; req_one_access = "0"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"df" = (/obj/effect/decal/cleanable/dirt,/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-25"},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/green/side{dir = 9},/area/ruin/ancientstation/hydroponics) +"dg" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/green/corner{dir = 1},/area/ruin/ancientstation/hydroponics) +"dh" = (/obj/machinery/hydroponics/soil,/turf/open/floor/grass,/area/ruin/ancientstation/hydroponics) +"di" = (/obj/effect/decal/cleanable/dirt,/obj/structure/reagent_dispensers/watertank/high{desc = "A highly-pressurized water tank, this one seems almost empty.."; tank_volume = 1000},/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/hydroponics) +"dj" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/green/corner{dir = 4},/area/ruin/ancientstation/hydroponics) +"dk" = (/obj/effect/decal/cleanable/dirt,/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-25"},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/green/side{dir = 5},/area/ruin/ancientstation/hydroponics) +"dl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"dm" = (/obj/machinery/light/small{dir = 4},/obj/machinery/airalarm{dir = 8; locked = 0; pixel_x = 24; req_access = "0"; req_one_access = "0"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"dn" = (/turf/closed/wall/rust,/area/ruin/ancientstation/sec) +"do" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"dp" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"dq" = (/turf/closed/wall/rust,/area/ruin/ancientstation/rnd) +"dr" = (/obj/machinery/door/airlock/research{name = "Research and Development"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) +"ds" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/research{name = "Research and Development"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) +"dt" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"du" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"dv" = (/obj/effect/decal/cleanable/dirt,/obj/item/roller,/turf/open/floor/plasteel/white/side{dir = 4},/area/template_noop) +"dw" = (/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/open/floor/plating,/area/template_noop) +"dx" = (/obj/structure/lattice,/turf/template_noop,/area/space) +"dy" = (/turf/open/floor/plating/airless{tag = "icon-floor"; icon_state = "floor"},/area/template_noop) +"dz" = (/obj/structure/lattice/catwalk,/turf/template_noop,/area/template_noop) +"dA" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/template_noop,/area/template_noop) +"dB" = (/obj/machinery/power/solar,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating/airless{tag = "icon-floor"; icon_state = "floor"},/area/template_noop) +"dC" = (/obj/structure/table,/obj/item/weapon/tank/internals/oxygen,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/components/unary/vent_pump/on,/obj/item/clothing/mask/breath,/turf/open/floor/plasteel/yellow/side{dir = 9},/area/ruin/ancientstation/engi) +"dD" = (/obj/structure/rack,/obj/effect/decal/cleanable/dirt,/obj/item/clothing/head/helmet/space/nasavoid/old,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/ruin/ancientstation/engi) +"dE" = (/obj/structure/rack,/obj/effect/decal/cleanable/dirt,/obj/machinery/airalarm{dir = 8; locked = 0; pixel_x = 24; req_access = "0"; req_one_access = "0"},/obj/item/clothing/suit/space/nasavoid/old,/turf/open/floor/plasteel/yellow/side{dir = 5},/area/ruin/ancientstation/engi) +"dF" = (/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/open/floor/plating,/area/ruin/ancientstation/hydroponics) +"dG" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/hydroponics) +"dH" = (/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/hydroponics) +"dI" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 8; name = "Charlie Security APC"; pixel_x = -24; start_charge = 0},/turf/open/floor/plasteel/red/side{dir = 9},/area/ruin/ancientstation/sec) +"dJ" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/turf/open/floor/plasteel/red/side{dir = 1},/area/ruin/ancientstation/sec) +"dK" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/plasteel/red/side{dir = 5},/area/ruin/ancientstation/sec) +"dL" = (/obj/structure/sign/poster/contraband/donut_corp,/turf/closed/wall/rust,/area/ruin/ancientstation/sec) +"dM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/obj/machinery/airalarm{dir = 4; locked = 0; pixel_x = -23; req_access = "0"; req_one_access = "0"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"dN" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/mob/living/simple_animal/hostile/hivebot/rapid,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"dO" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white/corner,/area/ruin/ancientstation/rnd) +"dP" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/rnd) +"dQ" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white/corner{dir = 8},/area/ruin/ancientstation/rnd) +"dR" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) +"dS" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/airalarm{dir = 8; locked = 0; pixel_x = 24; req_access = "0"; req_one_access = "0"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"dT" = (/obj/machinery/door/airlock/glass_medical{name = "Medical Bay"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/betanorth) +"dU" = (/obj/machinery/portable_atmospherics/canister,/turf/open/floor/plating/airless,/area/template_noop) +"dV" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/template_noop,/area/template_noop) +"dW" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/obj/item/weapon/card/id/away/old/apc,/turf/open/floor/plasteel/yellow/side{dir = 9},/area/ruin/ancientstation/engi) +"dX" = (/obj/effect/decal/cleanable/dirt,/obj/item/weapon/stock_parts/cell{charge = 100; maxcharge = 15000},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/ruin/ancientstation/engi) +"dY" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/engi) +"dZ" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/engi) +"ea" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/yellow/side{dir = 4},/area/ruin/ancientstation/engi) +"eb" = (/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/glass{name = "Hydroponics"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/hydroponics) +"ec" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/cultivator{pixel_x = 4; pixel_y = 4},/obj/item/weapon/cultivator,/obj/machinery/atmospherics/components/unary/vent_pump/on,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/hydroponics) +"ed" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/seed_extractor,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/hydroponics) +"ee" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/seeds/harebell,/obj/item/seeds/carrot,/obj/item/seeds/potato,/obj/item/seeds/ambrosia,/obj/item/seeds/poppy,/obj/item/seeds/grape,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/hydroponics) +"ef" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/red/side{dir = 8},/area/ruin/ancientstation/sec) +"eg" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/sec) +"eh" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/red/corner{dir = 4},/area/ruin/ancientstation/sec) +"ei" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/red/side{dir = 1},/area/ruin/ancientstation/sec) +"ej" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/book/manual/wiki/security_space_law,/turf/open/floor/plasteel/red/side{dir = 5},/area/ruin/ancientstation/sec) +"ek" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"el" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"em" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/rnd) +"en" = (/obj/machinery/computer/rdconsole/core,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/rnd) +"eo" = (/obj/machinery/r_n_d/destructive_analyzer,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/rnd) +"ep" = (/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot/strong,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/rnd) +"eq" = (/obj/machinery/mecha_part_fabricator,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/rnd) +"er" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50; pixel_x = 3; pixel_y = 3},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/rnd) +"es" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/rnd) +"et" = (/obj/item/weapon/circuitboard/machine/sleeper,/turf/open/floor/plasteel/airless/floorgrime,/area/template_noop) +"eu" = (/obj/effect/decal/cleanable/dirt,/obj/item/weapon/stock_parts/console_screen,/turf/open/floor/plasteel/white/side{tag = "icon-whitehall (EAST)"; icon_state = "whitehall"; dir = 4},/area/template_noop) +"ev" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/solar,/turf/open/floor/plating/airless{tag = "icon-floor"; icon_state = "floor"},/area/template_noop) +"ew" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating/airless{tag = "icon-floor"; icon_state = "floor"},/area/template_noop) +"ex" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{brightness = 3; dir = 8},/turf/open/floor/plasteel/yellow/side{dir = 8},/area/ruin/ancientstation/engi) +"ey" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/engi) +"ez" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/engi) +"eA" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 4},/area/ruin/ancientstation/engi) +"eB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/yellow/side{dir = 8},/area/ruin/ancientstation) +"eC" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/decal/cleanable/generic,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"eD" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/green/side{dir = 8},/area/ruin/ancientstation/hydroponics) +"eE" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/hydroponics) +"eF" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/hydroponics) +"eG" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/green/side{dir = 4},/area/ruin/ancientstation/hydroponics) +"eH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/red/side{dir = 8},/area/ruin/ancientstation/sec) +"eI" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/device/assembly/flash/handheld,/turf/open/floor/plasteel/red/side{dir = 4},/area/ruin/ancientstation/sec) +"eJ" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"eK" = (/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"eL" = (/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"eM" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/power/emitter,/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) +"eN" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white/side{dir = 4},/area/template_noop) +"eO" = (/obj/item/solar_assembly,/obj/item/weapon/electronics/tracker,/turf/open/floor/plating/airless,/area/template_noop) +"eP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/ruin/ancientstation/engi) +"eQ" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/ruin/ancientstation/engi) +"eR" = (/obj/machinery/power/terminal{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation/engi) +"eS" = (/obj/machinery/power/smes/engineering{charge = 0},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/engi) +"eT" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 4},/area/ruin/ancientstation/engi) +"eU" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/ruin/ancientstation) +"eV" = (/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"eW" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/green/side{dir = 8},/area/ruin/ancientstation/hydroponics) +"eX" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small,/turf/open/floor/plasteel/green/corner,/area/ruin/ancientstation/hydroponics) +"eY" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/green/side,/area/ruin/ancientstation/hydroponics) +"eZ" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/airalarm{dir = 1; pixel_y = -22},/turf/open/floor/plasteel/green/corner{dir = 8},/area/ruin/ancientstation/hydroponics) +"fa" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/green/side{dir = 4},/area/ruin/ancientstation/hydroponics) +"fb" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"fc" = (/obj/structure/sign/poster/official/here_for_your_safety,/turf/closed/wall/rust,/area/ruin/ancientstation/sec) +"fd" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/paper,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/sec) +"fe" = (/obj/effect/decal/cleanable/dirt,/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/sec) +"ff" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/red/side{dir = 4},/area/ruin/ancientstation/sec) +"fg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"fh" = (/obj/machinery/r_n_d/protolathe,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/rnd) +"fi" = (/obj/machinery/r_n_d/circuit_imprinter,/obj/effect/decal/cleanable/dirt,/obj/item/weapon/reagent_containers/dropper,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/rnd) +"fj" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/tank/internals/anesthetic,/obj/item/clothing/mask/breath/medical,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/rnd) +"fk" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table/optable{name = "Robotics Operating Table"},/obj/item/weapon/surgical_drapes,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/rnd) +"fl" = (/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot/rapid,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"fm" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/field/generator,/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) +"fn" = (/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/open/floor/plating/airless,/area/template_noop) +"fo" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/ruin/ancientstation/engi) +"fp" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/ruin/ancientstation/engi) +"fq" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation/engi) +"fr" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation/engi) +"fs" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/ash,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/engi) +"ft" = (/obj/machinery/door/airlock/engineering{name = "Engineering"},/obj/machinery/door/poddoor{id = "ancient"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/powered) +"fu" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"fv" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/maintenance_hatch,/obj/machinery/atmospherics/pipe/simple/supply/visible,/turf/open/floor/plating,/area/ruin/ancientstation/hydroponics) +"fw" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"fx" = (/obj/machinery/door/airlock/security,/obj/machinery/door/firedoor/closed,/obj/machinery/door/poddoor{id = "ancient"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/sec) +"fy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/red/corner{dir = 1},/area/ruin/ancientstation/sec) +"fz" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/pen,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/sec) +"fA" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/sec) +"fB" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/red/side{dir = 4},/area/ruin/ancientstation/sec) +"fC" = (/obj/effect/decal/cleanable/dirt,/obj/item/weapon/electronics/apc,/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) +"fD" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Delta Main Corridor APC"; pixel_y = 24; start_charge = 0},/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) +"fE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot/strong,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"fF" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/white/corner{dir = 4},/area/ruin/ancientstation/rnd) +"fG" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white/corner{dir = 1},/area/ruin/ancientstation/rnd) +"fH" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white/corner{dir = 4},/area/ruin/ancientstation/rnd) +"fI" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/white/corner{dir = 1},/area/ruin/ancientstation/rnd) +"fJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/airless/floorgrime,/area/template_noop) +"fK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/airless/floorgrime,/area/template_noop) +"fL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless/floorgrime,/area/template_noop) +"fM" = (/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/airless,/area/template_noop) +"fN" = (/obj/structure/lattice/catwalk,/obj/item/stack/cable_coil{amount = 2},/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/template_noop,/area/template_noop) +"fO" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/template_noop,/area/template_noop) +"fP" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/template_noop,/area/template_noop) +"fQ" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/template_noop,/area/template_noop) +"fR" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/template_noop,/area/template_noop) +"fS" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 2; name = "Engineering External Access"; req_access = null; req_access_txt = "200"},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation/engi) +"fT" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation/engi) +"fU" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation/engi) +"fV" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation/engi) +"fW" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/engi) +"fX" = (/obj/effect/decal/cleanable/dirt,/obj/item/stack/cable_coil{amount = 2},/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation/engi) +"fY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/engi) +"fZ" = (/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/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/poddoor{id = "ancient"},/turf/open/floor/plating,/area/ruin/ancientstation/powered) +"ga" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"gb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"gc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/maintenance_hatch,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation) +"gd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation) +"ge" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/power/apc{dir = 1; name = "Charlie Hydroponics APC"; pixel_y = 24; start_charge = 0},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation/hydroponics) +"gf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/manifold/supply/visible{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation) +"gg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation) +"gh" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/power/apc{dir = 2; name = "Charlie Kitchen APC"; pixel_y = -24; start_charge = 0},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/ruin/ancientstation/kitchen) +"gi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/obj/structure/closet/crate,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/turf/open/floor/plating,/area/ruin/ancientstation) +"gj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/maintenance_hatch,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation) +"gk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"gl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"gm" = (/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/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/poddoor{id = "ancient"},/turf/open/floor/plating,/area/ruin/ancientstation/sec) +"gn" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/sec) +"go" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/sec) +"gp" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/red/side{dir = 4},/area/ruin/ancientstation/sec) +"gq" = (/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/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation/sec) +"gr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/open/floor/plating/airless,/area/space) +"gs" = (/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/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) +"gt" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) +"gu" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) +"gv" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/maintenance_hatch,/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) +"gw" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"gx" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/power/apc{dir = 4; name = "Delta RnD APC"; pixel_x = 24; start_charge = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) +"gy" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/stack/sheet/metal{amount = 50},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) +"gz" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical/old,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) +"gA" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) +"gB" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) +"gC" = (/obj/structure/table,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/matter_bin,/obj/item/weapon/stock_parts/scanning_module{pixel_x = 2; pixel_y = 3},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) +"gD" = (/obj/structure/table,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/micro_laser,/obj/item/stack/cable_coil,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) +"gE" = (/obj/machinery/door/airlock/maintenance_hatch{name = "Engineering Storage"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) +"gF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating/airless,/area/template_noop) +"gG" = (/obj/item/stack/cable_coil,/turf/open/floor/plasteel/airless/floorgrime,/area/template_noop) +"gH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/ruin/ancientstation/engi) +"gI" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/engi) +"gJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/engi) +"gK" = (/turf/closed/wall/rust,/area/ruin/ancientstation/kitchen) +"gL" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/maintenance_hatch,/obj/machinery/atmospherics/pipe/simple/supply/visible,/turf/open/floor/plating,/area/ruin/ancientstation/kitchen) +"gM" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/red/corner{dir = 8},/area/ruin/ancientstation/sec) +"gN" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/sec) +"gO" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/visible,/turf/open/floor/plasteel/red/side{dir = 4},/area/ruin/ancientstation/sec) +"gP" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small,/obj/structure/table,/obj/item/trash/plate,/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) +"gQ" = (/obj/effect/decal/cleanable/dirt,/obj/structure/chair{dir = 8},/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) +"gR" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation/rnd) +"gS" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation/rnd) +"gT" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation/rnd) +"gU" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) +"gV" = (/obj/item/solar_assembly,/turf/open/floor/plating/airless,/area/template_noop) +"gW" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/ruin/ancientstation/engi) +"gX" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/yellow/corner{icon_state = "yellowcorner"; dir = 8},/area/ruin/ancientstation/engi) +"gY" = (/obj/machinery/power/terminal{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/cable,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation/engi) +"gZ" = (/obj/machinery/power/smes/engineering{charge = 0},/obj/structure/cable,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/engi) +"ha" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/yellow/corner,/area/ruin/ancientstation/engi) +"hb" = (/obj/structure/sign/poster/official/build,/turf/closed/wall/rust,/area/ruin/ancientstation/engi) +"hc" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/yellow/corner{icon_state = "yellowcorner"; dir = 8},/area/ruin/ancientstation) +"hd" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/vending/dinnerware,/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) +"he" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/secure_closet/freezer/fridge,/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) +"hf" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) +"hg" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) +"hh" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) +"hi" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/airalarm{frequency = 1439; locked = 0; pixel_y = 23; req_access = "0"; req_one_access = "0"},/obj/effect/decal/cleanable/egg_smudge,/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) +"hj" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/processor,/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) +"hk" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) +"hl" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/red/side{dir = 8},/area/ruin/ancientstation/sec) +"hm" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/folder/red,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/sec) +"hn" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/visible,/turf/open/floor/plasteel/red/side{dir = 4},/area/ruin/ancientstation/sec) +"ho" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"hp" = (/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) +"hq" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/large/aluminium{pixel_x = 6},/obj/item/weapon/reagent_containers/glass/beaker/large/bromine{pixel_x = -6},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/orange/side{tag = "icon-orange (NORTHWEST)"; icon_state = "orange"; dir = 9},/area/ruin/ancientstation/rnd) +"hr" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/large/carbon{pixel_x = 6},/obj/item/weapon/reagent_containers/glass/beaker/large/chlorine{pixel_x = -6},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/orange/side{tag = "icon-orange (NORTH)"; icon_state = "orange"; dir = 1},/area/ruin/ancientstation/rnd) +"hs" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/large/copper{pixel_x = 6},/obj/item/weapon/reagent_containers/glass/beaker/large/ethanol{pixel_x = -6},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/orange/side{tag = "icon-orange (NORTHEAST)"; icon_state = "orange"; dir = 5},/area/ruin/ancientstation/rnd) +"ht" = (/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"hu" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/power/rad_collector,/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) +"hv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/airless,/area/template_noop) +"hw" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating/airless{tag = "icon-floor"; icon_state = "floor"},/area/template_noop) +"hx" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/template_noop,/area/template_noop) +"hy" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{brightness = 3; dir = 8},/obj/effect/decal/cleanable/oil,/turf/open/floor/plasteel/yellow/side{dir = 8},/area/ruin/ancientstation/engi) +"hz" = (/obj/effect/decal/cleanable/dirt,/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 5},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/engi) +"hA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 4},/area/ruin/ancientstation/engi) +"hB" = (/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/open/floor/plating,/area/ruin/ancientstation/kitchen) +"hC" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/flour,/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) +"hD" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/kitchen/rollingpin,/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) +"hE" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/enzyme{layer = 5},/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 1},/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) +"hF" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/machinery/reagentgrinder,/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) +"hG" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/red/side{dir = 8},/area/ruin/ancientstation/sec) +"hH" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 1},/obj/item/weapon/storage/backpack/old,/turf/open/floor/plasteel/red/side{dir = 4},/area/ruin/ancientstation/sec) +"hI" = (/obj/structure/chair,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) +"hJ" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/orange/corner,/area/ruin/ancientstation/rnd) +"hK" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/orange/side{tag = "icon-orange (WEST)"; icon_state = "orange"; dir = 8},/area/ruin/ancientstation/rnd) +"hL" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/large/fluorine{pixel_x = 6},/obj/item/weapon/reagent_containers/glass/beaker/large/hydrogen{pixel_x = -6},/obj/item/weapon/reagent_containers/glass/beaker/large/water{pixel_y = 8},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/orange/side{tag = "icon-orange (EAST)"; icon_state = "orange"; dir = 4},/area/ruin/ancientstation/rnd) +"hM" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/template_noop,/area/template_noop) +"hN" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/power/solar_control{name = "Station Solar Control Computer"},/obj/item/weapon/paper/solar,/obj/structure/cable,/turf/open/floor/plasteel/yellow/side{dir = 10},/area/ruin/ancientstation/engi) +"hO" = (/obj/effect/decal/cleanable/dirt,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/stack/sheet/glass{amount = 30},/turf/open/floor/plasteel/yellow/side,/area/ruin/ancientstation/engi) +"hP" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/yellow/corner{icon_state = "yellowcorner"; dir = 8},/area/ruin/ancientstation/engi) +"hQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/yellow/side{dir = 4},/area/ruin/ancientstation/engi) +"hR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/generic,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"hS" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Dining Area"},/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) +"hT" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/red/corner,/area/ruin/ancientstation/sec) +"hU" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/red/side,/area/ruin/ancientstation/sec) +"hV" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/restraints/handcuffs,/obj/item/clothing/mask/gas,/turf/open/floor/plasteel/red/side{dir = 6},/area/ruin/ancientstation/sec) +"hW" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/machinery/light{dir = 8},/obj/item/weapon/broken_bottle,/obj/item/weapon/soap/nanotrasen,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) +"hX" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 4},/obj/item/weapon/folder/white,/obj/item/weapon/reagent_containers/glass/beaker,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) +"hY" = (/obj/machinery/chem_master,/obj/effect/decal/cleanable/dirt,/obj/item/weapon/reagent_containers/glass/beaker,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/rnd) +"hZ" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/mob/living/simple_animal/hostile/hivebot/range,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) +"ia" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/orange/side{tag = "icon-orange (EAST)"; icon_state = "orange"; dir = 4},/area/ruin/ancientstation/rnd) +"ib" = (/obj/machinery/door/airlock/glass_medical{name = "Chemical Storage"; req_access_txt = "200"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) +"ic" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/large/mercury{pixel_x = 6; pixel_y = 8},/obj/item/weapon/reagent_containers/glass/beaker/large/nitrogen{pixel_x = -6; pixel_y = 8},/obj/item/weapon/reagent_containers/glass/beaker/large/oxygen{pixel_x = 6},/obj/item/weapon/reagent_containers/glass/beaker/large/phosphorus{pixel_x = -6},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) +"id" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/large/iodine{pixel_y = 8},/obj/item/weapon/reagent_containers/glass/beaker/large/iron{pixel_x = 6},/obj/item/weapon/reagent_containers/glass/beaker/large/lithium{pixel_x = -6},/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/obj/machinery/airalarm{dir = 8; locked = 0; pixel_x = 24; req_access = "0"; req_one_access = "0"},/turf/open/floor/plasteel/orange/side{tag = "icon-orange (EAST)"; icon_state = "orange"; dir = 4},/area/ruin/ancientstation/rnd) +"ie" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/clothing/gloves/color/fyellow/old,/obj/item/clothing/gloves/color/fyellow/old,/obj/item/device/multitool,/turf/open/floor/plasteel/yellow/side{dir = 10},/area/ruin/ancientstation/engi) +"if" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/mechanical/old,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/yellow/side,/area/ruin/ancientstation/engi) +"ig" = (/obj/structure/rack,/obj/item/stack/cable_coil,/obj/effect/decal/cleanable/dirt,/obj/machinery/power/apc{dir = 4; name = "Charlie Engineering APC"; pixel_x = 24; start_charge = 0},/obj/structure/cable,/turf/open/floor/plasteel/yellow/side{dir = 6},/area/ruin/ancientstation/engi) +"ih" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/vomit/old,/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) +"ii" = (/obj/effect/decal/cleanable/dirt,/obj/structure/rack,/obj/item/weapon/gun/energy/laser/retro/old{pixel_x = -2; pixel_y = -2},/obj/item/weapon/gun/energy/laser/retro/old{pixel_x = 2; pixel_y = 2},/obj/machinery/airalarm{dir = 4; locked = 0; pixel_x = -23},/turf/open/floor/plasteel/red/side{dir = 10},/area/ruin/ancientstation/sec) +"ij" = (/obj/effect/decal/cleanable/dirt,/obj/structure/rack,/obj/item/clothing/suit/armor/vest/old,/turf/open/floor/plasteel/red/side,/area/ruin/ancientstation/sec) +"ik" = (/obj/effect/decal/cleanable/dirt,/obj/structure/rack,/obj/item/clothing/head/helmet/old,/turf/open/floor/plasteel/red/side{dir = 6},/area/ruin/ancientstation/sec) +"il" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/toy/nuke,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) +"im" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/machinery/recharger,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) +"in" = (/obj/machinery/chem_heater,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/rnd) +"io" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/orange/corner{tag = "icon-orangecorner (EAST)"; icon_state = "orangecorner"; dir = 4},/area/ruin/ancientstation/rnd) +"ip" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/large/potassium{pixel_x = 6},/obj/item/weapon/reagent_containers/glass/beaker/large/radium{pixel_x = -6},/obj/item/weapon/reagent_containers/glass/beaker/large/welding_fuel{pixel_y = 8},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/orange/side{tag = "icon-orange (EAST)"; icon_state = "orange"; dir = 4},/area/ruin/ancientstation/rnd) +"iq" = (/obj/effect/decal/cleanable/dirt,/obj/structure/chair{dir = 4},/obj/machinery/light/small{brightness = 3; dir = 8},/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) +"ir" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/kitchen/fork,/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) +"is" = (/obj/effect/decal/cleanable/dirt,/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) +"it" = (/obj/effect/decal/cleanable/dirt,/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) +"iu" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 5; pixel_y = -2},/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -2; pixel_y = 2},/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) +"iv" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/trash/plate,/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) +"iw" = (/obj/effect/decal/cleanable/dirt,/obj/structure/chair{dir = 8},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) +"ix" = (/obj/machinery/airalarm{dir = 8; locked = 0; pixel_x = 24; req_access = "0"; req_one_access = "0"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"iy" = (/obj/structure/chair{dir = 1},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) +"iz" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/large/sugar{pixel_x = 6},/obj/item/weapon/reagent_containers/glass/beaker/large/sulfur{pixel_x = -6},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/orange/side{tag = "icon-orange (SOUTHWEST)"; icon_state = "orange"; dir = 10},/area/ruin/ancientstation/rnd) +"iA" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/large/silver{pixel_x = 6},/obj/item/weapon/reagent_containers/glass/beaker/large/sodium{pixel_x = -6},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) +"iB" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/large/sacid{pixel_x = 6},/obj/item/weapon/reagent_containers/glass/beaker/large/silicon{pixel_x = -6},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/orange/side{tag = "icon-orange (SOUTHEAST)"; icon_state = "orange"; dir = 6},/area/ruin/ancientstation/rnd) +"iC" = (/obj/structure/closet/crate,/turf/open/floor/plating/airless,/area/template_noop) +"iD" = (/obj/machinery/power/terminal{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plating,/area/ruin/ancientstation/engi) +"iE" = (/obj/machinery/power/smes/engineering{charge = 0; name = "backup power storage unit"},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation/engi) +"iF" = (/obj/effect/decal/cleanable/dirt,/obj/item/weapon/wrench,/obj/item/weapon/wirecutters,/turf/open/floor/plating,/area/ruin/ancientstation/engi) +"iG" = (/obj/structure/sign/radiation,/turf/closed/wall/rust,/area/ruin/ancientstation/engi) +"iH" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/ruin/ancientstation/kitchen) +"iI" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/ruin/ancientstation/kitchen) +"iJ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/ruin/ancientstation/kitchen) +"iK" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"iL" = (/obj/machinery/door/airlock/research{name = "Research and Development"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) +"iM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/research{name = "Research and Development"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) +"iN" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"iO" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"iP" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/recharge_station,/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) +"iQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/airless,/area/template_noop) +"iR" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 8},/turf/open/floor/plating,/area/ruin/ancientstation/engi) +"iS" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation/engi) +"iT" = (/obj/machinery/door/airlock/engineering{name = "Backup Generator Room"},/turf/open/floor/plating,/area/ruin/ancientstation/engi) +"iU" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"iV" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"iW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"iX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"iY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"iZ" = (/obj/effect/decal/cleanable/dirt,/obj/structure/transit_tube/station/reverse/flipped{dir = 1},/obj/structure/transit_tube_pod{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"ja" = (/obj/structure/transit_tube/station/reverse/flipped,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"jb" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/command{name = "Charlie Station Access"; req_access_txt = "200"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"jc" = (/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"jd" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"je" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"jf" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/mob/living/simple_animal/hostile/hivebot/strong,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"jg" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/mob/living/simple_animal/hostile/hivebot/rapid,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"jh" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"ji" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/obj/structure/closet/crate,/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/obj/item/weapon/storage/box/firingpins,/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) +"jj" = (/turf/open/floor/plasteel/floorgrime,/area/template_noop) +"jk" = (/obj/structure/closet/crate/radiation,/obj/item/stack/sheet/mineral/uranium{amount = 10},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation/engi) +"jl" = (/obj/machinery/power/port_gen/pacman/super{name = "\improper emergency power generator"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation/engi) +"jm" = (/obj/structure/table,/obj/item/stack/cable_coil{amount = 15},/obj/item/weapon/paper,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation/engi) +"jn" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/effect/decal/cleanable/dirt,/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-25"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"jo" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"jp" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/oil,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"jq" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"jr" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"js" = (/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"jt" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-25"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"ju" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"jv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot/rapid,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"jw" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) +"jx" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/crate,/obj/item/weapon/disk/tech_disk,/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) +"jy" = (/turf/open/floor/plating/airless,/area/ruin/ancientstation/atmo) +"jz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/airless,/area/ruin/ancientstation/atmo) +"jA" = (/obj/structure/lattice,/obj/item/solar_assembly,/turf/template_noop,/area/template_noop) +"jB" = (/obj/structure/cable,/turf/open/floor/plating/airless,/area/template_noop) +"jC" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/ruin/ancientstation) +"jD" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/ruin/ancientstation) +"jE" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/glass{name = "Cryogenics Room"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"jF" = (/turf/closed/wall/r_wall/rust,/area/ruin/ancientstation/proto) +"jG" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/highsecurity{name = "Prototype Laboratory"; req_access_txt = "200"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/white/side,/area/ruin/ancientstation/proto) +"jH" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/highsecurity{name = "Prototype Laboratory"; req_access_txt = "200"},/turf/open/floor/plasteel/white/side,/area/ruin/ancientstation/proto) +"jI" = (/obj/machinery/power/apc{dir = 4; name = "Beta Atmospherics APC"; pixel_x = 24; start_charge = 0},/obj/structure/cable,/turf/open/floor/plasteel/airless/floorgrime,/area/ruin/ancientstation/atmo) +"jJ" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plating,/area/ruin/ancientstation) +"jK" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"jL" = (/obj/effect/decal/cleanable/dirt,/obj/structure/mirror{name = "dusty mirror"; pixel_y = 28},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"jM" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/crate,/turf/open/floor/plating,/area/ruin/ancientstation) +"jN" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/cobweb{icon_state = "cobweb2"},/turf/open/floor/plating,/area/ruin/ancientstation) +"jO" = (/obj/structure/table/reinforced,/obj/item/clothing/suit/space/hardsuit/ancient,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) +"jP" = (/obj/machinery/door/poddoor{id = "proto"},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) +"jQ" = (/obj/effect/decal/cleanable/dirt,/obj/effect/turf_decal/stripes/line{dir = 8},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) +"jR" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/power/apc{dir = 1; name = "Delta Prototype Lab APC"; pixel_y = 24; start_charge = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) +"jS" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) +"jT" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) +"jU" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/airalarm{frequency = 1439; locked = 0; pixel_y = 23; req_access = "0"; req_one_access = "0"},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) +"jV" = (/obj/effect/decal/cleanable/dirt,/obj/effect/turf_decal/stripes/line{icon_state = "warningline"; dir = 4},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) +"jW" = (/obj/structure/table/reinforced,/obj/machinery/the_singularitygen,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) +"jX" = (/turf/open/floor/plasteel/airless/floorgrime,/area/ruin/ancientstation/atmo) +"jY" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/engine/airless,/area/ruin/ancientstation/atmo) +"jZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/template_noop) +"ka" = (/obj/effect/turf_decal/stripes/line{dir = 9},/obj/effect/turf_decal/stripes/line{dir = 6},/obj/effect/decal/cleanable/dirt,/obj/structure/showcase/oldpod,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"kb" = (/obj/effect/turf_decal/stripes/line{dir = 9},/obj/effect/turf_decal/stripes/line{dir = 6},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/showcase/oldpod,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"kc" = (/obj/effect/turf_decal/stripes/line{dir = 9},/obj/effect/turf_decal/stripes/line{dir = 6},/obj/effect/decal/cleanable/dirt,/obj/effect/mob_spawn/human/oldsec,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"kd" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/cobweb{icon_state = "cobweb2"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"ke" = (/obj/machinery/light{dir = 8},/obj/structure/table/reinforced,/obj/item/weapon/paper/oldstat/protosuit,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) +"kf" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor{id = "proto"},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) +"kg" = (/obj/effect/decal/cleanable/dirt,/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) +"kh" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) +"ki" = (/obj/effect/decal/cleanable/dirt,/obj/effect/turf_decal/stripes/line{icon_state = "warningline"; dir = 4},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) +"kj" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{id = "proto"},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) +"kk" = (/obj/machinery/light{dir = 4},/obj/structure/table/reinforced,/obj/item/weapon/paper/oldstat/protosing,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) +"kl" = (/obj/structure/window/reinforced,/turf/open/floor/engine/airless,/area/ruin/ancientstation/atmo) +"km" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/template_noop) +"kn" = (/obj/effect/decal/cleanable/dirt,/obj/item/solar_assembly,/obj/item/stack/sheet/glass{amount = 30},/turf/open/floor/plating,/area/ruin/ancientstation) +"ko" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/device/flashlight/glowstick,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"kp" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/deadcockroach,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"kq" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/powered) +"kr" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/crate,/obj/item/weapon/reagent_containers/spray/weedspray,/obj/item/weapon/reagent_containers/spray/pestspray,/turf/open/floor/plating,/area/ruin/ancientstation) +"ks" = (/obj/effect/decal/cleanable/dirt,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/turf/open/floor/plating,/area/ruin/ancientstation) +"kt" = (/obj/effect/decal/cleanable/dirt,/obj/effect/turf_decal/stripes/corner{icon_state = "warninglinecorner"; dir = 1},/obj/effect/turf_decal/stripes/corner{icon_state = "warninglinecorner"; dir = 4},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) +"ku" = (/obj/effect/decal/cleanable/dirt,/obj/effect/turf_decal/stripes/corner,/obj/effect/turf_decal/stripes/corner{icon_state = "warninglinecorner"; dir = 8},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) +"kv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating/airless,/area/ruin/ancientstation/atmo) +"kw" = (/obj/machinery/light/small{dir = 4},/obj/machinery/pipedispenser,/turf/open/floor/plasteel/airless/floorgrime,/area/ruin/ancientstation/atmo) +"kx" = (/obj/structure/sign/poster/official/work_for_a_future,/turf/closed/wall/rust,/area/ruin/ancientstation) +"ky" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/device/flashlight/glowstick,/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"kz" = (/obj/effect/turf_decal/stripes/line{dir = 9},/obj/effect/turf_decal/stripes/line{dir = 6},/obj/effect/decal/cleanable/dirt,/obj/effect/mob_spawn/human/oldsci,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"kA" = (/obj/effect/turf_decal/stripes/line{dir = 9},/obj/effect/turf_decal/stripes/line{dir = 6},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/mob_spawn/human/oldeng,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"kB" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/obj/item/weapon/paper/oldstat,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"kC" = (/obj/machinery/light{dir = 8},/obj/structure/table/reinforced,/obj/item/weapon/paper/oldstat/protohealth,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) +"kD" = (/obj/effect/decal/cleanable/dirt,/obj/structure/chair,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) +"kE" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/machinery/button/door{id = "proto"; name = "Prototype Lab Lockdown"},/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 1},/obj/item/weapon/paper/oldstat/protoinv,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) +"kF" = (/obj/machinery/light{dir = 4},/obj/structure/table/reinforced,/obj/item/weapon/paper/oldstat/protogun,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) +"kG" = (/obj/machinery/atmospherics/pipe/manifold/supply/visible{dir = 8},/turf/open/floor/plating/airless,/area/ruin/ancientstation/atmo) +"kH" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Air Outlet Pump"; on = 1},/turf/open/floor/plasteel/airless/floorgrime,/area/ruin/ancientstation/atmo) +"kI" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on{dir = 8; frequency = 1441; id_tag = "air_out"; name = "air output"},/turf/open/floor/engine/air,/area/ruin/ancientstation/atmo) +"kJ" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/crate,/obj/machinery/power/apc{dir = 4; name = "Charlie Main Corridor APC"; pixel_x = 24; start_charge = 0},/obj/structure/cable,/obj/item/weapon/storage/backpack/old,/turf/open/floor/plating,/area/ruin/ancientstation) +"kK" = (/obj/structure/table/reinforced,/obj/item/device/healthanalyzer{desc = "A prototype hand-held body scanner able to distinguish vital signs of the subject."; name = "prototype health analyzer"},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) +"kL" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) +"kM" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) +"kN" = (/obj/structure/table/reinforced,/obj/item/weapon/gun/energy/e_gun/old,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) +"kO" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1},/turf/open/floor/plating/airless,/area/ruin/ancientstation/atmo) +"kP" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/engine/air,/area/ruin/ancientstation/atmo) +"kQ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/template_noop) +"kR" = (/obj/item/solar_assembly,/obj/item/solar_assembly,/turf/template_noop,/area/template_noop) +"kS" = (/turf/closed/mineral/plasma,/area/ruin/unpowered) +"kT" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/ruin/ancientstation/proto) +"kU" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/ruin/ancientstation/proto) +"kV" = (/obj/machinery/airalarm{dir = 8; locked = 0; pixel_x = 24; req_access = "0"; req_one_access = "0"},/turf/open/floor/plasteel/airless/floorgrime,/area/ruin/ancientstation/atmo) +"kW" = (/turf/closed/mineral/uranium,/area/ruin/unpowered) +"kX" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 1},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) +"kY" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 2; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/closed/mineral,/area/ruin/unpowered) +"kZ" = (/turf/closed/mineral/silver,/area/ruin/unpowered) +"la" = (/turf/closed/mineral/gold,/area/ruin/unpowered) (1,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bf -bf -aA -bf -bf -aa -aA -bf -bf -aa -aa -aa -aa -aa -aa -aa -aa -aa -bf -aA -bf -jO -jO -km -jO -kK -kV -ld -aa -aA -aa -aa -aa -aa -aa -aa -aa -aa -"} -(2,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bf -bq -br -bH -bH -cK -bf -bq -bq -eG -bf -aA -aA -aA -bf -aA -aA -aA -aA -iT -bq -bq -jP -jY -km -km -jO -kW -km -lk -br -aa -aa -aa -aa -aa -aa -aa -aa -"} -(3,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bg -br -br -bI -bI -br -di -dD -bq -lv -eH -aa -aa -aa -aA -aa -aa -aa -aa -br -bf -jA -br -br -kn -kA -kL -kX -le -br -br -aa -aa -aa -aa -aa -aa -aa -aa -"} -(4,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aA -bf -bf -br -bI -bI -br -dj -dE -ef -dE -br -bg -bf -aa -aA -aa -aa -aa -aa -aa -jh -bf -jQ -br -ko -kB -kB -kB -lf -br -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(5,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aA -bf -bw -bI -bI -bI -bI -bI -bI -bH -bq -bq -fX -gT -bf -aa -aa -aa -aa -aA -bq -bf -bf -aa -aa -aa -aA -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(6,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -br -bI -bI -bI -dk -bI -bI -bH -bq -bq -fY -bq -bf -hL -aA -aA -aA -aA -bq -bq -bf -bf -aa -aA -aa -aa -aA -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(7,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -az -bh -ac -br -bJ -ce -bJ -br -br -br -br -br -fA -fY -fA -br -bg -aa -aA -aa -aa -aa -aa -aa -aa -aa -aa -aA -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(8,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -az -ac -br -bI -bI -cL -br -bf -eg -bf -bq -bq -fY -bq -hj -aa -aa -aA -aa -aa -aa -aa -aa -aa -aa -aa -aA -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(9,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aA -ac -aa -br -bI -cf -bI -br -bf -aA -bf -fa -bf -fZ -gU -bf -aA -aA -bf -aa -aa -aa -bf -aa -aa -aa -aa -aA -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(10,1,1) = {" -aa -ab -aa -aa -aa -aa -aa -aa -aA -aa -aa -aa -aa -br -bK -cg -bK -br -aA -aA -aa -bf -bf -ga -bf -bf -aa -aA -bf -aa -aa -aa -aA -aa -aa -aa -aa -aA -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(11,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aA -aa -aa -aa -aa -bd -cM -br -bg -aa -aa -aa -aA -ga -aA -aa -aa -br -bg -aa -aa -aa -aA -aa -aa -aa -aA -aa -aa -aa -aa -aa -aa -ab -aa -aa -aa -aa -aa -aa -"} -(12,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aA -aa -aa -aA -aa -aa -bd -aa -aa -dF -aa -aa -aa -aa -aA -aa -aa -aa -aa -aA -aa -aa -aa -aA -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(13,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aA -aA -aa -aa -aa -aa -aa -ch -aa -aa -dF -aa -aa -aa -aa -aA -aa -aa -aa -aa -aA -aa -aa -aa -aA -aa -aa -aa -aa -aa -aa -aA -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(14,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aA -aA -aa -aa -aa -aa -bd -aa -aa -lz -lz -lz -aa -aa -gb -aa -aa -hM -lz -lz -aA -lz -lz -eI -aa -aa -aa -aa -aa -aA -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(15,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aA -aZ -aa -aa -aa -aa -bd -aa -aA -dH -dH -ei -dH -dH -gc -ei -ei -hN -dH -ib -dH -ei -dH -hN -aA -aa -aa -aa -aA -aa -lg -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -"} -(16,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aA -aa -aa -aa -aa -aa -bd -aa -aa -lz -lz -eI -aa -aa -gd -aa -aa -lz -hM -lz -aA -lz -lz -lz -aa -aa -aa -aa -aZ -ac -ac -ll -ll -ac -aa -aa -aa -aa -aa -aa -aa -"} -(17,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aA -aa -aa -aa -aa -aa -bd -aa -aA -dH -dH -dK -ei -ei -ge -ei -dH -dH -hN -dH -ei -dH -dH -dH -jR -aa -aa -aa -aA -ac -lh -lh -az -ac -aa -aa -aa -aa -aa -aa -aa -"} -(18,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aA -aa -aa -aa -aa -aa -bd -aa -aa -lz -lz -eJ -aa -aa -gd -aa -aa -lz -lz -lz -aA -lz -lz -lz -aa -aa -aa -aA -aa -aa -ac -ac -ln -aa -aa -aa -aa -aa -aa -aa -aa -"} -(19,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aA -aa -aa -aa -aa -aa -bd -aa -aA -dK -ei -dH -dH -dH -gf -ei -ei -ei -ib -ei -dH -ei -ei -ib -aA -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(20,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aA -aa -aa -aa -aa -aa -bd -aa -aa -dL -lz -lz -aa -aa -gd -aa -aa -lz -eJ -lz -aA -lz -eJ -eJ -aa -aa -aa -aa -aA -aa -aA -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(21,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aA -aa -aa -aa -aa -aa -bd -aa -aa -aA -aa -aa -aa -fB -gg -fB -aa -aa -aa -aA -aa -aa -aa -aA -aa -aa -aa -aa -aA -aa -aa -aa -aa -aa -ab -aa -aa -aa -aa -aa -aa -"} -(22,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aA -aa -aa -aa -aa -aa -bd -aa -aa -aA -aa -aa -aa -fC -gh -fC -aa -aa -aa -aA -aa -aa -aa -aA -aa -aa -aa -aa -aA -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(23,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aA -aa -aa -aa -aa -aa -ch -aa -aa -dl -dl -dl -fb -fD -gg -gV -hk -dl -dl -dl -aa -aa -aa -aA -aa -aa -aa -aa -aA -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(24,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aA -aa -aa -aa -aa -aa -bd -aa -aa -dl -ej -eK -fc -em -gi -gW -hl -hO -id -dl -aa -aa -aa -aA -aa -aa -aa -aa -aA -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(25,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aA -aa -aa -aa -aa -aa -bd -aa -dl -dl -ek -em -fd -fE -gj -fE -hm -em -ie -dl -dl -dl -dl -dl -dl -aa -aa -aa -aA -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(26,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aA -aa -aa -aa -aG -bL -ci -bL -dl -dM -el -eL -fe -fE -gk -fE -hn -em -if -iv -dl -iU -ji -jB -dl -aa -aa -aa -aA -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(27,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aA -aa -aa -aa -aG -bM -cj -bN -dl -dN -em -eM -em -fF -gl -em -em -hP -em -iw -dl -iV -jj -jC -dl -aa -aa -aa -aA -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(28,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aA -aa -aa -aa -aG -bN -bN -cN -dl -dO -en -eN -ff -el -gm -gX -ho -hQ -ig -ix -dl -iW -jj -jD -dl -aa -aa -aa -aA -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(29,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aG -aG -aG -aG -aG -bO -ck -bO -dl -dl -dl -dl -dl -fG -gn -fG -hp -dl -dl -dl -dl -iX -jk -iX -dl -aG -aG -aG -aG -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(30,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aG -aG -aT -aS -bi -aY -aG -bP -cl -cO -dm -cl -cl -eO -fg -cl -go -cl -hq -eO -ih -cl -dm -cO -cl -jE -aG -jZ -aY -kC -aG -aG -aG -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(31,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aG -aO -aU -aU -aU -aU -bx -bQ -cm -cP -bT -bT -bT -eP -fh -fH -gp -fH -fh -bT -bT -bT -bT -cP -jl -jF -bx -aU -aU -aU -aU -kY -aG -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(32,1,1) = {" -aa -aa -aa -aa -aa -aa -ak -ak -ak -ak -ak -ak -ak -aG -bN -cn -cQ -cQ -dP -eo -dP -cQ -cQ -gq -gY -gY -hR -ii -hR -gY -gY -cn -jG -aG -aG -aG -aG -kM -aG -aG -aG -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(33,1,1) = {" -aa -aa -aa -aa -aa -ak -ak -aH -aP -aV -aP -bj -ak -ak -bR -co -cQ -dn -dQ -dQ -eQ -fi -cQ -gr -gY -hr -ht -ht -ht -iH -gY -co -bR -aG -aG -bN -kD -kN -kD -bN -aG -aG -aa -aa -aa -aa -aa -aa -aa -aa -"} -(34,1,1) = {" -aa -aa -aa -aa -aa -by -aH -at -aQ -aI -ba -bk -bs -by -bS -cn -cR -do -dQ -dQ -dQ -dp -cQ -gr -gY -hs -ht -ht -ht -iI -iY -cn -jH -aG -ka -bN -bN -bN -bN -bN -jH -aG -aa -aa -aa -aa -aa -aa -aa -aa -"} -(35,1,1) = {" -aa -aa -aa -aa -aa -al -at -aI -aI -aI -aI -aI -bt -bz -bN -cn -cS -dp -dQ -dQ -dQ -dp -cQ -gs -gY -ht -hS -ht -iy -iJ -iZ -cn -bN -jS -bN -kp -bN -kO -bN -kp -bN -bL -aa -aa -aa -aa -aa -aa -aa -aa -"} -(36,1,1) = {" -aa -aa -aa -aa -aa -am -au -aJ -aI -aI -aI -aI -bk -bA -bN -cn -cS -dp -dQ -ep -eR -fj -cQ -gr -gY -hu -hT -ht -ht -iK -iZ -cn -bN -jT -bN -bN -bN -bN -bN -bN -bN -aG -aa -aa -aa -aa -aa -aa -aa -aa -"} -(37,1,1) = {" -aa -aa -aa -aa -aa -am -av -aK -aI -aW -bb -bl -bl -bB -bT -cp -cS -dq -dQ -eq -eS -fk -fI -gt -gZ -hv -hU -ht -ht -iL -iZ -jm -jI -jU -bT -kq -bT -kP -bT -kq -lm -bL -aa -aa -aa -aa -aa -aa -aa -aa -"} -(38,1,1) = {" -aa -aa -aa -aa -aa -am -aw -aL -aI -aI -aI -aI -bm -bz -bN -bN -cS -dp -dQ -er -dQ -fl -cQ -gu -gY -hw -hV -hS -ht -iJ -iZ -cn -bN -jS -bN -bN -kE -bN -bN -bN -bN -aG -aa -aa -aa -aa -aa -aa -aa -aa -"} -(39,1,1) = {" -aa -aa -aa -aa -aa -an -ax -aI -aI -aI -aI -aI -bu -bA -bN -bN -cS -dp -dQ -dQ -dQ -dp -cQ -gv -gY -ht -ht -ht -ht -iK -iZ -cn -bN -jT -bN -kr -bN -kp -bN -kp -bN -bL -aa -aa -aa -aa -aa -aa -aa -aa -"} -(40,1,1) = {" -aa -aa -aa -aa -aa -by -aM -ax -aQ -aI -aQ -bm -bv -by -bS -cq -cT -dr -dQ -dQ -dQ -dp -cQ -gu -gY -hx -ht -ht -ht -iM -ja -cn -jH -aG -lt -bN -bN -bN -bN -bN -jH -aG -aa -aa -aa -aa -aa -aa -aa -aa -"} -(41,1,1) = {" -aa -aa -aa -aa -aa -ak -ak -aM -aR -aX -aR -bn -ak -ak -bR -bR -cQ -ds -dR -dQ -eT -fm -cQ -gw -gY -hy -ht -ht -ht -iN -gY -jn -bU -aG -aG -ks -kF -kQ -kF -bN -aG -aG -aa -aa -aa -aa -aa -aa -aa -aa -"} -(42,1,1) = {" -aa -aa -aa -aa -aa -aa -ak -ak -ak -ak -ak -ak -ak -aG -bN -bN -cQ -cQ -dP -eo -dP -cQ -cQ -gx -gY -gY -hR -ii -hR -gY -gY -jo -bN -aG -aG -aG -aG -aG -aG -aG -aG -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(43,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aG -aS -aY -aY -aY -aY -bC -bN -bN -cU -dt -dt -dt -dt -fn -fJ -gy -fJ -fn -dt -dt -dt -dt -jb -jp -bN -bC -kb -aY -kG -aY -aY -aG -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(44,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aG -aG -aG -bc -aY -aY -aG -bW -bN -cV -du -bN -bN -bN -bR -bN -gz -bN -bR -bN -bN -bN -iO -cV -bN -bW -aG -kc -aY -kH -aG -aG -aG -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(45,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aG -aG -aG -aG -aG -aG -bX -cr -bX -dv -dv -dv -dv -fp -fK -gA -fK -dv -dv -dv -dv -dv -bX -cr -bX -aG -aG -aG -aG -aG -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(46,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aA -aa -aa -aa -aa -aG -bN -bN -cW -dv -dS -et -eU -et -fL -gB -ha -hz -hW -hz -iz -dv -cW -bN -bN -aG -aa -aa -aa -aA -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(47,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aA -aa -aa -aa -aa -aG -bN -cs -bN -dv -dT -eu -eu -fq -fM -gC -hb -hA -eu -eu -iA -dv -bN -jq -bN -aG -aa -aa -aa -aA -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(48,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aA -aa -aa -aa -aa -aa -aG -bL -ci -bL -dv -dU -ev -eu -fr -fN -gC -fN -fr -eu -ik -iB -dv -bL -ci -bL -aG -aa -aa -aa -aA -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(49,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aA -aa -aa -aa -aa -aa -bd -aa -dv -dV -ew -eu -eu -eu -gC -eu -eu -eu -il -dv -dv -aa -bd -aa -aa -aa -aa -aa -aA -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(50,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -ac -az -aa -aa -aa -aa -aa -bd -aa -aa -aa -dv -ex -eV -fs -fO -gD -hc -hB -hX -im -dv -aa -aa -bd -aa -aa -aa -aa -aa -aA -aa -aa -aa -aa -aa -aa -ab -aa -aa -aa -aa -aa -"} -(51,1,1) = {" -aa -aa -aa -aa -aa -aa -az -az -az -az -aa -aa -aa -aa -aa -ct -bd -aa -dv -dv -dv -dv -dv -gE -dv -dv -dv -dv -dv -aa -aa -bd -aa -aa -aa -aa -aa -aA -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(52,1,1) = {" -aa -aa -aa -aa -aa -aa -az -az -az -az -bd -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aA -gF -aA -aa -aa -aa -aa -aa -aa -ch -aa -aa -aa -aa -aa -aA -aa -aa -aa -ac -aa -aa -aa -aa -aa -aa -aa -aa -"} -(53,1,1) = {" -aa -aa -aa -aa -aa -aa -az -az -az -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -cu -aa -aa -aA -gF -aA -aa -aa -aa -aa -aa -aa -bd -aa -aa -aa -aa -aa -aA -aa -aa -ac -ac -ac -az -aa -aa -aa -aa -aa -aa -"} -(54,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -cu -aa -aa -ac -ac -aa -aa -aA -gF -aA -aa -aa -aa -aa -aa -aa -bd -aa -aa -aa -aa -aa -aA -aa -aa -az -ac -az -az -ac -ac -aa -aa -aa -aa -"} -(55,1,1) = {" -aa -ab -aa -aa -aa -aa -aa -aA -aa -aa -aa -aa -aa -aa -aa -bd -aa -aa -ac -ac -ac -aa -aA -gF -aA -aa -aa -aa -aa -aa -aa -bd -aa -aa -aa -aa -aa -aA -aa -aa -aa -ac -lo -lp -az -az -aa -aa -aa -aa -"} -(56,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aA -aa -aa -aa -bD -bY -cv -bY -bD -aa -ac -ac -bD -bD -gG -bD -bD -aa -aa -aa -bD -bY -cv -bY -bD -aa -aa -aa -aA -aa -aa -aa -ac -az -lp -az -ac -aa -aa -aa -aa -"} -(57,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bD -bZ -cw -lq -bD -aa -aa -aa -bD -fP -gH -hd -bD -aa -aa -aa -bD -ca -jr -ca -bD -aa -aa -aa -aA -aa -aa -aa -aa -ac -az -az -ac -aa -aa -aa -aa -"} -(58,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aA -aa -aa -aa -aa -bD -ca -cx -cX -bD -aa -aa -aa -bD -fQ -gI -he -bD -aa -aa -aa -bD -cX -ca -ca -bD -aa -aa -aa -aA -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(59,1,1) = {" -aa -aa -aa -aa -aa -aa -aA -aA -aa -aa -aa -aa -aa -bD -cb -cy -cb -bD -bD -bD -bD -bD -bD -gJ -bD -bD -bD -bD -bD -bD -cb -js -cb -bD -aa -aa -aa -aA -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(60,1,1) = {" -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -aa -aa -bD -cz -cY -dw -dW -ey -eW -ft -fR -gK -ey -hC -ey -ey -iC -dw -ey -ey -jJ -bD -aa -aa -aa -aA -aa -aa -aa -aa -aa -aa -aa -aa -ab -aa -aa -aa -"} -(61,1,1) = {" -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -bD -cA -cZ -dx -dX -dX -eX -dX -fS -gL -dX -hD -dX -dX -fS -dx -dX -dB -cD -bD -aa -aa -aa -aA -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(62,1,1) = {" -aa -aa -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bD -cB -da -dy -dy -dy -dy -dy -dy -dy -dy -dy -dy -dy -dy -dy -dy -da -cB -jV -jV -jV -jV -jV -jV -jV -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(63,1,1) = {" -aa -aa -ac -ad -ae -af -af -ag -ai -ao -af -bo -ad -ac -bD -cC -db -dy -dY -ez -dZ -dZ -fT -eb -hf -eb -hY -in -iD -iP -dy -jt -jK -jV -kd -kt -jV -kR -kZ -jV -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(64,1,1) = {" -aa -aa -ac -ad -af -ao -af -ah -ah -af -af -af -ad -bE -bD -cD -dc -dy -dZ -eA -dZ -fu -dZ -gM -hg -eb -hY -io -iE -iP -dy -ju -jL -jV -ke -ku -jV -ku -ke -jV -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(65,1,1) = {" -aa -ac -ac -ad -ad -ad -ad -aN -aN -ad -ad -ad -ad -bG -bF -cC -dd -dy -dZ -eB -dZ -fv -dZ -gN -hg -hE -dY -gO -eb -fV -dy -jv -cD -jV -kf -kv -kI -kv -kv -jV -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(66,1,1) = {" -aa -ac -ac -ad -af -ap -af -aq -ah -ag -be -aB -aN -bG -lx -cE -dc -dy -ea -eC -dZ -dZ -fU -gO -hh -eb -eb -ip -iF -eb -dy -db -cC -jV -kg -kw -kw -kw -la -jV -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(67,1,1) = {" -aa -ac -ac -ad -af -af -aB -ah -ai -ah -aC -af -aN -bG -lx -cF -db -dz -eb -eb -eb -fw -eb -gO -eb -eb -ea -iq -eb -fU -jc -dc -jM -jW -kh -kw -kw -kS -lb -li -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(68,1,1) = {" -aa -ac -ac -ad -ad -ad -ad -aN -aN -ad -ad -ad -ad -bG -bF -ca -dc -dA -eb -eb -eb -eb -eb -gP -hi -hi -lL -ir -lT -hi -jd -jw -fS -jX -ki -ki -ki -kT -lb -lj -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(69,1,1) = {" -aa -ac -ac -ad -ag -af -af -af -af -af -af -ah -ad -bE -bD -cF -db -dy -ec -dZ -dZ -eC -fV -eb -dy -dy -dy -is -dy -dy -dy -dc -ca -jV -kj -kw -kw -kw -la -jV -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(70,1,1) = {" -aa -ac -ac -ad -ah -af -af -aB -af -ag -af -ah -ad -ac -bD -ca -de -dy -dZ -eD -dZ -fx -dZ -gQ -dy -hF -lM -eb -lM -iQ -dy -jx -ed -jV -kk -kx -kJ -kx -kx -jV -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(71,1,1) = {" -aa -ac -ac -ad -ai -af -ah -ag -aC -ah -af -aq -ad -ac -bD -ca -dc -dy -dZ -eE -dZ -fy -dZ -gR -dy -hG -eb -it -eb -iR -dy -dc -ca -jV -ke -ky -jV -ky -ke -jV -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(72,1,1) = {" -aa -ac -ac -ad -ah -ag -aC -aC -aC -aC -ag -ah -ad -ac -bD -cF -db -dy -ea -eF -dZ -dZ -fW -eb -dy -hH -hZ -iu -iG -iS -dy -jt -ed -jV -kl -kz -jV -kU -lc -jV -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(73,1,1) = {" -aa -ac -ac -ad -ah -ai -ah -aD -aD -ah -ai -ah -ad -ac -bD -cG -da -dy -dy -dy -dy -dy -dy -dy -dy -dy -dy -dy -dy -dy -dy -da -cG -jV -jV -jV -jV -jV -jV -jV -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(74,1,1) = {" -aa -ac -ac -ad -ag -aq -aD -ah -ah -aD -aq -ah -ad -ac -bD -ca -df -dB -ed -ca -eY -ca -ed -ca -ed -hI -ed -ca -ed -ca -je -jy -ca -bD -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(75,1,1) = {" -aa -ac -ac -ad -ad -ad -ad -aN -aN -ad -ad -ad -ad -ac -bD -cH -dg -dC -ee -ca -eY -cX -ed -ca -ed -hJ -ed -ca -ee -cX -jf -ca -cH -bD -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(76,1,1) = {" -aa -aa -ac -ad -aj -ai -aE -aD -aD -aD -ah -bp -ad -bD -bD -cI -bD -bD -bD -bD -bD -bD -bD -gS -bD -bD -bD -bD -bD -bD -bD -cI -bD -bD -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(77,1,1) = {" -aa -aa -ac -ac -ad -ag -aD -aD -aD -aD -aq -ad -ac -bD -cc -cc -cc -bD -aa -bD -eZ -eZ -dh -dh -dh -eZ -hK -bD -aa -bD -cc -cc -cc -bD -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -aa -aa -aa -aa -aa -aa -"} -(78,1,1) = {" -aa -aa -ac -ac -ac -ag -aF -ag -aF -ag -aF -ac -ac -bD -cd -cJ -dh -bD -aa -bD -eZ -fz -dh -dh -dh -hK -hK -bD -aa -bD -jg -jz -jN -bD -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(79,1,1) = {" -aa -aa -aa -ac -ac -ar -ar -ar -ar -ar -ar -ac -aa -bD -bD -bD -bD -bD -aa -bD -bD -fz -fz -fz -fz -hK -bD -bD -aa -bD -bD -bD -bD -bD -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(80,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bD -bD -bD -bD -bD -bD -bD -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaacacacacacacacacacacacaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacadadadadadadadadadadadadadadacacacaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacadaeafadafafadagafahafafagadaiadacacaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajakalamamamanakajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacadafaoadapafadafafafagahaoadahagagaqaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajajarasatauavawaxajajaaaaaaaaaaaaaaaaayayayaaaaaaaaaaazacacadaAafadafaBadafafaAafafafadaoafaCaqaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDaDajarasaEaFaGaHaEawaxajaDaDaaaaaaazaaacayayayaaazaaaaaaazacacadagafaIaoafaIafahagafafafaIafafagaqaa +aaaaaaaaaaaaaaaaaaazaaaaazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDaJajaKaLaEaEaEaEaEaLaMajaNaDaDazazaaaaayayayayaaaaaaaaazaaacacadaBafaIaAahaIafafafaOafafaIafafaCaqaa +aaaaaaaaaaaaacaaaaaaaaazazazazazazazazazazazazazazazazazaDaPaQajaRaEaEaEaSaEaEaEaTajaUaDaDaaaaaaazaaayayaaaaaaazaaaaaaacacadaVafadagafadafagaAafafafadafafagaqaa +aaaaaaazaaacayacazaaazaaaaazaWaaaaaaaaaaaaaaaaaaaaaaaaaaaDaNaQajaKaXaEaEaYaEaEaLaMajaUaZaDaaaaaaaaaaaabaaaaaaaaaaaaaaaacacadafafadaoafadafafafagahaoadafaoaCaqaa +aabbbcbbazacbdayacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDbeaQajbfbgaEaEbhaEaEbibjajaUaUaDaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacadbkafadahafadafafaoafafafadbladacacaa +bbbmbnbbbbacacacaaaaaaazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDaUaQajajbobpbgbhbibqbrajajaUaUaDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacadadadaIaIadadadadadadadadadacacaaaa +bbbnbnbnbsbnbnbnbnbnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDaDaDaDaDbtaDajakbubvbwbubvakajaDbxaDaDaDaDaDaaaaaaaaaaaaaabybybybyaaaaacacbzbAbAbAbAbzacacacacacacbybybybyaa +azbBbCbCbCbCbDbCbCbEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFbGbHbIbJbKbHbLbMbHbHbNbHbHbMbLbHbHbObPbHbHbFaabaaaaaaaaaaabQbRbSbTbybybybybybUbVbVbUbybybybybybybybybWbXbyaa +bbbBbCbCbCbCbYbCbZcababacbbababababababababacbbabacccdbHcecfcgchcichchchcjbHbHckbLbHbHbHclbHcmccbaaacnaaaacobacpcqcrcsctcucvcwcwcwcxbScybSbSbSbSczbScAcBcCcDbyaa +bbcEbnbnbCbCbDcFbCbEcGaaaaaaaaaaaaaaaaaaaaaaaaaaaabFbHcHbIcIcJcKcKcLcMcMcMcMcMcNcKcKcOcPbPcQbHbFaaaabaaaaaaaaabQcRcSbTcTcUcVcWcWcXcWcWcWcWcYcWcWcVcZbSbybWbWbyaa +aabbdadbbCdcbnbnbnbnbnaaaaaaazaaazaaazaaaaaaaaaadddddddddddebNcKdfdgdhdhdidhdhdjdkcKdldmdndndndndnaaaaaaaaaaaabybybybydodpdqdqdqdqdqdrdsdqdqdqdqdqdtdubybybybyaa +azbmdvdwbCbCbnbbbbazbcdxdxdydzdydzdydAdBazazdddddddCdDdEddcfbNdFdGdGdGdGdGdGdGdGdHdFdlbHdndIdJdKdLdndnaaaaacacaaaaaabydMdNdqdOdPdPdQdRdRdOdPdPdQdqbSdSbyaaaaaaaa +bbbmbmdTbCbCbndUazazaaaaaadydzdydzdydVdyaaaadddWdXdYdZeaddcfbNebdGdGdGecedeedGdGdGebdlbHdnefegeheiejdnaacoacacacaaaabyekeldqemeneoepdRdRdPeqeresdqbSbSbybybybyaa +bbeteudwbBbBbnbbbbaaaaaaaadydVevdAewdzdyaaaaddexdZeyezeAddeBeCdFeDdGdGeEeFdGdGdGeGdFdlbHdneHegegegeIdnaaaaaaacacaaaabyeJeKdqdPdPdPdPdRdRdPdPdPdPdqeLeLbyeMeMbyby +aabbeNbnbmbmbnbmeObbaaaaaaaadzaadVaadzaaaaaaePeQeReSdZeTddeUeVcKeWdhdheXeYeZdhdhfacKfbbLfceffdfeegffdnaaaaaaaabybybybyfgeldqdPfhfidPdRdRepfjfkdPdqflcSbyeMfmfmby +aaazaabcbmbmfnbmbbbbazaaaaaadzaadVaadzaafofpfqdZfrfrfsdYftcffucKcKcKcKcKfvcKcKcKcKcKfwbHfxfyfzfAegfBdnazazazazbyfCfDbyfEeldqfFdPdPfGdRdRfHdPdPfIdqbSbSbybWbWfmby +aaazaabbfJfKfKfKfLfMfMazazfNfOfPfQfPfRfPfSfTfSfUfVfWfXfYfZgagbgcgdgdgegdgfggghgggigjgkglgmgngogogogpgqgrgrgrgrgsgtgugvgwgxdqdRgygzgAgAgBdRgCgDdRdqbSbSgEbWbWfmby +aaazaaaagFbmfnbmgGbbazaaaaaadVaadVaadVaafofpgHgIfrfrdZgJftcffugKgKgKgKgKgLgKgKgKgKgKfwbHfxgMgNfAeggOdnazazazazbygPgQbyekeldqgRgSgSgTdRgUdqdqdqdqdqcybSbybWbWfmby +aabbazazbbbbbngVbbbbaaaaaaaadVaadzaadVaaaaaagWgXgYgZdZhahbhceVgKhdhehfhghhhihfhjhkgKfbbLdnhlhmfeeghndnaaaaaaaabybybybyhoeKdqdRdRhpdRdRgUdqhqhrhsdqeLhtbyeMhuhuby +aaazaaaaaahvbcaaazaaaaaaaahwhxdydzdydVdyaaaaddhydZdZhzhAddeBbNhBhfhfhChDhEhFhfhfhfhBdlbHdnhGegegeghHdnaaaaaaaaaaaaaabyekdNdqhIhIdOdRdQhJdqhKdRhLdqbSbSbyhuhubyby +aaazaaaaaaazaaaaazazbnaaaadydzhwhxdyhMewaaaaddhNhOhPdZhQddhRbNhShfhfhfhfhfhChfhfhfhSdlbHdnhleghThUhVdnaaaaaaaaaaaaaabyekeldqhWhXgAhYhZiaibdRiciddqbSbSbybybybyaa +aaazaaaaaaazazazbbbbbcazazdyhMdydzdydVdyazazddddddieifigddcfbNhBhfhfihhfhfhfhfhfhfhBdlbHdniiijikdndndnaaaaaaaaaaaaaabydMeldqilimdRindRiodqhKdRipdqbSdSbyaaaaaaaa +aaazaaaaaaazaaaaaaaaaaaaaaazdzazdVazdzazaaaaaaaadddddddddddebNgKiqirisitiuisitiviwgKdlixdndndndndnaaaaaaaaaaaabybybybydodpdqiyiyfHdRfGgUdqiziAiBdqbScSbybybybyaa +bbiCbnaaazazaaaaaaaaaaaaaadydVdydzdydVdyaaaaaaaaddiDiEiFiGcIcJgKgKiHiIiIiIiIiIiJgKgKiKcPbPcQbHbFaaaaaaaaaaaaaabQbScSbTekeldqdqdqdqdqiLiMdqdqdqdqdqiNiObybWiPbyaa +azbmbbiQbmbmaaaaaaaaaaaaaadydzdydzdydVewaaaaaaaaddiRiSiSiTcfiUchcichchchiVchchchiWiXiYbHclbHiZccbababacbbababacpjabSjbekdtcVcWjcjdcWcWjejfjdcWjgcVjhbScBcCjibyaa +bbbmjjbbbbbmaaaabbazazazazevhxdydzdyhMewazazazazddjkjljmiGjnjojpbLjqbHbHjrbHbHjqjsbHbHbObPbHbHbFaaaaaaaaaaaaaabQbSbSbTjtcwcvcwjucwjvjwelbSbSbSbSczbScAbybWjxbyaa +jyjzbnjAbbbbaaaaaaaaaaaaaaaaazaajBaaazaaaaaaaaaaddddddddddaDbtaDaDaDjCjDjEjCjDaDaDaDbxaDaDaDaDaDaaaaaaaaaaaaaabybybybybybyjFjFjFjFjFjGjHjFjFjFjFjFbybybybybybyaa +jyjIbnbnaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDjJaQaDaDjKbHbHbNbHbHjLaDaDjMjNaDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajFjOjPjQjRjSjTjUjVjPjWjFaaaaaaaaaaaaaa +jXjXjYjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDaUaQaDbHbHkabHkbbHkcbHkdaDaUaUaDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajFkekfkgkhkhjTkhkikjkkjFaaaaaaaaaaaaaa +jyjXklkmaaazaaaaaaaaazaaaaaaaaaaaaazaaaaaaaaaaaaaaaaaaaaaDknaQaDkobHbHbHbNkpbHbHkqaDkrksaDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajFjFjFktkhkhjTkhkujFjFjFaaaaaaaaaaaaaa +kvjykwkmazaaazazazazaaaaaaaaazaWazaaaaazazazazazazazazazaDaDaQkxkybHkzbHkAbHkabHkBaDaUaDaDazazazazazazazazazazazazazazazazjFkCkfkgkhkDkEkhkikjkFjFaaaaaaaaaaaaaa +kGkHkIkmaaaaaaaaaaaaaaaaaaazaaacacaaaaaaaaaaaaaaaaaaaaaaaaaDkJaDkobHbHbHbNbHbHbHkqaDaUaDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajFkKjPkgkLkMkMkLkijPkNjFaaaaaaaaaaaaaa +kOjXkPkQaaazaaaaaaaaaaaaazaakRackSacaaazaaaaaaaaaaaaaaaaaaaDaDaDbHbHkabHkbbHkabHbHaDaDaDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajFjFjFjFjFkTkUjFjFjFjFjFaaaaaaaaaaaaaa +aakVbnbnaaaaaaaaaaaaaaaaaaaaackWkSacaaaaaaaaaaaaaaaaaaaaaaaaaaaDaDjqbHbHkXbHbHjqaDaDaaaaaaaaaaaaaaaaaaaaacayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +azbnbnaaaaaaaaaaaaaaaaaaaaaaackWaykYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDaDbFaDbFaDbFaDaDaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaykZayacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaylalaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaacayayayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacayacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} From 824e4287f2d1b0176616b67f005e0798bd2e052a Mon Sep 17 00:00:00 2001 From: Raeschen Date: Sun, 30 Jul 2017 14:03:01 +0100 Subject: [PATCH 022/219] Heavily reduced the amount of mobs on oldstation.dmm due to NPC POOL MC lag. (Previously about 109 hivebots, now there are fewer, stronger ones.) Edit: Actually used map merge this time. --- _maps/RandomRuins/SpaceRuins/oldstation.dmm | 235 +++++++++++--------- 1 file changed, 126 insertions(+), 109 deletions(-) diff --git a/_maps/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/RandomRuins/SpaceRuins/oldstation.dmm index fa12329728..90f1b3b940 100644 --- a/_maps/RandomRuins/SpaceRuins/oldstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldstation.dmm @@ -99,7 +99,6 @@ "ap" = ( /obj/effect/decal/cleanable/oil, /obj/effect/decal/cleanable/robot_debris, -/mob/living/simple_animal/hostile/hivebot, /turf/open/floor/plasteel/black, /area/ruin/ancientstation/hivebot) "aq" = ( @@ -170,11 +169,11 @@ /area/template_noop) "aB" = ( /obj/effect/decal/cleanable/robot_debris, -/mob/living/simple_animal/hostile/hivebot, +/mob/living/simple_animal/hostile/hivebot/rapid, /turf/open/floor/plasteel/black, /area/ruin/ancientstation/hivebot) "aC" = ( -/mob/living/simple_animal/hostile/hivebot/range, +/mob/living/simple_animal/hostile/hivebot/rapid, /turf/open/floor/plasteel/black, /area/ruin/ancientstation/hivebot) "aD" = ( @@ -692,7 +691,7 @@ /area/ruin/ancientstation/deltacorridor) "cc" = ( /obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/hivebot, +/mob/living/simple_animal/hostile/hivebot/strong, /turf/open/floor/plating, /area/ruin/ancientstation/deltacorridor) "cd" = ( @@ -879,7 +878,6 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/hivebot/strong, /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation/deltacorridor) "cA" = ( @@ -910,7 +908,7 @@ icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/hivebot/range, +/mob/living/simple_animal/hostile/hivebot/rapid, /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation/deltacorridor) "cD" = ( @@ -1081,7 +1079,6 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/hivebot, /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation/deltacorridor) "cZ" = ( @@ -1090,7 +1087,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 }, -/mob/living/simple_animal/hostile/hivebot, /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation/deltacorridor) "da" = ( @@ -1123,7 +1119,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/mob/living/simple_animal/hostile/hivebot/range, +/mob/living/simple_animal/hostile/hivebot/rapid, /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation/deltacorridor) "de" = ( @@ -1139,7 +1135,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, -/mob/living/simple_animal/hostile/hivebot/strong, /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation/deltacorridor) "dg" = ( @@ -1537,7 +1532,6 @@ req_access = "0"; req_one_access = "0" }, -/mob/living/simple_animal/hostile/hivebot, /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation/deltacorridor) "ef" = ( @@ -1874,7 +1868,6 @@ icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/hivebot, /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation/deltacorridor) "eX" = ( @@ -2241,7 +2234,7 @@ icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/hivebot, +/mob/living/simple_animal/hostile/hivebot/strong, /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation/deltacorridor) "fS" = ( @@ -4122,7 +4115,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/mob/living/simple_animal/hostile/hivebot, +/mob/living/simple_animal/hostile/hivebot/rapid, /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation/deltacorridor) "ju" = ( @@ -4146,7 +4139,6 @@ "jw" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/mob/living/simple_animal/hostile/hivebot, /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation/deltacorridor) "jx" = ( @@ -5162,6 +5154,31 @@ icon_state = "floor" }, /area/template_noop) +"me" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/mob/living/simple_animal/hostile/hivebot/rapid, +/turf/open/floor/plasteel/floorgrime, +/area/ruin/ancientstation/deltacorridor) +"mf" = ( +/obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/hostile/hivebot/rapid, +/turf/open/floor/plasteel/floorgrime, +/area/ruin/ancientstation/deltacorridor) +"mg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/mob/living/simple_animal/hostile/hivebot/rapid, +/turf/open/floor/plasteel/floorgrime, +/area/ruin/ancientstation/deltacorridor) +"mh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/mob/living/simple_animal/hostile/hivebot/strong, +/turf/open/floor/plasteel/floorgrime, +/area/ruin/ancientstation/deltacorridor) (1,1,1) = {" aa @@ -8260,7 +8277,7 @@ ey hC ey ey -iC +dW dw ey ey @@ -8302,17 +8319,17 @@ bD cA cZ dx -dX -dX -eX -dX -fS -gL +me dX hD dX dX -fS +gL +dX +hD +mg +dX +dX dx dX dB @@ -8393,18 +8410,18 @@ aa ac ad ae -af -af +ah +aD ag -ai -ao -af +aB +aE +ah bo ad ac bD -cC -db +cD +dc dy dY ez @@ -8419,8 +8436,8 @@ in iD iP dy -jt -jK +dc +cD jV kd kt @@ -8444,14 +8461,14 @@ aa aa ac ad -af -ao -af +ah +aq +ah +ah +ah +ah ah ah -af -af -af ad bE bD @@ -8507,7 +8524,7 @@ ad ad bG bF -cC +cD dd dy dZ @@ -8548,14 +8565,14 @@ aa ac ac ad -af -ap -af -aq ah +ap +ah +aq +aD ag -be -aB +aq +ai aN bG lx @@ -8575,7 +8592,7 @@ ip iF eb dy -db +dc cC jV kg @@ -8600,24 +8617,24 @@ aa ac ac ad -af -af +ah +ah aB ah ai ah -aC -af +ah +ah aN bG lx -cF -db +ca +dc dz eb eb eb -fw +eb eb gO eb @@ -8663,7 +8680,7 @@ ad ad bG bF -ca +dg dc dA eb @@ -8680,7 +8697,7 @@ lT hi jd jw -fS +dX jX ki ki @@ -8705,20 +8722,20 @@ ac ac ad ag -af -af -af -af -af -af +ah +ah +ah +ah +ah +ah ah ad bE bD -cF -db +ca +dc dy -ec +dY dZ dZ eC @@ -8731,7 +8748,7 @@ is dy dy dy -dc +mh ca jV kj @@ -8757,12 +8774,12 @@ ac ac ad ah -af -af -aB -af +ah +ah +ai +ah ag -af +ah ah ad ac @@ -8783,8 +8800,8 @@ eb lM iQ dy -jx -ed +jv +ca jV kk kx @@ -8809,12 +8826,12 @@ ac ac ad ai -af ah +aD ag -aC ah -af +aD +ah aq ad ac @@ -8862,17 +8879,17 @@ ac ad ah ag +ah +ah aC -aC -aC -aC +ah ag ah ad ac bD -cF -db +ca +dc dy ea eF @@ -8888,7 +8905,7 @@ iG iS dy jt -ed +ca jV kl kz @@ -8915,8 +8932,8 @@ ad ah ai ah -aD -aD +ah +ah ah ai ah @@ -8966,10 +8983,10 @@ ac ad ag aq -aD ah ah -aD +ah +ah aq ah ad @@ -8978,17 +8995,17 @@ bD ca df dB -ed ca -eY ca -ed -ca -ed hI -ed +mf +ca +ca +dg +hI +ca +ca ca -ed ca je jy @@ -9028,17 +9045,17 @@ ad ac bD cH -dg +ca dC ee ca -eY +hI cX -ed ca -ed +ca +ca hJ -ed +ca ca ee cX @@ -9070,10 +9087,10 @@ ac ad aj ai -aE -aD -aD -aD +aq +ah +ah +ah ah bp ad @@ -9122,17 +9139,17 @@ ac ac ad ag -aD -aD -aD -aD +ah +ah +ah +ah aq ad ac bD +dh cc -cc -cc +dh bD aa bD @@ -9146,9 +9163,9 @@ hK bD aa bD +dh cc -cc -cc +dh bD aa aa From 4032f5de36cd9df2c15d50c2ff7e397246716f21 Mon Sep 17 00:00:00 2001 From: Raeschen Date: Sun, 30 Jul 2017 17:13:39 +0100 Subject: [PATCH 023/219] Used map merging tool --- _maps/RandomRuins/SpaceRuins/oldstation.dmm | 628 -------------------- 1 file changed, 628 deletions(-) diff --git a/_maps/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/RandomRuins/SpaceRuins/oldstation.dmm index 6597cfc72c..90f1b3b940 100644 --- a/_maps/RandomRuins/SpaceRuins/oldstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldstation.dmm @@ -1,4 +1,3 @@ -<<<<<<< HEAD //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "aa" = ( /turf/template_noop, @@ -9340,631 +9339,4 @@ aa aa aa aa -======= -"aa" = (/turf/template_noop,/area/template_noop) -"ab" = (/mob/living/simple_animal/hostile/carp,/turf/template_noop,/area/template_noop) -"ac" = (/turf/closed/mineral,/area/ruin/unpowered) -"ad" = (/turf/closed/wall/r_wall,/area/ruin/ancientstation/hivebot) -"ae" = (/obj/structure/closet/crate,/obj/item/stack/sheet/plasteel/twenty,/obj/item/stack/sheet/glass{amount = 50; pixel_x = 3; pixel_y = 3},/turf/open/floor/plasteel/black,/area/ruin/ancientstation/hivebot) -"af" = (/turf/open/floor/plasteel/black,/area/ruin/ancientstation/hivebot) -"ag" = (/turf/closed/wall,/area/ruin/ancientstation/hivebot) -"ah" = (/obj/effect/decal/cleanable/robot_debris,/turf/open/floor/plasteel/black,/area/ruin/ancientstation/hivebot) -"ai" = (/obj/structure/closet/crate,/obj/item/stack/sheet/mineral/silver{amount = 15},/obj/item/stack/sheet/mineral/gold{amount = 15},/obj/item/weapon/ore/bluespace_crystal,/obj/item/weapon/ore/bluespace_crystal,/obj/item/weapon/ore/bluespace_crystal,/turf/open/floor/plasteel/black,/area/ruin/ancientstation/hivebot) -"aj" = (/turf/closed/wall/rust,/area/ruin/ancientstation/comm) -"ak" = (/obj/structure/sign/poster/official/nanotrasen_logo,/turf/closed/wall/rust,/area/ruin/ancientstation/comm) -"al" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{id = "ancient"},/turf/open/floor/plating,/area/ruin/ancientstation/comm) -"am" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{id = "ancient"},/turf/open/floor/plating,/area/ruin/ancientstation/comm) -"an" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{id = "ancient"},/turf/open/floor/plating,/area/ruin/ancientstation/comm) -"ao" = (/obj/effect/decal/cleanable/oil,/turf/open/floor/plasteel/black,/area/ruin/ancientstation/hivebot) -"ap" = (/obj/effect/decal/cleanable/oil,/obj/effect/decal/cleanable/robot_debris,/turf/open/floor/plasteel/black,/area/ruin/ancientstation/hivebot) -"aq" = (/turf/open/floor/plating,/area/ruin/ancientstation/hivebot) -"ar" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/blue/side{dir = 9},/area/ruin/ancientstation/comm) -"as" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/blue/corner{dir = 1},/area/ruin/ancientstation/comm) -"at" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/comm) -"au" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/obj/item/weapon/paper/oldstat/damagereport,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/comm) -"av" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/obj/item/weapon/paper/oldstat/report,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/comm) -"aw" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/blue/corner{dir = 4},/area/ruin/ancientstation/comm) -"ax" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/blue/side{dir = 5},/area/ruin/ancientstation/comm) -"ay" = (/turf/closed/mineral/iron,/area/ruin/unpowered) -"az" = (/obj/structure/lattice,/turf/template_noop,/area/template_noop) -"aA" = (/mob/living/simple_animal/hostile/hivebot/strong,/turf/open/floor/plasteel/black,/area/ruin/ancientstation/hivebot) -"aB" = (/obj/effect/decal/cleanable/robot_debris,/mob/living/simple_animal/hostile/hivebot/rapid,/turf/open/floor/plasteel/black,/area/ruin/ancientstation/hivebot) -"aC" = (/obj/structure/shuttle/engine/large{icon_state = "large_engine"; dir = 4},/turf/closed/wall,/area/ruin/ancientstation/hivebot) -"aD" = (/turf/closed/wall/rust,/area/ruin/ancientstation) -"aE" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/comm) -"aF" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/machinery/button/door{id = "ancient"; name = "Charlie Station Lockdown Button"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/comm) -"aG" = (/obj/effect/decal/cleanable/dirt,/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/comm) -"aH" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/deck,/obj/item/weapon/folder/blue,/obj/item/weapon/pen,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/comm) -"aI" = (/obj/machinery/door/airlock/highsecurity,/turf/open/floor/plating,/area/ruin/ancientstation/hivebot) -"aJ" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/power/apc{dir = 4; name = "Charlie Command APC"; pixel_x = 24; start_charge = 0},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/ruin/ancientstation/comm) -"aK" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/turf/open/floor/plasteel/blue/side{dir = 8},/area/ruin/ancientstation/comm) -"aL" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/comm) -"aM" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/turf/open/floor/plasteel/blue/side{dir = 4},/area/ruin/ancientstation/comm) -"aN" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/crate,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/turf/open/floor/plating,/area/ruin/ancientstation) -"aO" = (/mob/living/simple_animal/hostile/hivebot/rapid,/turf/open/floor/plasteel/black,/area/ruin/ancientstation/hivebot) -"aP" = (/obj/structure/sign/poster/contraband/pwr_game,/turf/closed/wall/rust,/area/ruin/ancientstation) -"aQ" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/ruin/ancientstation) -"aR" = (/obj/effect/decal/cleanable/dirt,/obj/structure/chair{dir = 1},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/blue/side{dir = 8},/area/ruin/ancientstation/comm) -"aS" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/device/megaphone,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/comm) -"aT" = (/obj/effect/decal/cleanable/dirt,/obj/structure/chair{dir = 1},/obj/machinery/airalarm{dir = 8; locked = 0; pixel_x = 24; req_access = "0"; req_one_access = "0"},/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 4},/area/ruin/ancientstation/comm) -"aU" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation) -"aV" = (/obj/effect/decal/cleanable/oil,/mob/living/simple_animal/hostile/hivebot/strong,/turf/open/floor/plasteel/black,/area/ruin/ancientstation/hivebot) -"aW" = (/obj/item/stack/cable_coil,/turf/template_noop,/area/template_noop) -"aX" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/lighter,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/comm) -"aY" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/coin,/obj/machinery/atmospherics/components/unary/vent_pump/on,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/comm) -"aZ" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/crate,/obj/item/weapon/storage/backpack/old,/turf/open/floor/plating,/area/ruin/ancientstation) -"ba" = (/obj/structure/transit_tube{dir = 4},/turf/template_noop,/area/template_noop) -"bb" = (/turf/open/floor/plating/airless,/area/template_noop) -"bc" = (/obj/structure/girder,/turf/open/floor/plating/airless,/area/template_noop) -"bd" = (/turf/closed/mineral/diamond,/area/ruin/unpowered) -"be" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/crate,/obj/item/weapon/electronics/airlock,/obj/item/weapon/electronics/airlock,/obj/item/weapon/electronics/apc,/obj/item/weapon/electronics/apc,/turf/open/floor/plating,/area/ruin/ancientstation) -"bf" = (/obj/effect/decal/cleanable/dirt,/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/blue/side{dir = 10},/area/ruin/ancientstation/comm) -"bg" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/blue/corner{dir = 8},/area/ruin/ancientstation/comm) -"bh" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/comm) -"bi" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/blue/corner,/area/ruin/ancientstation/comm) -"bj" = (/obj/effect/decal/cleanable/dirt,/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/blue/side{dir = 6},/area/ruin/ancientstation/comm) -"bk" = (/obj/structure/closet/crate,/obj/item/stack/sheet/metal{amount = 20},/obj/item/stack/sheet/metal{amount = 20},/turf/open/floor/plasteel/black,/area/ruin/ancientstation/hivebot) -"bl" = (/obj/structure/closet/crate,/obj/item/stack/sheet/mineral/plasma{amount = 15},/obj/item/stack/sheet/mineral/uranium{amount = 10},/turf/open/floor/plasteel/black,/area/ruin/ancientstation/hivebot) -"bm" = (/turf/open/floor/plasteel/airless/floorgrime,/area/template_noop) -"bn" = (/turf/closed/wall/rust,/area/template_noop) -"bo" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/plasteel/blue/side{dir = 10},/area/ruin/ancientstation/comm) -"bp" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/dice/d6,/turf/open/floor/plasteel/blue/side,/area/ruin/ancientstation/comm) -"bq" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/tank/internals/emergency_oxygen,/turf/open/floor/plasteel/blue/side,/area/ruin/ancientstation/comm) -"br" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/soap/nanotrasen,/turf/open/floor/plasteel/blue/side{dir = 6},/area/ruin/ancientstation/comm) -"bs" = (/obj/machinery/door/airlock/maintenance_hatch,/turf/open/floor/plating,/area/ruin/ancientstation/betanorth) -"bt" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance_hatch,/turf/open/floor/plating,/area/ruin/ancientstation) -"bu" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/ruin/ancientstation/comm) -"bv" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/ruin/ancientstation/comm) -"bw" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/glass_command{name = "Bridge"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/comm) -"bx" = (/obj/machinery/door/airlock/maintenance_hatch,/turf/open/floor/plating,/area/ruin/ancientstation) -"by" = (/turf/closed/wall/rust,/area/ruin/ancientstation/deltacorridor) -"bz" = (/turf/closed/wall,/area/ruin/ancientstation/deltacorridor) -"bA" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation/hivebot) -"bB" = (/obj/machinery/door/firedoor/closed,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/betanorth) -"bC" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/betanorth) -"bD" = (/turf/closed/wall/rust,/area/ruin/ancientstation/betanorth) -"bE" = (/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/open/floor/plating,/area/ruin/ancientstation/betanorth) -"bF" = (/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/open/floor/plating,/area/ruin/ancientstation) -"bG" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/crate,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"bH" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"bI" = (/obj/structure/sign/bluecross_2,/turf/closed/wall/rust,/area/ruin/ancientstation) -"bJ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/decal/cleanable/dirt,/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-25"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"bK" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"bL" = (/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"bM" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"bN" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"bO" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-25"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"bP" = (/obj/structure/sign/science,/turf/closed/wall/rust,/area/ruin/ancientstation) -"bQ" = (/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/open/floor/plating,/area/ruin/ancientstation/deltacorridor) -"bR" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"bS" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"bT" = (/obj/structure/sign/poster/official/science,/turf/closed/wall/rust,/area/ruin/ancientstation/deltacorridor) -"bU" = (/turf/closed/wall/rust,/area/ruin/ancientstation/hivebot) -"bV" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/science{name = "Artificial Program Core Room"},/turf/open/floor/plating,/area/ruin/ancientstation/hivebot) -"bW" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) -"bX" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/crate,/obj/item/weapon/circular_saw,/obj/item/weapon/retractor,/obj/item/weapon/hemostat,/obj/item/weapon/scalpel{pixel_y = 12},/obj/item/weapon/cautery{pixel_x = 4},/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) -"bY" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/command,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/betanorth) -"bZ" = (/obj/effect/decal/cleanable/dirt,/obj/structure/transit_tube/station/reverse/flipped{dir = 1},/obj/structure/transit_tube_pod{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/betanorth) -"ca" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/transit_tube{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation/betanorth) -"cb" = (/obj/structure/transit_tube/crossing/horizontal,/turf/template_noop,/area/template_noop) -"cc" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/transit_tube{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation) -"cd" = (/obj/structure/transit_tube/station/reverse/flipped,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"ce" = (/obj/machinery/door/airlock/command{name = "Beta Station Access"},/obj/machinery/door/poddoor{id = "ancient"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/powered) -"cf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"cg" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/effect/decal/cleanable/generic,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"ch" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"ci" = (/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"cj" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"ck" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/shreds,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"cl" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/command{name = "Delta Station Access"},/obj/machinery/door/poddoor{id = "ancient"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/powered) -"cm" = (/obj/effect/decal/cleanable/dirt,/obj/structure/transit_tube/station/reverse/flipped{dir = 1},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"cn" = (/obj/structure/transit_tube_pod{dir = 4},/turf/template_noop,/area/template_noop) -"co" = (/obj/structure/transit_tube,/turf/template_noop,/area/template_noop) -"cp" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/transit_tube{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) -"cq" = (/obj/effect/decal/cleanable/dirt,/obj/structure/transit_tube/station/reverse/flipped,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"cr" = (/obj/effect/decal/cleanable/dirt,/obj/item/stack/medical/bruise_pack,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"cs" = (/obj/effect/decal/cleanable/dirt,/obj/structure/barricade/wooden,/obj/machinery/door/airlock/command{name = "Charlie Station Access"; req_access_txt = "200"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"ct" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-25"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"cu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"cv" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/science,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"cw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"cx" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"cy" = (/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot/strong,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"cz" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/science,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"cA" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-25"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"cB" = (/obj/machinery/door/airlock/maintenance_hatch,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) -"cC" = (/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot/strong,/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) -"cD" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) -"cE" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/template_noop) -"cF" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/betanorth) -"cG" = (/obj/item/solar_assembly,/turf/template_noop,/area/template_noop) -"cH" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/crate,/obj/machinery/light/small{dir = 4},/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"cI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"cJ" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"cK" = (/turf/closed/wall/rust,/area/ruin/ancientstation/hydroponics) -"cL" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/ruin/ancientstation/hydroponics) -"cM" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/ruin/ancientstation/hydroponics) -"cN" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/ruin/ancientstation/hydroponics) -"cO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"cP" = (/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"cQ" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{brightness = 3; dir = 8},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"cR" = (/obj/effect/decal/cleanable/dirt,/obj/item/weapon/pickaxe,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"cS" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"cT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"cU" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"cV" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/science,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"cW" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"cX" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/mob/living/simple_animal/hostile/hivebot/rapid,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"cY" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"cZ" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"da" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/ancient,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white/side{dir = 5},/area/template_noop) -"db" = (/obj/structure/sign/poster/official/nanomichi_ad,/turf/closed/wall/rust,/area/template_noop) -"dc" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/betanorth) -"dd" = (/turf/closed/wall/rust,/area/ruin/ancientstation/engi) -"de" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 8},/obj/machinery/airalarm{dir = 4; locked = 0; pixel_x = -23; req_access = "0"; req_one_access = "0"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"df" = (/obj/effect/decal/cleanable/dirt,/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-25"},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/green/side{dir = 9},/area/ruin/ancientstation/hydroponics) -"dg" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/green/corner{dir = 1},/area/ruin/ancientstation/hydroponics) -"dh" = (/obj/machinery/hydroponics/soil,/turf/open/floor/grass,/area/ruin/ancientstation/hydroponics) -"di" = (/obj/effect/decal/cleanable/dirt,/obj/structure/reagent_dispensers/watertank/high{desc = "A highly-pressurized water tank, this one seems almost empty.."; tank_volume = 1000},/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/hydroponics) -"dj" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/green/corner{dir = 4},/area/ruin/ancientstation/hydroponics) -"dk" = (/obj/effect/decal/cleanable/dirt,/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-25"},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/green/side{dir = 5},/area/ruin/ancientstation/hydroponics) -"dl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"dm" = (/obj/machinery/light/small{dir = 4},/obj/machinery/airalarm{dir = 8; locked = 0; pixel_x = 24; req_access = "0"; req_one_access = "0"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"dn" = (/turf/closed/wall/rust,/area/ruin/ancientstation/sec) -"do" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"dp" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"dq" = (/turf/closed/wall/rust,/area/ruin/ancientstation/rnd) -"dr" = (/obj/machinery/door/airlock/research{name = "Research and Development"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) -"ds" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/research{name = "Research and Development"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) -"dt" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"du" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"dv" = (/obj/effect/decal/cleanable/dirt,/obj/item/roller,/turf/open/floor/plasteel/white/side{dir = 4},/area/template_noop) -"dw" = (/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/open/floor/plating,/area/template_noop) -"dx" = (/obj/structure/lattice,/turf/template_noop,/area/space) -"dy" = (/turf/open/floor/plating/airless{tag = "icon-floor"; icon_state = "floor"},/area/template_noop) -"dz" = (/obj/structure/lattice/catwalk,/turf/template_noop,/area/template_noop) -"dA" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/template_noop,/area/template_noop) -"dB" = (/obj/machinery/power/solar,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating/airless{tag = "icon-floor"; icon_state = "floor"},/area/template_noop) -"dC" = (/obj/structure/table,/obj/item/weapon/tank/internals/oxygen,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/components/unary/vent_pump/on,/obj/item/clothing/mask/breath,/turf/open/floor/plasteel/yellow/side{dir = 9},/area/ruin/ancientstation/engi) -"dD" = (/obj/structure/rack,/obj/effect/decal/cleanable/dirt,/obj/item/clothing/head/helmet/space/nasavoid/old,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/ruin/ancientstation/engi) -"dE" = (/obj/structure/rack,/obj/effect/decal/cleanable/dirt,/obj/machinery/airalarm{dir = 8; locked = 0; pixel_x = 24; req_access = "0"; req_one_access = "0"},/obj/item/clothing/suit/space/nasavoid/old,/turf/open/floor/plasteel/yellow/side{dir = 5},/area/ruin/ancientstation/engi) -"dF" = (/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/open/floor/plating,/area/ruin/ancientstation/hydroponics) -"dG" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/hydroponics) -"dH" = (/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/hydroponics) -"dI" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 8; name = "Charlie Security APC"; pixel_x = -24; start_charge = 0},/turf/open/floor/plasteel/red/side{dir = 9},/area/ruin/ancientstation/sec) -"dJ" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/turf/open/floor/plasteel/red/side{dir = 1},/area/ruin/ancientstation/sec) -"dK" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/plasteel/red/side{dir = 5},/area/ruin/ancientstation/sec) -"dL" = (/obj/structure/sign/poster/contraband/donut_corp,/turf/closed/wall/rust,/area/ruin/ancientstation/sec) -"dM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/obj/machinery/airalarm{dir = 4; locked = 0; pixel_x = -23; req_access = "0"; req_one_access = "0"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"dN" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/mob/living/simple_animal/hostile/hivebot/rapid,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"dO" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white/corner,/area/ruin/ancientstation/rnd) -"dP" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/rnd) -"dQ" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white/corner{dir = 8},/area/ruin/ancientstation/rnd) -"dR" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) -"dS" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/airalarm{dir = 8; locked = 0; pixel_x = 24; req_access = "0"; req_one_access = "0"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"dT" = (/obj/machinery/door/airlock/glass_medical{name = "Medical Bay"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/betanorth) -"dU" = (/obj/machinery/portable_atmospherics/canister,/turf/open/floor/plating/airless,/area/template_noop) -"dV" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/template_noop,/area/template_noop) -"dW" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/obj/item/weapon/card/id/away/old/apc,/turf/open/floor/plasteel/yellow/side{dir = 9},/area/ruin/ancientstation/engi) -"dX" = (/obj/effect/decal/cleanable/dirt,/obj/item/weapon/stock_parts/cell{charge = 100; maxcharge = 15000},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/ruin/ancientstation/engi) -"dY" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/engi) -"dZ" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/engi) -"ea" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/yellow/side{dir = 4},/area/ruin/ancientstation/engi) -"eb" = (/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/glass{name = "Hydroponics"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/hydroponics) -"ec" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/cultivator{pixel_x = 4; pixel_y = 4},/obj/item/weapon/cultivator,/obj/machinery/atmospherics/components/unary/vent_pump/on,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/hydroponics) -"ed" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/seed_extractor,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/hydroponics) -"ee" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/seeds/harebell,/obj/item/seeds/carrot,/obj/item/seeds/potato,/obj/item/seeds/ambrosia,/obj/item/seeds/poppy,/obj/item/seeds/grape,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/hydroponics) -"ef" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/red/side{dir = 8},/area/ruin/ancientstation/sec) -"eg" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/sec) -"eh" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/red/corner{dir = 4},/area/ruin/ancientstation/sec) -"ei" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/red/side{dir = 1},/area/ruin/ancientstation/sec) -"ej" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/book/manual/wiki/security_space_law,/turf/open/floor/plasteel/red/side{dir = 5},/area/ruin/ancientstation/sec) -"ek" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"el" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"em" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/rnd) -"en" = (/obj/machinery/computer/rdconsole/core,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/rnd) -"eo" = (/obj/machinery/r_n_d/destructive_analyzer,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/rnd) -"ep" = (/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot/strong,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/rnd) -"eq" = (/obj/machinery/mecha_part_fabricator,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/rnd) -"er" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50; pixel_x = 3; pixel_y = 3},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/rnd) -"es" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/rnd) -"et" = (/obj/item/weapon/circuitboard/machine/sleeper,/turf/open/floor/plasteel/airless/floorgrime,/area/template_noop) -"eu" = (/obj/effect/decal/cleanable/dirt,/obj/item/weapon/stock_parts/console_screen,/turf/open/floor/plasteel/white/side{tag = "icon-whitehall (EAST)"; icon_state = "whitehall"; dir = 4},/area/template_noop) -"ev" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/solar,/turf/open/floor/plating/airless{tag = "icon-floor"; icon_state = "floor"},/area/template_noop) -"ew" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating/airless{tag = "icon-floor"; icon_state = "floor"},/area/template_noop) -"ex" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{brightness = 3; dir = 8},/turf/open/floor/plasteel/yellow/side{dir = 8},/area/ruin/ancientstation/engi) -"ey" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/engi) -"ez" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/engi) -"eA" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 4},/area/ruin/ancientstation/engi) -"eB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/yellow/side{dir = 8},/area/ruin/ancientstation) -"eC" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/decal/cleanable/generic,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"eD" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/green/side{dir = 8},/area/ruin/ancientstation/hydroponics) -"eE" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/hydroponics) -"eF" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/hydroponics) -"eG" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/green/side{dir = 4},/area/ruin/ancientstation/hydroponics) -"eH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/red/side{dir = 8},/area/ruin/ancientstation/sec) -"eI" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/device/assembly/flash/handheld,/turf/open/floor/plasteel/red/side{dir = 4},/area/ruin/ancientstation/sec) -"eJ" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"eK" = (/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"eL" = (/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"eM" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/power/emitter,/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) -"eN" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white/side{dir = 4},/area/template_noop) -"eO" = (/obj/item/solar_assembly,/obj/item/weapon/electronics/tracker,/turf/open/floor/plating/airless,/area/template_noop) -"eP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/ruin/ancientstation/engi) -"eQ" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/ruin/ancientstation/engi) -"eR" = (/obj/machinery/power/terminal{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation/engi) -"eS" = (/obj/machinery/power/smes/engineering{charge = 0},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/engi) -"eT" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 4},/area/ruin/ancientstation/engi) -"eU" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/ruin/ancientstation) -"eV" = (/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"eW" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/green/side{dir = 8},/area/ruin/ancientstation/hydroponics) -"eX" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small,/turf/open/floor/plasteel/green/corner,/area/ruin/ancientstation/hydroponics) -"eY" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/green/side,/area/ruin/ancientstation/hydroponics) -"eZ" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/airalarm{dir = 1; pixel_y = -22},/turf/open/floor/plasteel/green/corner{dir = 8},/area/ruin/ancientstation/hydroponics) -"fa" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/green/side{dir = 4},/area/ruin/ancientstation/hydroponics) -"fb" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"fc" = (/obj/structure/sign/poster/official/here_for_your_safety,/turf/closed/wall/rust,/area/ruin/ancientstation/sec) -"fd" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/paper,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/sec) -"fe" = (/obj/effect/decal/cleanable/dirt,/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/sec) -"ff" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/red/side{dir = 4},/area/ruin/ancientstation/sec) -"fg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"fh" = (/obj/machinery/r_n_d/protolathe,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/rnd) -"fi" = (/obj/machinery/r_n_d/circuit_imprinter,/obj/effect/decal/cleanable/dirt,/obj/item/weapon/reagent_containers/dropper,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/rnd) -"fj" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/tank/internals/anesthetic,/obj/item/clothing/mask/breath/medical,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/rnd) -"fk" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table/optable{name = "Robotics Operating Table"},/obj/item/weapon/surgical_drapes,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/rnd) -"fl" = (/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot/rapid,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"fm" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/field/generator,/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) -"fn" = (/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/open/floor/plating/airless,/area/template_noop) -"fo" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/ruin/ancientstation/engi) -"fp" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/ruin/ancientstation/engi) -"fq" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation/engi) -"fr" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation/engi) -"fs" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/ash,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/engi) -"ft" = (/obj/machinery/door/airlock/engineering{name = "Engineering"},/obj/machinery/door/poddoor{id = "ancient"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/powered) -"fu" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"fv" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/maintenance_hatch,/obj/machinery/atmospherics/pipe/simple/supply/visible,/turf/open/floor/plating,/area/ruin/ancientstation/hydroponics) -"fw" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"fx" = (/obj/machinery/door/airlock/security,/obj/machinery/door/firedoor/closed,/obj/machinery/door/poddoor{id = "ancient"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/sec) -"fy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/red/corner{dir = 1},/area/ruin/ancientstation/sec) -"fz" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/pen,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/sec) -"fA" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/sec) -"fB" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/red/side{dir = 4},/area/ruin/ancientstation/sec) -"fC" = (/obj/effect/decal/cleanable/dirt,/obj/item/weapon/electronics/apc,/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) -"fD" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Delta Main Corridor APC"; pixel_y = 24; start_charge = 0},/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) -"fE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot/strong,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"fF" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/white/corner{dir = 4},/area/ruin/ancientstation/rnd) -"fG" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white/corner{dir = 1},/area/ruin/ancientstation/rnd) -"fH" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white/corner{dir = 4},/area/ruin/ancientstation/rnd) -"fI" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/white/corner{dir = 1},/area/ruin/ancientstation/rnd) -"fJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/airless/floorgrime,/area/template_noop) -"fK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/airless/floorgrime,/area/template_noop) -"fL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless/floorgrime,/area/template_noop) -"fM" = (/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/airless,/area/template_noop) -"fN" = (/obj/structure/lattice/catwalk,/obj/item/stack/cable_coil{amount = 2},/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/template_noop,/area/template_noop) -"fO" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/template_noop,/area/template_noop) -"fP" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/template_noop,/area/template_noop) -"fQ" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/template_noop,/area/template_noop) -"fR" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/template_noop,/area/template_noop) -"fS" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 2; name = "Engineering External Access"; req_access = null; req_access_txt = "200"},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation/engi) -"fT" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation/engi) -"fU" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation/engi) -"fV" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation/engi) -"fW" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/engi) -"fX" = (/obj/effect/decal/cleanable/dirt,/obj/item/stack/cable_coil{amount = 2},/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation/engi) -"fY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/engi) -"fZ" = (/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/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/poddoor{id = "ancient"},/turf/open/floor/plating,/area/ruin/ancientstation/powered) -"ga" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"gb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"gc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/maintenance_hatch,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation) -"gd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation) -"ge" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/power/apc{dir = 1; name = "Charlie Hydroponics APC"; pixel_y = 24; start_charge = 0},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation/hydroponics) -"gf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/manifold/supply/visible{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation) -"gg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation) -"gh" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/power/apc{dir = 2; name = "Charlie Kitchen APC"; pixel_y = -24; start_charge = 0},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/ruin/ancientstation/kitchen) -"gi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/obj/structure/closet/crate,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/turf/open/floor/plating,/area/ruin/ancientstation) -"gj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/maintenance_hatch,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation) -"gk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"gl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"gm" = (/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/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/poddoor{id = "ancient"},/turf/open/floor/plating,/area/ruin/ancientstation/sec) -"gn" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/sec) -"go" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/sec) -"gp" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/red/side{dir = 4},/area/ruin/ancientstation/sec) -"gq" = (/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/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation/sec) -"gr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/open/floor/plating/airless,/area/space) -"gs" = (/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/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) -"gt" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) -"gu" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) -"gv" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/maintenance_hatch,/obj/machinery/atmospherics/pipe/simple/supply/visible{dir = 4},/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) -"gw" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"gx" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/power/apc{dir = 4; name = "Delta RnD APC"; pixel_x = 24; start_charge = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) -"gy" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/stack/sheet/metal{amount = 50},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) -"gz" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical/old,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) -"gA" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) -"gB" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) -"gC" = (/obj/structure/table,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/matter_bin,/obj/item/weapon/stock_parts/scanning_module{pixel_x = 2; pixel_y = 3},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) -"gD" = (/obj/structure/table,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/micro_laser,/obj/item/stack/cable_coil,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) -"gE" = (/obj/machinery/door/airlock/maintenance_hatch{name = "Engineering Storage"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) -"gF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating/airless,/area/template_noop) -"gG" = (/obj/item/stack/cable_coil,/turf/open/floor/plasteel/airless/floorgrime,/area/template_noop) -"gH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/ruin/ancientstation/engi) -"gI" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/engi) -"gJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/engi) -"gK" = (/turf/closed/wall/rust,/area/ruin/ancientstation/kitchen) -"gL" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/maintenance_hatch,/obj/machinery/atmospherics/pipe/simple/supply/visible,/turf/open/floor/plating,/area/ruin/ancientstation/kitchen) -"gM" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/red/corner{dir = 8},/area/ruin/ancientstation/sec) -"gN" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/sec) -"gO" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/visible,/turf/open/floor/plasteel/red/side{dir = 4},/area/ruin/ancientstation/sec) -"gP" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small,/obj/structure/table,/obj/item/trash/plate,/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) -"gQ" = (/obj/effect/decal/cleanable/dirt,/obj/structure/chair{dir = 8},/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) -"gR" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation/rnd) -"gS" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation/rnd) -"gT" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation/rnd) -"gU" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) -"gV" = (/obj/item/solar_assembly,/turf/open/floor/plating/airless,/area/template_noop) -"gW" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/ruin/ancientstation/engi) -"gX" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/yellow/corner{icon_state = "yellowcorner"; dir = 8},/area/ruin/ancientstation/engi) -"gY" = (/obj/machinery/power/terminal{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/cable,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation/engi) -"gZ" = (/obj/machinery/power/smes/engineering{charge = 0},/obj/structure/cable,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/engi) -"ha" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/yellow/corner,/area/ruin/ancientstation/engi) -"hb" = (/obj/structure/sign/poster/official/build,/turf/closed/wall/rust,/area/ruin/ancientstation/engi) -"hc" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/yellow/corner{icon_state = "yellowcorner"; dir = 8},/area/ruin/ancientstation) -"hd" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/vending/dinnerware,/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) -"he" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/secure_closet/freezer/fridge,/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) -"hf" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) -"hg" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) -"hh" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) -"hi" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/airalarm{frequency = 1439; locked = 0; pixel_y = 23; req_access = "0"; req_one_access = "0"},/obj/effect/decal/cleanable/egg_smudge,/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) -"hj" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/processor,/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) -"hk" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) -"hl" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/red/side{dir = 8},/area/ruin/ancientstation/sec) -"hm" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/folder/red,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/sec) -"hn" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/visible,/turf/open/floor/plasteel/red/side{dir = 4},/area/ruin/ancientstation/sec) -"ho" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"hp" = (/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) -"hq" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/large/aluminium{pixel_x = 6},/obj/item/weapon/reagent_containers/glass/beaker/large/bromine{pixel_x = -6},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/orange/side{tag = "icon-orange (NORTHWEST)"; icon_state = "orange"; dir = 9},/area/ruin/ancientstation/rnd) -"hr" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/large/carbon{pixel_x = 6},/obj/item/weapon/reagent_containers/glass/beaker/large/chlorine{pixel_x = -6},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/orange/side{tag = "icon-orange (NORTH)"; icon_state = "orange"; dir = 1},/area/ruin/ancientstation/rnd) -"hs" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/large/copper{pixel_x = 6},/obj/item/weapon/reagent_containers/glass/beaker/large/ethanol{pixel_x = -6},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/orange/side{tag = "icon-orange (NORTHEAST)"; icon_state = "orange"; dir = 5},/area/ruin/ancientstation/rnd) -"ht" = (/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"hu" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/power/rad_collector,/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) -"hv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/airless,/area/template_noop) -"hw" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating/airless{tag = "icon-floor"; icon_state = "floor"},/area/template_noop) -"hx" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/template_noop,/area/template_noop) -"hy" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{brightness = 3; dir = 8},/obj/effect/decal/cleanable/oil,/turf/open/floor/plasteel/yellow/side{dir = 8},/area/ruin/ancientstation/engi) -"hz" = (/obj/effect/decal/cleanable/dirt,/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 5},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/engi) -"hA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 4},/area/ruin/ancientstation/engi) -"hB" = (/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/open/floor/plating,/area/ruin/ancientstation/kitchen) -"hC" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/flour,/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) -"hD" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/kitchen/rollingpin,/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) -"hE" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/enzyme{layer = 5},/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 1},/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) -"hF" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/machinery/reagentgrinder,/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) -"hG" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/red/side{dir = 8},/area/ruin/ancientstation/sec) -"hH" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 1},/obj/item/weapon/storage/backpack/old,/turf/open/floor/plasteel/red/side{dir = 4},/area/ruin/ancientstation/sec) -"hI" = (/obj/structure/chair,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) -"hJ" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/orange/corner,/area/ruin/ancientstation/rnd) -"hK" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/orange/side{tag = "icon-orange (WEST)"; icon_state = "orange"; dir = 8},/area/ruin/ancientstation/rnd) -"hL" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/large/fluorine{pixel_x = 6},/obj/item/weapon/reagent_containers/glass/beaker/large/hydrogen{pixel_x = -6},/obj/item/weapon/reagent_containers/glass/beaker/large/water{pixel_y = 8},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/orange/side{tag = "icon-orange (EAST)"; icon_state = "orange"; dir = 4},/area/ruin/ancientstation/rnd) -"hM" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/template_noop,/area/template_noop) -"hN" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/power/solar_control{name = "Station Solar Control Computer"},/obj/item/weapon/paper/solar,/obj/structure/cable,/turf/open/floor/plasteel/yellow/side{dir = 10},/area/ruin/ancientstation/engi) -"hO" = (/obj/effect/decal/cleanable/dirt,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/stack/sheet/glass{amount = 30},/turf/open/floor/plasteel/yellow/side,/area/ruin/ancientstation/engi) -"hP" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/yellow/corner{icon_state = "yellowcorner"; dir = 8},/area/ruin/ancientstation/engi) -"hQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/yellow/side{dir = 4},/area/ruin/ancientstation/engi) -"hR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/generic,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"hS" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Dining Area"},/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) -"hT" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/red/corner,/area/ruin/ancientstation/sec) -"hU" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/red/side,/area/ruin/ancientstation/sec) -"hV" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/restraints/handcuffs,/obj/item/clothing/mask/gas,/turf/open/floor/plasteel/red/side{dir = 6},/area/ruin/ancientstation/sec) -"hW" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/machinery/light{dir = 8},/obj/item/weapon/broken_bottle,/obj/item/weapon/soap/nanotrasen,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) -"hX" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 4},/obj/item/weapon/folder/white,/obj/item/weapon/reagent_containers/glass/beaker,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) -"hY" = (/obj/machinery/chem_master,/obj/effect/decal/cleanable/dirt,/obj/item/weapon/reagent_containers/glass/beaker,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/rnd) -"hZ" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/mob/living/simple_animal/hostile/hivebot/range,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) -"ia" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/orange/side{tag = "icon-orange (EAST)"; icon_state = "orange"; dir = 4},/area/ruin/ancientstation/rnd) -"ib" = (/obj/machinery/door/airlock/glass_medical{name = "Chemical Storage"; req_access_txt = "200"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) -"ic" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/large/mercury{pixel_x = 6; pixel_y = 8},/obj/item/weapon/reagent_containers/glass/beaker/large/nitrogen{pixel_x = -6; pixel_y = 8},/obj/item/weapon/reagent_containers/glass/beaker/large/oxygen{pixel_x = 6},/obj/item/weapon/reagent_containers/glass/beaker/large/phosphorus{pixel_x = -6},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) -"id" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/large/iodine{pixel_y = 8},/obj/item/weapon/reagent_containers/glass/beaker/large/iron{pixel_x = 6},/obj/item/weapon/reagent_containers/glass/beaker/large/lithium{pixel_x = -6},/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/obj/machinery/airalarm{dir = 8; locked = 0; pixel_x = 24; req_access = "0"; req_one_access = "0"},/turf/open/floor/plasteel/orange/side{tag = "icon-orange (EAST)"; icon_state = "orange"; dir = 4},/area/ruin/ancientstation/rnd) -"ie" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/clothing/gloves/color/fyellow/old,/obj/item/clothing/gloves/color/fyellow/old,/obj/item/device/multitool,/turf/open/floor/plasteel/yellow/side{dir = 10},/area/ruin/ancientstation/engi) -"if" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/mechanical/old,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/yellow/side,/area/ruin/ancientstation/engi) -"ig" = (/obj/structure/rack,/obj/item/stack/cable_coil,/obj/effect/decal/cleanable/dirt,/obj/machinery/power/apc{dir = 4; name = "Charlie Engineering APC"; pixel_x = 24; start_charge = 0},/obj/structure/cable,/turf/open/floor/plasteel/yellow/side{dir = 6},/area/ruin/ancientstation/engi) -"ih" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/vomit/old,/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) -"ii" = (/obj/effect/decal/cleanable/dirt,/obj/structure/rack,/obj/item/weapon/gun/energy/laser/retro/old{pixel_x = -2; pixel_y = -2},/obj/item/weapon/gun/energy/laser/retro/old{pixel_x = 2; pixel_y = 2},/obj/machinery/airalarm{dir = 4; locked = 0; pixel_x = -23},/turf/open/floor/plasteel/red/side{dir = 10},/area/ruin/ancientstation/sec) -"ij" = (/obj/effect/decal/cleanable/dirt,/obj/structure/rack,/obj/item/clothing/suit/armor/vest/old,/turf/open/floor/plasteel/red/side,/area/ruin/ancientstation/sec) -"ik" = (/obj/effect/decal/cleanable/dirt,/obj/structure/rack,/obj/item/clothing/head/helmet/old,/turf/open/floor/plasteel/red/side{dir = 6},/area/ruin/ancientstation/sec) -"il" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/toy/nuke,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) -"im" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/machinery/recharger,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) -"in" = (/obj/machinery/chem_heater,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/rnd) -"io" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/orange/corner{tag = "icon-orangecorner (EAST)"; icon_state = "orangecorner"; dir = 4},/area/ruin/ancientstation/rnd) -"ip" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/large/potassium{pixel_x = 6},/obj/item/weapon/reagent_containers/glass/beaker/large/radium{pixel_x = -6},/obj/item/weapon/reagent_containers/glass/beaker/large/welding_fuel{pixel_y = 8},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/orange/side{tag = "icon-orange (EAST)"; icon_state = "orange"; dir = 4},/area/ruin/ancientstation/rnd) -"iq" = (/obj/effect/decal/cleanable/dirt,/obj/structure/chair{dir = 4},/obj/machinery/light/small{brightness = 3; dir = 8},/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) -"ir" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/kitchen/fork,/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) -"is" = (/obj/effect/decal/cleanable/dirt,/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) -"it" = (/obj/effect/decal/cleanable/dirt,/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) -"iu" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 5; pixel_y = -2},/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -2; pixel_y = 2},/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) -"iv" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/item/trash/plate,/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) -"iw" = (/obj/effect/decal/cleanable/dirt,/obj/structure/chair{dir = 8},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/ruin/ancientstation/kitchen) -"ix" = (/obj/machinery/airalarm{dir = 8; locked = 0; pixel_x = 24; req_access = "0"; req_one_access = "0"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"iy" = (/obj/structure/chair{dir = 1},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) -"iz" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/large/sugar{pixel_x = 6},/obj/item/weapon/reagent_containers/glass/beaker/large/sulfur{pixel_x = -6},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/orange/side{tag = "icon-orange (SOUTHWEST)"; icon_state = "orange"; dir = 10},/area/ruin/ancientstation/rnd) -"iA" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/large/silver{pixel_x = 6},/obj/item/weapon/reagent_containers/glass/beaker/large/sodium{pixel_x = -6},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) -"iB" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/large/sacid{pixel_x = 6},/obj/item/weapon/reagent_containers/glass/beaker/large/silicon{pixel_x = -6},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/orange/side{tag = "icon-orange (SOUTHEAST)"; icon_state = "orange"; dir = 6},/area/ruin/ancientstation/rnd) -"iC" = (/obj/structure/closet/crate,/turf/open/floor/plating/airless,/area/template_noop) -"iD" = (/obj/machinery/power/terminal{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plating,/area/ruin/ancientstation/engi) -"iE" = (/obj/machinery/power/smes/engineering{charge = 0; name = "backup power storage unit"},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation/engi) -"iF" = (/obj/effect/decal/cleanable/dirt,/obj/item/weapon/wrench,/obj/item/weapon/wirecutters,/turf/open/floor/plating,/area/ruin/ancientstation/engi) -"iG" = (/obj/structure/sign/radiation,/turf/closed/wall/rust,/area/ruin/ancientstation/engi) -"iH" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/ruin/ancientstation/kitchen) -"iI" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/ruin/ancientstation/kitchen) -"iJ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/ruin/ancientstation/kitchen) -"iK" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"iL" = (/obj/machinery/door/airlock/research{name = "Research and Development"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) -"iM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/research{name = "Research and Development"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/rnd) -"iN" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"iO" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"iP" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/recharge_station,/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) -"iQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/airless,/area/template_noop) -"iR" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 8},/turf/open/floor/plating,/area/ruin/ancientstation/engi) -"iS" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation/engi) -"iT" = (/obj/machinery/door/airlock/engineering{name = "Backup Generator Room"},/turf/open/floor/plating,/area/ruin/ancientstation/engi) -"iU" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"iV" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"iW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"iX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"iY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"iZ" = (/obj/effect/decal/cleanable/dirt,/obj/structure/transit_tube/station/reverse/flipped{dir = 1},/obj/structure/transit_tube_pod{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"ja" = (/obj/structure/transit_tube/station/reverse/flipped,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"jb" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/command{name = "Charlie Station Access"; req_access_txt = "200"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"jc" = (/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"jd" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"je" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"jf" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/mob/living/simple_animal/hostile/hivebot/strong,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"jg" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/mob/living/simple_animal/hostile/hivebot/rapid,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"jh" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"ji" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/obj/structure/closet/crate,/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/obj/item/weapon/storage/box/firingpins,/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) -"jj" = (/turf/open/floor/plasteel/floorgrime,/area/template_noop) -"jk" = (/obj/structure/closet/crate/radiation,/obj/item/stack/sheet/mineral/uranium{amount = 10},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation/engi) -"jl" = (/obj/machinery/power/port_gen/pacman/super{name = "\improper emergency power generator"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation/engi) -"jm" = (/obj/structure/table,/obj/item/stack/cable_coil{amount = 15},/obj/item/weapon/paper,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/ancientstation/engi) -"jn" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/effect/decal/cleanable/dirt,/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-25"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"jo" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"jp" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/oil,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"jq" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"jr" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"js" = (/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"jt" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-25"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"ju" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"jv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/hivebot/rapid,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"jw" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/deltacorridor) -"jx" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/crate,/obj/item/weapon/disk/tech_disk,/turf/open/floor/plating,/area/ruin/ancientstation/deltacorridor) -"jy" = (/turf/open/floor/plating/airless,/area/ruin/ancientstation/atmo) -"jz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/airless,/area/ruin/ancientstation/atmo) -"jA" = (/obj/structure/lattice,/obj/item/solar_assembly,/turf/template_noop,/area/template_noop) -"jB" = (/obj/structure/cable,/turf/open/floor/plating/airless,/area/template_noop) -"jC" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/ruin/ancientstation) -"jD" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/ruin/ancientstation) -"jE" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/glass{name = "Cryogenics Room"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"jF" = (/turf/closed/wall/r_wall/rust,/area/ruin/ancientstation/proto) -"jG" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/highsecurity{name = "Prototype Laboratory"; req_access_txt = "200"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/white/side,/area/ruin/ancientstation/proto) -"jH" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/highsecurity{name = "Prototype Laboratory"; req_access_txt = "200"},/turf/open/floor/plasteel/white/side,/area/ruin/ancientstation/proto) -"jI" = (/obj/machinery/power/apc{dir = 4; name = "Beta Atmospherics APC"; pixel_x = 24; start_charge = 0},/obj/structure/cable,/turf/open/floor/plasteel/airless/floorgrime,/area/ruin/ancientstation/atmo) -"jJ" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plating,/area/ruin/ancientstation) -"jK" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"jL" = (/obj/effect/decal/cleanable/dirt,/obj/structure/mirror{name = "dusty mirror"; pixel_y = 28},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"jM" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/crate,/turf/open/floor/plating,/area/ruin/ancientstation) -"jN" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/cobweb{icon_state = "cobweb2"},/turf/open/floor/plating,/area/ruin/ancientstation) -"jO" = (/obj/structure/table/reinforced,/obj/item/clothing/suit/space/hardsuit/ancient,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) -"jP" = (/obj/machinery/door/poddoor{id = "proto"},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) -"jQ" = (/obj/effect/decal/cleanable/dirt,/obj/effect/turf_decal/stripes/line{dir = 8},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) -"jR" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/power/apc{dir = 1; name = "Delta Prototype Lab APC"; pixel_y = 24; start_charge = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) -"jS" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) -"jT" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) -"jU" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/airalarm{frequency = 1439; locked = 0; pixel_y = 23; req_access = "0"; req_one_access = "0"},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) -"jV" = (/obj/effect/decal/cleanable/dirt,/obj/effect/turf_decal/stripes/line{icon_state = "warningline"; dir = 4},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) -"jW" = (/obj/structure/table/reinforced,/obj/machinery/the_singularitygen,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) -"jX" = (/turf/open/floor/plasteel/airless/floorgrime,/area/ruin/ancientstation/atmo) -"jY" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/engine/airless,/area/ruin/ancientstation/atmo) -"jZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/template_noop) -"ka" = (/obj/effect/turf_decal/stripes/line{dir = 9},/obj/effect/turf_decal/stripes/line{dir = 6},/obj/effect/decal/cleanable/dirt,/obj/structure/showcase/oldpod,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"kb" = (/obj/effect/turf_decal/stripes/line{dir = 9},/obj/effect/turf_decal/stripes/line{dir = 6},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/showcase/oldpod,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"kc" = (/obj/effect/turf_decal/stripes/line{dir = 9},/obj/effect/turf_decal/stripes/line{dir = 6},/obj/effect/decal/cleanable/dirt,/obj/effect/mob_spawn/human/oldsec,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"kd" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/cobweb{icon_state = "cobweb2"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"ke" = (/obj/machinery/light{dir = 8},/obj/structure/table/reinforced,/obj/item/weapon/paper/oldstat/protosuit,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) -"kf" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor{id = "proto"},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) -"kg" = (/obj/effect/decal/cleanable/dirt,/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) -"kh" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) -"ki" = (/obj/effect/decal/cleanable/dirt,/obj/effect/turf_decal/stripes/line{icon_state = "warningline"; dir = 4},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) -"kj" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{id = "proto"},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) -"kk" = (/obj/machinery/light{dir = 4},/obj/structure/table/reinforced,/obj/item/weapon/paper/oldstat/protosing,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) -"kl" = (/obj/structure/window/reinforced,/turf/open/floor/engine/airless,/area/ruin/ancientstation/atmo) -"km" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/template_noop) -"kn" = (/obj/effect/decal/cleanable/dirt,/obj/item/solar_assembly,/obj/item/stack/sheet/glass{amount = 30},/turf/open/floor/plating,/area/ruin/ancientstation) -"ko" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/device/flashlight/glowstick,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"kp" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/deadcockroach,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"kq" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation/powered) -"kr" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/crate,/obj/item/weapon/reagent_containers/spray/weedspray,/obj/item/weapon/reagent_containers/spray/pestspray,/turf/open/floor/plating,/area/ruin/ancientstation) -"ks" = (/obj/effect/decal/cleanable/dirt,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/turf/open/floor/plating,/area/ruin/ancientstation) -"kt" = (/obj/effect/decal/cleanable/dirt,/obj/effect/turf_decal/stripes/corner{icon_state = "warninglinecorner"; dir = 1},/obj/effect/turf_decal/stripes/corner{icon_state = "warninglinecorner"; dir = 4},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) -"ku" = (/obj/effect/decal/cleanable/dirt,/obj/effect/turf_decal/stripes/corner,/obj/effect/turf_decal/stripes/corner{icon_state = "warninglinecorner"; dir = 8},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) -"kv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating/airless,/area/ruin/ancientstation/atmo) -"kw" = (/obj/machinery/light/small{dir = 4},/obj/machinery/pipedispenser,/turf/open/floor/plasteel/airless/floorgrime,/area/ruin/ancientstation/atmo) -"kx" = (/obj/structure/sign/poster/official/work_for_a_future,/turf/closed/wall/rust,/area/ruin/ancientstation) -"ky" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/device/flashlight/glowstick,/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"kz" = (/obj/effect/turf_decal/stripes/line{dir = 9},/obj/effect/turf_decal/stripes/line{dir = 6},/obj/effect/decal/cleanable/dirt,/obj/effect/mob_spawn/human/oldsci,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"kA" = (/obj/effect/turf_decal/stripes/line{dir = 9},/obj/effect/turf_decal/stripes/line{dir = 6},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/mob_spawn/human/oldeng,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"kB" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/obj/item/weapon/paper/oldstat,/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"kC" = (/obj/machinery/light{dir = 8},/obj/structure/table/reinforced,/obj/item/weapon/paper/oldstat/protohealth,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) -"kD" = (/obj/effect/decal/cleanable/dirt,/obj/structure/chair,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) -"kE" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/machinery/button/door{id = "proto"; name = "Prototype Lab Lockdown"},/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 1},/obj/item/weapon/paper/oldstat/protoinv,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) -"kF" = (/obj/machinery/light{dir = 4},/obj/structure/table/reinforced,/obj/item/weapon/paper/oldstat/protogun,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) -"kG" = (/obj/machinery/atmospherics/pipe/manifold/supply/visible{dir = 8},/turf/open/floor/plating/airless,/area/ruin/ancientstation/atmo) -"kH" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Air Outlet Pump"; on = 1},/turf/open/floor/plasteel/airless/floorgrime,/area/ruin/ancientstation/atmo) -"kI" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on{dir = 8; frequency = 1441; id_tag = "air_out"; name = "air output"},/turf/open/floor/engine/air,/area/ruin/ancientstation/atmo) -"kJ" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/crate,/obj/machinery/power/apc{dir = 4; name = "Charlie Main Corridor APC"; pixel_x = 24; start_charge = 0},/obj/structure/cable,/obj/item/weapon/storage/backpack/old,/turf/open/floor/plating,/area/ruin/ancientstation) -"kK" = (/obj/structure/table/reinforced,/obj/item/device/healthanalyzer{desc = "A prototype hand-held body scanner able to distinguish vital signs of the subject."; name = "prototype health analyzer"},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) -"kL" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) -"kM" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) -"kN" = (/obj/structure/table/reinforced,/obj/item/weapon/gun/energy/e_gun/old,/turf/open/floor/plasteel/white,/area/ruin/ancientstation/proto) -"kO" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1},/turf/open/floor/plating/airless,/area/ruin/ancientstation/atmo) -"kP" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/engine/air,/area/ruin/ancientstation/atmo) -"kQ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/template_noop) -"kR" = (/obj/item/solar_assembly,/obj/item/solar_assembly,/turf/template_noop,/area/template_noop) -"kS" = (/turf/closed/mineral/plasma,/area/ruin/unpowered) -"kT" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/ruin/ancientstation/proto) -"kU" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/ruin/ancientstation/proto) -"kV" = (/obj/machinery/airalarm{dir = 8; locked = 0; pixel_x = 24; req_access = "0"; req_one_access = "0"},/turf/open/floor/plasteel/airless/floorgrime,/area/ruin/ancientstation/atmo) -"kW" = (/turf/closed/mineral/uranium,/area/ruin/unpowered) -"kX" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 1},/turf/open/floor/plasteel/floorgrime,/area/ruin/ancientstation) -"kY" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 2; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/closed/mineral,/area/ruin/unpowered) -"kZ" = (/turf/closed/mineral/silver,/area/ruin/unpowered) -"la" = (/turf/closed/mineral/gold,/area/ruin/unpowered) - -(1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaacacacacacacacacacacacaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacadadadadadadadadadadadadadadacacacaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacadaeafadafafadagafahafafagadaiadacacaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajakalamamamanakajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacadafaoadapafadafafafagahaoadahagagaqaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajajarasatauavawaxajajaaaaaaaaaaaaaaaaayayayaaaaaaaaaaazacacadaAafadafaBadafafaAafafafadaoafaCaqaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDaDajarasaEaFaGaHaEawaxajaDaDaaaaaaazaaacayayayaaazaaaaaaazacacadagafaIaoafaIafahagafafafaIafafagaqaa -aaaaaaaaaaaaaaaaaaazaaaaazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDaJajaKaLaEaEaEaEaEaLaMajaNaDaDazazaaaaayayayayaaaaaaaaazaaacacadaBafaIaAahaIafafafaOafafaIafafaCaqaa -aaaaaaaaaaaaacaaaaaaaaazazazazazazazazazazazazazazazazazaDaPaQajaRaEaEaEaSaEaEaEaTajaUaDaDaaaaaaazaaayayaaaaaaazaaaaaaacacadaVafadagafadafagaAafafafadafafagaqaa -aaaaaaazaaacayacazaaazaaaaazaWaaaaaaaaaaaaaaaaaaaaaaaaaaaDaNaQajaKaXaEaEaYaEaEaLaMajaUaZaDaaaaaaaaaaaabaaaaaaaaaaaaaaaacacadafafadaoafadafafafagahaoadafaoaCaqaa -aabbbcbbazacbdayacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDbeaQajbfbgaEaEbhaEaEbibjajaUaUaDaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacadbkafadahafadafafaoafafafadbladacacaa -bbbmbnbbbbacacacaaaaaaazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDaUaQajajbobpbgbhbibqbrajajaUaUaDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacadadadaIaIadadadadadadadadadacacaaaa -bbbnbnbnbsbnbnbnbnbnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDaDaDaDaDbtaDajakbubvbwbubvakajaDbxaDaDaDaDaDaaaaaaaaaaaaaabybybybyaaaaacacbzbAbAbAbAbzacacacacacacbybybybyaa -azbBbCbCbCbCbDbCbCbEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFbGbHbIbJbKbHbLbMbHbHbNbHbHbMbLbHbHbObPbHbHbFaabaaaaaaaaaaabQbRbSbTbybybybybybUbVbVbUbybybybybybybybybWbXbyaa -bbbBbCbCbCbCbYbCbZcababacbbababababababababacbbabacccdbHcecfcgchcichchchcjbHbHckbLbHbHbHclbHcmccbaaacnaaaacobacpcqcrcsctcucvcwcwcwcxbScybSbSbSbSczbScAcBcCcDbyaa -bbcEbnbnbCbCbDcFbCbEcGaaaaaaaaaaaaaaaaaaaaaaaaaaaabFbHcHbIcIcJcKcKcLcMcMcMcMcMcNcKcKcOcPbPcQbHbFaaaabaaaaaaaaabQcRcSbTcTcUcVcWcWcXcWcWcWcWcYcWcWcVcZbSbybWbWbyaa -aabbdadbbCdcbnbnbnbnbnaaaaaaazaaazaaazaaaaaaaaaadddddddddddebNcKdfdgdhdhdidhdhdjdkcKdldmdndndndndnaaaaaaaaaaaabybybybydodpdqdqdqdqdqdrdsdqdqdqdqdqdtdubybybybyaa -azbmdvdwbCbCbnbbbbazbcdxdxdydzdydzdydAdBazazdddddddCdDdEddcfbNdFdGdGdGdGdGdGdGdGdHdFdlbHdndIdJdKdLdndnaaaaacacaaaaaabydMdNdqdOdPdPdQdRdRdOdPdPdQdqbSdSbyaaaaaaaa -bbbmbmdTbCbCbndUazazaaaaaadydzdydzdydVdyaaaadddWdXdYdZeaddcfbNebdGdGdGecedeedGdGdGebdlbHdnefegeheiejdnaacoacacacaaaabyekeldqemeneoepdRdRdPeqeresdqbSbSbybybybyaa -bbeteudwbBbBbnbbbbaaaaaaaadydVevdAewdzdyaaaaddexdZeyezeAddeBeCdFeDdGdGeEeFdGdGdGeGdFdlbHdneHegegegeIdnaaaaaaacacaaaabyeJeKdqdPdPdPdPdRdRdPdPdPdPdqeLeLbyeMeMbyby -aabbeNbnbmbmbnbmeObbaaaaaaaadzaadVaadzaaaaaaePeQeReSdZeTddeUeVcKeWdhdheXeYeZdhdhfacKfbbLfceffdfeegffdnaaaaaaaabybybybyfgeldqdPfhfidPdRdRepfjfkdPdqflcSbyeMfmfmby -aaazaabcbmbmfnbmbbbbazaaaaaadzaadVaadzaafofpfqdZfrfrfsdYftcffucKcKcKcKcKfvcKcKcKcKcKfwbHfxfyfzfAegfBdnazazazazbyfCfDbyfEeldqfFdPdPfGdRdRfHdPdPfIdqbSbSbybWbWfmby -aaazaabbfJfKfKfKfLfMfMazazfNfOfPfQfPfRfPfSfTfSfUfVfWfXfYfZgagbgcgdgdgegdgfggghgggigjgkglgmgngogogogpgqgrgrgrgrgsgtgugvgwgxdqdRgygzgAgAgBdRgCgDdRdqbSbSgEbWbWfmby -aaazaaaagFbmfnbmgGbbazaaaaaadVaadVaadVaafofpgHgIfrfrdZgJftcffugKgKgKgKgKgLgKgKgKgKgKfwbHfxgMgNfAeggOdnazazazazbygPgQbyekeldqgRgSgSgTdRgUdqdqdqdqdqcybSbybWbWfmby -aabbazazbbbbbngVbbbbaaaaaaaadVaadzaadVaaaaaagWgXgYgZdZhahbhceVgKhdhehfhghhhihfhjhkgKfbbLdnhlhmfeeghndnaaaaaaaabybybybyhoeKdqdRdRhpdRdRgUdqhqhrhsdqeLhtbyeMhuhuby -aaazaaaaaahvbcaaazaaaaaaaahwhxdydzdydVdyaaaaddhydZdZhzhAddeBbNhBhfhfhChDhEhFhfhfhfhBdlbHdnhGegegeghHdnaaaaaaaaaaaaaabyekdNdqhIhIdOdRdQhJdqhKdRhLdqbSbSbyhuhubyby -aaazaaaaaaazaaaaazazbnaaaadydzhwhxdyhMewaaaaddhNhOhPdZhQddhRbNhShfhfhfhfhfhChfhfhfhSdlbHdnhleghThUhVdnaaaaaaaaaaaaaabyekeldqhWhXgAhYhZiaibdRiciddqbSbSbybybybyaa -aaazaaaaaaazazazbbbbbcazazdyhMdydzdydVdyazazddddddieifigddcfbNhBhfhfihhfhfhfhfhfhfhBdlbHdniiijikdndndnaaaaaaaaaaaaaabydMeldqilimdRindRiodqhKdRipdqbSdSbyaaaaaaaa -aaazaaaaaaazaaaaaaaaaaaaaaazdzazdVazdzazaaaaaaaadddddddddddebNgKiqirisitiuisitiviwgKdlixdndndndndnaaaaaaaaaaaabybybybydodpdqiyiyfHdRfGgUdqiziAiBdqbScSbybybybyaa -bbiCbnaaazazaaaaaaaaaaaaaadydVdydzdydVdyaaaaaaaaddiDiEiFiGcIcJgKgKiHiIiIiIiIiIiJgKgKiKcPbPcQbHbFaaaaaaaaaaaaaabQbScSbTekeldqdqdqdqdqiLiMdqdqdqdqdqiNiObybWiPbyaa -azbmbbiQbmbmaaaaaaaaaaaaaadydzdydzdydVewaaaaaaaaddiRiSiSiTcfiUchcichchchiVchchchiWiXiYbHclbHiZccbababacbbababacpjabSjbekdtcVcWjcjdcWcWjejfjdcWjgcVjhbScBcCjibyaa -bbbmjjbbbbbmaaaabbazazazazevhxdydzdyhMewazazazazddjkjljmiGjnjojpbLjqbHbHjrbHbHjqjsbHbHbObPbHbHbFaaaaaaaaaaaaaabQbSbSbTjtcwcvcwjucwjvjwelbSbSbSbSczbScAbybWjxbyaa -jyjzbnjAbbbbaaaaaaaaaaaaaaaaazaajBaaazaaaaaaaaaaddddddddddaDbtaDaDaDjCjDjEjCjDaDaDaDbxaDaDaDaDaDaaaaaaaaaaaaaabybybybybybyjFjFjFjFjFjGjHjFjFjFjFjFbybybybybybyaa -jyjIbnbnaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDjJaQaDaDjKbHbHbNbHbHjLaDaDjMjNaDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajFjOjPjQjRjSjTjUjVjPjWjFaaaaaaaaaaaaaa -jXjXjYjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDaUaQaDbHbHkabHkbbHkcbHkdaDaUaUaDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajFkekfkgkhkhjTkhkikjkkjFaaaaaaaaaaaaaa -jyjXklkmaaazaaaaaaaaazaaaaaaaaaaaaazaaaaaaaaaaaaaaaaaaaaaDknaQaDkobHbHbHbNkpbHbHkqaDkrksaDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajFjFjFktkhkhjTkhkujFjFjFaaaaaaaaaaaaaa -kvjykwkmazaaazazazazaaaaaaaaazaWazaaaaazazazazazazazazazaDaDaQkxkybHkzbHkAbHkabHkBaDaUaDaDazazazazazazazazazazazazazazazazjFkCkfkgkhkDkEkhkikjkFjFaaaaaaaaaaaaaa -kGkHkIkmaaaaaaaaaaaaaaaaaaazaaacacaaaaaaaaaaaaaaaaaaaaaaaaaDkJaDkobHbHbHbNbHbHbHkqaDaUaDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajFkKjPkgkLkMkMkLkijPkNjFaaaaaaaaaaaaaa -kOjXkPkQaaazaaaaaaaaaaaaazaakRackSacaaazaaaaaaaaaaaaaaaaaaaDaDaDbHbHkabHkbbHkabHbHaDaDaDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajFjFjFjFjFkTkUjFjFjFjFjFaaaaaaaaaaaaaa -aakVbnbnaaaaaaaaaaaaaaaaaaaaackWkSacaaaaaaaaaaaaaaaaaaaaaaaaaaaDaDjqbHbHkXbHbHjqaDaDaaaaaaaaaaaaaaaaaaaaacayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -azbnbnaaaaaaaaaaaaaaaaaaaaaaackWaykYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDaDbFaDbFaDbFaDaDaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaykZayacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaylalaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaacayayayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacayacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ->>>>>>> a6662da11d4773a668f259b23220bcf1dde43c25 "} From 896fbdeed7c7af7c4390b33e622393b6415fa967 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sun, 30 Jul 2017 14:10:59 -0500 Subject: [PATCH 024/219] Update sound.dm --- code/__DEFINES/sound.dm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm index 6dc43fb959..620d8bed10 100644 --- a/code/__DEFINES/sound.dm +++ b/code/__DEFINES/sound.dm @@ -5,6 +5,9 @@ #define CHANNEL_JUKEBOX 1021 #define CHANNEL_JUSTICAR_ARK 1020 #define CHANNEL_HEARTBEAT 1019 //sound channel for heartbeats +#define CHANNEL_AMBIENCE 1018 +#define CHANNEL_BUZZ 1017 +#define CHANNEL_BICYCLE 1016 //Citadel code #define CHANNEL_PRED 1018 @@ -12,5 +15,8 @@ //THIS SHOULD ALWAYS BE THE LOWEST ONE! //KEEP IT UPDATED -#define CHANNEL_HIGHEST_AVAILABLE 1017 +#define CHANNEL_HIGHEST_AVAILABLE 1015 +#define CHANNEL_HIGHEST_AVAILABLE 1017 +#define SOUND_MINIMUM_PRESSURE 10 +#define FALLOFF_SOUNDS 0.5 From 0ac85c6756a1a06675b9bf5c20c684e058458e8f Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sun, 30 Jul 2017 14:43:35 -0500 Subject: [PATCH 025/219] Update sound.dm --- code/game/sound.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/sound.dm b/code/game/sound.dm index adee6b39e2..aa41e0c7e3 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -176,6 +176,6 @@ 'sound/vore/prey/death_10.ogg') return soundin -/proc/playsound_global(file, repeat=0, wait, channel, volume) +/proc/playsound_global(file, repeat = 0, wait, channel, volume) for(var/V in GLOB.clients) V << sound(file, repeat, wait, channel, volume) From a98322d497b963760809fad1cce72e5112835640 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 30 Jul 2017 19:58:11 -0500 Subject: [PATCH 026/219] Removes a rogue period from the sliver theft objective --- code/game/gamemodes/objective.dm | 2 +- code/game/gamemodes/objective_items.dm | 58 +++++++++++++------------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index 867ab6e573..576447c540 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -456,7 +456,7 @@ GLOBAL_LIST_EMPTY(possible_items) targetinfo = item steal_target = targetinfo.targetitem - explanation_text = "Steal [targetinfo.name]." + explanation_text = "Steal [targetinfo.name]" give_special_equipment(targetinfo.special_equipment) return steal_target else diff --git a/code/game/gamemodes/objective_items.dm b/code/game/gamemodes/objective_items.dm index 703f1a9760..43067d4c22 100644 --- a/code/game/gamemodes/objective_items.dm +++ b/code/game/gamemodes/objective_items.dm @@ -12,72 +12,72 @@ return 1 /datum/objective_item/steal/caplaser - name = "the captain's antique laser gun" + name = "the captain's antique laser gun." targetitem = /obj/item/weapon/gun/energy/laser/captain difficulty = 5 excludefromjob = list("Captain") /datum/objective_item/steal/hoslaser - name = "the head of security's personal laser gun" + name = "the head of security's personal laser gun." targetitem = /obj/item/weapon/gun/energy/e_gun/hos difficulty = 10 excludefromjob = list("Head Of Security") /datum/objective_item/steal/handtele - name = "a hand teleporter" + name = "a hand teleporter." targetitem = /obj/item/weapon/hand_tele difficulty = 5 excludefromjob = list("Captain") /datum/objective_item/steal/jetpack - name = "the Captain's jetpack" + name = "the Captain's jetpack." targetitem = /obj/item/weapon/tank/jetpack/oxygen/captain difficulty = 5 excludefromjob = list("Captain") /datum/objective_item/steal/magboots - name = "the chief engineer's advanced magnetic boots" + name = "the chief engineer's advanced magnetic boots." targetitem = /obj/item/clothing/shoes/magboots/advance difficulty = 5 excludefromjob = list("Chief Engineer") /datum/objective_item/steal/capmedal - name = "the medal of captaincy" + name = "the medal of captaincy." targetitem = /obj/item/clothing/accessory/medal/gold/captain difficulty = 5 excludefromjob = list("Captain") /datum/objective_item/steal/hypo - name = "the hypospray" + name = "the hypospray." targetitem = /obj/item/weapon/reagent_containers/hypospray/CMO difficulty = 5 excludefromjob = list("Chief Medical Officer") /datum/objective_item/steal/nukedisc - name = "the nuclear authentication disk" + name = "the nuclear authentication disk." targetitem = /obj/item/weapon/disk/nuclear difficulty = 5 excludefromjob = list("Captain") /datum/objective_item/steal/reflector - name = "a reflector vest" + name = "a reflector vest." targetitem = /obj/item/clothing/suit/armor/laserproof difficulty = 3 excludefromjob = list("Head of Security", "Warden") /datum/objective_item/steal/reactive - name = "the reactive teleport armor" + name = "the reactive teleport armor." targetitem = /obj/item/clothing/suit/armor/reactive difficulty = 5 excludefromjob = list("Research Director") /datum/objective_item/steal/documents - name = "any set of secret documents of any organization" + name = "any set of secret documents of any organization." targetitem = /obj/item/documents //Any set of secret documents. Doesn't have to be NT's difficulty = 5 /datum/objective_item/steal/nuke_core - name = "the heavily radioactive plutonium core from the onboard self-destruct. Take care to wear the proper safety equipment when extracting the core" + name = "the heavily radioactive plutonium core from the onboard self-destruct. Take care to wear the proper safety equipment when extracting the core!" targetitem = /obj/item/nuke_core difficulty = 15 @@ -96,7 +96,7 @@ //Items with special checks! /datum/objective_item/steal/plasma - name = "28 moles of plasma (full tank)" + name = "28 moles of plasma (full tank)." targetitem = /obj/item/weapon/tank difficulty = 3 excludefromjob = list("Chief Engineer","Research Director","Station Engineer","Scientist","Atmospheric Technician") @@ -109,7 +109,7 @@ /datum/objective_item/steal/functionalai - name = "a functional AI" + name = "a functional AI." targetitem = /obj/item/device/aicard difficulty = 20 //beyond the impossible @@ -120,7 +120,7 @@ return 0 /datum/objective_item/steal/blueprints - name = "the station blueprints" + name = "the station blueprints." targetitem = /obj/item/areaeditor/blueprints difficulty = 10 excludefromjob = list("Chief Engineer") @@ -136,7 +136,7 @@ return 0 /datum/objective_item/steal/slime - name = "an unused sample of slime extract" + name = "an unused sample of slime extract." targetitem = /obj/item/slime_extract difficulty = 3 excludefromjob = list("Research Director","Scientist") @@ -148,54 +148,54 @@ //Unique Objectives /datum/objective_item/unique/docs_red - name = "the \"Red\" secret documents" + name = "the \"Red\" secret documents." targetitem = /obj/item/documents/syndicate/red difficulty = 10 /datum/objective_item/unique/docs_blue - name = "the \"Blue\" secret documents" + name = "the \"Blue\" secret documents." targetitem = /obj/item/documents/syndicate/blue difficulty = 10 //Old ninja objectives. /datum/objective_item/special/pinpointer - name = "the captain's pinpointer" + name = "the captain's pinpointer." targetitem = /obj/item/weapon/pinpointer difficulty = 10 /datum/objective_item/special/aegun - name = "an advanced energy gun" + name = "an advanced energy gun." targetitem = /obj/item/weapon/gun/energy/e_gun/nuclear difficulty = 10 /datum/objective_item/special/ddrill - name = "a diamond drill" + name = "a diamond drill." targetitem = /obj/item/weapon/pickaxe/drill/diamonddrill difficulty = 10 /datum/objective_item/special/boh - name = "a bag of holding" + name = "a bag of holding." targetitem = /obj/item/weapon/storage/backpack/holding difficulty = 10 /datum/objective_item/special/hypercell - name = "a hyper-capacity cell" + name = "a hyper-capacity power cell." targetitem = /obj/item/weapon/stock_parts/cell/hyper difficulty = 5 /datum/objective_item/special/laserpointer - name = "a laser pointer" + name = "a laser pointer." targetitem = /obj/item/device/laser_pointer difficulty = 5 /datum/objective_item/special/corgimeat - name = "a piece of corgi meat" + name = "a piece of corgi meat." targetitem = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi difficulty = 5 //Stack objectives get their own subtype /datum/objective_item/stack - name = "5 cardboards" + name = "5 cardboard." targetitem = /obj/item/stack/sheet/cardboard difficulty = 9001 @@ -208,16 +208,16 @@ return found_amount>=target_amount /datum/objective_item/stack/diamond - name = "10 diamonds" + name = "10 diamonds." targetitem = /obj/item/stack/sheet/mineral/diamond difficulty = 10 /datum/objective_item/stack/gold - name = "50 gold bars" + name = "50 gold bars." targetitem = /obj/item/stack/sheet/mineral/gold difficulty = 15 /datum/objective_item/stack/uranium - name = "25 refined uranium bars" + name = "25 refined uranium bars." targetitem = /obj/item/stack/sheet/mineral/uranium difficulty = 10 From b953db165d63937ba674097806d9b027f239dcd9 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 30 Jul 2017 19:58:21 -0500 Subject: [PATCH 027/219] Colossus's shotgun is now a static-spread blast of 6 bolts --- .../hostile/megafauna/colossus.dm | 79 ++++++------------- code/modules/projectiles/projectile.dm | 2 +- 2 files changed, 25 insertions(+), 56 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index b5d88fe450..1e47342416 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -78,7 +78,7 @@ Difficulty: Very Hard double_spiral() else visible_message("\"Judgement.\"") - INVOKE_ASYNC(src, .proc/spiral_shoot, rand(0, 1)) + INVOKE_ASYNC(src, .proc/spiral_shoot, pick(TRUE, FALSE)) else if(prob(20)) ranged_cooldown = world.time + 30 @@ -142,46 +142,11 @@ Difficulty: Very Hard sleep(10) INVOKE_ASYNC(src, .proc/spiral_shoot) - INVOKE_ASYNC(src, .proc/spiral_shoot, 1) + INVOKE_ASYNC(src, .proc/spiral_shoot, TRUE) -/mob/living/simple_animal/hostile/megafauna/colossus/proc/spiral_shoot(negative = 0, counter_start = 1) +/mob/living/simple_animal/hostile/megafauna/colossus/proc/spiral_shoot(negative = FALSE, counter_start = 8) var/counter = counter_start - var/turf/marker for(var/i in 1 to 80) - switch(counter) - if(1) - marker = locate(x, y - 2, z) - if(2) - marker = locate(x - 1, y - 2, z) - if(3) - marker = locate(x - 2, y - 2, z) - if(4) - marker = locate(x - 2, y - 1, z) - if(5) - marker = locate(x - 2, y, z) - if(6) - marker = locate(x - 2, y + 1, z) - if(7) - marker = locate(x - 2, y + 2, z) - if(8) - marker = locate(x - 1, y + 2, z) - if(9) - marker = locate(x, y + 2, z) - if(10) - marker = locate(x + 1, y + 2, z) - if(11) - marker = locate(x + 2, y + 2, z) - if(12) - marker = locate(x + 2, y + 1, z) - if(13) - marker = locate(x + 2, y, z) - if(14) - marker = locate(x + 2, y - 1, z) - if(15) - marker = locate(x + 2, y - 2, z) - if(16) - marker = locate(x + 1, y - 2, z) - if(negative) counter-- else @@ -190,25 +155,25 @@ Difficulty: Very Hard counter = 1 if(counter < 1) counter = 16 - shoot_projectile(marker) + shoot_projectile(null, counter * 22.5) playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 20, 1) sleep(1) -/mob/living/simple_animal/hostile/megafauna/colossus/proc/shoot_projectile(turf/marker) - if(!marker || marker == loc) +/mob/living/simple_animal/hostile/megafauna/colossus/proc/shoot_projectile(turf/marker, set_angle) + if(!isnum(set_angle) && (!marker || marker == loc)) return var/turf/startloc = get_turf(src) var/obj/item/projectile/P = new /obj/item/projectile/colossus(startloc) P.current = startloc P.starting = startloc P.firer = src - P.yo = marker.y - startloc.y - P.xo = marker.x - startloc.x + if(marker) + P.yo = marker.y - startloc.y + P.xo = marker.x - startloc.x + P.original = marker if(target) P.original = target - else - P.original = marker - P.fire() + P.fire(set_angle) /mob/living/simple_animal/hostile/megafauna/colossus/proc/random_shots() var/turf/U = get_turf(src) @@ -217,17 +182,21 @@ Difficulty: Very Hard if(prob(5)) shoot_projectile(T) -/mob/living/simple_animal/hostile/megafauna/colossus/proc/blast() - playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 200, 1, 2) - var/turf/T = get_turf(target) - newtonian_move(get_dir(T, targets_from)) - for(var/turf/turf in range(1, T)) - shoot_projectile(turf) +/mob/living/simple_animal/hostile/megafauna/colossus/proc/blast(set_angle) + var/turf/target_turf = get_turf(target) + playsound(src, 'sound/magic/clockwork/invoke_general.ogg', 200, 1, 2) + newtonian_move(get_dir(target_turf, src)) + var/angle_to_target = Get_Angle(src, target_turf) + if(isnum(set_angle)) + angle_to_target = set_angle + var/static/list/colossus_shotgun_shot_angles = list(12.5, 7.5, 2.5, -2.5, -7.5, -12.5) + for(var/i in colossus_shotgun_shot_angles) + shoot_projectile(null, angle_to_target + i) /mob/living/simple_animal/hostile/megafauna/colossus/proc/dir_shots(list/dirs) if(!islist(dirs)) dirs = GLOB.alldirs.Copy() - playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 200, 1, 2) + playsound(src, 'sound/magic/clockwork/invoke_general.ogg', 200, 1, 2) for(var/d in dirs) var/turf/E = get_step(src, d) shoot_projectile(E) @@ -235,9 +204,9 @@ Difficulty: Very Hard /mob/living/simple_animal/hostile/megafauna/colossus/proc/telegraph() for(var/mob/M in range(10,src)) if(M.client) - flash_color(M.client, rgb(200, 0, 0), 1) + flash_color(M.client, "#C80000", 1) shake_camera(M, 4, 3) - playsound(get_turf(src),'sound/magic/clockwork/narsie_attack.ogg', 200, 1) + playsound(src, 'sound/magic/clockwork/narsie_attack.ogg', 200, 1) diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 3508c39bb2..528c33e631 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -203,7 +203,7 @@ direct_target.bullet_act(src, def_zone) qdel(src) return - if(setAngle) + if(isnum(setAngle)) Angle = setAngle var/old_pixel_x = pixel_x var/old_pixel_y = pixel_y From 6e7fff25678265ae293a6466b7cbe215d7c31d76 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 30 Jul 2017 23:12:51 -0500 Subject: [PATCH 028/219] Automatic changelog generation for PR #2189 [ci skip] --- html/changelogs/AutoChangeLog-pr-2189.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2189.yml diff --git a/html/changelogs/AutoChangeLog-pr-2189.yml b/html/changelogs/AutoChangeLog-pr-2189.yml new file mode 100644 index 0000000000..2bdbc7d471 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2189.yml @@ -0,0 +1,5 @@ +author: "Raeschen" +delete-after: True +changes: + - rscdel: "Removed a whole bunch of hivebots." + - rscadd: "Added stronger hivebots." From c4cf30c4ebd96cab63007e686164e05dcd7f8444 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 30 Jul 2017 23:15:34 -0500 Subject: [PATCH 029/219] Automatic changelog generation for PR #2154 [ci skip] --- html/changelogs/AutoChangeLog-pr-2154.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2154.yml diff --git a/html/changelogs/AutoChangeLog-pr-2154.yml b/html/changelogs/AutoChangeLog-pr-2154.yml new file mode 100644 index 0000000000..bb61e5cf17 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2154.yml @@ -0,0 +1,4 @@ +author: "JStheguy" +delete-after: True +changes: + - imageadd: "Most alcohol bottles have been resprited, as well as a poster that used one of the current bottles as part of it's design." From feeb6cdd8be5c37209c4f30e5d4571ee37fab3b5 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sun, 30 Jul 2017 23:24:59 -0500 Subject: [PATCH 030/219] Update game_mode.dm --- code/game/gamemodes/game_mode.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 349656d48b..39a71f85c5 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -266,7 +266,7 @@ if(escaped_total > 0) SSblackbox.set_val("escaped_total",escaped_total) send2irc("Server", "Round just ended.") - if(cult.len && !istype(SSticker.mode,/datum/game_mode/cult)) + if(cult.len && !istype(SSticker.mode, /datum/game_mode/cult)) datum_cult_completion() From 40216683e0cc1f277221607aeb305cafed9c1648 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sun, 30 Jul 2017 23:26:16 -0500 Subject: [PATCH 031/219] Update gibspawner.dm --- .../objects/effects/spawners/gibspawner.dm | 244 +++++++++--------- 1 file changed, 122 insertions(+), 122 deletions(-) diff --git a/code/game/objects/effects/spawners/gibspawner.dm b/code/game/objects/effects/spawners/gibspawner.dm index 6c9db52f2d..20ccfbdca5 100644 --- a/code/game/objects/effects/spawners/gibspawner.dm +++ b/code/game/objects/effects/spawners/gibspawner.dm @@ -1,127 +1,127 @@ - -/obj/effect/gibspawner - var/sparks = 0 //whether sparks spread - var/virusProb = 20 //the chance for viruses to spread on the gibs - var/list/gibtypes = list() //typepaths of the gib decals to spawn - var/list/gibamounts = list() //amount to spawn for each gib decal type we'll spawn. - var/list/gibdirections = list() //of lists of possible directions to spread each gib decal type towards. - -/obj/effect/gibspawner/Initialize(mapload, list/viruses, datum/dna/MobDNA) - ..() - - if(gibtypes.len != gibamounts.len || gibamounts.len != gibdirections.len) - to_chat(world, "Gib list length mismatch!") - return - - var/obj/effect/decal/cleanable/blood/gibs/gib = null - - if(sparks) - var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread - s.set_up(2, 1, loc) - s.start() - - for(var/i = 1, i<= gibtypes.len, i++) - if(gibamounts[i]) - for(var/j = 1, j<= gibamounts[i], j++) - var/gibType = gibtypes[i] - gib = new gibType(loc) - if(iscarbon(loc)) - var/mob/living/carbon/digester = loc - digester.stomach_contents += gib - - if(viruses && viruses.len > 0) - for(var/datum/disease/D in viruses) - if(prob(virusProb)) - var/datum/disease/viruus = D.Copy(1) - gib.viruses += viruus - viruus.holder = gib - - if(MobDNA) - gib.blood_DNA[MobDNA.unique_enzymes] = MobDNA.blood_type - else if(istype(src, /obj/effect/gibspawner/generic)) // Probably a monkey - gib.blood_DNA["Non-human DNA"] = "A+" - var/list/directions = gibdirections[i] - if(isturf(loc)) - if(directions.len) - gib.streak(directions) - - qdel(src) - - - -/obj/effect/gibspawner/generic + +/obj/effect/gibspawner + var/sparks = 0 //whether sparks spread + var/virusProb = 20 //the chance for viruses to spread on the gibs + var/list/gibtypes = list() //typepaths of the gib decals to spawn + var/list/gibamounts = list() //amount to spawn for each gib decal type we'll spawn. + var/list/gibdirections = list() //of lists of possible directions to spread each gib decal type towards. + +/obj/effect/gibspawner/Initialize(mapload, list/viruses, datum/dna/MobDNA) + ..() + + if(gibtypes.len != gibamounts.len || gibamounts.len != gibdirections.len) + to_chat(world, "Gib list length mismatch!") + return + + var/obj/effect/decal/cleanable/blood/gibs/gib = null + + if(sparks) + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + s.set_up(2, 1, loc) + s.start() + + for(var/i = 1, i<= gibtypes.len, i++) + if(gibamounts[i]) + for(var/j = 1, j<= gibamounts[i], j++) + var/gibType = gibtypes[i] + gib = new gibType(loc) + if(iscarbon(loc)) + var/mob/living/carbon/digester = loc + digester.stomach_contents += gib + + if(viruses && viruses.len > 0) + for(var/datum/disease/D in viruses) + if(prob(virusProb)) + var/datum/disease/viruus = D.Copy(1) + gib.viruses += viruus + viruus.holder = gib + + if(MobDNA) + gib.blood_DNA[MobDNA.unique_enzymes] = MobDNA.blood_type + else if(istype(src, /obj/effect/gibspawner/generic)) // Probably a monkey + gib.blood_DNA["Non-human DNA"] = "A+" + var/list/directions = gibdirections[i] + if(isturf(loc)) + if(directions.len) + gib.streak(directions) + + qdel(src) + + + +/obj/effect/gibspawner/generic gibtypes = list(/obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/core) - gibamounts = list(2,2,1) - -/obj/effect/gibspawner/generic/Initialize() - playsound(src, 'sound/effects/blobattack.ogg', 40, 1) - gibdirections = list(list(WEST, NORTHWEST, SOUTHWEST, NORTH),list(EAST, NORTHEAST, SOUTHEAST, SOUTH), list()) - ..() - -/obj/effect/gibspawner/human - gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/up,/obj/effect/decal/cleanable/blood/gibs/down,/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs/body,/obj/effect/decal/cleanable/blood/gibs/limb,/obj/effect/decal/cleanable/blood/gibs/core) - gibamounts = list(1,1,1,1,1,1,1) - -/obj/effect/gibspawner/human/Initialize() - playsound(src, 'sound/effects/blobattack.ogg', 50, 1) - gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, GLOB.alldirs, list()) - ..() - - -/obj/effect/gibspawner/humanbodypartless //only the gibs that don't look like actual full bodyparts (except torso). + gibamounts = list(2,2,1) + +/obj/effect/gibspawner/generic/Initialize() + playsound(src, 'sound/effects/blobattack.ogg', 40, 1) + gibdirections = list(list(WEST, NORTHWEST, SOUTHWEST, NORTH),list(EAST, NORTHEAST, SOUTHEAST, SOUTH), list()) + . = ..() + +/obj/effect/gibspawner/human + gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/up, /obj/effect/decal/cleanable/blood/gibs/down, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/body, /obj/effect/decal/cleanable/blood/gibs/limb, /obj/effect/decal/cleanable/blood/gibs/core) + gibamounts = list(1,1,1,1,1,1,1) + +/obj/effect/gibspawner/human/Initialize() + playsound(src, 'sound/effects/blobattack.ogg', 50, 1) + gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, GLOB.alldirs, list()) + . = ..() + + +/obj/effect/gibspawner/humanbodypartless //only the gibs that don't look like actual full bodyparts (except torso). gibtypes = list(/obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/core, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/core, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/torso) - gibamounts = list(1, 1, 1, 1, 1, 1) - -/obj/effect/gibspawner/humanbodypartless/Initialize() - playsound(src, 'sound/effects/blobattack.ogg', 50, 1) - gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, list()) - ..() - - -/obj/effect/gibspawner/xeno + gibamounts = list(1, 1, 1, 1, 1, 1) + +/obj/effect/gibspawner/humanbodypartless/Initialize() + playsound(src, 'sound/effects/blobattack.ogg', 50, 1) + gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, list()) + . = ..() + + +/obj/effect/gibspawner/xeno gibtypes = list(/obj/effect/decal/cleanable/xenoblood/xgibs/up, /obj/effect/decal/cleanable/xenoblood/xgibs/down, /obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/body, /obj/effect/decal/cleanable/xenoblood/xgibs/limb, /obj/effect/decal/cleanable/xenoblood/xgibs/core) - gibamounts = list(1,1,1,1,1,1,1) - -/obj/effect/gibspawner/xeno/Initialize() - playsound(src, 'sound/effects/blobattack.ogg', 60, 1) - gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, GLOB.alldirs, list()) - ..() - - -/obj/effect/gibspawner/xenobodypartless //only the gibs that don't look like actual full bodyparts (except torso). + gibamounts = list(1,1,1,1,1,1,1) + +/obj/effect/gibspawner/xeno/Initialize() + playsound(src, 'sound/effects/blobattack.ogg', 60, 1) + gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, GLOB.alldirs, list()) + . = ..() + + +/obj/effect/gibspawner/xenobodypartless //only the gibs that don't look like actual full bodyparts (except torso). gibtypes = list(/obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/core, /obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/core, /obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/torso) - gibamounts = list(1, 1, 1, 1, 1, 1) - - -/obj/effect/gibspawner/xenobodypartless/Initialize() - playsound(src, 'sound/effects/blobattack.ogg', 60, 1) - gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, list()) - ..() - -/obj/effect/gibspawner/larva - gibtypes = list(/obj/effect/decal/cleanable/xenoblood/xgibs/larva, /obj/effect/decal/cleanable/xenoblood/xgibs/larva, /obj/effect/decal/cleanable/xenoblood/xgibs/larva/body, /obj/effect/decal/cleanable/xenoblood/xgibs/larva/body) - gibamounts = list(1, 1, 1, 1) - -/obj/effect/gibspawner/larva/Initialize() - playsound(src, 'sound/effects/blobattack.ogg', 60, 1) - gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST), list(), GLOB.alldirs) - ..() - -/obj/effect/gibspawner/larvabodypartless - gibtypes = list(/obj/effect/decal/cleanable/xenoblood/xgibs/larva, /obj/effect/decal/cleanable/xenoblood/xgibs/larva, /obj/effect/decal/cleanable/xenoblood/xgibs/larva) - gibamounts = list(1, 1, 1) - -/obj/effect/gibspawner/larvabodypartless/Initialize() - playsound(src, 'sound/effects/blobattack.ogg', 60, 1) - gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST), list()) - ..() - -/obj/effect/gibspawner/robot - sparks = 1 + gibamounts = list(1, 1, 1, 1, 1, 1) + + +/obj/effect/gibspawner/xenobodypartless/Initialize() + playsound(src, 'sound/effects/blobattack.ogg', 60, 1) + gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, list()) + . = ..() + +/obj/effect/gibspawner/larva + gibtypes = list(/obj/effect/decal/cleanable/xenoblood/xgibs/larva, /obj/effect/decal/cleanable/xenoblood/xgibs/larva, /obj/effect/decal/cleanable/xenoblood/xgibs/larva/body, /obj/effect/decal/cleanable/xenoblood/xgibs/larva/body) + gibamounts = list(1, 1, 1, 1) + +/obj/effect/gibspawner/larva/Initialize() + playsound(src, 'sound/effects/blobattack.ogg', 60, 1) + gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST), list(), GLOB.alldirs) + . = ..() + +/obj/effect/gibspawner/larvabodypartless + gibtypes = list(/obj/effect/decal/cleanable/xenoblood/xgibs/larva, /obj/effect/decal/cleanable/xenoblood/xgibs/larva, /obj/effect/decal/cleanable/xenoblood/xgibs/larva) + gibamounts = list(1, 1, 1) + +/obj/effect/gibspawner/larvabodypartless/Initialize() + playsound(src, 'sound/effects/blobattack.ogg', 60, 1) + gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST), list()) + . = ..() + +/obj/effect/gibspawner/robot + sparks = 1 gibtypes = list(/obj/effect/decal/cleanable/robot_debris/up, /obj/effect/decal/cleanable/robot_debris/down, /obj/effect/decal/cleanable/robot_debris, /obj/effect/decal/cleanable/robot_debris, /obj/effect/decal/cleanable/robot_debris, /obj/effect/decal/cleanable/robot_debris/limb) - gibamounts = list(1,1,1,1,1,1) - -/obj/effect/gibspawner/robot/Initialize() - gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, GLOB.alldirs) - gibamounts[6] = pick(0,1,2) - ..() + gibamounts = list(1,1,1,1,1,1) + +/obj/effect/gibspawner/robot/Initialize() + gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, GLOB.alldirs) + gibamounts[6] = pick(0,1,2) + ..() From 85885330ba57d4c388f0a8977bb0177eeb50e3c7 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sun, 30 Jul 2017 23:29:36 -0500 Subject: [PATCH 032/219] Update hardsuit.dm --- code/modules/clothing/spacesuits/hardsuit.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index d9a295e2d8..691e879816 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -304,7 +304,7 @@ item_color = "syndi" w_class = WEIGHT_CLASS_NORMAL armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50, fire = 50, acid = 90) - allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/transforming/energy/sword/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals) + allowed = list(/obj/item/weapon/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/melee/energy/sword/saber, /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/tank/internals) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi jetpack = /obj/item/weapon/tank/jetpack/suit @@ -698,7 +698,7 @@ item_state = "syndie_hardsuit" item_color = "syndi" armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50, fire = 100, acid = 100) - allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/transforming/energy/sword/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals) + allowed = list(/obj/item/weapon/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/melee/energy/sword/saber, /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/tank/internals) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/syndi slowdown = 0 From e3dfc8b61dce93fd1ca06756f576fe33082d35da Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sun, 30 Jul 2017 23:30:51 -0500 Subject: [PATCH 033/219] Update miscellaneous.dm --- code/modules/clothing/spacesuits/miscellaneous.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index c4303e6552..5e7d02cc6a 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -146,7 +146,7 @@ Contains: item_state = "pirate" w_class = WEIGHT_CLASS_NORMAL flags_inv = 0 - allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals, /obj/item/weapon/melee/transforming/energy/sword/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/weapon/reagent_containers/food/drinks/bottle/rum) + allowed = list(/obj/item/weapon/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/tank/internals, /obj/item/weapon/melee/energy/sword/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/weapon/reagent_containers/food/drinks/bottle/rum) slowdown = 0 armor = list(melee = 30, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 60, acid = 75) strip_delay = 40 From a99fa2ea496addeb0ec0b062ecd1d25b06adeb12 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sun, 30 Jul 2017 23:31:33 -0500 Subject: [PATCH 034/219] Update plasmamen.dm --- code/modules/clothing/spacesuits/plasmamen.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm index 35fb43f87b..95ddeceb65 100644 --- a/code/modules/clothing/spacesuits/plasmamen.dm +++ b/code/modules/clothing/spacesuits/plasmamen.dm @@ -4,7 +4,7 @@ /obj/item/clothing/suit/space/eva/plasmaman name = "EVA plasma envirosuit" desc = "A special plasma containment suit designed to be space-worthy, as well as worn over other clothing. Like it's smaller counterpart, it can automatically extinguish the wearer in a crisis, and holds twice as many charges." - allowed = list(/obj/item/weapon/gun,/obj/item/ammo_casing,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/transforming/energy/sword,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank) + allowed = list(/obj/item/weapon/gun, /obj/item/ammo_casing, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/melee/energy/sword, /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/tank) armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0, fire = 100, acid = 75) resistance_flags = FIRE_PROOF icon_state = "plasmaman_suit" From 4c0c11524bd540d0a2e09b2e127490f62d4ebb6b Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sun, 30 Jul 2017 23:32:50 -0500 Subject: [PATCH 035/219] Update syndi.dm --- code/modules/clothing/spacesuits/syndi.dm | 294 +++++++++++----------- 1 file changed, 147 insertions(+), 147 deletions(-) diff --git a/code/modules/clothing/spacesuits/syndi.dm b/code/modules/clothing/spacesuits/syndi.dm index 5c64764813..30e2355a36 100644 --- a/code/modules/clothing/spacesuits/syndi.dm +++ b/code/modules/clothing/spacesuits/syndi.dm @@ -1,147 +1,147 @@ -//Regular syndicate space suit -/obj/item/clothing/head/helmet/space/syndicate - name = "red space helmet" - icon_state = "syndicate" - item_state = "syndicate" - desc = "Has a tag on it: Totally not property of an enemy corporation, honest!" - armor = list(melee = 40, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 80, acid = 85) - -/obj/item/clothing/suit/space/syndicate - name = "red space suit" - icon_state = "syndicate" - item_state = "space_suit_syndicate" - desc = "Has a tag on it: Totally not property of an enemy corporation, honest!" - w_class = WEIGHT_CLASS_NORMAL - allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/transforming/energy/sword/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals) - armor = list(melee = 40, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 80, acid = 85) - - -//Green syndicate space suit -/obj/item/clothing/head/helmet/space/syndicate/green - name = "green space helmet" - icon_state = "syndicate-helm-green" - item_state = "syndicate-helm-green" - -/obj/item/clothing/suit/space/syndicate/green - name = "green space suit" - icon_state = "syndicate-green" - item_state = "syndicate-green" - - -//Dark green syndicate space suit -/obj/item/clothing/head/helmet/space/syndicate/green/dark - name = "dark green space helmet" - icon_state = "syndicate-helm-green-dark" - item_state = "syndicate-helm-green-dark" - -/obj/item/clothing/suit/space/syndicate/green/dark - name = "dark green space suit" - icon_state = "syndicate-green-dark" - item_state = "syndicate-green-dark" - - -//Orange syndicate space suit -/obj/item/clothing/head/helmet/space/syndicate/orange - name = "orange space helmet" - icon_state = "syndicate-helm-orange" - item_state = "syndicate-helm-orange" - -/obj/item/clothing/suit/space/syndicate/orange - name = "orange space suit" - icon_state = "syndicate-orange" - item_state = "syndicate-orange" - -//Blue syndicate space suit -/obj/item/clothing/head/helmet/space/syndicate/blue - name = "blue space helmet" - icon_state = "syndicate-helm-blue" - item_state = "syndicate-helm-blue" - -/obj/item/clothing/suit/space/syndicate/blue - name = "blue space suit" - icon_state = "syndicate-blue" - item_state = "syndicate-blue" - - -//Black syndicate space suit -/obj/item/clothing/head/helmet/space/syndicate/black - name = "black space helmet" - icon_state = "syndicate-helm-black" - item_state = "syndicate-helm-black" - -/obj/item/clothing/suit/space/syndicate/black - name = "black space suit" - icon_state = "syndicate-black" - item_state = "syndicate-black" - - -//Black-green syndicate space suit -/obj/item/clothing/head/helmet/space/syndicate/black/green - name = "black space helmet" - icon_state = "syndicate-helm-black-green" - item_state = "syndicate-helm-black-green" - -/obj/item/clothing/suit/space/syndicate/black/green - name = "black and green space suit" - icon_state = "syndicate-black-green" - item_state = "syndicate-black-green" - - -//Black-blue syndicate space suit -/obj/item/clothing/head/helmet/space/syndicate/black/blue - name = "black space helmet" - icon_state = "syndicate-helm-black-blue" - item_state = "syndicate-helm-black-blue" - -/obj/item/clothing/suit/space/syndicate/black/blue - name = "black and blue space suit" - icon_state = "syndicate-black-blue" - item_state = "syndicate-black-blue" - - -//Black medical syndicate space suit -/obj/item/clothing/head/helmet/space/syndicate/black/med - name = "black space helmet" - icon_state = "syndicate-helm-black-med" - item_state = "syndicate-helm-black" - -/obj/item/clothing/suit/space/syndicate/black/med - name = "green space suit" - icon_state = "syndicate-black-med" - item_state = "syndicate-black" - - -//Black-orange syndicate space suit -/obj/item/clothing/head/helmet/space/syndicate/black/orange - name = "black space helmet" - icon_state = "syndicate-helm-black-orange" - item_state = "syndicate-helm-black" - -/obj/item/clothing/suit/space/syndicate/black/orange - name = "black and orange space suit" - icon_state = "syndicate-black-orange" - item_state = "syndicate-black" - - -//Black-red syndicate space suit -/obj/item/clothing/head/helmet/space/syndicate/black/red - name = "black space helmet" - icon_state = "syndicate-helm-black-red" - item_state = "syndicate-helm-black-red" - -/obj/item/clothing/suit/space/syndicate/black/red - name = "black and red space suit" - icon_state = "syndicate-black-red" - item_state = "syndicate-black-red" - - -//Black with yellow/red engineering syndicate space suit -/obj/item/clothing/head/helmet/space/syndicate/black/engie - name = "black space helmet" - icon_state = "syndicate-helm-black-engie" - item_state = "syndicate-helm-black" - -/obj/item/clothing/suit/space/syndicate/black/engie - name = "black engineering space suit" - icon_state = "syndicate-black-engie" - item_state = "syndicate-black" +//Regular syndicate space suit +/obj/item/clothing/head/helmet/space/syndicate + name = "red space helmet" + icon_state = "syndicate" + item_state = "syndicate" + desc = "Has a tag on it: Totally not property of an enemy corporation, honest!" + armor = list(melee = 40, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 80, acid = 85) + +/obj/item/clothing/suit/space/syndicate + name = "red space suit" + icon_state = "syndicate" + item_state = "space_suit_syndicate" + desc = "Has a tag on it: Totally not property of an enemy corporation, honest!" + w_class = WEIGHT_CLASS_NORMAL + allowed = list(/obj/item/weapon/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/melee/energy/sword/saber, /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/tank/internals) + armor = list(melee = 40, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 80, acid = 85) + + +//Green syndicate space suit +/obj/item/clothing/head/helmet/space/syndicate/green + name = "green space helmet" + icon_state = "syndicate-helm-green" + item_state = "syndicate-helm-green" + +/obj/item/clothing/suit/space/syndicate/green + name = "green space suit" + icon_state = "syndicate-green" + item_state = "syndicate-green" + + +//Dark green syndicate space suit +/obj/item/clothing/head/helmet/space/syndicate/green/dark + name = "dark green space helmet" + icon_state = "syndicate-helm-green-dark" + item_state = "syndicate-helm-green-dark" + +/obj/item/clothing/suit/space/syndicate/green/dark + name = "dark green space suit" + icon_state = "syndicate-green-dark" + item_state = "syndicate-green-dark" + + +//Orange syndicate space suit +/obj/item/clothing/head/helmet/space/syndicate/orange + name = "orange space helmet" + icon_state = "syndicate-helm-orange" + item_state = "syndicate-helm-orange" + +/obj/item/clothing/suit/space/syndicate/orange + name = "orange space suit" + icon_state = "syndicate-orange" + item_state = "syndicate-orange" + +//Blue syndicate space suit +/obj/item/clothing/head/helmet/space/syndicate/blue + name = "blue space helmet" + icon_state = "syndicate-helm-blue" + item_state = "syndicate-helm-blue" + +/obj/item/clothing/suit/space/syndicate/blue + name = "blue space suit" + icon_state = "syndicate-blue" + item_state = "syndicate-blue" + + +//Black syndicate space suit +/obj/item/clothing/head/helmet/space/syndicate/black + name = "black space helmet" + icon_state = "syndicate-helm-black" + item_state = "syndicate-helm-black" + +/obj/item/clothing/suit/space/syndicate/black + name = "black space suit" + icon_state = "syndicate-black" + item_state = "syndicate-black" + + +//Black-green syndicate space suit +/obj/item/clothing/head/helmet/space/syndicate/black/green + name = "black space helmet" + icon_state = "syndicate-helm-black-green" + item_state = "syndicate-helm-black-green" + +/obj/item/clothing/suit/space/syndicate/black/green + name = "black and green space suit" + icon_state = "syndicate-black-green" + item_state = "syndicate-black-green" + + +//Black-blue syndicate space suit +/obj/item/clothing/head/helmet/space/syndicate/black/blue + name = "black space helmet" + icon_state = "syndicate-helm-black-blue" + item_state = "syndicate-helm-black-blue" + +/obj/item/clothing/suit/space/syndicate/black/blue + name = "black and blue space suit" + icon_state = "syndicate-black-blue" + item_state = "syndicate-black-blue" + + +//Black medical syndicate space suit +/obj/item/clothing/head/helmet/space/syndicate/black/med + name = "black space helmet" + icon_state = "syndicate-helm-black-med" + item_state = "syndicate-helm-black" + +/obj/item/clothing/suit/space/syndicate/black/med + name = "green space suit" + icon_state = "syndicate-black-med" + item_state = "syndicate-black" + + +//Black-orange syndicate space suit +/obj/item/clothing/head/helmet/space/syndicate/black/orange + name = "black space helmet" + icon_state = "syndicate-helm-black-orange" + item_state = "syndicate-helm-black" + +/obj/item/clothing/suit/space/syndicate/black/orange + name = "black and orange space suit" + icon_state = "syndicate-black-orange" + item_state = "syndicate-black" + + +//Black-red syndicate space suit +/obj/item/clothing/head/helmet/space/syndicate/black/red + name = "black space helmet" + icon_state = "syndicate-helm-black-red" + item_state = "syndicate-helm-black-red" + +/obj/item/clothing/suit/space/syndicate/black/red + name = "black and red space suit" + icon_state = "syndicate-black-red" + item_state = "syndicate-black-red" + + +//Black with yellow/red engineering syndicate space suit +/obj/item/clothing/head/helmet/space/syndicate/black/engie + name = "black space helmet" + icon_state = "syndicate-helm-black-engie" + item_state = "syndicate-helm-black" + +/obj/item/clothing/suit/space/syndicate/black/engie + name = "black engineering space suit" + icon_state = "syndicate-black-engie" + item_state = "syndicate-black" From bdcc4bc429a1f0d1158bf407a7863c820f092315 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sun, 30 Jul 2017 23:33:58 -0500 Subject: [PATCH 036/219] Update miscellaneous.dm --- code/modules/clothing/suits/miscellaneous.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 281440a8bd..71075142c6 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -450,7 +450,7 @@ icon_state = "coatcaptain" item_state = "coatcaptain" armor = list(melee = 25, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 0, acid = 50) - allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/melee/classic_baton/telescopic) + allowed = list(/obj/item/weapon/gun/energy, /obj/item/weapon/reagent_containers/spray/pepper, /obj/item/weapon/gun/ballistic, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/restraints/handcuffs, /obj/item/device/flashlight/seclite, /obj/item/weapon/melee/classic_baton/telescopic) hoodtype = /obj/item/clothing/head/hooded/winterhood/captain /obj/item/clothing/head/hooded/winterhood/captain @@ -461,7 +461,7 @@ icon_state = "coatsecurity" item_state = "coatsecurity" armor = list(melee = 25, bullet = 15, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 0, acid = 45) - allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight,/obj/item/weapon/melee/classic_baton/telescopic) + allowed = list(/obj/item/weapon/gun/energy, /obj/item/weapon/reagent_containers/spray/pepper, /obj/item/weapon/gun/ballistic, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/restraints/handcuffs, /obj/item/device/flashlight/seclite, /obj/item/weapon/melee/classic_baton/telescopic) hoodtype = /obj/item/clothing/head/hooded/winterhood/security /obj/item/clothing/head/hooded/winterhood/security From f90ddf05967c7142bd33cb4030d51b1f2e2040c7 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sun, 30 Jul 2017 23:35:11 -0500 Subject: [PATCH 037/219] Update lizard.dm --- code/modules/mob/living/simple_animal/friendly/lizard.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/friendly/lizard.dm b/code/modules/mob/living/simple_animal/friendly/lizard.dm index 3741d8cf58..c4e11cc2bd 100644 --- a/code/modules/mob/living/simple_animal/friendly/lizard.dm +++ b/code/modules/mob/living/simple_animal/friendly/lizard.dm @@ -22,7 +22,7 @@ devourable = TRUE obj_damage = 0 environment_smash = ENVIRONMENT_SMASH_NONE - var/static/list/edibles = typecacheof(list(/mob/living/simple_animal/butterfly,/mob/living/simple_animal/cockroach)) //list of atoms, however turfs won't affect AI, but will affect consumption. + var/static/list/edibles = typecacheof(list(/mob/living/simple_animal/butterfly, /mob/living/simple_animal/cockroach)) //list of atoms, however turfs won't affect AI, but will affect consumption. /mob/living/simple_animal/hostile/lizard/CanAttack(atom/the_target)//Can we actually attack a possible target? if(see_invisible < the_target.invisibility)//Target's invisible to us, forget it From fe37d52cc5e10322e43370470cb08ff1aa7072b0 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 31 Jul 2017 02:12:22 -0500 Subject: [PATCH 038/219] Update hardsuit.dm --- code/modules/clothing/spacesuits/hardsuit.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 691e879816..00f622b751 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -304,7 +304,7 @@ item_color = "syndi" w_class = WEIGHT_CLASS_NORMAL armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50, fire = 50, acid = 90) - allowed = list(/obj/item/weapon/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/melee/energy/sword/saber, /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/tank/internals) + allowed = list(/obj/item/weapon/gun, /obj/item/ammo_box,/obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/melee/transforming/energy/sword/saber, /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/tank/internals) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi jetpack = /obj/item/weapon/tank/jetpack/suit @@ -698,7 +698,7 @@ item_state = "syndie_hardsuit" item_color = "syndi" armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50, fire = 100, acid = 100) - allowed = list(/obj/item/weapon/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/melee/energy/sword/saber, /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/tank/internals) + allowed = list(/obj/item/weapon/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/melee/transforming/energy/sword/saber, /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/tank/internals) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/syndi slowdown = 0 From 0bba1ec9b6cc086fab60f319cd20c3560ca7d211 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 31 Jul 2017 02:13:42 -0500 Subject: [PATCH 039/219] Update miscellaneous.dm --- code/modules/clothing/spacesuits/miscellaneous.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index 5e7d02cc6a..48f3a16830 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -146,7 +146,7 @@ Contains: item_state = "pirate" w_class = WEIGHT_CLASS_NORMAL flags_inv = 0 - allowed = list(/obj/item/weapon/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/tank/internals, /obj/item/weapon/melee/energy/sword/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/weapon/reagent_containers/food/drinks/bottle/rum) + allowed = list(/obj/item/weapon/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/tank/internals, /obj/item/weapon/melee/transforming/energy/sword/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/weapon/reagent_containers/food/drinks/bottle/rum) slowdown = 0 armor = list(melee = 30, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 60, acid = 75) strip_delay = 40 From 4f324214c5b8319430d18be5435c992fa18dfe4d Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 31 Jul 2017 02:14:15 -0500 Subject: [PATCH 040/219] Update plasmamen.dm --- code/modules/clothing/spacesuits/plasmamen.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm index 95ddeceb65..b2a70cd548 100644 --- a/code/modules/clothing/spacesuits/plasmamen.dm +++ b/code/modules/clothing/spacesuits/plasmamen.dm @@ -4,7 +4,7 @@ /obj/item/clothing/suit/space/eva/plasmaman name = "EVA plasma envirosuit" desc = "A special plasma containment suit designed to be space-worthy, as well as worn over other clothing. Like it's smaller counterpart, it can automatically extinguish the wearer in a crisis, and holds twice as many charges." - allowed = list(/obj/item/weapon/gun, /obj/item/ammo_casing, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/melee/energy/sword, /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/tank) + allowed = list(/obj/item/weapon/gun, /obj/item/ammo_casing, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/melee/transforming/energy/sword, /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/tank) armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0, fire = 100, acid = 75) resistance_flags = FIRE_PROOF icon_state = "plasmaman_suit" From 79bf3edab94d27c84747249063f8b976ebb636b4 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 31 Jul 2017 02:14:50 -0500 Subject: [PATCH 041/219] Update syndi.dm --- code/modules/clothing/spacesuits/syndi.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/clothing/spacesuits/syndi.dm b/code/modules/clothing/spacesuits/syndi.dm index 30e2355a36..993510839a 100644 --- a/code/modules/clothing/spacesuits/syndi.dm +++ b/code/modules/clothing/spacesuits/syndi.dm @@ -12,7 +12,7 @@ item_state = "space_suit_syndicate" desc = "Has a tag on it: Totally not property of an enemy corporation, honest!" w_class = WEIGHT_CLASS_NORMAL - allowed = list(/obj/item/weapon/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/melee/energy/sword/saber, /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/tank/internals) + allowed = list(/obj/item/weapon/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/melee/transforming/energy/sword/saber, /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/tank/internals) armor = list(melee = 40, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 80, acid = 85) From 0aca8441eccbbe8e8972cada1156ad6debb9f419 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 31 Jul 2017 03:43:22 -0500 Subject: [PATCH 042/219] Automatic changelog generation for PR #2170 [ci skip] --- html/changelogs/AutoChangeLog-pr-2170.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2170.yml diff --git a/html/changelogs/AutoChangeLog-pr-2170.yml b/html/changelogs/AutoChangeLog-pr-2170.yml new file mode 100644 index 0000000000..baa827e813 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2170.yml @@ -0,0 +1,4 @@ +author: "Fox McCloud" +delete-after: True +changes: + - rscadd: "Sound should carry further, but should get quieter and quieter the further you are from it" From ac9c24dfe51329467891f45b5b27d5111cd12a38 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 31 Jul 2017 05:53:58 -0500 Subject: [PATCH 043/219] Update combat.dm --- code/__DEFINES/combat.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm index a307a0819d..caf7f7964b 100644 --- a/code/__DEFINES/combat.dm +++ b/code/__DEFINES/combat.dm @@ -11,6 +11,9 @@ #define STAMINA "stamina" #define BRAIN "brain" +//Citadel code +#define AROUSAL "arousal" + //bitflag damage defines used for suicide_act #define BRUTELOSS 1 #define FIRELOSS 2 From f53d66b319eb55e70c935762c675fb6063111972 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Mon, 31 Jul 2017 05:54:16 -0500 Subject: [PATCH 044/219] Rabbit parts (#2201) --- .../new_player/sprite_accessories_Citadel.dm | 24 ++++++++++++++++++ icons/mob/mam_bodyparts.dmi | Bin 39227 -> 39950 bytes 2 files changed, 24 insertions(+) diff --git a/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm b/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm index a784bd7d03..9d303f867f 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm @@ -153,6 +153,18 @@ icon_state = "wolf" icon = 'icons/mob/mam_bodyparts.dmi' +/datum/sprite_accessory/tails/human/rabbit + name = "Rabbit" + icon_state = "rabbit" + color_src = 0 + icon = 'icons/mob/mam_bodyparts.dmi' + +/datum/sprite_accessory/ears/human/rabbit + name = "Rabbit" + icon_state = "rabbit" + hasinner= 1 + icon = 'icons/mob/mam_bodyparts.dmi' + /****************************************** *************** Body Parts **************** *******************************************/ @@ -429,6 +441,18 @@ icon_state = "guilmon" icon = 'icons/mob/mam_bodyparts.dmi' +/datum/sprite_accessory/mam_tails/rabbit + name = "Rabbit" + icon_state = "rabbit" + color_src = 0 + icon = 'icons/mob/mam_bodyparts.dmi' + +/datum/sprite_accessory/mam_ears/rabbit + name = "Rabbit" + icon_state = "rabbit" + hasinner= 1 + icon = 'icons/mob/mam_bodyparts.dmi' + /****************************************** ************ Body Markings **************** *******************************************/ diff --git a/icons/mob/mam_bodyparts.dmi b/icons/mob/mam_bodyparts.dmi index a8e7137fed2abd2e31a5d9a66a7366b2845d9c24..c08cf0685a4387ab762b17593430b65b322f5d7d 100644 GIT binary patch delta 19925 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 delta 19052 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

Infection Detected.


Name: [D.name]
Type: [D.spread_text]
diff --git a/code/modules/mob/living/simple_animal/bot/medbot.dm b/code/modules/mob/living/simple_animal/bot/medbot.dm index fee3de6b8e..67f3ed7e38 100644 --- a/code/modules/mob/living/simple_animal/bot/medbot.dm +++ b/code/modules/mob/living/simple_animal/bot/medbot.dm @@ -373,7 +373,8 @@ return 1 if(treat_virus && !C.reagents.has_reagent(treatment_virus_avoid) && !C.reagents.has_reagent(treatment_virus)) - for(var/datum/disease/D in C.viruses) + for(var/thing in C.viruses) + var/datum/disease/D = thing //the medibot can't detect viruses that are undetectable to Health Analyzers or Pandemic machines. if(!(D.visibility_flags & HIDDEN_SCANNER || D.visibility_flags & HIDDEN_PANDEMIC) \ && D.severity != NONTHREAT \ @@ -424,7 +425,8 @@ else if(treat_virus) var/virus = 0 - for(var/datum/disease/D in C.viruses) + for(var/thing in C.viruses) + var/datum/disease/D = thing //detectable virus if((!(D.visibility_flags & HIDDEN_SCANNER)) || (!(D.visibility_flags & HIDDEN_PANDEMIC))) if(D.severity != NONTHREAT) //virus is harmful diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index cfb15b468c..26b22d964e 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -11,8 +11,7 @@ qdel(hud_used) if(mind && mind.current == src) spellremove(src) - for(var/infection in viruses) - qdel(infection) + QDEL_LIST(viruses) for(var/cc in client_colours) qdel(cc) client_colours = null diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 053cba123a..56e56bfcaa 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -113,7 +113,7 @@ //List of active diseases - var/list/viruses = list() // replaces var/datum/disease/virus + var/list/viruses = list() // list of all diseases in a mob var/list/resistances = list() mouse_drag_pointer = MOUSE_ACTIVE_POINTER diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index cf598b7a2e..e421b84853 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -65,9 +65,9 @@ if (tr_flags & TR_KEEPVIRUS) O.viruses = viruses viruses = list() - for(var/datum/disease/D in O.viruses) + for(var/thing in O.viruses) + var/datum/disease/D = thing D.affected_mob = O - D.holder = O //keep damage? if (tr_flags & TR_KEEPDAMAGE) @@ -219,9 +219,9 @@ if (tr_flags & TR_KEEPVIRUS) O.viruses = viruses viruses = list() - for(var/datum/disease/D in O.viruses) + for(var/thing in O.viruses) + var/datum/disease/D = thing D.affected_mob = O - D.holder = O O.med_hud_set_status() //keep damage? diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm index 85b357c774..46597fb028 100644 --- a/code/modules/reagents/chemistry/machinery/pandemic.dm +++ b/code/modules/reagents/chemistry/machinery/pandemic.dm @@ -150,7 +150,7 @@ if(!new_name || ..()) return A.AssignName(new_name) - for(var/datum/disease/advance/AD in SSdisease.processing) + for(var/datum/disease/advance/AD in SSdisease.active_diseases) AD.Refresh() . = TRUE if("create_culture_bottle") diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 4b9a4b8b39..adf7292a56 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -58,13 +58,11 @@ M.confused = 0 M.SetSleeping(0, 0) M.jitteriness = 0 - for(var/datum/disease/D in M.viruses) + for(var/thing in M.viruses) + var/datum/disease/D = thing if(D.severity == NONTHREAT) continue - D.spread_text = "Remissive" - D.stage-- - if(D.stage < 1) - D.cure() + D.cure() ..() . = 1 @@ -686,7 +684,7 @@ taste_description = "dull toxin" /datum/reagent/medicine/oculine/on_mob_life(mob/living/M) - var/obj/item/organ/eyes/eyes = M.getorganslot("eye_sight") + var/obj/item/organ/eyes/eyes = M.getorganslot("eyes_sight") if (!eyes) return if(M.disabilities & BLIND) diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 8708a22e1b..876029e128 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -13,7 +13,8 @@ /datum/reagent/blood/reaction_mob(mob/M, method=TOUCH, reac_volume) if(data && data["viruses"]) - for(var/datum/disease/D in data["viruses"]) + for(var/thing in data["viruses"]) + var/datum/disease/D = thing if((D.spread_flags & SPECIAL) || (D.spread_flags & NON_CONTAGIOUS)) continue @@ -73,11 +74,6 @@ if(data["blood_DNA"]) B.blood_DNA[data["blood_DNA"]] = data["blood_type"] - for(var/datum/disease/D in data["viruses"]) - var/datum/disease/newVirus = D.Copy(1) - B.viruses += newVirus - newVirus.holder = B - /datum/reagent/liquidgibs name = "Liquid gibs" @@ -96,7 +92,8 @@ /datum/reagent/vaccine/reaction_mob(mob/M, method=TOUCH, reac_volume) if(islist(data) && (method == INGEST || method == INJECT)) - for(var/datum/disease/D in M.viruses) + for(var/thing in M.viruses) + var/datum/disease/D = thing if(D.GetDiseaseID() in data) D.cure() M.resistances |= data From d176fcf24c521e42fd0c73326827a18c2f00d192 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 1 Aug 2017 07:48:16 -0500 Subject: [PATCH 066/219] Refactors pie throwing and fixes throwing not finalizing in some cases --- code/controllers/subsystem/throwing.dm | 13 ++++--- .../food_and_drinks/food/snacks_pie.dm | 39 +++++++++++-------- 2 files changed, 29 insertions(+), 23 deletions(-) diff --git a/code/controllers/subsystem/throwing.dm b/code/controllers/subsystem/throwing.dm index 4ae31e98d6..d91d91de72 100644 --- a/code/controllers/subsystem/throwing.dm +++ b/code/controllers/subsystem/throwing.dm @@ -103,7 +103,7 @@ SUBSYSTEM_DEF(throwing) finalize() return -/datum/thrownthing/proc/finalize(hit = FALSE) +/datum/thrownthing/proc/finalize(hit = FALSE, target=null) set waitfor = 0 SSthrowing.processing -= thrownthing //done throwing, either because it hit something or it finished moving @@ -120,13 +120,15 @@ SUBSYSTEM_DEF(throwing) thrownthing.newtonian_move(init_dir) else thrownthing.newtonian_move(init_dir) + + if(target) + thrownthing.throw_impact(target, src) + if (callback) callback.Invoke() /datum/thrownthing/proc/hit_atom(atom/A) - thrownthing.throw_impact(A, src) - thrownthing.newtonian_move(init_dir) - finalize(TRUE) + finalize(hit=TRUE, target=A) /datum/thrownthing/proc/hitcheck() for (var/thing in get_turf(thrownthing)) @@ -134,6 +136,5 @@ SUBSYSTEM_DEF(throwing) if (AM == thrownthing) continue if (AM.density && !(AM.pass_flags & LETPASSTHROW) && !(AM.flags & ON_BORDER)) - thrownthing.throwing = null - thrownthing.throw_impact(AM, src) + finalize(hit=TRUE, target=AM) return TRUE diff --git a/code/modules/food_and_drinks/food/snacks_pie.dm b/code/modules/food_and_drinks/food/snacks_pie.dm index 94c8e54f15..13f22851b1 100644 --- a/code/modules/food_and_drinks/food/snacks_pie.dm +++ b/code/modules/food_and_drinks/food/snacks_pie.dm @@ -26,24 +26,29 @@ tastes = list("pie" = 1) /obj/item/weapon/reagent_containers/food/snacks/pie/cream/throw_impact(atom/hit_atom) - if(!..()) //was it caught by a mob? - var/turf/T = get_turf(hit_atom) - new/obj/effect/decal/cleanable/pie_smudge(T) - reagents.reaction(hit_atom, TOUCH) + . = ..() + if(!.) //if we're not being caught + splat(hit_atom) - if(ishuman(hit_atom)) - var/mob/living/carbon/human/H = hit_atom - var/mutable_appearance/creamoverlay = mutable_appearance('icons/effects/creampie.dmi') - if(H.dna.species.id == "lizard") - creamoverlay.icon_state = "creampie_lizard" - else - creamoverlay.icon_state = "creampie_human" - H.Knockdown(20) //splat! - H.adjust_blurriness(1) - visible_message("[H] was creamed by [src]!!") - H.add_overlay(creamoverlay) - - qdel(src) +/obj/item/weapon/reagent_containers/food/snacks/pie/cream/proc/splat(atom/movable/hit_atom) + if(isliving(loc)) //someone caught us! + return + var/turf/T = get_turf(hit_atom) + new/obj/effect/decal/cleanable/pie_smudge(T) + reagents.reaction(hit_atom, TOUCH) + if(ishuman(hit_atom)) + var/mob/living/carbon/human/H = hit_atom + var/mutable_appearance/creamoverlay = mutable_appearance('icons/effects/creampie.dmi') + if(H.dna.species.limbs_id == "lizard") + creamoverlay.icon_state = "creampie_lizard" + else + creamoverlay.icon_state = "creampie_human" + H.Knockdown(20) //splat! + H.adjust_blurriness(1) + H.visible_message("[H] is creamed by [src]!", "You've been creamed by [src]!") + playsound(H, "desceration", 50, TRUE) + H.add_overlay(creamoverlay) + qdel(src) /obj/item/weapon/reagent_containers/food/snacks/pie/berryclafoutis From 55f1de10a68eafb5adf7116ca6a221f4a1a28aee Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 1 Aug 2017 08:46:20 -0500 Subject: [PATCH 067/219] Spellchecking --- .../lavaland_surface_animal_hospital.dmm | 2 +- _maps/RandomZLevels/Cabin.dmm | 2 +- _maps/RandomZLevels/research.dmm | 32 +-- _maps/RandomZLevels/snowdin.dmm | 8 +- _maps/RandomZLevels/undergroundoutpost45.dmm | 2 +- _maps/map_files/BoxStation/BoxStation.dmm | 2 +- _maps/map_files/Mining/Lavaland.dmm | 2 +- _maps/map_files/OmegaStation/OmegaStation.dmm | 4 +- .../PubbyStation/PubbyStation.dmm.rej | 213 ++++++++++++++++++ _maps/map_files/generic/Centcomm.dmm | 2 +- code/__HELPERS/sorts/__main.dm | 2 +- code/__HELPERS/unsorted.dm | 2 +- code/_globalvars/lists/objects.dm | 2 +- code/_onclick/hud/screen_objects.dm | 2 +- code/controllers/subsystem/garbage.dm | 4 +- code/datums/datumvars.dm | 2 +- code/datums/helper_datums/getrev.dm | 2 +- code/game/area/areas.dm | 2 +- code/game/gamemodes/game_mode.dm | 2 +- .../miniantags/abduction/abduction.dm | 2 +- .../miniantags/abduction/abduction_gear.dm | 2 +- code/game/machinery/camera/camera_assembly.dm | 2 +- code/game/objects/effects/contraband.dm | 2 +- .../objects/items/weapons/tanks/watertank.dm | 4 +- code/game/objects/structures/musician.dm | 2 +- code/modules/admin/admin_ranks.dm | 4 +- code/modules/admin/stickyban.dm | 2 +- .../awaymissions/mission_code/snowdin.dm | 4 +- code/modules/clothing/clothing.dm | 2 +- code/modules/clothing/head/misc.dm | 4 +- code/modules/clothing/shoes/miscellaneous.dm | 2 +- .../modules/clothing/spacesuits/flightsuit.dm | 2 +- .../clothing/spacesuits/flightsuit.dm.rej | 14 ++ .../clothing/spacesuits/miscellaneous.dm | 2 +- code/modules/clothing/suits/armor.dm | 2 +- code/modules/clothing/suits/miscellaneous.dm | 2 +- code/modules/food_and_drinks/drinks/drinks.dm | 2 +- .../drinks/drinks/drinkingglass.dm | 2 +- .../modules/food_and_drinks/food/condiment.dm | 2 +- code/modules/mining/aux_base_camera.dm | 4 +- .../mining/lavaland/necropolis_chests.dm | 4 +- code/modules/mining/machine_vending.dm | 2 +- code/modules/mining/shelters.dm | 2 +- .../mob/living/carbon/human/human_helpers.dm | 2 +- code/modules/mob/living/living.dm | 4 +- code/modules/mob/living/logout.dm | 2 +- .../modules/mob/living/silicon/robot/robot.dm | 2 +- .../mob/living/simple_animal/corpse.dm | 2 +- code/modules/mob/say_readme.dm | 4 +- code/modules/paperwork/filingcabinet.dm | 2 +- code/modules/power/apc.dm | 4 +- code/modules/power/supermatter/supermatter.dm | 2 +- .../procedural_mapping/mapGeneratorReadme.dm | 4 +- .../projectiles/guns/ballistic/automatic.dm | 2 +- .../projectiles/guns/ballistic/revolver.dm | 2 +- .../guns/energy/kinetic_accelerator.dm | 4 +- code/modules/projectiles/guns/energy/laser.dm | 6 +- .../chemistry/machinery/chem_master.dm | 2 +- code/modules/research/designs.dm | 4 +- code/modules/research/experimentor.dm | 2 +- code/modules/research/research.dm | 6 +- .../research/xenobiology/xenobiology.dm | 2 +- code/modules/spells/spell_types/summonitem.dm | 2 +- code/modules/station_goals/bsa.dm | 2 +- code/modules/station_goals/dna_vault.dm | 2 +- code/modules/stock_market/events.dm | 2 +- .../modules/surgery/organ_manipulation.dm.rej | 10 + code/modules/surgery/organs/augments_arms.dm | 4 +- code/modules/surgery/organs/augments_chest.dm | 2 +- .../modules/surgery/remove_embedded_object.dm | 2 +- code/modules/zombie/organs.dm | 2 +- 71 files changed, 342 insertions(+), 105 deletions(-) create mode 100644 _maps/map_files/PubbyStation/PubbyStation.dmm.rej create mode 100644 code/modules/clothing/spacesuits/flightsuit.dm.rej create mode 100644 code/modules/surgery/organ_manipulation.dm.rej diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm index 937890e100..005ce22589 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm @@ -474,7 +474,7 @@ "bD" = ( /obj/structure/table/glass, /obj/item/weapon/reagent_containers/glass/bottle/cyanide{ - desc = "A cocktail of chemotherpy drugs intended to treat bladder cancer."; + desc = "A cocktail of chemotherapy drugs intended to treat bladder cancer."; name = "MVAC regimen" }, /obj/item/weapon/reagent_containers/syringe, diff --git a/_maps/RandomZLevels/Cabin.dmm b/_maps/RandomZLevels/Cabin.dmm index 33f514c051..a03b3b148e 100644 --- a/_maps/RandomZLevels/Cabin.dmm +++ b/_maps/RandomZLevels/Cabin.dmm @@ -250,7 +250,7 @@ /area/awaymission/cabin) "aQ" = ( /obj/machinery/door/airlock/wood{ - name = "maintence" + name = "maintenance" }, /turf/open/floor/plating, /area/awaymission/cabin) diff --git a/_maps/RandomZLevels/research.dmm b/_maps/RandomZLevels/research.dmm index 127813046e..7d313a0915 100644 --- a/_maps/RandomZLevels/research.dmm +++ b/_maps/RandomZLevels/research.dmm @@ -1060,7 +1060,7 @@ "dd" = ( /obj/structure/closet/crate, /obj/item/weapon/disk/data{ - desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines."; + desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines."; name = "encrypted genetic data disk"; read_only = 1 }, @@ -1081,7 +1081,7 @@ read_only = 1 }, /obj/item/weapon/disk/data{ - desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines."; + desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines."; name = "encrypted genetic data disk"; read_only = 1 }, @@ -1143,7 +1143,7 @@ "dp" = ( /obj/structure/closet/crate, /obj/item/weapon/disk/data{ - desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines."; + desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines."; name = "encrypted genetic data disk"; read_only = 1 }, @@ -1289,12 +1289,12 @@ "dL" = ( /obj/structure/closet/crate, /obj/item/weapon/disk/data{ - desc = "A data disk used to store cloning and genetic records. The name on the label appears to be scratched off with the words 'DO NOT CLONE' hastely written over it."; + desc = "A data disk used to store cloning and genetic records. The name on the label appears to be scratched off with the words 'DO NOT CLONE' hastily written over it."; fields = list("label" = "Buffer1:George Melons", "UI" = "3c300f11b5421ca7014d8", "SE" = "430431205660551642142504334461413202111310233445620533134255", "UE" = "6893e6a0b0076a41897776b10cc2b324", "name" = "George Melons", "blood_type" = "B+"); name = "old genetics data disk" }, /obj/item/weapon/disk/data{ - desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines."; + desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines."; name = "encrypted genetic data disk"; read_only = 1 }, @@ -1306,12 +1306,12 @@ "dM" = ( /obj/structure/closet/crate, /obj/item/weapon/disk/data{ - desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines."; + desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines."; name = "encrypted genetic data disk"; read_only = 1 }, /obj/item/weapon/disk/data{ - desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines."; + desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines."; name = "encrypted genetic data disk"; read_only = 1 }, @@ -2794,12 +2794,12 @@ "hS" = ( /obj/structure/closet/crate, /obj/item/weapon/disk/data{ - desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines."; + desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines."; name = "encrypted genetic data disk"; read_only = 1 }, /obj/item/weapon/disk/data{ - desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines. This one has the initials 'C.P' marked on the front. "; + desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines. This one has the initials 'C.P' marked on the front. "; name = "encrypted genetic data disk"; read_only = 1 }, @@ -2812,12 +2812,12 @@ "hT" = ( /obj/structure/closet/crate, /obj/item/weapon/disk/data{ - desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines."; + desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines."; name = "encrypted genetic data disk"; read_only = 1 }, /obj/item/weapon/disk/data{ - desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines."; + desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines."; name = "encrypted genetic data disk"; read_only = 1 }, @@ -2949,7 +2949,7 @@ "il" = ( /obj/structure/closet/crate, /obj/item/weapon/disk/data{ - desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines."; + desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines."; name = "encrypted genetic data disk"; read_only = 1 }, @@ -3336,7 +3336,7 @@ /area/awaymission/research/interior/dorm) "jp" = ( /obj/structure/barricade/wooden{ - desc = "A wooden table hastely flipped over for cover."; + desc = "A wooden table hastily flipped over for cover."; obj_integrity = 55; icon = 'icons/obj/smooth_structures/wood_table.dmi'; icon_state = "wood_table"; @@ -3402,7 +3402,7 @@ /area/awaymission/research/interior/medbay) "jy" = ( /obj/machinery/door/airlock/medical{ - name = "Medical Surgey" + name = "Medical Surgery" }, /turf/open/floor/plasteel/whiteblue, /area/awaymission/research/interior/medbay) @@ -3446,7 +3446,7 @@ /area/awaymission/research/interior/dorm) "jG" = ( /obj/structure/barricade/wooden{ - desc = "A wooden table hastely flipped over for cover."; + desc = "A wooden table hastily flipped over for cover."; obj_integrity = 55; icon = 'icons/obj/smooth_structures/wood_table.dmi'; icon_state = "wood_table"; @@ -3569,7 +3569,7 @@ /area/awaymission/research/interior/dorm) "kb" = ( /obj/structure/barricade/wooden{ - desc = "A wooden table hastely flipped over for cover."; + desc = "A wooden table hastily flipped over for cover."; obj_integrity = 55; icon = 'icons/obj/smooth_structures/wood_table.dmi'; icon_state = "wood_table"; diff --git a/_maps/RandomZLevels/snowdin.dmm b/_maps/RandomZLevels/snowdin.dmm index 0cb107f9e1..b390094018 100644 --- a/_maps/RandomZLevels/snowdin.dmm +++ b/_maps/RandomZLevels/snowdin.dmm @@ -635,10 +635,10 @@ /area/awaymission/snowdin/base) "bC" = ( /obj/structure/showcase{ - desc = "A strange machine thats supposedly used to help pick up and decypth wave signals. "; + desc = "A strange machine thats supposedly used to help pick up and decrypt wave signals. "; icon = 'icons/obj/machines/telecomms.dmi'; icon_state = "processor"; - name = "subsystem signal decrypher" + name = "subsystem signal decrypter" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/snow @@ -2504,10 +2504,10 @@ "gL" = ( /obj/machinery/light/small, /obj/structure/showcase{ - desc = "A strange machine thats supposedly used to help pick up and decypth wave signals. "; + desc = "A strange machine thats supposedly used to help pick up and decrypt wave signals. "; icon = 'icons/obj/machines/telecomms.dmi'; icon_state = "processor"; - name = "subsystem signal decrypher" + name = "subsystem signal decrypter" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/snow diff --git a/_maps/RandomZLevels/undergroundoutpost45.dmm b/_maps/RandomZLevels/undergroundoutpost45.dmm index b985470bc1..fb82bb398a 100644 --- a/_maps/RandomZLevels/undergroundoutpost45.dmm +++ b/_maps/RandomZLevels/undergroundoutpost45.dmm @@ -9874,7 +9874,7 @@ dir = 8 }, /obj/machinery/button/door{ - desc = "A remote control-switch whichs locks the research division down in the event of a biohazard leak or contamination."; + desc = "A remote control-switch which locks the research division down in the event of a biohazard leak or contamination."; id = "UO45_biohazard"; name = "Biohazard Door Control"; pixel_y = 8; diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index 14118443f6..26feb0fa1b 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -34356,7 +34356,7 @@ /area/janitor) "bAV" = ( /obj/machinery/door/window/westleft{ - name = "Janitoral Delivery"; + name = "Janitorial Delivery"; req_access_txt = "26" }, /obj/effect/turf_decal/delivery, diff --git a/_maps/map_files/Mining/Lavaland.dmm b/_maps/map_files/Mining/Lavaland.dmm index f8bf06a40c..432d5ae341 100644 --- a/_maps/map_files/Mining/Lavaland.dmm +++ b/_maps/map_files/Mining/Lavaland.dmm @@ -2091,7 +2091,7 @@ /area/mine/living_quarters) "ft" = ( /obj/machinery/camera{ - c_tag = "Dormatories"; + c_tag = "Dormitories"; dir = 4; network = list("MINE") }, diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm index 66b8bd0708..8a7311fb5a 100644 --- a/_maps/map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/map_files/OmegaStation/OmegaStation.dmm @@ -35023,7 +35023,7 @@ dir = 4 }, /obj/machinery/camera{ - c_tag = "Chaplen Quarters"; + c_tag = "Chaplain's Quarters"; dir = 2; network = list("SS13") }, @@ -36017,7 +36017,7 @@ pixel_y = -32 }, /obj/machinery/camera{ - c_tag = "Xenobilogy Lab"; + c_tag = "Xenobiology Lab"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm.rej b/_maps/map_files/PubbyStation/PubbyStation.dmm.rej new file mode 100644 index 0000000000..80fa973d0a --- /dev/null +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm.rej @@ -0,0 +1,213 @@ +diff a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm (rejected hunks) +@@ -17662,7 +17662,7 @@ + /obj/machinery/conveyor_switch/oneway{ + convdir = 1; + id = "garbagestacked"; +- name = "disposal coveyor" ++ name = "disposal conveyor" + }, + /obj/effect/turf_decal/stripes/line, + /turf/open/floor/plating{ +@@ -19866,7 +19866,7 @@ + /obj/machinery/conveyor_switch/oneway{ + convdir = -1; + id = "garbage"; +- name = "disposal coveyor" ++ name = "disposal conveyor" + }, + /obj/effect/turf_decal/stripes/line{ + dir = 1 +@@ -29076,7 +29076,7 @@ + /area/science/explab) + "blV" = ( + /obj/structure/sign/atmosplaque{ +- desc = "A guide to the drone shell dispenser, detailing the constructive and destructive applications of modern repair drones, as well as the development of the uncorruptable cyborg servants of tomorrow, available today."; ++ desc = "A guide to the drone shell dispenser, detailing the constructive and destructive applications of modern repair drones, as well as the development of the incorruptible cyborg servants of tomorrow, available today."; + icon_state = "kiddieplaque"; + name = "\improper 'Perfect Drone' sign"; + pixel_y = 32 +@@ -31843,7 +31843,7 @@ + /area/science/xenobiology) + "brT" = ( + /obj/machinery/computer/security/telescreen{ +- name = "Test Chamber Moniter"; ++ name = "Test Chamber Monitor"; + network = list("Xeno"); + pixel_y = 2 + }, +@@ -36758,7 +36758,7 @@ + /obj/item/device/radio/intercom{ + dir = 8; + freerange = 1; +- name = "Station Intercom (Telecoms)"; ++ name = "Station Intercom (Telecomms)"; + pixel_x = 28; + pixel_y = 24 + }, +@@ -42005,7 +42005,7 @@ + /obj/item/device/radio/intercom{ + dir = 8; + freerange = 1; +- name = "Station Intercom (Telecoms)"; ++ name = "Station Intercom (Telecomms)"; + pixel_y = 26 + }, + /turf/open/floor/plasteel, +@@ -49228,7 +49228,7 @@ + /area/chapel/main/monastery) + "ccI" = ( + /obj/machinery/door/airlock/centcom{ +- name = "Chape Access"; ++ name = "Chapel Access"; + opacity = 1 + }, + /turf/open/floor/plasteel/black, +@@ -50408,7 +50408,7 @@ + /area/engine/engineering) + "cfs" = ( + /obj/machinery/camera{ +- c_tag = "Engineering Telecoms Access"; ++ c_tag = "Engineering Telecomms Access"; + dir = 8; + network = list("Labor") + }, +@@ -50416,11 +50416,11 @@ + dir = 4 + }, + /obj/machinery/computer/security/telescreen{ +- desc = "Used for watching telecoms."; ++ desc = "Used for watching telecomms."; + dir = 8; + layer = 4; +- name = "Telecoms Telescreen"; +- network = list("Telecoms"); ++ name = "Telecomms Telescreen"; ++ network = list("Telecomms"); + pixel_x = 30 + }, + /turf/open/floor/plasteel, +@@ -52887,9 +52887,9 @@ + /area/space) + "clu" = ( + /obj/machinery/camera{ +- c_tag = "Telecoms External Fore"; ++ c_tag = "Telecomms External Fore"; + dir = 1; +- network = list("SS13, Telecoms"); ++ network = list("SS13, Telecomms"); + start_active = 1 + }, + /turf/open/space, +@@ -53072,9 +53072,9 @@ + /area/tcommsat/computer) + "clX" = ( + /obj/machinery/camera/motion{ +- c_tag = "Telecoms External Access"; ++ c_tag = "Telecomms External Access"; + dir = 1; +- network = list("SS13","Telecoms") ++ network = list("SS13","Telecomms") + }, + /turf/open/floor/plasteel, + /area/tcommsat/computer) +@@ -53136,9 +53136,9 @@ + "cmg" = ( + /obj/machinery/requests_console{ + announcementConsole = 1; +- department = "Telecoms Admin"; ++ department = "Telecomms Admin"; + departmentType = 5; +- name = "Telecoms RC"; ++ name = "Telecomms RC"; + pixel_y = 30 + }, + /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ +@@ -53169,9 +53169,9 @@ + pixel_y = 26 + }, + /obj/machinery/camera/motion{ +- c_tag = "Telecoms Monitoring"; ++ c_tag = "Telecomms Monitoring"; + dir = 2; +- network = list("SS13","Telecoms") ++ network = list("SS13","Telecomms") + }, + /turf/open/floor/plasteel/yellow/side{ + dir = 1 +@@ -53197,7 +53197,7 @@ + "cmk" = ( + /obj/machinery/power/apc{ + dir = 1; +- name = "Telecoms Monitoring APC"; ++ name = "Telecomms Monitoring APC"; + pixel_y = 25 + }, + /obj/structure/cable{ +@@ -53282,9 +53282,9 @@ + "cmt" = ( + /obj/structure/lattice, + /obj/machinery/camera/motion{ +- c_tag = "Telecoms External Port"; ++ c_tag = "Telecomms External Port"; + dir = 8; +- network = list("Telecoms") ++ network = list("Telecomms") + }, + /turf/open/space, + /area/space) +@@ -53342,9 +53342,9 @@ + "cmz" = ( + /obj/structure/lattice, + /obj/machinery/camera/motion{ +- c_tag = "Telecoms External Starboard"; ++ c_tag = "Telecomms External Starboard"; + dir = 4; +- network = list("Telecoms") ++ network = list("Telecomms") + }, + /turf/open/space, + /area/space) +@@ -53430,7 +53430,7 @@ + cell_type = 5000; + dir = 1; + layer = 4; +- name = "Telecoms Server APC"; ++ name = "Telecomms Server APC"; + pixel_y = 24 + }, + /obj/structure/cable, +@@ -53719,9 +53719,9 @@ + /area/tcommsat/server) + "cnu" = ( + /obj/machinery/camera/motion{ +- c_tag = "Telecoms Server Room"; ++ c_tag = "Telecomms Server Room"; + dir = 1; +- network = list("SS13","Telecoms") ++ network = list("SS13","Telecomms") + }, + /turf/open/floor/plasteel/black{ + initial_gas_mix = "n2=100;TEMP=80" +@@ -53758,18 +53758,18 @@ + "cny" = ( + /obj/structure/lattice, + /obj/machinery/camera/motion{ +- c_tag = "Telecoms External Port Aft"; ++ c_tag = "Telecomms External Port Aft"; + dir = 2; +- network = list("Telecoms") ++ network = list("Telecomms") + }, + /turf/open/space, + /area/space) + "cnz" = ( + /obj/structure/lattice, + /obj/machinery/camera/motion{ +- c_tag = "Telecoms External Starboard Aft"; ++ c_tag = "Telecomms External Starboard Aft"; + dir = 2; +- network = list("Telecoms") ++ network = list("Telecomms") + }, + /turf/open/space, + /area/space) diff --git a/_maps/map_files/generic/Centcomm.dmm b/_maps/map_files/generic/Centcomm.dmm index 1840fb2d80..8e3d678469 100644 --- a/_maps/map_files/generic/Centcomm.dmm +++ b/_maps/map_files/generic/Centcomm.dmm @@ -10338,7 +10338,7 @@ base_state = "rightsecure"; dir = 2; icon_state = "rightsecure"; - name = "Thunderdoom Booth"; + name = "Thunderdome Booth"; req_access_txt = "109" }, /obj/effect/turf_decal/bot, diff --git a/code/__HELPERS/sorts/__main.dm b/code/__HELPERS/sorts/__main.dm index 7da17da503..c7ccfa97d7 100644 --- a/code/__HELPERS/sorts/__main.dm +++ b/code/__HELPERS/sorts/__main.dm @@ -8,7 +8,7 @@ //When we get into galloping mode, we stay there until both runs win less often than MIN_GALLOP consecutive times. #define MIN_GALLOP 7 - //This is a global instance to allow much of this code to be reused. The interfaces are kept seperately + //This is a global instance to allow much of this code to be reused. The interfaces are kept separately GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new()) /datum/sortInstance //The array being sorted. diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index b743907982..48787430a0 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -48,7 +48,7 @@ Location where the teleport begins, target that will teleport, distance to go, d Random error in tile placement x, error in tile placement y, and block offset. Block offset tells the proc how to place the box. Behind teleport location, relative to starting location, forward, etc. Negative values for offset are accepted, think of it in relation to North, -x is west, -y is south. Error defaults to positive. -Turf and target are seperate in case you want to teleport some distance from a turf the target is not standing on or something. +Turf and target are separate in case you want to teleport some distance from a turf the target is not standing on or something. */ var/dirx = 0//Generic location finding variable. diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm index 3f0d6cab80..9ad2d6c969 100644 --- a/code/_globalvars/lists/objects.dm +++ b/code/_globalvars/lists/objects.dm @@ -20,7 +20,7 @@ GLOBAL_LIST_EMPTY(tech_list) //list of all /datum/tech datums indexed by id. GLOBAL_LIST_EMPTY(surgeries_list) //list of all surgeries by name, associated with their path. GLOBAL_LIST_EMPTY(crafting_recipes) //list of all table craft recipes GLOBAL_LIST_EMPTY(rcd_list) //list of Rapid Construction Devices. -GLOBAL_LIST_EMPTY(apcs_list) //list of all Area Power Controller machines, seperate from machines for powernet speeeeeeed. +GLOBAL_LIST_EMPTY(apcs_list) //list of all Area Power Controller machines, separate from machines for powernet speeeeeeed. GLOBAL_LIST_EMPTY(tracked_implants) //list of all current implants that are tracked to work out what sort of trek everyone is on. Sadly not on lavaworld not implemented... GLOBAL_LIST_EMPTY(tracked_chem_implants) //list of implants the prisoner console can track and send inject commands too GLOBAL_LIST_EMPTY(poi_list) //list of points of interest for observe/follow diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 401bde5cdb..14b7323ce3 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -281,7 +281,7 @@ to_chat(H, "You are now running on internals from the [H.r_store] in your right pocket.") H.internal = H.r_store - //Seperate so CO2 jetpacks are a little less cumbersome. + //Separate so CO2 jetpacks are a little less cumbersome. if(!C.internal && istype(C.back, /obj/item/weapon/tank)) to_chat(C, "You are now running on internals from the [C.back] on your back.") C.internal = C.back diff --git a/code/controllers/subsystem/garbage.dm b/code/controllers/subsystem/garbage.dm index 2cee9a192a..ac2b60c67e 100644 --- a/code/controllers/subsystem/garbage.dm +++ b/code/controllers/subsystem/garbage.dm @@ -18,7 +18,7 @@ SUBSYSTEM_DEF(garbage) // refID's are associated with the time at which they time out and need to be manually del() // we do this so we aren't constantly locating them and preventing them from being gc'd - var/list/tobequeued = list() //We store the references of things to be added to the queue seperately so we can spread out GC overhead over a few ticks + var/list/tobequeued = list() //We store the references of things to be added to the queue separately so we can spread out GC overhead over a few ticks var/list/didntgc = list() // list of all types that have failed to GC associated with the number of times that's happened. // the types are stored as strings @@ -144,7 +144,7 @@ SUBSYSTEM_DEF(garbage) queue[refid] = gctime -//this is purely to seperate things profile wise. +//this is purely to separate things profile wise. /datum/controller/subsystem/garbage/proc/HardDelete(datum/A) var/time = world.timeofday var/tick = world.tick_usage diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index be1ae8bfde..e519cf6af3 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -21,7 +21,7 @@ return debug_variable(var_name, vars[var_name], 0, src) //please call . = ..() first and append to the result, that way parent items are always at the top and child items are further down -//add seperaters by doing . += "---" +//add separaters by doing . += "---" /datum/proc/vv_get_dropdown() . = list() . += "---" diff --git a/code/datums/helper_datums/getrev.dm b/code/datums/helper_datums/getrev.dm index d5c0e74839..f6296bc0c9 100644 --- a/code/datums/helper_datums/getrev.dm +++ b/code/datums/helper_datums/getrev.dm @@ -96,7 +96,7 @@ to_chat(src, "[prefix][copytext(pc, 1, min(length(pc), 7))]") else to_chat(src, "Revision unknown") - to_chat(src, "Current Infomational Settings:") + to_chat(src, "Current Informational Settings:") to_chat(src, "Protect Authority Roles From Traitor: [config.protect_roles_from_antagonist]") to_chat(src, "Protect Assistant Role From Traitor: [config.protect_assistant_from_antagonist]") to_chat(src, "Enforce Human Authority: [config.enforce_human_authority]") diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index a0f268344e..2a139da456 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -429,7 +429,7 @@ GLOBAL_LIST_EMPTY(teleportlocs) if(!L.ckey) return - // Ambience goes down here -- make sure to list each area seperately for ease of adding things in later, thanks! Note: areas adjacent to each other should have the same sounds to prevent cutoff when possible.- LastyScratch + // Ambience goes down here -- make sure to list each area separately for ease of adding things in later, thanks! Note: areas adjacent to each other should have the same sounds to prevent cutoff when possible.- LastyScratch if(L.client && !L.client.ambience_playing && L.client.prefs.toggles & SOUND_SHIP_AMBIENCE) L.client.ambience_playing = 1 L << sound('sound/ambience/shipambience.ogg', repeat = 1, wait = 0, volume = 35, channel = CHANNEL_BUZZ) diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 742ed08cf4..057f9ee34a 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -369,7 +369,7 @@ if(candidates.len < recommended_enemies) for(var/mob/dead/new_player/player in players) if(player.client && player.ready == PLAYER_READY_TO_PLAY) - if(!(role in player.client.prefs.be_special)) // We don't have enough people who want to be antagonist, make a seperate list of people who don't want to be one + if(!(role in player.client.prefs.be_special)) // We don't have enough people who want to be antagonist, make a separate list of people who don't want to be one if(!jobban_isbanned(player, "Syndicate") && !jobban_isbanned(player, role)) //Nodrak/Carn: Antag Job-bans drafted += player.mind diff --git a/code/game/gamemodes/miniantags/abduction/abduction.dm b/code/game/gamemodes/miniantags/abduction/abduction.dm index 8b18c3b1bb..ce0ab22373 100644 --- a/code/game/gamemodes/miniantags/abduction/abduction.dm +++ b/code/game/gamemodes/miniantags/abduction/abduction.dm @@ -200,7 +200,7 @@ to_chat(world, text) //Landmarks -// TODO: Split into seperate landmarks for prettier ships +// TODO: Split into separate landmarks for prettier ships /obj/effect/landmark/abductor var/team = 1 diff --git a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm index 3f45f69cdd..d6265a8f75 100644 --- a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm +++ b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm @@ -469,7 +469,7 @@ Congratulations! You are now trained for invasive xenobiology research!"} if(ishuman(L)) var/mob/living/carbon/human/H = L - species = "[H.dna.species.name]" + species = "[H.dna.species.name]" if(L.mind && L.mind.changeling) species = "Changeling lifeform" var/obj/item/organ/heart/gland/temp = locate() in H.internal_organs diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm index 8639544e0a..8ca1a8632c 100644 --- a/code/game/machinery/camera/camera_assembly.dm +++ b/code/game/machinery/camera/camera_assembly.dm @@ -79,7 +79,7 @@ if(istype(W, /obj/item/weapon/screwdriver)) playsound(src.loc, W.usesound, 50, 1) - var/input = stripped_input(user, "Which networks would you like to connect this camera to? Seperate networks with a comma. No Spaces!\nFor example: SS13,Security,Secret ", "Set Network", "SS13") + var/input = stripped_input(user, "Which networks would you like to connect this camera to? Separate networks with a comma. No Spaces!\nFor example: SS13,Security,Secret ", "Set Network", "SS13") if(!input) to_chat(user, "No input found, please hang up and try your call again!") return diff --git a/code/game/objects/effects/contraband.dm b/code/game/objects/effects/contraband.dm index fb2b854ffb..663fed74fc 100644 --- a/code/game/objects/effects/contraband.dm +++ b/code/game/objects/effects/contraband.dm @@ -115,7 +115,7 @@ forceMove(P) return P -//seperated to reduce code duplication. Moved here for ease of reference and to unclutter r_wall/attackby() +//separated to reduce code duplication. Moved here for ease of reference and to unclutter r_wall/attackby() /turf/closed/wall/proc/place_poster(obj/item/weapon/poster/P, mob/user) if(!P.poster_structure) to_chat(user, "[P] has no poster... inside it? Inform a coder!") diff --git a/code/game/objects/items/weapons/tanks/watertank.dm b/code/game/objects/items/weapons/tanks/watertank.dm index 7b7f1d5423..807756b29e 100644 --- a/code/game/objects/items/weapons/tanks/watertank.dm +++ b/code/game/objects/items/weapons/tanks/watertank.dm @@ -182,7 +182,7 @@ /obj/item/weapon/watertank/atmos name = "backpack firefighter tank" - desc = "A refridgerated and pressurized backpack tank with extinguisher nozzle, intended to fight fires. Swaps between extinguisher, resin launcher and a smaller scale resin foamer." + desc = "A refrigerated and pressurized backpack tank with extinguisher nozzle, intended to fight fires. Swaps between extinguisher, resin launcher and a smaller scale resin foamer." item_state = "waterbackpackatmos" icon_state = "waterbackpackatmos" volume = 200 @@ -215,7 +215,7 @@ precision = 1 cooling_power = 5 w_class = WEIGHT_CLASS_HUGE - flags = NODROP //Necessary to ensure that the nozzle and tank never seperate + flags = NODROP //Necessary to ensure that the nozzle and tank never separate var/obj/item/weapon/watertank/tank var/nozzle_mode = 0 var/metal_synthesis_cooldown = 0 diff --git a/code/game/objects/structures/musician.dm b/code/game/objects/structures/musician.dm index 1331a5aeea..2040f86607 100644 --- a/code/game/objects/structures/musician.dm +++ b/code/game/objects/structures/musician.dm @@ -174,7 +174,7 @@ if(help) dat += "Hide Help
" dat += {" - Lines are a series of chords, separated by commas (,), each with notes seperated by hyphens (-).
+ Lines are a series of chords, separated by commas (,), each with notes separated by hyphens (-).
Every note in a chord will play together, with chord timed by the tempo.

Notes are played by the names of the note, and optionally, the accidental, and/or the octave number.
diff --git a/code/modules/admin/admin_ranks.dm b/code/modules/admin/admin_ranks.dm index a9e75c6028..73c2d8067e 100644 --- a/code/modules/admin/admin_ranks.dm +++ b/code/modules/admin/admin_ranks.dm @@ -119,7 +119,7 @@ GLOBAL_PROTECT(admin_ranks) if(config.admin_legacy_system) var/previous_rights = 0 - //load text from file and process each line seperately + //load text from file and process each line separately for(var/line in world.file2list("config/admin_ranks.txt")) if(!line) continue @@ -195,7 +195,7 @@ GLOBAL_PROTECT(admin_ranks) //load text from file var/list/lines = world.file2list("config/admins.txt") - //process each line seperately + //process each line separately for(var/line in lines) if(!length(line)) continue diff --git a/code/modules/admin/stickyban.dm b/code/modules/admin/stickyban.dm index fc64eb2cf8..9ac85e49fa 100644 --- a/code/modules/admin/stickyban.dm +++ b/code/modules/admin/stickyban.dm @@ -233,7 +233,7 @@ . -= "reverting" //storing these can sometimes cause sticky bans to start matching everybody - // and isn't even needed for sticky ban matching, as the hub tracks these seperately + // and isn't even needed for sticky ban matching, as the hub tracks these separately . -= "IP" . -= "computer_id" diff --git a/code/modules/awaymissions/mission_code/snowdin.dm b/code/modules/awaymissions/mission_code/snowdin.dm index b1dadcdf32..2bd1f4c13e 100644 --- a/code/modules/awaymissions/mission_code/snowdin.dm +++ b/code/modules/awaymissions/mission_code/snowdin.dm @@ -201,8 +201,8 @@ death = FALSE faction = "syndicate" outfit = /datum/outfit/snowsyndie - flavour_text = {"You are a syndicate operative recently awoken from cyrostatis in an underground outpost. Monitor Nanotrasen communications and record infomation. All intruders should be - disposed of swirfly to assure no gathered infomation is stolen or lost. Try not to wander too far from the outpost as the caves can be a deadly place even for a trained operative such as yourself."} + flavour_text = {"You are a syndicate operative recently awoken from cyrostatis in an underground outpost. Monitor Nanotrasen communications and record information. All intruders should be + disposed of swirfly to assure no gathered information is stolen or lost. Try not to wander too far from the outpost as the caves can be a deadly place even for a trained operative such as yourself."} /datum/outfit/snowsyndie name = "Syndicate Snow Operative" diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index af0a4a7518..3c32a49e7d 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -6,7 +6,7 @@ var/damaged_clothes = 0 //similar to machine's BROKEN stat and structure's broken var var/flash_protect = 0 //What level of bright light protection item has. 1 = Flashers, Flashes, & Flashbangs | 2 = Welding | -1 = OH GOD WELDING BURNT OUT MY RETINAS var/tint = 0 //Sets the item's level of visual impairment tint, normally set to the same as flash_protect - var/up = 0 //but seperated to allow items to protect but not impair vision, like space helmets + var/up = 0 //but separated to allow items to protect but not impair vision, like space helmets var/visor_flags = 0 //flags that are added/removed when an item is adjusted up/down var/visor_flags_inv = 0 //same as visor_flags, but for flags_inv var/visor_flags_cover = 0 //same as above, but for flags_cover diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 1713830c6c..3eabbad438 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -246,7 +246,7 @@ /obj/item/clothing/head/jester name = "jester hat" - desc = "A hat with bells, to add some merryness to the suit." + desc = "A hat with bells, to add some merriness to the suit." icon_state = "jester_hat" /obj/item/clothing/head/rice_hat @@ -296,5 +296,5 @@ /obj/item/clothing/head/jester/alt name = "jester hat" - desc = "A hat with bells, to add some merryness to the suit." + desc = "A hat with bells, to add some merriness to the suit." icon_state = "jester_hat2" \ No newline at end of file diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 3be1bfbbf0..4ae20e1461 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -206,7 +206,7 @@ jumping = TRUE playsound(src.loc, 'sound/effects/stealthoff.ogg', 50, 1, 1) - usr.visible_message("[usr] dashes foward into the air!") + usr.visible_message("[usr] dashes forward into the air!") usr.throw_at(target, jumpdistance, jumpspeed, spin=0, diagonals_first = 1, callback = CALLBACK(src, .proc/hop_end)) /obj/item/clothing/shoes/bhop/proc/hop_end() diff --git a/code/modules/clothing/spacesuits/flightsuit.dm b/code/modules/clothing/spacesuits/flightsuit.dm index dfe85c3092..c1c2733b71 100644 --- a/code/modules/clothing/spacesuits/flightsuit.dm +++ b/code/modules/clothing/spacesuits/flightsuit.dm @@ -1219,7 +1219,7 @@ //FLIGHT HELMET---------------------------------------------------------------------------------------------------------------------------------------------------- /obj/item/clothing/head/helmet/space/hardsuit/flightsuit name = "flight helmet" - desc = "A sealed helmet attached to a flight suit for EVA usage scenerios. Its visor contains an information uplink HUD." + desc = "A sealed helmet attached to a flight suit for EVA usage scenarios. Its visor contains an information uplink HUD." icon_state = "flighthelmet" item_state = "flighthelmet" item_color = "flight" diff --git a/code/modules/clothing/spacesuits/flightsuit.dm.rej b/code/modules/clothing/spacesuits/flightsuit.dm.rej new file mode 100644 index 0000000000..a0b426974d --- /dev/null +++ b/code/modules/clothing/spacesuits/flightsuit.dm.rej @@ -0,0 +1,14 @@ +diff a/code/modules/clothing/spacesuits/flightsuit.dm b/code/modules/clothing/spacesuits/flightsuit.dm (rejected hunks) +@@ -1157,10 +1157,10 @@ + maint_panel = TRUE + else + maint_panel = FALSE +- usermessage("You [maint_panel? "open" : "close"] the maintainence panel.") ++ usermessage("You [maint_panel? "open" : "close"] the maintenance panel.") + return FALSE + else if(!maint_panel) +- usermessage("The maintainence panel is closed!", "boldwarning") ++ usermessage("The maintenance panel is closed!", "boldwarning") + return FALSE + else if(istype(I, /obj/item/weapon/crowbar)) + var/list/inputlist = list() diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index 48f3a16830..fea8665ead 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -242,7 +242,7 @@ Contains: /obj/item/clothing/suit/space/freedom name = "eagle suit" - desc = "An advanced, light suit, fabricated from a mixture of synthetic feathers and space-resistant material. A gun holster appears to be intergrated into the suit and the wings appear to be stuck in 'freedom' mode." + desc = "An advanced, light suit, fabricated from a mixture of synthetic feathers and space-resistant material. A gun holster appears to be integrated into the suit and the wings appear to be stuck in 'freedom' mode." icon_state = "freedom" item_state = "freedom" allowed = list(/obj/item/weapon/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/tank/internals) diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 46e953f4d0..1172321a89 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -197,7 +197,7 @@ //When the wearer gets hit, this armor will teleport the user a short distance away (to safety or to more danger, no one knows. That's the fun of it!) /obj/item/clothing/suit/armor/reactive/teleport name = "reactive teleport armor" - desc = "Someone seperated our Research Director from his own head!" + desc = "Someone separated our Research Director from his own head!" var/tele_range = 6 var/rad_amount= 15 reactivearmor_cooldown_duration = 100 diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 71075142c6..d6c019c60a 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -210,7 +210,7 @@ /obj/item/clothing/suit/poncho/ponchoshame name = "poncho of shame" - desc = "Forced to live on your shameful acting as a fake Mexican, you and your poncho have grown inseperable. Literally." + desc = "Forced to live on your shameful acting as a fake Mexican, you and your poncho have grown inseparable. Literally." icon_state = "ponchoshame" item_state = "ponchoshame" flags = NODROP diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index 30245589d4..012bfe588f 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -398,7 +398,7 @@ /obj/item/weapon/reagent_containers/food/drinks/soda_cans/thirteenloko name = "Thirteen Loko" - desc = "The CMO has advised crew members that consumption of Thirteen Loko may result in seizures, blindness, drunkeness, or even death. Please Drink Responsibly." + desc = "The CMO has advised crew members that consumption of Thirteen Loko may result in seizures, blindness, drunkenness, or even death. Please Drink Responsibly." icon_state = "thirteen_loko" list_reagents = list("thirteenloko" = 30) diff --git a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm index b8feddfa79..2ca15f7b97 100644 --- a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm +++ b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm @@ -34,7 +34,7 @@ // The format for shots is the exact same as iconstates for the drinking glass, except you use a shot glass instead. // // If it's a new drink, remember to add it to Chemistry-Reagents.dm and Chemistry-Recipes.dm as well. // // You can only mix the ported-over drinks in shot glasses for now (they'll mix in a shaker, but the sprite won't change for glasses). // -// This is on a case-by-case basis, and you can even make a seperate sprite for shot glasses if you want. // +// This is on a case-by-case basis, and you can even make a separate sprite for shot glasses if you want. // /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass name = "shot glass" diff --git a/code/modules/food_and_drinks/food/condiment.dm b/code/modules/food_and_drinks/food/condiment.dm index baa804a4de..1b06edc350 100644 --- a/code/modules/food_and_drinks/food/condiment.dm +++ b/code/modules/food_and_drinks/food/condiment.dm @@ -115,7 +115,7 @@ desc = "Tasty spacey sugar!" list_reagents = list("sugar" = 50) -/obj/item/weapon/reagent_containers/food/condiment/saltshaker //Seperate from above since it's a small shaker rather then +/obj/item/weapon/reagent_containers/food/condiment/saltshaker //Separate from above since it's a small shaker rather then name = "salt shaker" // a large one. desc = "Salt. From space oceans, presumably." icon_state = "saltshakersmall" diff --git a/code/modules/mining/aux_base_camera.dm b/code/modules/mining/aux_base_camera.dm index 0f4d5915f4..d629be13ee 100644 --- a/code/modules/mining/aux_base_camera.dm +++ b/code/modules/mining/aux_base_camera.dm @@ -27,7 +27,7 @@ delay_mod = 0.5 /obj/machinery/computer/camera_advanced/base_construction - name = "base contruction console" + name = "base construction console" desc = "An industrial computer integrated with a camera-assisted rapid construction drone." networks = list("SS13") var/obj/item/weapon/construction/rcd/internal/RCD //Internal RCD. The computer passes user commands to this in order to avoid massive copypaste. @@ -267,7 +267,7 @@ datum/action/innate/aux_base/install_turret/Activate() var/turf/turret_turf = get_turf(remote_eye) if(is_blocked_turf(turret_turf)) - to_chat(owner, "Location is obtructed by something. Please clear the location and try again.") + to_chat(owner, "Location is obstructed by something. Please clear the location and try again.") return var/obj/machinery/porta_turret/aux_base/T = new /obj/machinery/porta_turret/aux_base(turret_turf) diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index f9e2ee855a..c1cd1b937e 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -785,7 +785,7 @@ switch(random) if(1) - to_chat(user, "Your appearence morphs to that of a very small humanoid ash dragon! You get to look like a freak without the cool abilities.") + to_chat(user, "Your appearance morphs to that of a very small humanoid ash dragon! You get to look like a freak without the cool abilities.") H.dna.features = list("mcolor" = "A02720", "tail_lizard" = "Dark Tiger", "tail_human" = "None", "snout" = "Sharp", "horns" = "Curled", "ears" = "None", "wings" = "None", "frills" = "None", "spines" = "Long", "body_markings" = "Dark Tiger Body", "legs" = "Digitigrade Legs") H.eye_color = "fee5a3" H.set_species(/datum/species/lizard) @@ -814,7 +814,7 @@ severity = BIOHAZARD visibility_flags = 0 stage1 = list("Your bones ache.") - stage2 = list("Your skin feels scaley.") + stage2 = list("Your skin feels scaly.") stage3 = list("You have an overwhelming urge to terrorize some peasants.", "Your teeth feel sharper.") stage4 = list("Your blood burns.") stage5 = list("You're a fucking dragon. However, any previous allegiances you held still apply. It'd be incredibly rude to eat your still human friends for no reason.") diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index 14021cc60c..875380aea8 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -143,7 +143,7 @@ SSblackbox.add_details("mining_equipment_bought", "[src.type]|[prize.equipment_path]") // Add src.type to keep track of free golem purchases - // seperately. + // separately. updateUsrDialog() return diff --git a/code/modules/mining/shelters.dm b/code/modules/mining/shelters.dm index d902c34584..a8b4eab8d2 100644 --- a/code/modules/mining/shelters.dm +++ b/code/modules/mining/shelters.dm @@ -47,7 +47,7 @@ /datum/map_template/shelter/beta name = "Shelter Beta" shelter_id = "shelter_beta" - description = "An extremly luxurious shelter, containing all \ + description = "An extremely luxurious shelter, containing all \ the amenities of home, including carpeted floors, hot and cold \ running water, a gourmet three course meal, cooking facilities, \ and a deluxe companion to keep you from getting lonely during \ diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm index 29e82efe6b..69b581995b 100644 --- a/code/modules/mob/living/carbon/human/human_helpers.dm +++ b/code/modules/mob/living/carbon/human/human_helpers.dm @@ -35,7 +35,7 @@ return pda.owner return if_no_id -//repurposed proc. Now it combines get_id_name() and get_face_name() to determine a mob's name variable. Made into a seperate proc as it'll be useful elsewhere +//repurposed proc. Now it combines get_id_name() and get_face_name() to determine a mob's name variable. Made into a separate proc as it'll be useful elsewhere /mob/living/carbon/human/get_visible_name() var/face_name = get_face_name("") var/id_name = get_id_name("") diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 6510b46bf3..6624e5740f 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -135,7 +135,7 @@ //the puller can always swap with its victim if on grab intent if(M.pulledby == src && a_intent == INTENT_GRAB) mob_swap = 1 - //restrained people act if they were on 'help' intent to prevent a person being pulled from being seperated from their puller + //restrained people act if they were on 'help' intent to prevent a person being pulled from being separated from their puller else if((M.restrained() || M.a_intent == INTENT_HELP) && (restrained() || a_intent == INTENT_HELP)) mob_swap = 1 if(mob_swap) @@ -412,7 +412,7 @@ if(client) to_chat(src, "[src]'s Metainfo:
[client.prefs.metadata]") else - to_chat(src, "[src] does not have any stored infomation!") + to_chat(src, "[src] does not have any stored information!") else to_chat(src, "OOC Metadata is not supported by this server!") diff --git a/code/modules/mob/living/logout.dm b/code/modules/mob/living/logout.dm index bcd7c77f1d..a3479aac89 100644 --- a/code/modules/mob/living/logout.dm +++ b/code/modules/mob/living/logout.dm @@ -2,5 +2,5 @@ if(ranged_ability && client) ranged_ability.remove_mousepointer(client) ..() - if(!key && mind) //key and mind have become seperated. + if(!key && mind) //key and mind have become separated. mind.active = 0 //This is to stop say, a mind.transfer_to call on a corpse causing a ghost to re-enter its body. \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 7eb7840a59..f083f6c5f5 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -1055,7 +1055,7 @@ diag_hud_set_aishell() /mob/living/silicon/robot/proc/deploy_init(var/mob/living/silicon/ai/AI) - real_name = "[AI.real_name] shell [rand(100, 999)] - [designation]" //Randomizing the name so it shows up seperately in the shells list + real_name = "[AI.real_name] shell [rand(100, 999)] - [designation]" //Randomizing the name so it shows up separately in the shells list name = real_name if(camera) camera.c_tag = real_name //update the camera name too diff --git a/code/modules/mob/living/simple_animal/corpse.dm b/code/modules/mob/living/simple_animal/corpse.dm index 45fb411876..2b897bfbcb 100644 --- a/code/modules/mob/living/simple_animal/corpse.dm +++ b/code/modules/mob/living/simple_animal/corpse.dm @@ -2,7 +2,7 @@ //If someone can do this in a neater way, be my guest-Kor -//This has to be seperate from the Away Mission corpses, because New() doesn't work for those, and initialize() doesn't work for these. +//This has to be separate from the Away Mission corpses, because New() doesn't work for those, and initialize() doesn't work for these. //To do: Allow corpses to appear mangled, bloody, etc. Allow customizing the bodies appearance (they're all bald and white right now). diff --git a/code/modules/mob/say_readme.dm b/code/modules/mob/say_readme.dm index 87c198875a..0c64da1789 100644 --- a/code/modules/mob/say_readme.dm +++ b/code/modules/mob/say_readme.dm @@ -5,7 +5,7 @@ This is a basic explanation of how say() works. Read this if you don't understand something. The basic "flow" of say() is that a speaker says a message, which is heard by hearers. What appears on screen -is constructed by each hearer seperately, and not by the speaker. +is constructed by each hearer separately, and not by the speaker. This rewrite was needed, but is far from perfect. Report any bugs you come across and feel free to fix things up. Radio code, while very much related to saycode, is not something I wanted to touch, so the code related to that may be messy. @@ -122,7 +122,7 @@ global procs Called right before handle_inherent_channels() can_speak_vocal(message) - Checks if the mob can vocalize their message. This is seperate so, for example, muzzles don't block + Checks if the mob can vocalize their message. This is separate so, for example, muzzles don't block hivemind chat. Called right after handle_inherent_channels() diff --git a/code/modules/paperwork/filingcabinet.dm b/code/modules/paperwork/filingcabinet.dm index 468a044bc0..ca77641a9b 100644 --- a/code/modules/paperwork/filingcabinet.dm +++ b/code/modules/paperwork/filingcabinet.dm @@ -27,7 +27,7 @@ desc = "A small cabinet with drawers. This one has wheels!" anchored = FALSE -/obj/structure/filingcabinet/filingcabinet //not changing the path to avoid unecessary map issues, but please don't name stuff like this in the future -Pete +/obj/structure/filingcabinet/filingcabinet //not changing the path to avoid unnecessary map issues, but please don't name stuff like this in the future -Pete icon_state = "tallcabinet" diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 5db3d9c1c5..e36c639eb9 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -28,7 +28,7 @@ // the Area Power Controller (APC), formerly Power Distribution Unit (PDU) -// one per area, needs wire conection to power network through a terminal +// one per area, needs wire connection to power network through a terminal // controls power to devices in that area // may be opened to change power cell @@ -256,7 +256,7 @@ O += "apco2-[environ]" add_overlay(O) - // And now, seperately for cleanness, the lighting changing + // And now, separately for cleanness, the lighting changing if(update_state & UPSTATE_ALLGOOD) switch(charging) if(0) diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index e80b4cd9b6..816cd97874 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -582,7 +582,7 @@ L.show_message("As \the [src] slowly stops resonating, you find your skin covered in new radiation burns.", 1,\ "The unearthly ringing subsides and you notice you have new radiation burns.", 2) else - L.show_message("You hear an uneartly ringing and notice your skin is covered in fresh radiation burns.", 2) + L.show_message("You hear an unearthly ringing and notice your skin is covered in fresh radiation burns.", 2) // When you wanna make a supermatter shard for the dramatic effect, but // don't want it exploding suddenly diff --git a/code/modules/procedural_mapping/mapGeneratorReadme.dm b/code/modules/procedural_mapping/mapGeneratorReadme.dm index ae656b5b30..c4ced7674b 100644 --- a/code/modules/procedural_mapping/mapGeneratorReadme.dm +++ b/code/modules/procedural_mapping/mapGeneratorReadme.dm @@ -80,7 +80,7 @@ mapGeneratorModule Simple Workflow: 1. Define a/some mapGeneratorModule(s) to your liking, choosing atoms and turfs to spawn - #Note: I chose to split Turfs and Atoms off into seperate modules, but this is NOT required. + #Note: I chose to split Turfs and Atoms off into separate modules, but this is NOT required. #Note: A mapGeneratorModule may have turfs AND atoms, so long as each is in it's appropriate list 2. Define a mapGenerator type who's modules list contains the typepath(s) of all the module(s) you wish to use @@ -98,7 +98,7 @@ Simple Workflow: Option Suggestions: - * Have seperate modules for Turfs and Atoms, this is not enforced, but it is how I have structured my nature example. + * Have separate modules for Turfs and Atoms, this is not enforced, but it is how I have structured my nature example. * If your map doesn't look quite to your liking, simply jiggle with the variables on your modules and the type probabilities * You can mix and map premade areas with the procedural generation, for example mapping an entire flat land but having code generate just the grass tufts diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm index e1c6e6fa6e..cdf5a4b817 100644 --- a/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -374,7 +374,7 @@ /obj/item/weapon/gun/ballistic/automatic/sniper_rifle/syndicate name = "syndicate sniper rifle" - desc = "An illegally modified .50 cal sniper rifle with supression compatibility. Quickscoping still doesn't work." + desc = "An illegally modified .50 cal sniper rifle with suppression compatibility. Quickscoping still doesn't work." pin = /obj/item/device/firing_pin/implant/pindicate origin_tech = "combat=7;syndicate=6" diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm index 6c5e4d935c..226652f6d5 100644 --- a/code/modules/projectiles/guns/ballistic/revolver.dm +++ b/code/modules/projectiles/guns/ballistic/revolver.dm @@ -247,7 +247,7 @@ if(!SS.transfer_soul("FORCE", user)) //Something went wrong qdel(SS) return - user.visible_message("[user.name]'s soul is captured by \the [src]!", "You've lost the gamble! Your soul is forfiet!") + user.visible_message("[user.name]'s soul is captured by \the [src]!", "You've lost the gamble! Your soul is forfeit!") ///////////////////////////// // DOUBLE BARRELED SHOTGUN // diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm index 22b51064af..9c84378586 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -427,7 +427,7 @@ /obj/item/borg/upgrade/modkit/bounty name = "death syphon" - desc = "Killing or assisting in killing a creature permenantly increases your damage against that type of creature." + desc = "Killing or assisting in killing a creature permanently increases your damage against that type of creature." denied_type = /obj/item/borg/upgrade/modkit/bounty modifier = 1.25 cost = 30 @@ -534,7 +534,7 @@ /obj/item/borg/upgrade/modkit/tracer/adjustable name = "adjustable tracer bolts" - desc = "Causes kinetic accelerator bolts to have a adjustably-colored tracer trail and explosion. Use in-hand to change color." + desc = "Causes kinetic accelerator bolts to have a adjustable-colored tracer trail and explosion. Use in-hand to change color." /obj/item/borg/upgrade/modkit/tracer/adjustable/attack_self(mob/user) bolt_color = input(user,"Choose Color") as color diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index a38ba3773e..a0a328afb0 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -46,7 +46,7 @@ name = "scatter shot laser rifle" icon_state = "lasercannon" item_state = "laser" - desc = "An industrial-grade heavy-duty laser rifle with a modified laser lense to scatter its shot into multiple smaller lasers. The inner-core can self-charge for theorically infinite use." + desc = "An industrial-grade heavy-duty laser rifle with a modified laser lens to scatter its shot into multiple smaller lasers. The inner-core can self-charge for theoretically infinite use." origin_tech = "combat=5;materials=4;powerstorage=4" ammo_type = list(/obj/item/ammo_casing/energy/laser/scatter, /obj/item/ammo_casing/energy/laser) @@ -107,8 +107,8 @@ transform *= 1 + ((damage/7) * 0.2)//20% larger per tile /obj/item/weapon/gun/energy/xray - name = "xray laser gun" - desc = "A high-power laser gun capable of expelling concentrated xray blasts that pass through multiple soft targets and heavier materials" + name = "x-ray laser gun" + desc = "A high-power laser gun capable of expelling concentrated x-ray blasts that pass through multiple soft targets and heavier materials" icon_state = "xray" item_state = null origin_tech = "combat=6;materials=4;magnets=4;syndicate=1" diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index 57d374e3d9..d902ed7b13 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -1,6 +1,6 @@ /obj/machinery/chem_master name = "ChemMaster 3000" - desc = "Used to seperate chemicals and distribute them in a variety of forms." + desc = "Used to separate chemicals and distribute them in a variety of forms." density = TRUE anchored = TRUE icon = 'icons/obj/chemical.dmi' diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index a94b3a80b3..7a078f1891 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -498,7 +498,7 @@ other types of metals and chemistry for reagents). /datum/design/handdrill name = "Hand Drill" - desc = "A small electric hand drill with an interchangable screwdriver and bolt bit" + desc = "A small electric hand drill with an interchangeable screwdriver and bolt bit" id = "handdrill" req_tech = list("materials" = 4, "engineering" = 6) build_type = PROTOLATHE @@ -508,7 +508,7 @@ other types of metals and chemistry for reagents). /datum/design/jawsoflife name = "Jaws of Life" - desc = "A small, compact Jaws of Life with an interchangable pry jaws and cutting jaws" + desc = "A small, compact Jaws of Life with an interchangeable pry jaws and cutting jaws" id = "jawsoflife" req_tech = list("materials" = 4, "engineering" = 6, "magnets" = 6) // added one more requirment since the Jaws of Life are a bit OP build_path = /obj/item/weapon/crowbar/power diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index 23b9ad00c8..7e7b4c2b5b 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -653,7 +653,7 @@ warn_admins(user, "Flash") /obj/item/weapon/relic/proc/petSpray(mob/user) - var/message = "[src] begans to shake, and in the distance the sound of rampaging animals arises!" + var/message = "[src] begins to shake, and in the distance the sound of rampaging animals arises!" visible_message(message) to_chat(user, message) var/animals = rand(1,25) diff --git a/code/modules/research/research.dm b/code/modules/research/research.dm index 827cce162f..49584ecb3c 100644 --- a/code/modules/research/research.dm +++ b/code/modules/research/research.dm @@ -219,13 +219,13 @@ research holder datum. /datum/tech/plasmatech name = "Plasma Research" - desc = "Research into the mysterious substance colloqually known as \"plasma\"." + desc = "Research into the mysterious substance colloquially known as \"plasma\"." id = "plasmatech" rare = 3 /datum/tech/powerstorage name = "Power Manipulation Technology" - desc = "The various technologies behind the storage and generation of electicity." + desc = "The various technologies behind the storage and generation of electricity." id = "powerstorage" /datum/tech/bluespace @@ -256,7 +256,7 @@ research holder datum. /datum/tech/syndicate name = "Illegal Technologies Research" - desc = "The study of technologies that violate Nanotrassen regulations." + desc = "The study of technologies that violate Nanotrasen regulations." id = "syndicate" rare = 4 diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index 93ac3324ac..9c826f5f5f 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -425,7 +425,7 @@ /obj/item/clothing/suit/golem name = "adamantine shell" - desc = "a golem's thick outter shell" + desc = "a golem's thick outer shell" icon_state = "golem" item_state = "golem" w_class = WEIGHT_CLASS_BULKY diff --git a/code/modules/spells/spell_types/summonitem.dm b/code/modules/spells/spell_types/summonitem.dm index 74490fea28..61330265ab 100644 --- a/code/modules/spells/spell_types/summonitem.dm +++ b/code/modules/spells/spell_types/summonitem.dm @@ -80,7 +80,7 @@ var/obj/item/bodypart/part = X if(item_to_retrieve in part.embedded_objects) part.embedded_objects -= item_to_retrieve - to_chat(C, "The [item_to_retrieve] that was embedded in your [L] has myseriously vanished. How fortunate!") + to_chat(C, "The [item_to_retrieve] that was embedded in your [L] has mysteriously vanished. How fortunate!") if(!C.has_embedded_objects()) C.clear_alert("embeddedobject") break diff --git a/code/modules/station_goals/bsa.dm b/code/modules/station_goals/bsa.dm index 074c206c1f..77a30b1884 100644 --- a/code/modules/station_goals/bsa.dm +++ b/code/modules/station_goals/bsa.dm @@ -64,7 +64,7 @@ /obj/machinery/bsa/middle name = "Bluespace Artillery Fusor" - desc = "Contents classifed by Nanotrasen Naval Command. Needs to be linked with the other BSA parts using multitool." + desc = "Contents classified by Nanotrasen Naval Command. Needs to be linked with the other BSA parts using multitool." icon_state = "fuel_chamber" var/obj/machinery/bsa/back/back var/obj/machinery/bsa/front/front diff --git a/code/modules/station_goals/dna_vault.dm b/code/modules/station_goals/dna_vault.dm index 55ae1cc2b0..e7a529b2a0 100644 --- a/code/modules/station_goals/dna_vault.dm +++ b/code/modules/station_goals/dna_vault.dm @@ -85,7 +85,7 @@ if(!H.myseed) return if(!H.harvest)// So it's bit harder. - to_chat(user, "Plant needs to be ready to harvest to perform full data scan.") //Because space dna is actually magic + to_chat(user, "Plant needs to be ready to harvest to perform full data scan.") //Because space dna is actually magic return if(plants[H.myseed.type]) to_chat(user, "Plant data already present in local storage.") diff --git a/code/modules/stock_market/events.dm b/code/modules/stock_market/events.dm index 17a92ea83f..a3d9023f7a 100644 --- a/code/modules/stock_market/events.dm +++ b/code/modules/stock_market/events.dm @@ -4,7 +4,7 @@ var/name = "event" var/next_phase = 0 var/datum/stock/company = null - var/current_title = "A company holding an pangalactic conference in the Seattle Conference Center, Seattle, Earth" + var/current_title = "A company holding a pangalactic conference in the Seattle Conference Center, Seattle, Earth" var/current_desc = "We will continue to monitor their stocks as the situation unfolds." var/phase_id = 0 var/hidden = 0 diff --git a/code/modules/surgery/organ_manipulation.dm.rej b/code/modules/surgery/organ_manipulation.dm.rej new file mode 100644 index 0000000000..8a77b0aade --- /dev/null +++ b/code/modules/surgery/organ_manipulation.dm.rej @@ -0,0 +1,10 @@ +diff a/code/modules/surgery/organ_manipulation.dm b/code/modules/surgery/organ_manipulation.dm (rejected hunks) +@@ -78,7 +78,7 @@ + current_type = "extract" + var/list/organs = target.getorganszone(target_zone) + if(!organs.len) +- to_chat(user, "There are no removeable organs in [target]'s [parse_zone(target_zone)]!") ++ to_chat(user, "There are no removable organs in [target]'s [parse_zone(target_zone)]!") + return -1 + else + for(var/obj/item/organ/O in organs) diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm index 5c0e31456e..69cf8aa96b 100644 --- a/code/modules/surgery/organs/augments_arms.dm +++ b/code/modules/surgery/organs/augments_arms.dm @@ -174,7 +174,7 @@ /obj/item/organ/cyberimp/arm/toolset name = "integrated toolset implant" - desc = "A stripped-down version of engineering cyborg toolset, designed to be installed on subject's arm. Contains all neccessary tools." + desc = "A stripped-down version of engineering cyborg toolset, designed to be installed on subject's arm. Contains all necessary tools." origin_tech = "materials=3;engineering=4;biotech=3;powerstorage=4" contents = newlist(/obj/item/weapon/screwdriver/cyborg, /obj/item/weapon/wrench/cyborg, /obj/item/weapon/weldingtool/largetank/cyborg, /obj/item/weapon/crowbar/cyborg, /obj/item/weapon/wirecutters/cyborg, /obj/item/device/multitool/cyborg) @@ -191,7 +191,7 @@ /obj/item/organ/cyberimp/arm/esword name = "arm-mounted energy blade" - desc = "An illegal, and highly dangerous cybernetic implant that can project a deadly blade of concentrated enregy." + desc = "An illegal, and highly dangerous cybernetic implant that can project a deadly blade of concentrated energy." contents = newlist(/obj/item/weapon/melee/transforming/energy/blade/hardlight) origin_tech = "materials=4;combat=5;biotech=3;powerstorage=2;syndicate=5" diff --git a/code/modules/surgery/organs/augments_chest.dm b/code/modules/surgery/organs/augments_chest.dm index 3a2a3611db..a281249a12 100644 --- a/code/modules/surgery/organs/augments_chest.dm +++ b/code/modules/surgery/organs/augments_chest.dm @@ -117,7 +117,7 @@ /obj/item/organ/cyberimp/chest/thrusters name = "implantable thrusters set" desc = "An implantable set of thruster ports. They use the gas from environment or subject's internals for propulsion in zero-gravity areas. \ - Unlike regular jetpack, this device has no stablilzation system." + Unlike regular jetpack, this device has no stabilization system." slot = "thrusters" icon_state = "imp_jetpack" origin_tech = "materials=4;magnets=4;biotech=4;engineering=5" diff --git a/code/modules/surgery/remove_embedded_object.dm b/code/modules/surgery/remove_embedded_object.dm index b791586e22..e116c23303 100644 --- a/code/modules/surgery/remove_embedded_object.dm +++ b/code/modules/surgery/remove_embedded_object.dm @@ -32,7 +32,7 @@ H.clear_alert("embeddedobject") if(objects > 0) - user.visible_message("[user] sucessfully removes [objects] objects from [H]'s [L]!", "You successfully remove [objects] objects from [H]'s [L.name].") + user.visible_message("[user] successfully removes [objects] objects from [H]'s [L]!", "You successfully remove [objects] objects from [H]'s [L.name].") else to_chat(user, "You find no objects embedded in [H]'s [L]!") diff --git a/code/modules/zombie/organs.dm b/code/modules/zombie/organs.dm index e977ac4600..d3c30ac285 100644 --- a/code/modules/zombie/organs.dm +++ b/code/modules/zombie/organs.dm @@ -1,6 +1,6 @@ /obj/item/organ/zombie_infection name = "festering ooze" - desc = "A black web of pus and vicera." + desc = "A black web of pus and viscera." zone = "head" slot = "zombie_infection" icon_state = "blacktumor" From d6fdd618e8467a1181fb06200f15a7fbe0e2cd94 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 1 Aug 2017 08:46:27 -0500 Subject: [PATCH 068/219] Removes spaces to underline from add_details --- code/controllers/subsystem/blackbox.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/controllers/subsystem/blackbox.dm b/code/controllers/subsystem/blackbox.dm index 19e96f3fbf..afa77b0207 100644 --- a/code/controllers/subsystem/blackbox.dm +++ b/code/controllers/subsystem/blackbox.dm @@ -259,7 +259,6 @@ SUBSYSTEM_DEF(blackbox) /datum/feedback_variable/proc/add_details(text) if (istext(text)) - text = replacetext(text, " ", "_") if (!details) details = text else From e2c14f018bde937161236b8b9c492416754a116e Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 1 Aug 2017 17:06:59 -0500 Subject: [PATCH 069/219] Automatic changelog generation for PR #2215 [ci skip] --- html/changelogs/AutoChangeLog-pr-2215.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2215.yml diff --git a/html/changelogs/AutoChangeLog-pr-2215.yml b/html/changelogs/AutoChangeLog-pr-2215.yml new file mode 100644 index 0000000000..f02f2d33cf --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2215.yml @@ -0,0 +1,5 @@ +author: "Xhuis and oranges" +delete-after: True +changes: + - bugfix: "Banana cream pies no longer splat when they're caught by someone." + - soundadd: "Throwing a pie in someone's face now has a splat sound." From 1e82ad9d3e52dd236915e36a595928f063920703 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 1 Aug 2017 17:57:44 -0500 Subject: [PATCH 070/219] Fixes devil pitchforks being uninitialized --- code/game/objects/items/weapons/twohanded.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index 113f70825e..067339d6a3 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -578,6 +578,7 @@ force_wielded = 25 /obj/item/weapon/twohanded/pitchfork/demonic/Initialize() + . = ..() set_light(3,6,LIGHT_COLOR_RED) /obj/item/weapon/twohanded/pitchfork/demonic/greater @@ -695,4 +696,4 @@ sharpness = IS_SHARP /obj/item/weapon/twohanded/bonespear/update_icon() - icon_state = "bone_spear[wielded]" \ No newline at end of file + icon_state = "bone_spear[wielded]" From 6cb94445886b88415d9862338e8449a162631ca0 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 1 Aug 2017 18:10:59 -0500 Subject: [PATCH 071/219] Fixes silicons not returning an Initialize hint --- code/modules/mob/living/silicon/silicon.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 6446debb80..bdc2338828 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -38,7 +38,7 @@ var/law_change_counter = 0 /mob/living/silicon/Initialize() - ..() + . = ..() GLOB.silicon_mobs += src var/datum/atom_hud/data/diagnostic/diag_hud = GLOB.huds[DATA_HUD_DIAGNOSTIC] diag_hud.add_to_hud(src) From f19a9e855ad26374ec695aa9cefa3af994034b88 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 1 Aug 2017 23:55:55 -0500 Subject: [PATCH 072/219] Automatic changelog generation for PR #2143 [ci skip] --- html/changelogs/AutoChangeLog-pr-2143.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2143.yml diff --git a/html/changelogs/AutoChangeLog-pr-2143.yml b/html/changelogs/AutoChangeLog-pr-2143.yml new file mode 100644 index 0000000000..ca4975e073 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2143.yml @@ -0,0 +1,4 @@ +author: "Joan" +delete-after: True +changes: + - tweak: "Lava rivers though the ash walker nest are now significantly less of a hassle for the ashwalkers." From 76f7fcef9a307456fda965d1ed74861655f51b21 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 2 Aug 2017 03:17:32 -0500 Subject: [PATCH 073/219] [MIRROR] Cleaned up paper varedits + tidied up paths (#2156) * Cleaned up paper varedits + tidied up paths * work smarter, not harder * citadel snowflake * Update uplink_item_cit.dm --- .../lavaland_surface_animal_hospital.dmm | 5 +- .../LavaRuins/lavaland_surface_sloth.dmm | 5 +- .../LavaRuins/lavaland_surface_ufo_crash.dmm | 2 +- _maps/RandomRuins/SpaceRuins/DJstation.dmm | 2 +- _maps/RandomRuins/SpaceRuins/TheDerelict.dmm | 16 +-- _maps/RandomRuins/SpaceRuins/asteroid4.dmm | 4 +- _maps/RandomRuins/SpaceRuins/bigderelict1.dmm | 4 +- .../SpaceRuins/crashedclownship.dmm | 4 +- _maps/RandomRuins/SpaceRuins/crashedship.dmm | 15 +-- _maps/RandomRuins/SpaceRuins/deepstorage.dmm | 15 +-- .../SpaceRuins/listeningstation.dmm | 55 ++------- _maps/RandomRuins/SpaceRuins/oldstation.dmm | 18 +-- .../SpaceRuins/originalcontent.dmm | 20 +--- _maps/RandomRuins/SpaceRuins/spacehotel.dmm | 30 +---- _maps/RandomZLevels/Academy.dmm | 37 ++---- _maps/RandomZLevels/caves.dmm | 45 ++----- _maps/RandomZLevels/centcomAway.dmm | 8 +- _maps/RandomZLevels/challenge.dmm | 7 +- _maps/RandomZLevels/moonoutpost19.dmm | 88 ++++---------- _maps/RandomZLevels/research.dmm | 8 +- _maps/RandomZLevels/snowdin.dmm | 29 ++--- _maps/RandomZLevels/undergroundoutpost45.dmm | 4 +- _maps/RandomZLevels/wildwest.dmm | 22 +--- _maps/map_files/BoxStation/BoxStation.dmm | 25 ++-- _maps/map_files/Cerestation/cerestation.dmm | 79 +++--------- .../map_files/Deltastation/DeltaStation2.dmm | 12 +- _maps/map_files/MetaStation/MetaStation.dmm | 37 ++---- _maps/map_files/Mining/Lavaland.dmm | 6 +- _maps/map_files/OmegaStation/OmegaStation.dmm | 2 +- _maps/map_files/PubbyStation/PubbyStation.dmm | 27 ++--- .../PubbyStation/PubbyStation.dmm.rej | 2 +- _maps/map_files/generic/Centcomm.dmm | 45 ++++--- .../emergency_imfedupwiththisworld.dmm | 4 +- .../miniantags/abduction/abduction_gear.dm | 6 +- code/game/gamemodes/wizard/spellbook.dm | 2 +- code/game/machinery/cloning.dm | 2 +- code/game/machinery/quantum_pad.dm | 5 + code/game/machinery/recycler.dm | 2 +- code/game/objects/items/theft_tools.dm | 4 +- .../items/weapons/storage/uplink_kits.dm | 4 +- .../crates_lockers/closets/secure/security.dm | 2 +- .../structures/crates_lockers/crates.dm | 2 +- code/game/objects/structures/morgue.dm | 2 +- code/modules/awaymissions/gateway.dm | 5 + .../awaymissions/mission_code/Academy.dm | 30 +++++ .../awaymissions/mission_code/caves.dm | 31 +++++ .../awaymissions/mission_code/centcomAway.dm | 4 +- .../mission_code/moonoutpost19.dm | 83 +++++++++++++ .../awaymissions/mission_code/research.dm | 5 + .../awaymissions/mission_code/snowdin.dm | 38 +++--- .../mission_code/stationCollision.dm | 18 +-- .../awaymissions/mission_code/wildwest.dm | 22 ++++ code/modules/awaymissions/pamphlet.dm | 2 + code/modules/cargo/exports/manifest.dm | 22 ++-- code/modules/cargo/order.dm | 12 +- code/modules/cargo/packs.dm | 4 +- code/modules/holodeck/items.dm | 6 +- .../living/simple_animal/guardian/guardian.dm | 8 +- code/modules/paperwork/paper.dm | 92 -------------- code/modules/paperwork/paper_premade.dm | 113 ++++++++++++++++++ code/modules/power/gravitygenerator.dm | 2 +- code/modules/power/solar.dm | 2 +- code/modules/recycling/conveyor2.dm | 2 +- code/modules/ruins/lavalandruin_code/sloth.dm | 5 + .../ruins/lavalandruin_code/surface.dm | 5 + .../modules/ruins/spaceruin_code/DJstation.dm | 5 + .../ruins/spaceruin_code/TheDerelict.dm | 13 ++ .../modules/ruins/spaceruin_code/asteroid4.dm | 4 + .../ruins/spaceruin_code/crashedclownship.dm | 4 + .../ruins/spaceruin_code/crashedship.dm | 15 +++ .../ruins/spaceruin_code/deepstorage.dm | 14 +++ .../ruins/spaceruin_code/listeningstation.dm | 45 +++++++ .../ruins/spaceruin_code/oldstation.dm | 49 ++++++++ .../ruins/spaceruin_code/originalcontent.dm | 4 + .../ruins/spaceruin_code/spacehotel.dm | 12 ++ code/modules/uplink/uplink_item_cit.dm | 2 +- tgstation.dme | 16 +++ 77 files changed, 756 insertions(+), 651 deletions(-) create mode 100644 code/modules/awaymissions/mission_code/caves.dm create mode 100644 code/modules/awaymissions/mission_code/moonoutpost19.dm create mode 100644 code/modules/awaymissions/mission_code/research.dm create mode 100644 code/modules/paperwork/paper_premade.dm create mode 100644 code/modules/ruins/lavalandruin_code/sloth.dm create mode 100644 code/modules/ruins/lavalandruin_code/surface.dm create mode 100644 code/modules/ruins/spaceruin_code/DJstation.dm create mode 100644 code/modules/ruins/spaceruin_code/TheDerelict.dm create mode 100644 code/modules/ruins/spaceruin_code/asteroid4.dm create mode 100644 code/modules/ruins/spaceruin_code/crashedclownship.dm create mode 100644 code/modules/ruins/spaceruin_code/crashedship.dm create mode 100644 code/modules/ruins/spaceruin_code/deepstorage.dm create mode 100644 code/modules/ruins/spaceruin_code/listeningstation.dm create mode 100644 code/modules/ruins/spaceruin_code/oldstation.dm create mode 100644 code/modules/ruins/spaceruin_code/originalcontent.dm create mode 100644 code/modules/ruins/spaceruin_code/spacehotel.dm diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm index 005ce22589..de78fed108 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm @@ -145,10 +145,7 @@ dir = 1; pixel_y = -27 }, -/obj/item/weapon/paper{ - info = "Nothing of interest to report."; - name = "Important Notice - Mrs. Henderson" - }, +/obj/item/weapon/paper/fluff/stations/lavaland/surface/henderson_report, /turf/open/floor/plasteel/cmo, /area/ruin/powered/animal_hospital) "aA" = ( diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm index a8514a4647..89a8b50c39 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm @@ -6,10 +6,7 @@ /turf/open/lava/smooth/lava_land_surface, /area/ruin/unpowered) "c" = ( -/obj/item/weapon/paper{ - desc = "have not gotten around to finishing my cursed item yet sorry - sloth"; - name = "note from sloth" - }, +/obj/item/weapon/paper/fluff/stations/lavaland/sloth/note, /turf/open/floor/sepia{ blocks_air = 0; slowdown = 10 diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_ufo_crash.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_ufo_crash.dmm index 6c18feaff8..22d341c7df 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_ufo_crash.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_ufo_crash.dmm @@ -132,7 +132,7 @@ /area/ruin/unpowered) "w" = ( /obj/item/weapon/retractor/alien, -/obj/item/weapon/paper/abductor, +/obj/item/weapon/paper/guides/antag/abductor, /turf/open/floor/plating/abductor{ initial_gas_mix = "o2=16;n2=23;TEMP=300" }, diff --git a/_maps/RandomRuins/SpaceRuins/DJstation.dmm b/_maps/RandomRuins/SpaceRuins/DJstation.dmm index 3a1279237c..515878e931 100644 --- a/_maps/RandomRuins/SpaceRuins/DJstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/DJstation.dmm @@ -249,7 +249,7 @@ /area/djstation) "aR" = ( /obj/structure/table, -/obj/item/weapon/paper/djstation, +/obj/item/weapon/paper/fluff/ruins/djstation, /turf/open/floor/plasteel/cafeteria, /area/djstation) "aS" = ( diff --git a/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm b/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm index 52b8dcab89..768dd08e3f 100644 --- a/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm +++ b/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm @@ -1212,10 +1212,7 @@ dir = 8 }, /obj/structure/table, -/obj/item/weapon/paper{ - info = "If the equipment breaks there should be enough spare parts in our engineering storage near the north east solar array."; - name = "Equipment Inventory" - }, +/obj/item/weapon/paper/fluff/ruins/thederelict/equipment, /turf/open/floor/plasteel/airless, /area/derelict/gravity_generator) "dt" = ( @@ -1683,10 +1680,7 @@ /turf/open/floor/plasteel, /area/derelict/bridge) "eN" = ( -/obj/item/weapon/paper{ - info = "Objective #1: Destroy the station with a nuclear device."; - name = "Objectives of a Nuclear Operative" - }, +/obj/item/weapon/paper/fluff/ruins/thederelict/nukie_objectives, /turf/open/floor/plasteel/airless{ icon_state = "damaged2" }, @@ -4785,11 +4779,7 @@ /turf/open/floor/plating/airless, /area/derelict/se_solar) "oa" = ( -/obj/item/weapon/paper{ - desc = ""; - info = "The Syndicate have cunningly disguised a Syndicate Uplink as your PDA. Simply enter the code \"678 Bravo\" into the ringtone select to unlock its hidden features.

Objective #1. Kill the God damn AI in a fire blast that it rocks the station. Success!
Objective #2. Escape alive. Failed."; - name = "Mission Objectives" - }, +/obj/item/weapon/paper/fluff/ruins/thederelict/syndie_mission, /turf/open/floor/plasteel/airless{ icon_state = "damaged2" }, diff --git a/_maps/RandomRuins/SpaceRuins/asteroid4.dmm b/_maps/RandomRuins/SpaceRuins/asteroid4.dmm index 03ecac3738..bbbd529e8a 100644 --- a/_maps/RandomRuins/SpaceRuins/asteroid4.dmm +++ b/_maps/RandomRuins/SpaceRuins/asteroid4.dmm @@ -49,9 +49,7 @@ brute_damage = 120; oxy_damage = 75 }, -/obj/item/weapon/paper{ - info = "Extraction was successful! The disguise was perfect, the clowns never knew what hit 'em! Once I get back to base with the bananium samples I'll be rich, I tell you! RICH!" - }, +/obj/item/weapon/paper/fluff/ruins/asteroid4/extraction, /obj/item/stack/sheet/mineral/bananium{ amount = 15 }, diff --git a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm index 40efc634aa..a9232ea33a 100644 --- a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm +++ b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm @@ -259,7 +259,7 @@ name = "critter crate - mr.tiggles"; opened = 1 }, -/obj/item/weapon/paper/crumpled/snowdin{ +/obj/item/weapon/paper/crumpled/ruins/snowdin{ info = "A crumpled piece of manifest paper, out of the barely legible pen writing, you can see something about a warning involving whatever was originally in the crate." }, /obj/structure/alien/weeds{ @@ -455,7 +455,7 @@ name = "Tradeport Officer"; random = 1 }, -/obj/item/weapon/paper/crumpled/snowdin{ +/obj/item/weapon/paper/crumpled/ruins/snowdin{ icon_state = "scrap_bloodied"; info = "If anyone finds this, please, don't let my kids know I died a coward.." }, diff --git a/_maps/RandomRuins/SpaceRuins/crashedclownship.dmm b/_maps/RandomRuins/SpaceRuins/crashedclownship.dmm index 4f9ce74170..618366df7c 100644 --- a/_maps/RandomRuins/SpaceRuins/crashedclownship.dmm +++ b/_maps/RandomRuins/SpaceRuins/crashedclownship.dmm @@ -103,9 +103,7 @@ /turf/open/floor/mineral/bananium/airless, /area/ruin/unpowered) "s" = ( -/obj/item/weapon/paper{ - info = "The call has gone out! Our ancestral home has been rediscovered! Not a small patch of land, but a true clown nation, a true Clown Planet! We're on our way home at last!" - }, +/obj/item/weapon/paper/fluff/ruins/crashedclownship/true_nation, /turf/open/floor/mineral/bananium/airless, /area/ruin/unpowered) "t" = ( diff --git a/_maps/RandomRuins/SpaceRuins/crashedship.dmm b/_maps/RandomRuins/SpaceRuins/crashedship.dmm index 6dcae3923e..ecc3332dde 100644 --- a/_maps/RandomRuins/SpaceRuins/crashedship.dmm +++ b/_maps/RandomRuins/SpaceRuins/crashedship.dmm @@ -653,10 +653,7 @@ /obj/structure/table, /obj/item/weapon/screwdriver, /obj/item/weapon/screwdriver, -/obj/item/weapon/paper{ - info = "The next person who takes one of my screwdrivers gets stabbed with one. They are MINE. - Love, Madsen"; - name = "scribbled note" - }, +/obj/item/weapon/paper/fluff/ruins/crashedship/scribbled, /obj/item/weapon/screwdriver, /turf/open/floor/plasteel/bar, /area/awaymission/BMPship/Midship) @@ -954,10 +951,7 @@ /area/awaymission/BMPship/Aft) "cY" = ( /obj/structure/table, -/obj/item/weapon/paper{ - info = "I'm no scientist, but judging from the design and components, it seems to be some kind of teleporter. This thing is gonna be worth a lot of cash to the right man. The boys are excited, as they have every right to be, and I've let them crack into that case of beer we got. I normally wouldn't allow such a thing, but this is a time for celebration! It's not like a couple drinks will hurt anything."; - name = "Captain's log entry" - }, +/obj/item/weapon/paper/fluff/ruins/crashedship/captains_log, /turf/open/floor/carpet, /area/awaymission/BMPship/Fore) "cZ" = ( @@ -2167,10 +2161,7 @@ /area/awaymission/BMPship/Aft) "gh" = ( /obj/structure/table, -/obj/item/weapon/paper{ - info = "DEAR DAIRY: So we was doing our typpical route when the captain says we've been picking up weird signals on some backwatter planet. Madsen wanted to stay on course but he ain't the captain, so we went out of the way to check it out. There was lots of rocks on the way, but we got to the planet fine. Found a big fancy camp with nobody around and this big metal donut thing with NT stamps all over it right in the middle. Case of beer too. Captain reckons we can pass it off to some buyer in the Syndicate. Ingram says it's bad luck and that someone is going to come look for it but it sounds like better money than selling bad meat to jerky companies."; - name = "Old Diary" - }, +/obj/item/weapon/paper/fluff/ruins/crashedship/old_diary, /turf/open/floor/plasteel, /area/awaymission/BMPship/Aft) "gi" = ( diff --git a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm index 803f078057..ce223b03b8 100644 --- a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm +++ b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm @@ -1129,18 +1129,9 @@ /obj/structure/noticeboard{ pixel_y = 32 }, -/obj/item/weapon/paper{ - info = "To whoever keeps it up with the long, hot showers: you're going on the next ice-mining trip. If you feel the need to use up all the damn water during your 'relaxation' time, you sure as hell are gonna work for all that water!"; - name = "water concerns" - }, -/obj/item/weapon/paper{ - info = "Hydroponics is our life and blood here, if it dies then so do we. Keep the damn plants watered!"; - name = "hydroponics notice" - }, -/obj/item/weapon/paper{ - info = "Please make sure to throw all excess waste into the crusher in the back! It's amazing what you can get out of what others consider 'garbage' if you run it through a giant crusher enough times."; - name = "recycling notice" - }, +/obj/item/weapon/paper/fluff/ruins/deepstorage/water_concern, +/obj/item/weapon/paper/fluff/ruins/deepstorage/hydro_notice, +/obj/item/weapon/paper/fluff/ruins/deepstorage/recycling_notice, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, diff --git a/_maps/RandomRuins/SpaceRuins/listeningstation.dmm b/_maps/RandomRuins/SpaceRuins/listeningstation.dmm index 4c351f0593..52b25cdffd 100644 --- a/_maps/RandomRuins/SpaceRuins/listeningstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/listeningstation.dmm @@ -69,10 +69,7 @@ /area/awaymission/listeningpost) "o" = ( /obj/structure/table, -/obj/item/weapon/paper{ - info = "Nothing of interest to report."; - name = "november report" - }, +/obj/item/weapon/paper/fluff/ruins/listeningstation/reports/november, /obj/item/weapon/pen, /turf/open/floor/plasteel, /area/awaymission/listeningpost) @@ -98,10 +95,7 @@ "r" = ( /obj/machinery/door/airlock, /obj/structure/safe/floor, -/obj/item/weapon/paper{ - info = "I wonder how much longer they will accept my empty reports. They will cancel the case soon without results. When the pickup comes, I will tell them I have lost faith in our cause, and beg them to consider a diplomatic solution. How many nuclear teams have been dispatched with those nukes? I must try and prevent more from ever being sent. If they will not listen to reason, I will detonate the warehouse myself. Maybe some day in the immediate future, space will be peaceful, though I don't intend to live to see it. And that is why I write this down- it is my sacrifice that stabilised your worlds, traveller. Spare a thought for me, and please attempt to prevent nuclear proliferation, should it ever rear it's ugly head again. -Donk Co. Operative #451"; - name = "odd report" - }, +/obj/item/weapon/paper/fluff/ruins/listeningstation/odd_report, /obj/item/weapon/gun/ballistic/automatic/pistol, /turf/open/floor/plasteel, /area/awaymission/listeningpost) @@ -156,46 +150,19 @@ /area/awaymission/listeningpost) "B" = ( /obj/structure/filingcabinet, -/obj/item/weapon/paper{ - info = "A good start to the operation: intercepted Nanotrasen military communications. A convoy is scheduled to transfer nuclear warheads to a new military base. This is as good a chance as any to get our hands on some heavy weaponry, I suggest we take it."; - name = "april report" - }, -/obj/item/weapon/paper{ - info = "Nothing of real interest to report this month. I have intercepted faint transmissions from what appears to be some sort of pirate radio station. They do not appear to be relevant to my assignment."; - name = "may report" - }, -/obj/item/weapon/paper{ - info = "Nanotrasen communications have been noticably less frequent recently. The pirate radio station I found last month has been transmitting pro-Nanotrasen propaganda. I will continue to monitor it."; - name = "june report" - }, -/obj/item/weapon/paper{ - info = "Nothing of interest to report."; - name = "july report" - }, -/obj/item/weapon/paper{ - info = "Nothing of interest to report."; - name = "august report" - }, -/obj/item/weapon/paper{ - info = "Nothing of interest to report."; - name = "september report" - }, -/obj/item/weapon/paper{ - info = "Nothing of interest to report."; - name = "october report" - }, -/obj/item/weapon/paper{ - info = "1 x Stechtkin pistol - $600
1 x silencer - $200
shipping charge - $4360
total - $5160"; - name = "receipt" - }, +/obj/item/weapon/paper/fluff/ruins/listeningstation/reports/april, +/obj/item/weapon/paper/fluff/ruins/listeningstation/reports/may, +/obj/item/weapon/paper/fluff/ruins/listeningstation/reports/june, +/obj/item/weapon/paper/fluff/ruins/listeningstation/reports/july, +/obj/item/weapon/paper/fluff/ruins/listeningstation/reports/august, +/obj/item/weapon/paper/fluff/ruins/listeningstation/reports/september, +/obj/item/weapon/paper/fluff/ruins/listeningstation/reports/october, +/obj/item/weapon/paper/fluff/ruins/listeningstation/receipt, /turf/open/floor/plasteel, /area/awaymission/listeningpost) "C" = ( /obj/structure/table, -/obj/item/weapon/paper{ - info = "Mission Details: You have been assigned to a newly constructed listening post constructed within an asteroid in Nanotrasen space to monitor their plasma mining operations. Accurate intel is crucial to the success of our operatives onboard, do not fail us."; - name = "mission briefing" - }, +/obj/item/weapon/paper/fluff/ruins/listeningstation/briefing, /turf/open/floor/plasteel, /area/awaymission/listeningpost) "D" = ( diff --git a/_maps/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/RandomRuins/SpaceRuins/oldstation.dmm index 30d9a85e7d..0f6ffcde39 100644 --- a/_maps/RandomRuins/SpaceRuins/oldstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldstation.dmm @@ -135,7 +135,7 @@ desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer" }, -/obj/item/weapon/paper/oldstat/damagereport, +/obj/item/weapon/paper/fluff/ruins/oldstation/damagereport, /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation/comm) "aw" = ( @@ -144,7 +144,7 @@ desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer" }, -/obj/item/weapon/paper/oldstat/report, +/obj/item/weapon/paper/fluff/ruins/oldstation/report, /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation/comm) "ax" = ( @@ -3494,7 +3494,7 @@ /obj/machinery/power/solar_control{ name = "Station Solar Control Computer" }, -/obj/item/weapon/paper/solar, +/obj/item/weapon/paper/guides/jobs/engi/solars, /obj/structure/cable, /turf/open/floor/plasteel/yellow/side{ dir = 10 @@ -4534,7 +4534,7 @@ dir = 8 }, /obj/structure/table/reinforced, -/obj/item/weapon/paper/oldstat/protosuit, +/obj/item/weapon/paper/fluff/ruins/oldstation/protosuit, /turf/open/floor/plasteel/white, /area/ruin/ancientstation/proto) "ku" = ( @@ -4579,7 +4579,7 @@ dir = 4 }, /obj/structure/table/reinforced, -/obj/item/weapon/paper/oldstat/protosing, +/obj/item/weapon/paper/fluff/ruins/oldstation/protosing, /turf/open/floor/plasteel/white, /area/ruin/ancientstation/proto) "kA" = ( @@ -4716,7 +4716,7 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/item/weapon/paper/oldstat, +/obj/item/weapon/paper/fluff/ruins/oldstation, /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation) "kR" = ( @@ -4724,7 +4724,7 @@ dir = 8 }, /obj/structure/table/reinforced, -/obj/item/weapon/paper/oldstat/protohealth, +/obj/item/weapon/paper/fluff/ruins/oldstation/protohealth, /turf/open/floor/plasteel/white, /area/ruin/ancientstation/proto) "kS" = ( @@ -4742,7 +4742,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, -/obj/item/weapon/paper/oldstat/protoinv, +/obj/item/weapon/paper/fluff/ruins/oldstation/protoinv, /turf/open/floor/plasteel/white, /area/ruin/ancientstation/proto) "kU" = ( @@ -4750,7 +4750,7 @@ dir = 4 }, /obj/structure/table/reinforced, -/obj/item/weapon/paper/oldstat/protogun, +/obj/item/weapon/paper/fluff/ruins/oldstation/protogun, /turf/open/floor/plasteel/white, /area/ruin/ancientstation/proto) "kV" = ( diff --git a/_maps/RandomRuins/SpaceRuins/originalcontent.dmm b/_maps/RandomRuins/SpaceRuins/originalcontent.dmm index 5401836144..6388f49c50 100644 --- a/_maps/RandomRuins/SpaceRuins/originalcontent.dmm +++ b/_maps/RandomRuins/SpaceRuins/originalcontent.dmm @@ -106,9 +106,7 @@ /turf/open/indestructible/paper, /area/ruin/powered) "as" = ( -/obj/item/weapon/paper/crumpled{ - desc = "Various scrawled out drawings and sketches reside on the paper, apparently he didn't much care for these drawings." - }, +/obj/item/weapon/paper/crumpled/ruins/originalcontent, /turf/open/indestructible/paper, /area/ruin/powered) "at" = ( @@ -598,15 +596,9 @@ dir = 9 }, /obj/structure/closet/crate/bin, -/obj/item/weapon/paper/crumpled{ - desc = "Various scrawled out drawings and sketches reside on the paper, apparently he didn't much care for these drawings." - }, -/obj/item/weapon/paper/crumpled{ - desc = "Various scrawled out drawings and sketches reside on the paper, apparently he didn't much care for these drawings." - }, -/obj/item/weapon/paper/crumpled{ - desc = "Various scrawled out drawings and sketches reside on the paper, apparently he didn't much care for these drawings." - }, +/obj/item/weapon/paper/crumpled/ruins/originalcontent, +/obj/item/weapon/paper/crumpled/ruins/originalcontent, +/obj/item/weapon/paper/crumpled/ruins/originalcontent, /obj/item/device/gps{ gpstag = "Pulpy Signal" }, @@ -802,9 +794,7 @@ /area/ruin/powered) "ch" = ( /obj/structure/fluff/paper, -/obj/item/weapon/paper/crumpled{ - desc = "Various scrawled out drawings and sketches reside on the paper, apparently he didn't much care for these drawings." - }, +/obj/item/weapon/paper/crumpled/ruins/originalcontent, /turf/open/indestructible/paper, /area/ruin/powered) "ci" = ( diff --git a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm index d87ee0b65d..a99838b8fd 100644 --- a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm @@ -2585,10 +2585,7 @@ /obj/structure/noticeboard{ pixel_y = 32 }, -/obj/item/weapon/paper{ - info = "!NOTICE!

We are expecting arriving guests soon from a nearby station! Stay sharp and make sure guests enjoy their time spent here. Don't think you can sneak off while they're here, either.
"; - name = "!NOTICE!" - }, +/obj/item/weapon/paper/fluff/ruins/spacehotel/notice, /turf/open/floor/plasteel/black, /area/ruin/hotel/workroom) "gJ" = ( @@ -2705,26 +2702,11 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/item/weapon/paper/pamphlet{ - info = "
The Twin Nexus Hotel

A place of Sanctuary


Welcome to The Twin-Nexus Hotel, \[insert name here]! The loyal staff stride to their best effort to cater for the best possible experience for all space(wo)men! If you have any questions or comments, please ask one of our on-board staff for more infomation.
"; - name = "hotel pamphlet" - }, -/obj/item/weapon/paper/pamphlet{ - info = "
The Twin Nexus Hotel

A place of Sanctuary


Welcome to The Twin-Nexus Hotel, \[insert name here]! The loyal staff stride to their best effort to cater for the best possible experience for all space(wo)men! If you have any questions or comments, please ask one of our on-board staff for more infomation.
"; - name = "hotel pamphlet" - }, -/obj/item/weapon/paper/pamphlet{ - info = "
The Twin Nexus Hotel

A place of Sanctuary


Welcome to The Twin-Nexus Hotel, \[insert name here]! The loyal staff stride to their best effort to cater for the best possible experience for all space(wo)men! If you have any questions or comments, please ask one of our on-board staff for more infomation.
"; - name = "hotel pamphlet" - }, -/obj/item/weapon/paper/pamphlet{ - info = "
The Twin Nexus Hotel

A place of Sanctuary


Welcome to The Twin-Nexus Hotel, \[insert name here]! The loyal staff stride to their best effort to cater for the best possible experience for all space(wo)men! If you have any questions or comments, please ask one of our on-board staff for more infomation.
"; - name = "hotel pamphlet" - }, -/obj/item/weapon/paper/pamphlet{ - info = "
The Twin Nexus Hotel

A place of Sanctuary


Welcome to The Twin-Nexus Hotel, \[insert name here]! The loyal staff stride to their best effort to cater for the best possible experience for all space(wo)men! If you have any questions or comments, please ask one of our on-board staff for more infomation.
"; - name = "hotel pamphlet" - }, +/obj/item/weapon/paper/pamphlet/ruin/spacehotel, +/obj/item/weapon/paper/pamphlet/ruin/spacehotel, +/obj/item/weapon/paper/pamphlet/ruin/spacehotel, +/obj/item/weapon/paper/pamphlet/ruin/spacehotel, +/obj/item/weapon/paper/pamphlet/ruin/spacehotel, /turf/open/floor/plasteel/grimy, /area/ruin/hotel/dock) "hd" = ( diff --git a/_maps/RandomZLevels/Academy.dmm b/_maps/RandomZLevels/Academy.dmm index 41b3223131..0fe71c9faf 100644 --- a/_maps/RandomZLevels/Academy.dmm +++ b/_maps/RandomZLevels/Academy.dmm @@ -108,10 +108,7 @@ /area/awaymission/academy/headmaster) "ar" = ( /obj/structure/table/reinforced, -/obj/item/weapon/paper{ - info = "We're upgrading to the latest mainframes for our consoles, the shipment should be in before spring break is over!"; - name = "Console Maintenance" - }, +/obj/item/weapon/paper/fluff/awaymissions/academy/console_maint, /turf/open/floor/carpet, /area/awaymission/academy/headmaster) "as" = ( @@ -1287,9 +1284,7 @@ /obj/structure/noticeboard{ pixel_y = 32 }, -/obj/item/weapon/paper{ - name = "Automotive Repair 101" - }, +/obj/item/weapon/paper/fluff/awaymissions/academy/class/automotive, /turf/open/floor/plasteel/grimy, /area/awaymission/academy/classrooms) "eh" = ( @@ -1302,9 +1297,7 @@ /obj/structure/noticeboard{ pixel_y = 32 }, -/obj/item/weapon/paper{ - name = "Pyromancy 250" - }, +/obj/item/weapon/paper/fluff/awaymissions/academy/class/pyromancy, /turf/open/floor/plasteel/grimy, /area/awaymission/academy/classrooms) "ej" = ( @@ -1779,9 +1772,7 @@ /obj/structure/noticeboard{ pixel_y = -32 }, -/obj/item/weapon/paper{ - name = "Biology Lab" - }, +/obj/item/weapon/paper/fluff/awaymissions/academy/class/biology, /turf/open/floor/plasteel/grimy, /area/awaymission/academy/classrooms) "fz" = ( @@ -2205,10 +2196,7 @@ /area/awaymission/academy/academyaft) "gH" = ( /obj/structure/table, -/obj/item/weapon/paper{ - info = "Grade: A+ Educator's Notes: Excellent form."; - name = "Summoning Midterm Exam" - }, +/obj/item/weapon/paper/fluff/awaymissions/academy/grade/aplus, /obj/item/weapon/gun/ballistic/shotgun/automatic/combat, /turf/open/floor/plasteel/vault{ dir = 5 @@ -2217,10 +2205,7 @@ "gI" = ( /obj/structure/table, /obj/item/weapon/gun/ballistic/revolver/russian, -/obj/item/weapon/paper{ - info = "Grade: B- Educator's Notes: Keep applying yourself, you're showing improvement."; - name = "Summoning Midterm Exam" - }, +/obj/item/weapon/paper/fluff/awaymissions/academy/grade/bminus, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -2319,10 +2304,7 @@ "gW" = ( /obj/structure/table, /obj/item/weapon/gun/energy/floragun, -/obj/item/weapon/paper{ - info = "Grade: D- Educator's Notes: SEE ME AFTER CLASS."; - name = "Summoning Midterm Exam" - }, +/obj/item/weapon/paper/fluff/awaymissions/academy/grade/dminus, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -2772,10 +2754,7 @@ /obj/structure/closet, /obj/item/weapon/storage/box/snappops, /obj/item/weapon/storage/backpack, -/obj/item/weapon/paper{ - info = "Current Grade: F. Educator's Notes: No improvement shown despite multiple private lessons. Suggest additional tutilage."; - name = "Pyromancy Evaluation" - }, +/obj/item/weapon/paper/fluff/awaymissions/academy/grade/failure, /turf/open/floor/plasteel, /area/awaymission/academy/academyaft) "id" = ( diff --git a/_maps/RandomZLevels/caves.dmm b/_maps/RandomZLevels/caves.dmm index 57740d7fba..c1df4a8090 100644 --- a/_maps/RandomZLevels/caves.dmm +++ b/_maps/RandomZLevels/caves.dmm @@ -942,9 +942,7 @@ }) "bX" = ( /obj/structure/table, -/obj/item/weapon/paper/crumpled{ - info = "
WARNING


Majority of this area is consitered 'unsafe' past this point. Theres an outpost directly south of here where you can get your bearing and travel further down if needed. Traveling in groups is HIGHLY advised, the shit out there can be extremely deadly if you're alone.
" - }, +/obj/item/weapon/paper/crumpled/awaymissions/caves/unsafe_area, /turf/open/floor/plating/asteroid/basalt{ initial_gas_mix = "n2=23;o2=14" }, @@ -1091,10 +1089,7 @@ dir = 1 }, /obj/structure/filingcabinet, -/obj/item/weapon/paper{ - info = "
Testing Notes


Subject appears unresponsive to most interactions, refusing to move away from the corners or face any scientists. Subject appears to move between the two back corners every observation. A strange humming can be heard from inside the cell, appears to be originating from the subject itself, further testing is necessary to confirm or deny this.
"; - name = "Subject Omega Notes" - }, +/obj/item/weapon/paper/fluff/awaymissions/caves/omega, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/basalt; initial_gas_mix = "n2=23;o2=14" @@ -1487,9 +1482,7 @@ }) "di" = ( /obj/structure/table, -/obj/item/weapon/paper{ - info = "
Mining is hell down here, you can feel the heat of the magma no matter how thick the suit is. Conditions are barely managble as is, restless nights and horrid work conditions. The ore maybe rich down here, but we've already lost a few men to the faults shifting, god knows how much longer till it all just collapses down and consumes everyone with it.
" - }, +/obj/item/weapon/paper/fluff/awaymissions/caves/magma, /obj/item/weapon/pen, /obj/effect/decal/cleanable/cobweb, /turf/open/floor/plasteel{ @@ -2020,10 +2013,7 @@ /area/awaymission/BMPship) "eA" = ( /obj/structure/table, -/obj/item/weapon/paper{ - info = "
Survival Info For Miners


The caves are an unforgiving place, the only thing you'll have to traverse is the supplies in your locker and your own wit. Travel in packs when mining and try to shut down the monster dens before they overwhelm you. The job is dangerous but the haul is good, so remember this infomation and hopefully we'll all go home alive.
"; - name = "work notice" - }, +/obj/item/weapon/paper/fluff/awaymissions/caves/work_notice, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/basalt }, @@ -2196,7 +2186,7 @@ /area/awaymission/listeningpost) "eX" = ( /obj/structure/table, -/obj/item/weapon/paper/pamphlet, +/obj/item/weapon/paper/pamphlet/gateway, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/basalt }, @@ -2219,14 +2209,8 @@ /obj/structure/noticeboard{ pixel_y = 32 }, -/obj/item/weapon/paper{ - info = "
We were suppose to get a shipment of these special laser rifles and a couple 'nades to help combat the wildlife down here, but its been weeks since we last heard from the caravan carrying the shit down here. At this point we can only assume they fell victim to one of the monster nests or the dumbasses managed to trip into the lava. So much for that shipment, I guess.
"; - name = "shipment notice" - }, -/obj/item/weapon/paper{ - info = "
Some of the miners have gone to laying some mine traps among the lower levels of the mine to keep the monsters at bay. This probably isn't the smartest idea in a cavern like this but the boys seem to get a chuckle out of every distant blast they hear go off, so I guess it works
"; - name = "safety notice" - }, +/obj/item/weapon/paper/fluff/awaymissions/caves/shipment_notice, +/obj/item/weapon/paper/fluff/awaymissions/caves/saftey_notice, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/basalt }, @@ -2241,10 +2225,7 @@ }) "fc" = ( /obj/structure/closet/crate, -/obj/item/weapon/paper{ - info = "
CARAVAN SERVICES

Quality service since 2205


SHIPMENT CONTENTS:


4 scattershot rifles
6 grenades
1 laser rifle
1 blowup doll"; - name = "Shipment Receipt" - }, +/obj/item/weapon/paper/fluff/awaymissions/caves/shipment_receipt, /obj/item/weapon/gun/energy/laser/captain/scattershot, /obj/item/weapon/gun/energy/laser/captain/scattershot, /obj/item/weapon/gun/energy/laser, @@ -2338,10 +2319,7 @@ icon_state = "crateopen"; opened = 1 }, -/obj/item/weapon/paper{ - info = "
CARAVAN SERVICES

Quality service since 2205


SHIPMENT CONTENTS:


4 scattershot rifles
6 grenades
1 laser rifle
1 blowup doll"; - name = "Shipment Receipt" - }, +/obj/item/weapon/paper/fluff/awaymissions/caves/shipment_receipt, /obj/item/organ/eyes/robotic/thermals, /obj/item/weapon/gun/energy/laser/captain/scattershot, /obj/item/slimepotion/fireproof, @@ -2891,10 +2869,7 @@ "gH" = ( /obj/structure/table, /obj/item/mecha_parts/mecha_equipment/drill/diamonddrill, -/obj/item/weapon/paper{ - info = "
NOTICE!!


Although you may seem indestructible in a mech, remember, THIS SHIT ISN'T LAVA PROOF!! The boys have already had to deal with loosing the last two to salvage because the dumbass thought he could just wade through the lower lakes like it was nothing. The fact he even managed to get back without being fused with what was left of the mech is a miracle in itself. They're built to be resistant against extreme heat, not heat PROOF!


Robotics Team"; - name = "NOTICE!! paper" - }, +/obj/item/weapon/paper/fluff/awaymissions/caves/mech_notice, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/basalt }, diff --git a/_maps/RandomZLevels/centcomAway.dmm b/_maps/RandomZLevels/centcomAway.dmm index 1149da1290..7b182a91c3 100644 --- a/_maps/RandomZLevels/centcomAway.dmm +++ b/_maps/RandomZLevels/centcomAway.dmm @@ -1988,7 +1988,7 @@ /area/awaymission/centcomAway/general) "gt" = ( /obj/machinery/photocopier, -/obj/item/weapon/paper/ccaMemo, +/obj/item/weapon/paper/fluff/awaymissions/centcom/gateway_memo, /turf/open/floor/plasteel{ icon_state = "floor" }, @@ -2151,7 +2151,7 @@ /area/awaymission/centcomAway/hangar) "gU" = ( /obj/structure/table, -/obj/item/weapon/paper/ccaMemo, +/obj/item/weapon/paper/fluff/awaymissions/centcom/gateway_memo, /turf/open/floor/plating, /area/awaymission/centcomAway/hangar) "gV" = ( @@ -3131,7 +3131,7 @@ /area/awaymission/centcomAway/general) "jQ" = ( /obj/structure/table, -/obj/item/weapon/paper/pamphlet/ccaInfo, +/obj/item/weapon/paper/pamphlet/centcom/visitor_info, /turf/open/floor/plasteel{ icon_state = "floor" }, @@ -3328,7 +3328,7 @@ /area/awaymission/centcomAway/hangar) "kq" = ( /obj/structure/table/reinforced, -/obj/item/weapon/paper/pamphlet/ccaInfo, +/obj/item/weapon/paper/pamphlet/centcom/visitor_info, /turf/open/floor/plasteel/vault{ dir = 4 }, diff --git a/_maps/RandomZLevels/challenge.dmm b/_maps/RandomZLevels/challenge.dmm index faeb6ff724..71edc1e99e 100644 --- a/_maps/RandomZLevels/challenge.dmm +++ b/_maps/RandomZLevels/challenge.dmm @@ -899,10 +899,7 @@ /area/awaymission/challenge/end) "cr" = ( /obj/structure/table/wood, -/obj/item/weapon/paper{ - info = "Congratulations,

Your station has been selected to carry out the Gateway Project.

The equipment will be shipped to you at the start of the next quarter.
You are to prepare a secure location to house the equipment as outlined in the attached documents.

--Nanotrasen Blue Space Research"; - name = "Confidential Correspondence, Pg 1" - }, +/obj/item/weapon/paper/fluff/gateway, /obj/item/weapon/folder/blue, /turf/open/floor/carpet, /area/awaymission/challenge/end) @@ -1193,7 +1190,7 @@ /area/awaymission/challenge/end) "df" = ( /obj/structure/table, -/obj/item/weapon/paper/pamphlet, +/obj/item/weapon/paper/pamphlet/gateway, /turf/open/floor/plasteel/black, /area/awaymission/challenge/end) "dg" = ( diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm index c6805c74e0..f387d2dbc3 100644 --- a/_maps/RandomZLevels/moonoutpost19.dmm +++ b/_maps/RandomZLevels/moonoutpost19.dmm @@ -974,10 +974,7 @@ pixel_y = 9 }, /obj/item/weapon/pen, -/obj/item/weapon/paper{ - info = "Log 1:
We got our promised supply drop today. We were only meant to get it, what, a week ago? This bloody gateway keeps desyncing itself, and that means subsisting off recycled water and carb packs. No clue where the damn thing connects to on its off days, and HQ say we are 'not to touch it if it isn't linking to command.' We dumped off the assload of crates Jim filled, got our boxes of oxygen, food and drink, and closed the portal.

Log 2:
Damn thing is acting up again. Three days no contact this time. I thought I heard clanking noises from it yesterday. Jim is going on about the NT base or some shit. We've been over this before - They don't know we're here, that engineer was too drunk to recognise his suit, especially since I had it painted orange. He's starting to get annoying. We're safe.

Log 3:
Gateway synced itself up automatically today. I opened it for an instant to spy through it, got a glimpse of the inside of a transport container. Either HQ's redecorating or something, or there's more than two of these things."; - name = "Personal Log" - }, +/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/log/personal, /obj/effect/turf_decal/stripes/line{ dir = 6 }, @@ -1585,10 +1582,7 @@ dir = 8 }, /obj/item/weapon/stock_parts/cell/high, -/obj/item/weapon/paper{ - info = "Alright, listen up. If you're reading this, I'm either taking a shit or I've been recalled back to Command. Either way, you'll need to know how to restore power. We've stolen this stuff from Nanotrasen, so all the equipment is jury-rigged. We have generators that work on both plasma and uranium, about 50 sheets should power the outpost for quite a while. If the generators aren't working, which is very likely, take the power cell on the desk and put it into the APC in the hallway. That should get the place running, at least for a little while."; - name = "Engineering Instructions" - }, +/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/engineering, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -2463,10 +2457,7 @@ "dq" = ( /obj/structure/table/wood, /obj/item/weapon/pen, -/obj/item/weapon/paper{ - info = "Log 1:
While mining today I noticed the NT station was finished with its renovations. They placed some huge reinforced tumor on the station, looks so ugly. I wouldn't be surprised if those pigs decided to turn that little astronomy outpost into a prison with that thing, it'd be pretty typical of them.

Log 2:
Really dumb of me but I just waved at an engineer in the outpost, and he waved back. I hope to god he was too dumb or drunk to recognize the suit, because if he isn't then we might have to pull out before they come looking for us.

Log 3:
That huge reinforced tumor in their science section has been making a lot of noise lately. I've been hearing some banging and scratching from the other side and I'm kind of glad now that they reinforced this thing so much. I'll be sleeping with my gun under my pillow from now on."; - name = "Personal Log" - }, +/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/log/personal_2, /obj/structure/sign/poster/contraband/c20r{ pixel_y = -32 }, @@ -4384,10 +4375,7 @@ }) "fS" = ( /obj/structure/filingcabinet, -/obj/item/weapon/paper{ - info = "Entry One - 27/05/2554:
I just arrived, and already I hate my job. I'm stuck on this shithole of an outpost, trying to avoid these damn eggheads running all over the place preparing for god knows what. There's no crimes to stop, no syndies to kill, and I'm not even allowed to beat the fuckin' assistant senseless! They said I was transferred from Space Station 13 for 'good behavior', but this feels more like a punishment than a reward. All I know is that if I don't get some action soon, I'm going to go insane.

Entry Two - 03/06/2554:
Okay, so get this: we got a fuckin' deathsquad coming in today! I thought the day I saw one of them would be the day my employment was 'terminated', if you get my drift. They're escorting some sort of weird alien creature for the eggheads to study. I heard one of the docs telling the chef that this thing killed a whole security force before it was captured. I sure as hell hope that I don't have to fight it.

Entry Three - 08/06/2554:
My first real bit of 'action' today, if you could call it that. Crazy Ivan got in a fight with Kuester today about his Booze-O-Mat. Apparently one of the crewmembers had stolen a couple bottles of booze from the machine after Ivan disabled the ID lock. Tell you the truth, I don't blame the thief. Everyone is going a little stir-crazy in here, and the bartender is being damn stingy with the alcohol. Either way, once they started to pick a fight, I had to take them down. It's a damn shame that we don't have a brig, though. I had to lock Ivan in a fuckin' freezer, for god's sake. Let's hope that we can keep our sanity together, at least for a while.

Entry Four - 10/06/2554:
Jesus fucking Christ riding on a motorbike. These things the scientists are studying are terrifying! Fucking great huge purple bug things as tall as the ceiling, with blades for arms and drooling at the mouth. I don't think my taser will do jack shit against these damn things, but the eggheads say that they're safely contained. If they do, I have a feeling that it's only a matter of time before we're all screwed. These bastards look like walking death.

Entry Five - 18/06/2554:
Finally caught who stole the booze from Kuester. It was that fuckin' loser assistant Steve! He was in the dorms, chugging his worries away. I took one of the bottles back to the barkeep, but no one has to know about this second one. I think I'm gonna enjoy this while watching tomorrow's Thunderdome match.

Entry Six - 19/06/2554:
Oh, great. The chef is still sleeping, so we get Ivan's gruel for breakfast today. I overheard Sano and Douglas saying something about the aliens being restless, so we might get some action today. As long as it happens after the big game, I'm fine with it. I still got one beer to drink before I'm ready to die."; - name = "Personal Log - Kenneth Cunningham" - }, +/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/log/kenneth, /turf/open/floor/plasteel/red/side{ dir = 9; heat_capacity = 1e+006 @@ -4824,10 +4812,7 @@ }) "gx" = ( /obj/structure/table, -/obj/item/weapon/paper{ - info = "Ivan Volodin Stories:

Entry Won - 28/05/2554:
Hello. I am Crazy Ivan. Boss say I must write. I do good job fixing outpost. Is very good job. Much better than mines. Many nice people. I cause no trouble.

Entry Too - 05/06/2554:
I am finding problem with Booze-O-Mat. Is not problem. I solve very easy. Use yellow tool to make purple light go off. I am good engineer! Bartender will be very happy.

Entry Tree - 08/06/2554:
Bartender is not happy. Security man is not happy. Cannot feel legs, is very cold in freezer. Is not good. Table is jammed into door, have no tools. Is very not good. But, on bright side, found meat! Shall chew to keep spirits up.

Entry Fore - 12/06/2554:
Big nasty purple bug looked at me today. Make nervous. Blue wall wire can be broken, then bad thing happens. Very very bad thing. Man in orange spacesuit wave at me today too. He seem nice. Wonder who was?

Entry Fiv - 15/06/2554:
I eat cornflakes today. Is good day. Sun shine for a while. Was nice. I also take ride on disposals chute. Was fun, but tiny. Get clog out of pipes, was vodka bottle. Is empty. This make many sads.

Entry Sex: 19/06/2554:
Purple bugs jumpy today. When waved, get hiss. Maybe very bad. Maybe just ill. Do not know. Is science problem, is not engineer problem. I eat sandwich. Is glorious job. Wish to never end."; - name = "Personal Log - Ivan Volodin" - }, +/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/log/ivan, /turf/open/floor/plating{ broken = 1; heat_capacity = 1e+006; @@ -4991,26 +4976,11 @@ icon_state = "bulb-broken"; status = 2 }, -/obj/item/weapon/paper{ - info = "Researcher: Dr. Sakuma Sano
Date: 04/06/2554

Report:
As expected, all that is left of the monkeys we sent in earlier is a group of xenomorph larvae. It is quite clear that the facehuggers are not selective in their hosts, and so far the gestation process has been shown to have a 100% success rate.

The larvae themselves have been behaving very differently from the lone larva we first observed, and despite shying away from humans they are clearly comfortable with others of their kind. Our previous suspicions on larvae have been confirmed with their demonstration of playfulness: they are not nearly as aggressive or violent when young, before molting to adulthood.

The majority of the play we observed involved a sort of hide-and-seek, and occasionally wrestling by tangling themselves and struggling out of it. While normally we would write these off as instinctual play for honing their skills when they molt, their growth period is so incredibly fast and they are still such adept killers that it would serve no practical purpose. The only explanation for this is perhaps to create bonds and friendships with each other, if that is even possible for such an incredibly hostile race. It may be that they are much more reasonable with each other than other life forms.

It had become clear that now was the best time to extract a xenomorph for dissecting, as these were all still larvae and the queen was still attached to its ovipositor and would be immobile. With the approval of the research director, we sent in our medical robot that had been dubbed 'Head Surgeon' into the containment pen, dropping the shields for only a fraction of a second to allow it entry. The larvae were cautious, but the curiosity of one had him within grabbing range of our robot. It was brought out and quickly euthanized through lethal injection, courtesy of our mechanical doctor."; - name = "Larva Xenomorph Social Interactions & Capturing Procedure" - }, -/obj/item/weapon/paper{ - info = "Researcher: Dr. Sakuma Sano
Date: 04/06/2554

Report:
I have studied many interesting and diverse life-forms as a xenobiologist ranging from creatures as large as cows, to specimens too small see with the naked eye. This is by far the largest alien I have ever seen. The alien we were previously studying has molted and has become an absolutely enormous creature. Standing at over 15 feet tall and weighing in at likely two tons or more, the xenomorph queen is an absolutely breathtakingly large and cruel monster. Its behavior has changed drastically from when it was a drone, having become far more comfortable with sitting and staring at us, rather than smashing at the windows.

The queen, physiologically speaking, is fairly similar to the other xenomorphs, with a few key differences. Its enormous size demands large legs, while the back seems to be always hunched forward. The dorsal tubes on the back have changed to several large spikes, and we observed the alien now sports a second pair of smaller arms on its chest. The purpose of these secondary arms is still unknown. Finally, the queen's crown has become incredibly large, with what seems to be a retractable slot to hide its head in. The dome appears to be extremely thick near the front, and will likely be able to resist a lot of trauma. Despite the enormous size it has grown to, it is not that much slower than it used to be.

After two hours of doing relatively nothing but staring, the queen began to produce an unusually large amount of resin and weeds, quickly shaping up a large nest that it then hid behind. It then proceeded to smash out all the lights, leaving us with very little to see with our cameras. When we looked through the back cameras, we had discovered that it had grown a large ovipositor, and was releasing large eggs onto the ground. This had us all in agreement that this stage of the life cycle was the queen.

Over the next few hours, the eggs grew to their full sizes, and we provided the subject with new monkey hosts. When they approached the eggs, they opened to release more facehuggers. It seems that we have observed the full cycle of reproduction for this species. We can expect more larvae in the next few hours."; - name = "Queen Xenomorph Physiology & Behavior Observation" - }, -/obj/item/weapon/paper{ - info = "Researcher: Dr. Sakuma Sano
Date: 03/06/2554

Report:
The other scientists and I can hardly believe our eyes. The snake-like larva has molted into a 7 foot tall insectoid nightmare in just a few hours. It's obvious now as to why such heavy duty containment was needed. It immediately tried to escape however by flinging itself at the window in a flurry of swipes and stabs. It seems its behavior has returned to a state that is very similar to the facehugger, though I doubt with the same intent! Thankfully, our glass and shields have shown to be more than sturdy enough for such a violent creature, and so far, any attempts at the creature escaping have been in vain.

As for its physiology, the creature has an elongated head with what appears to be have an exoskeleton resembling an external rib-cage on the torso. The alien is also fairly skinny with a lean body. The little amount of meat on the alien appears to be entirely muscle. We assume this makes it deceptively strong, while remaining agile at the same time. One of the most interesting things we have seen is its pharyngeal jaw. It has some what of an inner mouth capable of being fired externally at extremely high speeds. It has already caused many dents in the walls and a few small cracks in the window with it. The alien also has a couple of dorsal tubes on its back, their purpose unknown. Finally, this monster sports a long ridged tail, complete with a large and extremely sharp blade at the tip.

Normally I would be absolutely terrified of something like this, but I'm putting my trust in Nanotrasen with the containment. After all, they wouldn't build a cell that could fail to contain its subject, would they?"; - name = "Adult Xenomorph Physiology & Behavior Observation" - }, -/obj/item/weapon/paper{ - info = "Researcher: Dr. Sakuma Sano
Date: 03/06/2554

Report:
When the larva first emerged from the chest of the monkey, it seemed very curious. It would wander around aimlessly for awhile and then sit still. We are unable to determine the gender of the larva, or even determine if it has a gender. After some time had passed, it seemed to lose interest in its surroundings and sat mostly still while occasionally wagging its tail. We decided to throw in a live mouse to see if it would consume it. The larva quickly attacked and ate the mouse and seemed to get larger very suddenly, this suggests that the larvae are capable of metabolizing and directing all the energy towards growth at previously thought impossible speeds. It is a shame that we cannot observe the process more closely, as we do not currently know how dangerous or violent this creature is or will become as it matures fully.

It is tempting to imagine the possibilities of utilizing such a mechanism. The capability of skipping years of growth time for children, repairing bodily damage in a matter of moments, even its usage in existing cloning technology."; - name = "Larva Xenomorph Physiology & Behavior Observation" - }, -/obj/item/weapon/paper{ - info = "Researcher: Dr. Sakuma Sano
Date: 03/06/2554

Report:
The test subject we were provided with truly is alien. It is a small spider-like creature with bony legs leading to a smooth body. It has a long tail connected to it, and it has shown extremely aggressive behavior by flinging its entire body at the glass and shields to no avail. While doing so, we noticed there was a small pink hole in the middle of the body.

When we sent in a monkey through the crude but effective disposal tube, the alien immediately jumped at its face and latched on. The monkey was quickly suffocated by its constricting tail, unable to pry off the fingers. The monkey at first seemed to be dead, but was observed to be breathing. The recently named alien 'facehugger' fell off dead and curled its legs up like a spider moments after it had finished with the monkey's body.

While the monkey appeared to be unharmed, we kept it in the cell for a couple more hours until we were horrified to discover it screaming out in pain as a snake-like creature erupted from the monkey's chest! It appears that the 'facehugger' is only the start of this life cycle. The impregnation cycle involving the creatures growing inside the chests of their hosts seems to only be the beginning."; - name = "'Facehugger' Xenomorph Physiology & Behavior Observation" - }, +/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/research/larva_social, +/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/research/xeno_queen, +/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/research/xeno_adult, +/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/research/larva_psych, +/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/research/facehugger, /obj/structure/alien/weeds, /turf/open/floor/plasteel/white, /area/awaycontent/a2{ @@ -5196,19 +5166,19 @@ }) "gW" = ( /obj/structure/filingcabinet/filingcabinet, -/obj/item/weapon/paper{ +/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/research/xeno_hivemind{ info = "Researcher: Dr. Mark Douglas
Date: 17/06/2554

Report:
Earlier today we have observed a new phenomenon with our subjects. While feeding them our last monkey subject and throwing out the box, the aliens merely looked at us instead of infecting the monkey right away. They looked to be collectively distressed as they would no longer be given hosts, where instead we would move to the next phase of the experiment. When I glanced at the gas tanks and piping leading to their cell, I looked back to see all of them were up against the glass, even the queen! It was as if they all understood what was going to happen, even though we knew only the queen had the cognitive capability to do so.

The only explanation for this is a form of communication between the aliens, but we have seen no such action take place anywhere in the cell until now. We also know that regular drone and hunter xenomorphs have no personality or instinct to survive by themselves. Perhaps the queen has a direct link to them? A form of a commander or overseer that controls their every move? A hivemind?"; name = "The Hivemind Hypothesis" }, -/obj/item/weapon/paper{ +/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/research/xeno_behavior{ info = "Researcher: Dr. Sakuma Sano
Date: 08/06/2554

Report:
The xenomorphs we have come to study here are a remarkable species. They are almost universally aggressive across all castes, showing no remorse or guilt or pause before or after acts of violence. They appear to be a species entirely designed to kill. Oddly enough, even their method of reproduction is a brutal two-for-one method of birthing a new xenomorph and killing its host.

The lone xenomorph we studied only five days ago showed little sign of intelligence. Only a simple drone that flung itself at the safety glass and shields repeatedly and thankfully without success. Once the drone molted into a queen, it became much more calm and calculating, merely looking at us and waiting while building its nest. As the hive grew in size and in numbers, so too did the intelligence of the common hunter and drone. We are still researching how they can communicate with one another and the relationship between the different castes and the queen. We will continue to update our research as we learn more about the species."; name = "A Preliminary Study of Alien Behavior" }, -/obj/item/weapon/paper{ +/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/research/xeno_castes{ info = "Researcher: Dr. Mark Douglas
Date: 06/06/2554

Report:
While observing the growing number of aliens in the containment cell, we began to notice subtle differences that were consistently repeating. Like ants, these creatures clearly have different specialized variations that determine their roles in the hive. We have dubbed the three currently observed castes as Hunters, Drones, and Sentinels.

Hunters have been observed to be by far the most aggressive and agile of the three, constantly running on every surface and frequently swiping at the windows. They are also remarkably good at camouflaging themselves in darkness and on their resin structures, appearing almost invisible to the unwary observer. They are always the first to reach the monkeys we send in leading us to believe that this caste is primarily used for finding and retrieving hosts.

Drones on the other hand are much more docile and seem more shy by comparison, though not any less aggressive than the other castes. They have been observed to have a much wider head and lack dorsal tubes. They have shown to be less agile and visibly more fragile than any other caste. The drone however has never been observed to interact with the monkeys directly and instead preferring maintenance of the hive by building walls of resin and moving eggs around the nest. As far as we know, we have only ever observed a drone become a queen, and we have no way of knowing if the other castes have that capability.

Lastly, we have the Sentinels, which appear at first glance to be the guards of the hive. They have so far been only observed to remain near the queen and the eggs, frequently curled up against the walls. We have only observed one instance where they have interacted with a monkey who strayed too closely to the queen, and was pounced and held down immediately until it was applied with a facehugger. Their lack of movement makes it difficult to determine their exact purpose as guards, sentries, or other role."; name = "The Xenomorph 'Castes'" }, -/obj/item/weapon/paper{ +/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/research/larva_autopsy{ info = "Researcher: Dr. Mark Douglas
Date: 04/06/2554

Report:
After an extremely dangerous, time consuming and costly dissection, we have managed to record and identify several of the organs inside of the first stage of the xenomorph cycle: the larva. This procedure took an extensive amount of time because these creatures have incredibly, almost-comically acidic blood that can melt through almost anything in a few moments. We had to use over a dozen scalpels and retractors to complete the autopsy.

The larva seems to possess far fewer and quite different organs than that of a human. There is a stomach, with no digestive tract, a heart, which seems to lack any blood-oxygen circulation purpose, and an elongated brain, even though its as dumb as any large cat. It also lacks any liver, kidneys, or other basic organs.

We can't determine the exact nature of how these creatures grow, nor if they gain organs as they become adults. The larger breeds of xenomorph are too dangerous to kill and capture to give us an accurate answer to these questions. All that we can conclude is that being able to function with so little and yet be so deadly means that these creatures are highly evolved and likely to be extremely durable to various hazards that would otherwise be lethal to humans."; name = "Larva Xenomorph Autopsy Report" }, @@ -5527,10 +5497,7 @@ pixel_y = 23; req_access = null }, -/obj/item/weapon/paper{ - info = "Personal Log for Research Director Gerald Rosswell

Entry One - 17/05/2554:
You know, I can't believe I took this position so suddenly. I saw that corporate needed a research director for one of it's outposts and thought it would be a cakewalk, there isn't going to be a lot of research to be done on a tiny outpost. Mainly just running scans on the gas giant we are orbiting or some basic RnD. However, they conveniently forgot to tell me that me and my science staff would have to pull double duty as medical staff and that there is no one higher up on the chain of command here, so I get to pull triple duty as acting captain as well! This shit is probably allowed in some 3 point fine print buried underneath the literally thousands of pages of contracts. Well, at least the research will be easy work.

Entry Two - 25/05/2554:
Well, we all expected it at the outpost, CentComm has decided to completely change what research we are doing. They've decided that we should be research the species known as 'xenomporphs'. They announced this change 4 days ago and along with it, sadly, the termination of our current science staff barring me. Not to mention the constant noise made by the construction detail they sent to staple on an xenobiology lab ensuring no one has been able to sleep decently ever since they announced the shift. To make matters worse our current security guard actually died of a heart attack today. Just goes to show that 75 year old men shouldn't be security guards. Still can't believe that they decided to do this major change less than a month after the outpost was established.

Entry Three - 27/05/2554:
The new security guard arrived today. Apparently transferred here from the research station that also is orbiting the gas giant. He seems to be rather angry about his transfer. Considering the rumors I've heard about the research station he's probably caught off guard by the fact that Steve hasn't tried to force an IED down his throat.

Entry Four - 06/06/2554:
My requests for additional security and containment measures for the 'xenomorph' has been denied. Does Central Command not notice how dangerous these creatures are? The only thing keeping them in is a force field, a minor problem with the power grid and the entire hive is loose. What would stop them then, the lone security guard with a dinky little taser? Kenneth can barely handle a short-tempered engineer. We are under equipped and under staffed, we are inevitably going to be destroyed unless we get the equipment and staff we need.

Entry Five - 10/06/2554:
Cunningham got a good look at the xenomorph in containment. He was frightened for the rest of the day, rather amusing if it wasn't for the fact that we are all trapped on this scrap heap with naught but a force field keeping those xenomorphs in.

Entry Six - 17/06/2554:
The reactions from the specimens today has shown that they possess strange mental properties. Mark hypothesizes that they possibly have a sort of hive mind, while nothing is certain this would explain how xenomorphs seem to have vastly increased intellect when a 'queen' is present. Of course, to test this hypothesis would require many complicated procedures which we will not be able to undertake. But we do not know the full extend of the xenomorph mind, it may or may not be able to find a way to circumvent our containment system. I will resend my request for additional security measures along with this new found information."; - name = "Personal Log - Gerald Rosswell" - }, +/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/log/gerald, /turf/open/floor/plasteel/cafeteria{ dir = 5 }, @@ -5695,10 +5662,7 @@ icon_state = "bulb-broken"; status = 2 }, -/obj/item/weapon/paper{ - info = "

In The Event of Xenobiology Breach: Evacuate staff, Lock down Xenobiology, Notify on-site superiors and/or Central Command immediatly.

e(!E5&6-=7V0m3D(ky_Il?jv2YhvH4xa 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 sJ43PmwyNwackMU&zKH_Lx*Y${f9jy# Date: Mon, 31 Jul 2017 06:13:00 -0500 Subject: [PATCH 045/219] Update combat.dm --- code/__DEFINES/combat.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm index caf7f7964b..c088e81c4a 100644 --- a/code/__DEFINES/combat.dm +++ b/code/__DEFINES/combat.dm @@ -21,6 +21,9 @@ #define OXYLOSS 8 #define SHAME 16 +//Citadel code +#define AROUSAL 32 + #define STUN "stun" #define KNOCKDOWN "knockdown" #define UNCONSCIOUS "unconscious" From 8a174f8a767da2192cf70b2ea8b90b206568fc2c Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 31 Jul 2017 06:24:52 -0500 Subject: [PATCH 046/219] Update damage_procs.dm --- code/modules/mob/living/damage_procs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index 4edcd3be21..fccb3ab8dd 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -73,7 +73,7 @@ return getArousalLoss() -/mob/living/proc/apply_damages(brute = 0, burn = 0, tox = 0, oxy = 0, clone = 0, def_zone = null, blocked = FALSE, stamina = 0, brain = 0) +/mob/living/proc/apply_damages(brute = 0, burn = 0, tox = 0, oxy = 0, clone = 0, def_zone = null, blocked = FALSE, stamina = 0, arousal = 0, brain = 0) if(blocked >= 100) return 0 if(brute) From d3f488a5ee3a2a0ca3a7e8271ca21d2d457d267e Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 31 Jul 2017 07:10:17 -0500 Subject: [PATCH 047/219] Cyborgs grabbing ore works consistently --- code/modules/mining/ores_coins.dm | 73 ++++++++----------- .../modules/mob/living/silicon/robot/robot.dm | 23 ------ .../living/silicon/robot/robot_movement.dm | 21 ++++++ 3 files changed, 53 insertions(+), 64 deletions(-) diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm index 8a2a39c09e..03d75717ab 100644 --- a/code/modules/mining/ores_coins.dm +++ b/code/modules/mining/ores_coins.dm @@ -30,48 +30,39 @@ show_message = FALSE break var/obj/item/weapon/storage/bag/ore/OB - if(istype(loc, /turf/open/floor/plating/asteroid)) - if(ishuman(AM)) - var/mob/living/carbon/human/H = AM - for(var/thing in H.get_storage_slots()) - if(istype(thing, /obj/item/weapon/storage/bag/ore)) - OB = thing - break - for(var/thing in H.held_items) - if(istype(thing, /obj/item/weapon/storage/bag/ore)) - OB = thing - break - else if(iscyborg(AM)) - var/mob/living/silicon/robot/R = AM - for(var/thing in R.module_active) - if(istype(thing, /obj/item/weapon/storage/bag/ore)) - OB = thing - break - if(OB) - var/obj/structure/ore_box/box - if(!OB.can_be_inserted(src, TRUE, AM)) - if(!OB.spam_protection) - to_chat(AM, "Your [OB.name] is full and can't hold any more ore!") - OB.spam_protection = TRUE - sleep(1) - OB.spam_protection = FALSE + if(ishuman(AM)) + var/mob/living/carbon/human/H = AM + OB = locate(/obj/item/weapon/storage/bag/ore) in H.get_storage_slots() + if(!OB) + OB = locate(/obj/item/weapon/storage/bag/ore) in H.held_items + else if(iscyborg(AM)) + var/mob/living/silicon/robot/R = AM + OB = locate(/obj/item/weapon/storage/bag/ore) in R.held_items + if(OB) + var/obj/structure/ore_box/box + if(!OB.can_be_inserted(src, TRUE, AM)) + if(!OB.spam_protection) + to_chat(AM, "Your [OB.name] is full and can't hold any more ore!") + OB.spam_protection = TRUE + sleep(1) + OB.spam_protection = FALSE + else + OB.handle_item_insertion(src, TRUE, AM) + // Then, if the user is dragging an ore box, empty the satchel + // into the box. + var/mob/living/L = AM + if(istype(L.pulling, /obj/structure/ore_box)) + box = L.pulling + for(var/obj/item/weapon/ore/O in OB) + OB.remove_from_storage(src, box) + if(show_message) + playsound(L, "rustle", 50, TRUE) + if(box) + L.visible_message("[L] offloads the ores into [box].", \ + "You offload the ores beneath you into your [box.name].") else - OB.handle_item_insertion(src, TRUE, AM) - // Then, if the user is dragging an ore box, empty the satchel - // into the box. - var/mob/living/L = AM - if(istype(L.pulling, /obj/structure/ore_box)) - box = L.pulling - for(var/obj/item/weapon/ore/O in OB) - OB.remove_from_storage(src, box) - if(show_message) - playsound(L, "rustle", 50, TRUE) - if(box) - L.visible_message("[L] offloads the ores into [box].", \ - "You offload the ores beneath you into your [box.name].") - else - L.visible_message("[L] scoops up the ores beneath them.", \ - "You scoop up the ores beneath you with your [OB.name].") + L.visible_message("[L] scoops up the ores beneath them.", \ + "You scoop up the ores beneath you with your [OB.name].") return ..() /obj/item/weapon/ore/uranium diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index ea7504cb56..7eb7840a59 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -656,29 +656,6 @@ add_overlay(head_overlay) update_fire() -#define BORG_CAMERA_BUFFER 30 - -/mob/living/silicon/robot/proc/do_camera_update(oldLoc) - if(oldLoc != src.loc) - GLOB.cameranet.updatePortableCamera(src.camera) - updating = 0 - -/mob/living/silicon/robot/Move(a, b, flag) - var/oldLoc = src.loc - . = ..() - if(.) - if(src.camera) - if(!updating) - updating = 1 - addtimer(CALLBACK(src, .proc/do_camera_update, oldLoc), BORG_CAMERA_BUFFER) - if(module) - if(istype(module, /obj/item/weapon/robot_module/miner)) - if(istype(loc, /turf/open/floor/plating/asteroid)) - for(var/obj/item/I in held_items) - if(istype(I, /obj/item/weapon/storage/bag/ore)) - loc.attackby(I, src) -#undef BORG_CAMERA_BUFFER - /mob/living/silicon/robot/proc/self_destruct() if(emagged) if(mmi) diff --git a/code/modules/mob/living/silicon/robot/robot_movement.dm b/code/modules/mob/living/silicon/robot/robot_movement.dm index 167137d9d1..a2f6bf5681 100644 --- a/code/modules/mob/living/silicon/robot/robot_movement.dm +++ b/code/modules/mob/living/silicon/robot/robot_movement.dm @@ -1,3 +1,24 @@ +/mob/living/silicon/robot/Moved(oldLoc, dir) + . = ..() + update_camera_location(oldLoc) + +/mob/living/silicon/robot/forceMove(atom/destination) + . = ..() + update_camera_location(destination) + +/mob/living/silicon/robot/proc/do_camera_update(oldLoc) + if(!QDELETED(camera) && oldLoc != get_turf(src)) + GLOB.cameranet.updatePortableCamera(camera) + updating = FALSE + +#define BORG_CAMERA_BUFFER 30 +/mob/living/silicon/robot/proc/update_camera_location(oldLoc) + oldLoc = get_turf(oldLoc) + if(!QDELETED(camera) && !updating && oldLoc != get_turf(src)) + updating = TRUE + addtimer(CALLBACK(src, .proc/do_camera_update, oldLoc), BORG_CAMERA_BUFFER) +#undef BORG_CAMERA_BUFFER + /mob/living/silicon/robot/Process_Spacemove(movement_dir = 0) if(ionpulse()) return 1 From 2d74f9f45a180f709e06c1267866ead8f547d7a3 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 31 Jul 2017 08:57:56 -0500 Subject: [PATCH 048/219] Fixes a cliffhanger comment --- code/modules/cargo/exports/sheets.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/modules/cargo/exports/sheets.dm b/code/modules/cargo/exports/sheets.dm index 8abc78ac0e..a73529850d 100644 --- a/code/modules/cargo/exports/sheets.dm +++ b/code/modules/cargo/exports/sheets.dm @@ -79,8 +79,7 @@ message = "of reinforced glass" export_types = list(/obj/item/stack/sheet/rglass) -// Bluespace Polycrystals. About as common on the asteroid as - +// Bluespace Polycrystals. Uncommon. /datum/export/stack/bscrystal cost = 750 message = "of bluespace crystals" From 29b26fbc3e83b6ee28e3a92f8a4aa60f4867b2a4 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 31 Jul 2017 08:57:59 -0500 Subject: [PATCH 049/219] Update labor camp stacker accepted sheets. --- code/modules/mining/laborcamp/laborstacker.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mining/laborcamp/laborstacker.dm b/code/modules/mining/laborcamp/laborstacker.dm index d4e8496e1c..e9961d7b3b 100644 --- a/code/modules/mining/laborcamp/laborstacker.dm +++ b/code/modules/mining/laborcamp/laborstacker.dm @@ -131,7 +131,7 @@ /obj/machinery/mineral/stacking_machine/laborstacker var/points = 0 //The unclaimed value of ore stacked. Value for each ore loosely relative to its rarity. - var/list/ore_values = list("glass" = 1, "metal" = 2, "solid plasma" = 20, "plasteel" = 23, "reinforced glass" = 4, "gold" = 20, "silver" = 20, "uranium" = 20, "diamond" = 25, "bananium" = 50) + var/list/ore_values = list("glass" = 1, "metal" = 2, "reinforced glass" = 4, "gold" = 20, "silver" = 20, "uranium" = 20, "titanium" = 20, "solid plasma" = 20, "plasteel" = 23, "plasma glass" = 23, "diamond" = 25, "bluespace polycrystal" = 30, "plastitanium" = 45, "bananium" = 50) /obj/machinery/mineral/stacking_machine/laborstacker/process_sheet(obj/item/stack/sheet/inp) if(istype(inp)) From 4ac6b49871373ec19f3a677babd14fddd8ce530d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 31 Jul 2017 08:58:05 -0500 Subject: [PATCH 050/219] Corrected holding cell access requirements --- code/game/machinery/doors/windowdoor.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 9a8d2c2e3b..7f8cbce0f4 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -316,7 +316,7 @@ /obj/machinery/door/window/brigdoor/security/holding name = "holding cell door" - req_access = list(ACCESS_SEC_DOORS, ACCESS_LAWYER) //love for the lawyer + req_one_access = list(ACCESS_SEC_DOORS, ACCESS_LAWYER) //love for the lawyer /obj/machinery/door/window/clockwork name = "brass windoor" From 3d53f888b1bc9625a5fb9dc8396fa2014e055771 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 31 Jul 2017 14:35:16 -0500 Subject: [PATCH 051/219] Improves several Sound Loops' Performance --- code/datums/explosion.dm | 8 +++++--- code/game/gamemodes/meteor/meteors.dm | 5 ++++- code/game/machinery/dance_machine.dm | 4 +++- code/game/objects/structures/musician.dm | 4 +++- code/modules/power/gravitygenerator.dm | 3 ++- code/modules/ruins/objects_and_mobs/necropolis_gate.dm | 4 +++- 6 files changed, 20 insertions(+), 8 deletions(-) diff --git a/code/datums/explosion.dm b/code/datums/explosion.dm index ae0398e59b..c22829b5d3 100644 --- a/code/datums/explosion.dm +++ b/code/datums/explosion.dm @@ -96,7 +96,9 @@ GLOBAL_LIST_EMPTY(explosions) if(!silent) var/frequency = get_rand_frequency() - var/ex_sound = get_sfx("explosion") + var/sound/explosion_sound = sound(get_sfx("explosion")) + var/sound/far_explosion_sound = sound('sound/effects/explosionfar.ogg') + for(var/mob/M in GLOB.player_list) // Double check for client var/turf/M_turf = get_turf(M) @@ -104,12 +106,12 @@ GLOBAL_LIST_EMPTY(explosions) var/dist = get_dist(M_turf, epicenter) // If inside the blast radius + world.view - 2 if(dist <= round(max_range + world.view - 2, 1)) - M.playsound_local(epicenter, ex_sound, 100, 1, frequency, falloff = 5) + M.playsound_local(epicenter, null, 100, 1, frequency, falloff = 5, S = explosion_sound) // You hear a far explosion if you're outside the blast radius. Small bombs shouldn't be heard all over the station. else if(dist <= far_dist) var/far_volume = Clamp(far_dist, 30, 50) // Volume is based on explosion size and dist far_volume += (dist <= far_dist * 0.5 ? 50 : 0) // add 50 volume if the mob is pretty close to the explosion - M.playsound_local(epicenter, 'sound/effects/explosionfar.ogg', far_volume, 1, frequency, falloff = 5) + M.playsound_local(epicenter, null, far_volume, 1, frequency, falloff = 5, S = far_explosion_sound) EX_PREPROCESS_CHECK_TICK //postpone processing for a bit diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm index 167df98b50..65ea714761 100644 --- a/code/game/gamemodes/meteor/meteors.dm +++ b/code/game/gamemodes/meteor/meteors.dm @@ -185,6 +185,9 @@ GLOBAL_LIST_INIT(meteorsC, list(/obj/effect/meteor/dust)) //for space dust event /obj/effect/meteor/proc/meteor_effect() if(heavy) + var/sound/meteor_sound = sound(meteorsound) + var/random_frequency = get_rand_frequency() + for(var/mob/M in GLOB.player_list) if((M.orbiting) && (SSaugury.watchers[M])) continue @@ -193,7 +196,7 @@ GLOBAL_LIST_INIT(meteorsC, list(/obj/effect/meteor/dust)) //for space dust event continue var/dist = get_dist(M.loc, src.loc) shake_camera(M, dist > 20 ? 2 : 4, dist > 20 ? 1 : 3) - M.playsound_local(src.loc, meteorsound, 50, 1, get_rand_frequency(), 10) + M.playsound_local(src.loc, null, 50, 1, random_frequency, 10, S = meteor_sound) /////////////////////// //Meteor types diff --git a/code/game/machinery/dance_machine.dm b/code/game/machinery/dance_machine.dm index 8c9e300eaa..5100ece31f 100644 --- a/code/game/machinery/dance_machine.dm +++ b/code/game/machinery/dance_machine.dm @@ -456,10 +456,12 @@ if(charge<35) charge += 1 if(world.time < stop && active) + var/sound/song_played = sound(selection.song_path) + for(var/mob/M in range(10,src)) if(!(M in rangers)) rangers[M] = TRUE - M.playsound_local(get_turf(M), selection.song_path, 100, channel = CHANNEL_JUKEBOX) + M.playsound_local(get_turf(M), null, 100, channel = CHANNEL_JUKEBOX, S = song_played) if(prob(5+(allowed(M)*4)) && M.canmove) dance(M) for(var/mob/L in rangers) diff --git a/code/game/objects/structures/musician.dm b/code/game/objects/structures/musician.dm index b57ab68641..1331a5aeea 100644 --- a/code/game/objects/structures/musician.dm +++ b/code/game/objects/structures/musician.dm @@ -71,9 +71,11 @@ continue LAZYADD(hearing_mobs, M) last_hearcheck = world.time + + var/sound/music_played = sound(soundfile) for(var/i in hearing_mobs) var/mob/M = i - M.playsound_local(source, soundfile, 100, falloff = 5) + M.playsound_local(source, null, 100, falloff = 5, S = music_played) /datum/song/proc/updateDialog(mob/user) instrumentObj.updateDialog() // assumes it's an object in world, override if otherwise diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm index 36804b6121..4b3b5bcd46 100644 --- a/code/modules/power/gravitygenerator.dm +++ b/code/modules/power/gravitygenerator.dm @@ -372,13 +372,14 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne // Shake everyone on the z level to let them know that gravity was enagaged/disenagaged. /obj/machinery/gravity_generator/main/proc/shake_everyone() var/turf/T = get_turf(src) + var/sound/alert_sound = sound('sound/effects/alert.ogg') for(var/mob/M in GLOB.mob_list) if(M.z != z) continue M.update_gravity(M.mob_has_gravity()) if(M.client) shake_camera(M, 15, 1) - M.playsound_local(T, 'sound/effects/alert.ogg', 100, 1, 0.5) + M.playsound_local(T, null, 100, 1, 0.5, S = alert_sound) /obj/machinery/gravity_generator/main/proc/gravity_in_level() var/turf/T = get_turf(src) diff --git a/code/modules/ruins/objects_and_mobs/necropolis_gate.dm b/code/modules/ruins/objects_and_mobs/necropolis_gate.dm index df404146bf..3bda50c221 100644 --- a/code/modules/ruins/objects_and_mobs/necropolis_gate.dm +++ b/code/modules/ruins/objects_and_mobs/necropolis_gate.dm @@ -175,10 +175,12 @@ GLOBAL_DATUM(necropolis_gate, /obj/structure/necropolis_gate/legion_gate) else message_admins("[user ? key_name_admin(user):"Unknown"] has released Legion!") log_game("[user ? key_name(user):"Unknown"] released Legion.") + + var/sound/legion_sound = sound('sound/creatures/legion_spawn.ogg') for(var/mob/M in GLOB.player_list) if(M.z == z) to_chat(M, "Discordant whispers flood your mind in a thousand voices. Each one speaks your name, over and over. Something horrible has been released.") - M.playsound_local(T, 'sound/creatures/legion_spawn.ogg', 100, FALSE, 0, FALSE, pressure_affected = FALSE) + M.playsound_local(T, null, 100, FALSE, 0, FALSE, pressure_affected = FALSE, S = legion_sound) flash_color(M, flash_color = "#FF0000", flash_time = 50) var/mutable_appearance/release_overlay = mutable_appearance('icons/effects/effects.dmi', "legiondoor") notify_ghosts("Legion has been released in the [get_area(src)]!", source = src, alert_overlay = release_overlay, action = NOTIFY_JUMP) From 6148b2165cea3848e13df1d2c67255177d273c65 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 31 Jul 2017 14:48:52 -0500 Subject: [PATCH 052/219] Automatic changelog generation for PR #2186 [ci skip] --- html/changelogs/AutoChangeLog-pr-2186.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2186.yml diff --git a/html/changelogs/AutoChangeLog-pr-2186.yml b/html/changelogs/AutoChangeLog-pr-2186.yml new file mode 100644 index 0000000000..43bb2fef87 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2186.yml @@ -0,0 +1,4 @@ +author: "Xhuis" +delete-after: True +changes: + - spellcheck: "Player-controlled medibots now receive a notice whenever they try to heal someone with too high health." From 409c8ffe3ec41ff05ba6af8792a73a54af09b331 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 31 Jul 2017 14:51:43 -0500 Subject: [PATCH 053/219] Automatic changelog generation for PR #2193 [ci skip] --- html/changelogs/AutoChangeLog-pr-2193.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2193.yml diff --git a/html/changelogs/AutoChangeLog-pr-2193.yml b/html/changelogs/AutoChangeLog-pr-2193.yml new file mode 100644 index 0000000000..46988eaee1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2193.yml @@ -0,0 +1,4 @@ +author: "Xhuis" +delete-after: True +changes: + - spellcheck: "Removed an improper period from the supermatter sliver theft objective's name." From a50dc9dc96b9668c362bd358f0fe6d757126361e Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 31 Jul 2017 14:59:12 -0500 Subject: [PATCH 054/219] Automatic changelog generation for PR #2196 [ci skip] --- html/changelogs/AutoChangeLog-pr-2196.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2196.yml diff --git a/html/changelogs/AutoChangeLog-pr-2196.yml b/html/changelogs/AutoChangeLog-pr-2196.yml new file mode 100644 index 0000000000..736d98cb66 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2196.yml @@ -0,0 +1,4 @@ +author: "Joan" +delete-after: True +changes: + - tweak: "Colossus's shotgun is now a static-spread blast of 6 bolts, making it more predictable." From 075c64a50444a8fa6a45f7345b2de59f278d358f Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 31 Jul 2017 15:37:43 -0500 Subject: [PATCH 055/219] Automatic changelog generation for PR #2065 [ci skip] --- html/changelogs/AutoChangeLog-pr-2065.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2065.yml diff --git a/html/changelogs/AutoChangeLog-pr-2065.yml b/html/changelogs/AutoChangeLog-pr-2065.yml new file mode 100644 index 0000000000..0e2c4e9e65 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2065.yml @@ -0,0 +1,6 @@ +author: "Fox McCloud" +delete-after: True +changes: + - tweak: "breathing plasma now causes direct tox damage" + - tweak: "breathing hot/cold air now warns you when you're doing so, again" + - tweak: "species heat/cold mod now impacts damage from breathing hot/cold gases" From aedd22090b2d8c0dc2a0c1d7a1398247676ba6a2 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 31 Jul 2017 15:40:52 -0500 Subject: [PATCH 056/219] Update _lists.dm --- code/__HELPERS/_lists.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index 393c5a465d..ad00383c70 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -99,6 +99,7 @@ . += A //Like typesof() or subtypesof(), but returns a typecache instead of a list + /proc/typecacheof(path, ignore_root_path, only_root_path = FALSE) if(ispath(path)) var/list/types = list() From 3be62f3ccdd5d7418362a63025bb5c8b41f02055 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 31 Jul 2017 17:33:13 -0500 Subject: [PATCH 057/219] Update _lists.dm --- code/__HELPERS/_lists.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index 57df4f6d0c..df3daeeff9 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -101,7 +101,7 @@ for (var/thing in atoms) var/atom/A = thing if (!typecache[A.type]) - . += A + . += A //Like typesof() or subtypesof(), but returns a typecache instead of a list /proc/typecacheof(path, ignore_root_path, only_root_path = FALSE) From e8ae703c1661558f6c534857c20d553ceb131d7e Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 31 Jul 2017 18:15:16 -0500 Subject: [PATCH 058/219] Update turf.dm --- code/game/turfs/turf.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 2e7b560af3..924628a27d 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -414,7 +414,7 @@ allowed_contents -= src for(var/i in 1 to allowed_contents.len) var/thing = allowed_contents[i] - qdel(thing, force=TRUE + qdel(thing, force=TRUE) var/turf/newT = ChangeTurf(turf_type, baseturf_type, FALSE, FALSE) From 29f8f8eb451a4bf16dade8f2162ca120c390d286 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 31 Jul 2017 23:36:49 -0500 Subject: [PATCH 059/219] Update component.dm --- code/datums/components/component.dm | 34 +++++++++++++++++++---------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/code/datums/components/component.dm b/code/datums/components/component.dm index 1bbd785d22..6af3039217 100644 --- a/code/datums/components/component.dm +++ b/code/datums/components/component.dm @@ -51,24 +51,36 @@ procs[sig_type] = CALLBACK(src, proc_on_self) +/datum/component/proc/ReceiveSignal(sigtype, ...) + var/list/sps = signal_procs + var/datum/callback/CB = LAZYACCESS(sps, sigtype) + if(!CB) + return FALSE + var/list/arguments = args.Copy() + arguments.Cut(1, 2) + return CB.InvokeAsync(arglist(arguments)) + +/datum/component/proc/InheritComponent(datum/component/C, i_am_original) + return + +/datum/component/proc/OnTransfer(datum/new_parent) + return + /datum/var/list/datum_components //list of /datum/component -// Send a signal to all other components in the container. -/datum/proc/SendSignal(sigtype, list/sig_args, async = FALSE) +/datum/proc/SendSignal(sigtype, ...) var/list/comps = datum_components . = FALSE for(var/I in comps) var/datum/component/C = I if(!C.enabled) continue - var/list/sps = C.signal_procs - var/datum/callback/CB = LAZYACCESS(sps, sigtype) - if(!CB) - continue - if(!async) - . |= CB.Invoke(sig_args) - else - . |= CB.InvokeAsync(sig_args) + if(C.ReceiveSignal(arglist(args))) + ComponentActivated(C) + . = TRUE + +/datum/proc/ComponentActivated(datum/component/C) + return /datum/proc/GetComponent(c_type) for(var/I in datum_components) @@ -104,4 +116,4 @@ helicopter.SendSignal(COMSIG_COMPONENT_REMOVING, C) C.OnTransfer(src) C.parent = src - SendSignal(COMSIG_COMPONENT_ADDED, C) \ No newline at end of file + SendSignal(COMSIG_COMPONENT_ADDED, C) From cccfeb479e23e674d39f61997f05fa93168f63ed Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 31 Jul 2017 23:38:15 -0500 Subject: [PATCH 060/219] Update lavaland_surface_ash_walker1.dmm --- .../lavaland_surface_ash_walker1.dmm | 304 +++++++++++++++++- 1 file changed, 294 insertions(+), 10 deletions(-) diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm index 0fa2f0795c..aed9b30686 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm @@ -1,4 +1,4 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "aa" = ( /turf/template_noop, /area/template_noop) @@ -1069,6 +1069,11 @@ /obj/item/device/flashlight/lantern, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) +"cE" = ( +/obj/structure/stone_tile/surrounding/cracked, +/obj/effect/baseturf_helper, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) "cF" = ( /obj/structure/stone_tile/block{ dir = 8 @@ -1183,14 +1188,293 @@ }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"cT" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/closed/mineral/volcanic, +/area/lavaland/surface/outdoors) "cU" = ( -/obj/effect/baseturf_helper, -/turf/closed/indestructible/riveted/boss, -/area/ruin/unpowered/ash_walkers) -"kB" = ( -/obj/structure/stone_tile/surrounding/cracked, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/closed/mineral/volcanic, +/area/lavaland/surface/outdoors) +"cV" = ( +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/closed/mineral/volcanic, +/area/lavaland/surface/outdoors) +"cW" = ( +/obj/structure/table/optable, +/obj/structure/stone_tile{ + dir = 1 + }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) +"cX" = ( +/obj/item/weapon/storage/box/rxglasses, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"cY" = ( +/obj/item/seeds/glowshroom, +/obj/item/seeds/glowshroom, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"cZ" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"da" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 + }, +/turf/closed/mineral/volcanic, +/area/lavaland/surface/outdoors) +"db" = ( +/obj/structure/stone_tile/block, +/turf/closed/mineral/volcanic, +/area/lavaland/surface/outdoors) +"dc" = ( +/obj/structure/stone_tile/block, +/turf/closed/mineral/volcanic, +/area/lavaland/surface/outdoors) +"dd" = ( +/obj/structure/stone_tile/surrounding_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"de" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"df" = ( +/obj/effect/decal/cleanable/blood, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"dg" = ( +/obj/structure/bonfire/dense, +/obj/structure/stone_tile/center, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"dh" = ( +/obj/structure/stone_tile/block/cracked, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"di" = ( +/obj/effect/decal/cleanable/blood, +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"dj" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"dk" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/block, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"dl" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"dm" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"dn" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"do" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"dp" = ( +/obj/item/weapon/pickaxe, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"dq" = ( +/obj/item/stack/sheet/mineral/wood, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"dr" = ( +/obj/structure/stone_tile/surrounding_tile/cracked, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/center, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ds" = ( +/obj/structure/stone_tile/block, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"dt" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile/cracked, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/center, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"du" = ( +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/closed/mineral/volcanic, +/area/lavaland/surface/outdoors) +"dv" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/effect/mob_spawn/human/corpse/damaged, +/obj/effect/decal/cleanable/blood, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"dw" = ( +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"dx" = ( +/obj/item/device/flashlight/lantern, +/obj/structure/stone_tile/center, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"dy" = ( +/obj/machinery/hydroponics/soil, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"dz" = ( +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/cracked, +/turf/closed/mineral/volcanic, +/area/lavaland/surface/outdoors) +"dA" = ( +/obj/machinery/hydroponics/soil, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/center, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"dB" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/center/cracked, +/turf/closed/mineral/volcanic, +/area/lavaland/surface/outdoors) +"dC" = ( +/obj/structure/stone_tile, +/turf/closed/mineral/volcanic, +/area/lavaland/surface/outdoors) +"dD" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/closed/mineral/volcanic, +/area/lavaland/surface/outdoors) +"dE" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/closed/mineral/volcanic, +/area/lavaland/surface/outdoors) +"dF" = ( +/obj/structure/stone_tile, +/turf/closed/mineral/volcanic, +/area/lavaland/surface/outdoors) (1,1,1) = {" aa @@ -1443,7 +1727,7 @@ ak ak ak ak -cU +ak ak bP bL @@ -1556,12 +1840,12 @@ bt ak ak bU -bM +cg ck -cb +bS cv cA -kB +cE cM as ah From 4c7f288341c7742928df942f1283255ebdea727e Mon Sep 17 00:00:00 2001 From: ktccd Date: Tue, 1 Aug 2017 06:45:00 +0200 Subject: [PATCH 061/219] Adds a HUD for borers (#2211) Borers with minds are added to the HUD and can see the HUD. Humans with a borer are added to the HUD, but CANNOT see the HUD. If the borer leaves, the human is removed from the HUD. --- code/__DEFINES/atom_hud.dm | 1 + code/datums/hud.dm | 1 + code/game/gamemodes/antag_spawner_cit.dm | 2 +- code/game/gamemodes/miniantags/borer/borer.dm | 30 ++++++++++++++++++- 4 files changed, 32 insertions(+), 2 deletions(-) diff --git a/code/__DEFINES/atom_hud.dm b/code/__DEFINES/atom_hud.dm index 3a2534c00b..8a107c23ee 100644 --- a/code/__DEFINES/atom_hud.dm +++ b/code/__DEFINES/atom_hud.dm @@ -40,6 +40,7 @@ #define ANTAG_HUD_SINTOUCHED 16 #define ANTAG_HUD_SOULLESS 17 #define ANTAG_HUD_CLOCKWORK 18 +#define ANTAG_HUD_BORER 19 // Notification action types #define NOTIFY_JUMP "jump" diff --git a/code/datums/hud.dm b/code/datums/hud.dm index f9444898ce..dc78eea396 100644 --- a/code/datums/hud.dm +++ b/code/datums/hud.dm @@ -20,6 +20,7 @@ GLOBAL_LIST_INIT(huds, list( ANTAG_HUD_SINTOUCHED = new/datum/atom_hud/antag/hidden(), ANTAG_HUD_SOULLESS = new/datum/atom_hud/antag/hidden(), ANTAG_HUD_CLOCKWORK = new/datum/atom_hud/antag(), + ANTAG_HUD_BORER = new/datum/atom_hud/antag(), )) /datum/atom_hud diff --git a/code/game/gamemodes/antag_spawner_cit.dm b/code/game/gamemodes/antag_spawner_cit.dm index 175ad0e8a4..a7923be45e 100644 --- a/code/game/gamemodes/antag_spawner_cit.dm +++ b/code/game/gamemodes/antag_spawner_cit.dm @@ -27,7 +27,7 @@ obj/item/weapon/antag_spawner/syndi_borer/spawn_antag(client/C, turf/T, mob/owne to_chat(B, "You are awake at last! Seek out whoever released you and aid them as best you can!") if(new_objective) to_chat(B, "Objective #[1]: [new_objective.explanation_text]") - + SSticker.mode.update_borer_icons_added(B) /obj/item/weapon/antag_spawner/syndi_borer/proc/check_usability(mob/user) if(used) to_chat(user, "[src] appears to be empty!") diff --git a/code/game/gamemodes/miniantags/borer/borer.dm b/code/game/gamemodes/miniantags/borer/borer.dm index 42a413bcd7..656dec9341 100644 --- a/code/game/gamemodes/miniantags/borer/borer.dm +++ b/code/game/gamemodes/miniantags/borer/borer.dm @@ -413,6 +413,8 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 10) victim = C forceMove(victim) + SSticker.mode.update_borer_icons_added_host(victim.mind) + RemoveBorerActions() GrantInfestActions() @@ -587,6 +589,7 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 10) var/mob/living/V = victim V.verbs -= /mob/living/proc/borer_comm talk_to_borer_action.Remove(victim) + SSticker.mode.update_borer_icons_removed_host(victim.mind) victim = null return @@ -842,6 +845,7 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 10) if(mind) mind.store_memory("You must escape with at least [GLOB.total_borer_hosts_needed] borers with hosts on the shuttle.") + SSticker.mode.update_borer_icons_added(mind) to_chat(src, "You are a cortical borer!") to_chat(src, "You are a brain slug that worms its way into the head of its victim. Use stealth, persuasion and your powers of mind control to keep you, your host and your eventual spawn safe and warm.") @@ -1075,4 +1079,28 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 10) /datum/action/innate/borer/jumpstart_host/Activate() var/mob/living/simple_animal/borer/B = owner - B.jumpstart() \ No newline at end of file + B.jumpstart() + + +//HUD STUFF +/datum/game_mode/proc/update_borer_icons_added(datum/mind/borer_mind) + var/datum/atom_hud/antag/borerhud = GLOB.huds[ANTAG_HUD_BORER] + borerhud.join_hud(borer_mind.current) + set_antag_hud(borer_mind.current, "hudbrainworm") + +/datum/game_mode/proc/update_borer_icons_removed(datum/mind/borer_mind) + var/datum/atom_hud/antag/borerhud = GLOB.huds[ANTAG_HUD_BORER] + borerhud.leave_hud(borer_mind.current) + set_antag_hud(borer_mind.current, null) + +/datum/game_mode/proc/update_borer_icons_added_host(datum/mind/host_mind) + var/datum/atom_hud/antag/hosthud = GLOB.huds[ANTAG_HUD_BORER] //Invisible to self + hosthud.self_visible = FALSE + hosthud.join_hud(host_mind.current) + set_antag_hud(host_mind.current, "hudbrainworm") + +/datum/game_mode/proc/update_borer_icons_removed_host(datum/mind/host_mind) + var/datum/atom_hud/antag/hosthud = GLOB.huds[ANTAG_HUD_BORER] //Invisible to self + hosthud.self_visible = FALSE //Probably not needed as we're deleting? + hosthud.leave_hud(host_mind.current) + set_antag_hud(host_mind.current, null) From b9970cc9b17cb727b01f7de00a7b8c097dec0712 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 31 Jul 2017 23:45:02 -0500 Subject: [PATCH 062/219] Automatic changelog generation for PR #2211 [ci skip] --- html/changelogs/AutoChangeLog-pr-2211.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2211.yml diff --git a/html/changelogs/AutoChangeLog-pr-2211.yml b/html/changelogs/AutoChangeLog-pr-2211.yml new file mode 100644 index 0000000000..9852662933 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2211.yml @@ -0,0 +1,4 @@ +author: "ktccd" +delete-after: True +changes: + - rscadd: "Borers of all kinds now have a HUD element to see other sentient borers and their hosts. (Hosts cannot see this HUD)" From 608737376bfa894aaf316d624f8eacc333e6990d Mon Sep 17 00:00:00 2001 From: ktccd Date: Tue, 1 Aug 2017 06:45:32 +0200 Subject: [PATCH 063/219] Borer admin refactor (#2209) * Refactors and clarifications Refactors borers to use objective datums instead of relying entirely on hardcoded snowflake bullshit. Also adds some FEEDBACK to the punishments, so the host isn't completely confused why they suddenly keep getting stunlocked and blinded. Also refactors syndi-borers to display their objectives along the other borers instead of as an antag, since they TECHNICALLY count as a borer for their escape objective, enabling them to cooperate. Refactors borers weakness-chemical to be a variable instead of hardcoded, allowing admin var-editing to work. Borers now inherit the objectives of their parent-borer. Normally makes no difference, but if admins were to give custom objectives to one borer, then all its children will injerit it. * Removed a line Removed a piece of text that was redundant at best and incorrect at worst. Syndicate borers makes it show up as the default 10 needed when no other borers existed and normal borers already state their own objective individually. --- code/game/gamemodes/antag_spawner_cit.dm | 1 - code/game/gamemodes/cit_objectives.dm | 21 +++++++++ code/game/gamemodes/game_mode.dm | 26 +++++----- code/game/gamemodes/miniantags/borer/borer.dm | 47 +++++++++++++------ 4 files changed, 65 insertions(+), 30 deletions(-) diff --git a/code/game/gamemodes/antag_spawner_cit.dm b/code/game/gamemodes/antag_spawner_cit.dm index a7923be45e..c65ac11c6b 100644 --- a/code/game/gamemodes/antag_spawner_cit.dm +++ b/code/game/gamemodes/antag_spawner_cit.dm @@ -16,7 +16,6 @@ obj/item/weapon/antag_spawner/syndi_borer/spawn_antag(client/C, turf/T, mob/owne B.mind.assigned_role = B.name B.mind.special_role = B.name - SSticker.mode.traitors += B.mind var/datum/objective/syndi_borer/new_objective new_objective = new /datum/objective/syndi_borer new_objective.owner = B.mind diff --git a/code/game/gamemodes/cit_objectives.dm b/code/game/gamemodes/cit_objectives.dm index 3874ea95db..faa376571c 100644 --- a/code/game/gamemodes/cit_objectives.dm +++ b/code/game/gamemodes/cit_objectives.dm @@ -83,3 +83,24 @@ explanation_text = "Assassinate [target.name], the [!target_role_type ? target.assigned_role : target.special_role]." else explanation_text = "Stay alive until your target arrives on the station, you will be notified when the target has been identified." + + + +//BORER STUFF +//Because borers didn't use to have objectives +/datum/objective/normal_borer //Default objective, should technically never be used unmodified but CAN work unmodified. + explanation_text = "You must escape with at least one borer with host on the shuttle." + target_amount = 1 + martyr_compatible = 0 + +/datum/objective/normal_borer/check_completion() + var/total_borer_hosts = 0 + for(var/mob/living/carbon/C in GLOB.mob_list) + var/mob/living/simple_animal/borer/D = C.has_brain_worms() + var/turf/location = get_turf(C) + if(location.z == ZLEVEL_CENTCOM && D && D.stat != DEAD) + total_borer_hosts++ + if(target_amount <= total_borer_hosts) + return TRUE + else + return FALSE \ No newline at end of file diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 39a71f85c5..742ed08cf4 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -271,17 +271,19 @@ if(GLOB.borers.len) - var/borerwin = FALSE var/borertext = "
The borers were:" for(var/mob/living/simple_animal/borer/B in GLOB.borers) if((B.key || B.controlling) && B.stat != DEAD) - borertext += "
[B.controlling ? B.victim.key : B.key] was [B.truename] (" - var/turf/location = get_turf(B) - if(location.z == ZLEVEL_CENTCOM && B.victim) - borertext += "escaped with host" - else - borertext += "failed" - borertext += ")" + borertext += "
[B.controlling ? B.victim.key : B.key] was [B.truename]" + var/count = 1 + for(var/datum/objective/objective in B.mind.objectives) + if(objective.check_completion()) + borertext += "
Objective #[count]: [objective.explanation_text] Success!" + else + borertext += "
Objective #[count]: [objective.explanation_text] Fail." + count++ + + to_chat(world, borertext) var/total_borers = 0 @@ -295,14 +297,8 @@ var/turf/location = get_turf(C) if(location.z == ZLEVEL_CENTCOM && D && D.stat != DEAD) total_borer_hosts++ - if(GLOB.total_borer_hosts_needed <= total_borer_hosts) - borerwin = TRUE to_chat(world, "There were [total_borers] borers alive at round end!") - to_chat(world, "A total of [total_borer_hosts] borers with hosts escaped on the shuttle alive. The borers needed [GLOB.total_borer_hosts_needed] hosts to escape.") - if(borerwin) - to_chat(world, "The borers were successful!") - else - to_chat(world, "The borers have failed!") + to_chat(world, "A total of [total_borer_hosts] borers with hosts escaped on the shuttle alive.") CHECK_TICK return 0 diff --git a/code/game/gamemodes/miniantags/borer/borer.dm b/code/game/gamemodes/miniantags/borer/borer.dm index 656dec9341..2b83017d1d 100644 --- a/code/game/gamemodes/miniantags/borer/borer.dm +++ b/code/game/gamemodes/miniantags/borer/borer.dm @@ -97,6 +97,9 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 10) var/hiding = FALSE var/waketimerid = null + var/docile_chem = "sugar" + var/list/wakeup_objectives = list() //Used to store objectives until the borer wakes up + var/datum/action/innate/borer/talk_to_host/talk_to_host_action = new var/datum/action/innate/borer/infest_host/infest_host_action = new var/datum/action/innate/borer/toggle_hide/toggle_hide_action = new @@ -136,8 +139,7 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 10) borer_chems += /datum/borer_chem/crocin borer_chems += /datum/borer_chem/camphor - if(is_team_borer) - GLOB.borers += src + GLOB.borers += src GrantBorerActions() @@ -285,12 +287,12 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 10) if(stat != DEAD && victim.stat != DEAD) - if(victim.reagents.has_reagent("sugar")) + if(victim.reagents.has_reagent(docile_chem)) if(!docile || waketimerid) if(controlling) - to_chat(victim, "You feel the soporific flow of sugar in your host's blood, lulling you into docility.") + to_chat(victim, "You feel the soporific flow of [docile_chem] in your host's blood, lulling you into docility.") else - to_chat(src, "You feel the soporific flow of sugar in your host's blood, lulling you into docility.") + to_chat(src, "You feel the soporific flow of [docile_chem] in your host's blood, lulling you into docility.") if(waketimerid) deltimer(waketimerid) waketimerid = null @@ -298,9 +300,9 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 10) else if(docile && !waketimerid) if(controlling) - to_chat(victim, "You start shaking off your lethargy as the sugar leaves your host's blood. This will take about 10 seconds...") + to_chat(victim, "You start shaking off your lethargy as the [docile_chem] leaves your host's blood. This will take about 10 seconds...") else - to_chat(src, "You start shaking off your lethargy as the sugar leaves your host's blood. This will take about 10 seconds...") + to_chat(src, "You start shaking off your lethargy as the [docile_chem] leaves your host's blood. This will take about 10 seconds...") waketimerid = addtimer(CALLBACK(src, "wakeup"), 10, TIMER_STOPPABLE) if(controlling) @@ -775,10 +777,13 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 10) switch(punishment) //Hardcoding this stuff. if("Blindness") victim.blind_eyes(4) + to_chat(victim, "Your vision fades away suddenly, as your borer robs you of your sight.") if("Deafness") victim.minimumDeafTicks(40) + to_chat(victim, "Your hearing fades away suddenly, as your borer robs you of your hearing.") if("Stun") victim.Knockdown(100) + to_chat(victim, "You are wracked with unbearable pain, as your borer takes control of your pain-center!") log_game("[src]/([src.ckey]) punished [victim]/([victim.ckey] with [punishment]") @@ -825,7 +830,10 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 10) new /obj/effect/decal/cleanable/vomit(get_turf(src)) playsound(loc, 'sound/effects/splat.ogg', 50, 1) - new /mob/living/simple_animal/borer(get_turf(src), B.generation + 1) + var/mob/living/simple_animal/borer/Baby = new /mob/living/simple_animal/borer(get_turf(src), B.generation + 1) + + Baby.wakeup_objectives = src.mind.objectives //Save them for later, since we lack a mind for them right now + log_game("[src]/([src.ckey]) has spawned a new borer via reproducing.") else to_chat(src, "You need 200 chemicals stored to reproduce.") @@ -843,15 +851,26 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 10) candidate.mob = src ckey = candidate.ckey - if(mind) - mind.store_memory("You must escape with at least [GLOB.total_borer_hosts_needed] borers with hosts on the shuttle.") - SSticker.mode.update_borer_icons_added(mind) - to_chat(src, "You are a cortical borer!") to_chat(src, "You are a brain slug that worms its way into the head of its victim. Use stealth, persuasion and your powers of mind control to keep you, your host and your eventual spawn safe and warm.") - to_chat(src, "Sugar nullifies your abilities, avoid it at all costs!") + to_chat(src, "[docile_chem] nullifies your abilities, avoid it at all costs!") to_chat(src, "You can speak to your fellow borers by prefixing your messages with ';'. Check out your Borer tab to see your abilities.") - to_chat(src, "You must escape with at least [GLOB.total_borer_hosts_needed] borers with hosts on the shuttle. To reproduce you must have 100 chemicals and be controlling a host.") + + if(mind) + if(!(wakeup_objectives.len)) //No objectives, use default? + var/datum/objective/normal_borer/new_objective + new_objective = new /datum/objective/normal_borer + new_objective.owner = mind + new_objective.target_amount = GLOB.total_borer_hosts_needed + new_objective.explanation_text = "You must escape with at least [GLOB.total_borer_hosts_needed] borer[new_objective.target_amount > 1 ? "s" : ""] with host[new_objective.target_amount > 1 ? "s" : ""] on the shuttle." + mind.objectives += new_objective + to_chat(src, "Objective #1: [new_objective.explanation_text]") + else + mind.objectives += wakeup_objectives + var/count = 1 + for(var/datum/objective/O in mind.objectives) + to_chat(src, "Objective #[count]: [O.explanation_text]") + count++ /mob/living/simple_animal/borer/proc/detatch() if(!victim || !controlling) From 277b7e6f8024bd6ad7ef276002d5a0e6d46ad548 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 31 Jul 2017 23:45:33 -0500 Subject: [PATCH 064/219] Automatic changelog generation for PR #2209 [ci skip] --- html/changelogs/AutoChangeLog-pr-2209.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2209.yml diff --git a/html/changelogs/AutoChangeLog-pr-2209.yml b/html/changelogs/AutoChangeLog-pr-2209.yml new file mode 100644 index 0000000000..c65bfd79cc --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2209.yml @@ -0,0 +1,4 @@ +author: "ktccd" +delete-after: True +changes: + - tweak: "Changed how borers win-conditions are displayed. Syndicate borers are now listed with other cortical borers, as they can count for their team-objective even if they don't share it." From bbcad2fa5862a0ea30cc290351b65d0d1703da3a Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Mon, 31 Jul 2017 23:41:22 -0700 Subject: [PATCH 065/219] Proper mirror PR for the disease refactor because I fucked up the first one. (#2026) * Revert "im a dumbass and didn't see the .rej files Revert "[MIRROR] Disease Refactor" (#2025)" This reverts commit 44742cb11510a7cd0075d4b35b6a043ac4f26fb4. * Delete shuttle_loan.dm.rej * Delete life.dm.rej * Update life.dm * Delete life.dm.rej * compile --- code/_onclick/other_mobs.dm | 3 +- code/controllers/subsystem/disease.dm | 31 +------- code/datums/diseases/_MobProcs.dm | 10 ++- code/datums/diseases/_disease.dm | 73 ++++--------------- code/datums/diseases/advance/advance.dm | 14 +--- .../datums/diseases/advance/symptoms/cough.dm | 72 +++++++++--------- code/datums/diseases/advance/symptoms/fire.dm | 4 +- .../diseases/advance/symptoms/sneeze.dm | 65 +++++++++-------- .../diseases/advance/symptoms/symptoms.dm | 2 +- code/datums/diseases/appendicitis.dm | 2 +- code/datums/diseases/brainrot.dm | 2 +- code/datums/diseases/dna_spread.dm | 4 +- code/datums/diseases/pierrot_throat.dm | 1 - code/datums/diseases/rhumba_beat.dm | 2 +- code/datums/diseases/transformation.dm | 1 - code/datums/diseases/tuberculosis.dm | 4 +- code/datums/mind.dm | 19 ++--- code/game/data_huds.dm | 3 +- .../gamemodes/changeling/powers/panacea.dm | 5 +- .../gamemodes/miniantags/abduction/gland.dm | 3 +- .../gamemodes/miniantags/monkey/monkey.dm | 1 - code/game/machinery/cloning.dm | 2 +- .../effects/decals/cleanable/aliens.dm | 17 +---- .../effects/decals/cleanable/humans.dm | 19 +---- .../objects/effects/decals/cleanable/misc.dm | 9 +-- .../effects/decals/cleanable/robots.dm | 7 -- .../objects/effects/spawners/gibspawner.dm | 25 +++---- code/game/objects/items/devices/scanners.dm | 3 +- code/game/objects/items/weapons/melee/misc.dm | 2 +- code/modules/admin/secrets.dm | 5 +- code/modules/admin/verbs/randomverbs.dm | 2 +- code/modules/clothing/ears/ears.dm | 2 +- code/modules/events/disease_outbreak.dm | 16 ++-- code/modules/events/shuttle_loan.dm | 8 +- .../events/spontaneous_appendicitis.dm | 15 +++- .../kitchen_machinery/processor.dm | 3 +- code/modules/mob/living/blood.dm | 6 +- code/modules/mob/living/carbon/alien/death.dm | 4 +- .../mob/living/carbon/alien/larva/death.dm | 4 +- code/modules/mob/living/carbon/carbon.dm | 5 +- .../mob/living/carbon/carbon_defense.dm | 15 ++-- code/modules/mob/living/carbon/human/death.dm | 4 +- code/modules/mob/living/carbon/human/human.dm | 3 +- code/modules/mob/living/carbon/life.dm | 9 +++ code/modules/mob/living/death.dm | 2 +- code/modules/mob/living/life.dm | 13 +++- code/modules/mob/living/silicon/death.dm | 2 +- .../mob/living/silicon/pai/software.dm | 3 +- .../mob/living/simple_animal/bot/medbot.dm | 6 +- code/modules/mob/mob.dm | 3 +- code/modules/mob/mob_defines.dm | 2 +- code/modules/mob/transform_procs.dm | 8 +- .../reagents/chemistry/machinery/pandemic.dm | 2 +- .../chemistry/reagents/medicine_reagents.dm | 10 +-- .../chemistry/reagents/other_reagents.dm | 11 +-- 55 files changed, 246 insertions(+), 322 deletions(-) diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index b9df144ace..f0ba15446c 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -100,7 +100,8 @@ "[name] bites [ML]!") if(armor >= 2) return - for(var/datum/disease/D in viruses) + for(var/thing in viruses) + var/datum/disease/D = thing ML.ForceContractDisease(D) else ML.visible_message("[src] has attempted to bite [ML]!") diff --git a/code/controllers/subsystem/disease.dm b/code/controllers/subsystem/disease.dm index 5499680a2f..451bd05606 100644 --- a/code/controllers/subsystem/disease.dm +++ b/code/controllers/subsystem/disease.dm @@ -1,11 +1,8 @@ SUBSYSTEM_DEF(disease) name = "Disease" - flags = SS_KEEP_TIMING|SS_NO_INIT - runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME - - var/list/currentrun = list() - var/list/processing = list() + flags = SS_NO_FIRE + var/list/active_diseases = list() //List of Active disease in all mobs; purely for quick referencing. var/list/diseases var/list/archive_diseases = list() @@ -15,27 +12,5 @@ SUBSYSTEM_DEF(disease) if(!diseases) diseases = subtypesof(/datum/disease) -/datum/controller/subsystem/disease/Recover() - currentrun = SSdisease.currentrun - processing = SSdisease.processing - diseases = SSdisease.diseases - archive_diseases = SSdisease.archive_diseases - /datum/controller/subsystem/disease/stat_entry(msg) - ..("P:[processing.len]") - -/datum/controller/subsystem/disease/fire(resumed = 0) - if(!resumed) - src.currentrun = processing.Copy() - //cache for sanic speed (lists are references anyways) - var/list/currentrun = src.currentrun - - while(currentrun.len) - var/datum/thing = currentrun[currentrun.len] - currentrun.len-- - if(thing) - thing.process() - else - processing.Remove(thing) - if (MC_TICK_CHECK) - return + ..("P:[active_diseases.len]") \ No newline at end of file diff --git a/code/datums/diseases/_MobProcs.dm b/code/datums/diseases/_MobProcs.dm index 77b8aeed6a..84d177a390 100644 --- a/code/datums/diseases/_MobProcs.dm +++ b/code/datums/diseases/_MobProcs.dm @@ -1,6 +1,7 @@ /mob/proc/HasDisease(datum/disease/D) - for(var/datum/disease/DD in viruses) + for(var/thing in viruses) + var/datum/disease/DD = thing if(D.IsSame(DD)) return 1 return 0 @@ -39,7 +40,7 @@ var/datum/disease/DD = new D.type(1, D, 0) viruses += DD DD.affected_mob = src - DD.holder = src + SSdisease.active_diseases += DD //Add it to the active diseases list, now that it's actually in a mob and being processed. //Copy properties over. This is so edited diseases persist. var/list/skipped = list("affected_mob","holder","carrier","stage","type","parent_type","vars","transformed") @@ -147,6 +148,9 @@ /mob/living/carbon/human/CanContractDisease(datum/disease/D) - if(dna && (VIRUSIMMUNE in dna.species.species_traits)) + if(dna && (VIRUSIMMUNE in dna.species.species_traits) && !D.bypasses_immunity) return 0 + for(var/thing in D.required_organs) + if(!((locate(thing) in bodyparts) || (locate(thing) in internal_organs))) + return 0 return ..() \ No newline at end of file diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm index cc11d0e6d2..13ad3ece4e 100644 --- a/code/datums/diseases/_disease.dm +++ b/code/datums/diseases/_disease.dm @@ -46,21 +46,23 @@ var/stage_prob = 4 //Other - var/longevity = 150 //Time in ticks disease stays in objects, Syringes and such are infinite. var/list/viable_mobtypes = list() //typepaths of viable mobs var/mob/living/carbon/affected_mob = null - var/atom/movable/holder = null var/list/cures = list() //list of cures if the disease has the CURABLE flag, these are reagent ids var/infectivity = 65 var/cure_chance = 8 - var/carrier = 0 //If our host is only a carrier + var/carrier = FALSE //If our host is only a carrier + var/bypasses_immunity = FALSE //Does it skip species virus immunity check? Some things may diseases and not viruses var/permeability_mod = 1 var/severity = NONTHREAT var/list/required_organs = list() var/needs_all_cures = TRUE var/list/strain_data = list() //dna_spread special bullshit - +/datum/disease/Destroy() + affected_mob = null + SSdisease.active_diseases.Remove(src) + return ..() /datum/disease/proc/stage_act() var/cure = has_cure() @@ -93,13 +95,16 @@ if(!. || (needs_all_cures && . < cures.len)) return 0 -/datum/disease/proc/spread(atom/source, force_spread = 0) + +/datum/disease/proc/spread(force_spread = 0) + if(!affected_mob) + return + if((spread_flags & SPECIAL || spread_flags & NON_CONTAGIOUS || spread_flags & BLOOD) && !force_spread) return - if(affected_mob) - if( affected_mob.reagents.has_reagent("spaceacillin") || (affected_mob.satiety > 0 && prob(affected_mob.satiety/10)) ) - return + if(affected_mob.reagents.has_reagent("spaceacillin") || (affected_mob.satiety > 0 && prob(affected_mob.satiety/10))) + return var/spread_range = 1 @@ -109,15 +114,9 @@ if(spread_flags & AIRBORNE) spread_range++ - if(!source) - if(affected_mob) - source = affected_mob - else - return - - var/turf/T = source.loc + var/turf/T = affected_mob.loc if(istype(T)) - for(var/mob/living/carbon/C in oview(spread_range, source)) + for(var/mob/living/carbon/C in oview(spread_range, affected_mob)) var/turf/V = get_turf(C) if(V) while(TRUE) @@ -129,29 +128,6 @@ break V = Temp -/datum/disease/process() - if(!holder) - SSdisease.processing -= src - return - - if(prob(infectivity)) - spread(holder) - - if(affected_mob) - for(var/datum/disease/D in affected_mob.viruses) - if(D != src) - if(IsSame(D)) - qdel(D) - - if(holder == affected_mob) - if(affected_mob.stat != DEAD) - stage_act() - - if(!affected_mob) - if(prob(70)) - if(--longevity<=0) - cure() - /datum/disease/proc/cure() if(affected_mob) @@ -161,20 +137,6 @@ remove_virus() qdel(src) - -/datum/disease/New() - if(required_organs && required_organs.len) - if(ishuman(affected_mob)) - var/mob/living/carbon/human/H = affected_mob - for(var/obj/item/organ/O in required_organs) - if(!locate(O) in H.bodyparts) - if(!locate(O) in H.internal_organs) - cure() - return - - SSdisease.processing += src - - /datum/disease/proc/IsSame(datum/disease/D) if(istype(src, D.type)) return 1 @@ -191,11 +153,6 @@ return type -/datum/disease/Destroy() - SSdisease.processing.Remove(src) - return ..() - - /datum/disease/proc/IsSpreadByTouch() if(spread_flags & CONTACT_FEET || spread_flags & CONTACT_HANDS || spread_flags & CONTACT_GENERAL) return 1 diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm index bc089d5082..e8ddfdc3d7 100644 --- a/code/datums/diseases/advance/advance.dm +++ b/code/datums/diseases/advance/advance.dm @@ -93,7 +93,7 @@ if(!(istype(D, /datum/disease/advance))) return 0 - if(src.GetDiseaseID() != D.GetDiseaseID()) + if(GetDiseaseID() != D.GetDiseaseID()) return 0 return 1 @@ -118,7 +118,7 @@ // Mix the symptoms of two diseases (the src and the argument) /datum/disease/advance/proc/Mix(datum/disease/advance/D) - if(!(src.IsSame(D))) + if(!(IsSame(D))) var/list/possible_symptoms = shuffle(D.symptoms) for(var/datum/symptom/S in possible_symptoms) AddSymptom(S.Copy()) @@ -158,7 +158,6 @@ return generated /datum/disease/advance/proc/Refresh(new_name = FALSE) - //to_chat(world, "[src.name] \ref[src] - REFRESH!") GenerateProperties() AssignProperties() id = null @@ -412,7 +411,7 @@ D.AssignName(new_name) D.Refresh() - for(var/datum/disease/advance/AD in SSdisease.processing) + for(var/datum/disease/advance/AD in SSdisease.active_diseases) AD.Refresh() for(var/mob/living/carbon/human/H in shuffle(GLOB.living_mob_list)) @@ -427,13 +426,6 @@ name_symptoms += S.name message_admins("[key_name_admin(user)] has triggered a custom virus outbreak of [D.name]! It has these symptoms: [english_list(name_symptoms)]") -/* -/mob/verb/test() - - for(var/datum/disease/D in SSdisease.processing) - to_chat(src, "
[D.name] - [D.holder]") -*/ - /datum/disease/advance/proc/totalStageSpeed() return properties["stage_rate"] diff --git a/code/datums/diseases/advance/symptoms/cough.dm b/code/datums/diseases/advance/symptoms/cough.dm index e264b331e7..a05d1d5e88 100644 --- a/code/datums/diseases/advance/symptoms/cough.dm +++ b/code/datums/diseases/advance/symptoms/cough.dm @@ -24,45 +24,45 @@ BONUS transmittable = 2 level = 1 severity = 1 - base_message_chance = 15 - symptom_delay_min = 2 - symptom_delay_max = 15 - var/infective = FALSE + base_message_chance = 15 + symptom_delay_min = 2 + symptom_delay_max = 15 + var/infective = FALSE -/datum/symptom/cough/Start(datum/disease/advance/A) +/datum/symptom/cough/Start(datum/disease/advance/A) ..() - if(A.properties["stealth"] >= 4) - suppress_warning = TRUE - if(A.spread_flags &= AIRBORNE) //infect bystanders - infective = TRUE - if(A.properties["resistance"] >= 3) //strong enough to drop items - power = 1.5 - if(A.properties["resistance"] >= 10) //strong enough to stun (rarely) - power = 2 - if(A.properties["stage_rate"] >= 6) //cough more often - symptom_delay_max = 10 - -/datum/symptom/cough/Activate(datum/disease/advance/A) - if(!..()) - return - var/mob/living/M = A.affected_mob - switch(A.stage) - if(1, 2, 3) - if(prob(base_message_chance) && !suppress_warning) + if(A.properties["stealth"] >= 4) + suppress_warning = TRUE + if(A.spread_flags &= AIRBORNE) //infect bystanders + infective = TRUE + if(A.properties["resistance"] >= 3) //strong enough to drop items + power = 1.5 + if(A.properties["resistance"] >= 10) //strong enough to stun (rarely) + power = 2 + if(A.properties["stage_rate"] >= 6) //cough more often + symptom_delay_max = 10 + +/datum/symptom/cough/Activate(datum/disease/advance/A) + if(!..()) + return + var/mob/living/M = A.affected_mob + switch(A.stage) + if(1, 2, 3) + if(prob(base_message_chance) && !suppress_warning) to_chat(M, "[pick("You swallow excess mucus.", "You lightly cough.")]") - else - M.emote("cough") - if(power >= 1.5) + else + M.emote("cough") + if(power >= 1.5) var/obj/item/I = M.get_active_held_item() if(I && I.w_class == WEIGHT_CLASS_TINY) M.drop_item() - if(power >= 2 && prob(10)) - to_chat(M, "[pick("You have a coughing fit!", "You can't stop coughing!")]") - M.Stun(20) - M.emote("cough") - addtimer(CALLBACK(M, /mob/.proc/emote, "cough"), 6) - addtimer(CALLBACK(M, /mob/.proc/emote, "cough"), 12) - addtimer(CALLBACK(M, /mob/.proc/emote, "cough"), 18) - if(infective) - A.spread(A.holder, 1) - + if(power >= 2 && prob(10)) + to_chat(M, "[pick("You have a coughing fit!", "You can't stop coughing!")]") + M.Stun(20) + M.emote("cough") + addtimer(CALLBACK(M, /mob/.proc/emote, "cough"), 6) + addtimer(CALLBACK(M, /mob/.proc/emote, "cough"), 12) + addtimer(CALLBACK(M, /mob/.proc/emote, "cough"), 18) + if(infective) + A.spread(1) + diff --git a/code/datums/diseases/advance/symptoms/fire.dm b/code/datums/diseases/advance/symptoms/fire.dm index 5e430b3297..b8d80b8023 100644 --- a/code/datums/diseases/advance/symptoms/fire.dm +++ b/code/datums/diseases/advance/symptoms/fire.dm @@ -63,14 +63,14 @@ Bonus M.adjust_fire_stacks(1 * power) M.adjustFireLoss(3 * power) if(infective) - A.spread(A.holder, 2) + A.spread(2) return 1 /datum/symptom/fire/proc/Firestacks_stage_5(mob/living/M, datum/disease/advance/A) M.adjust_fire_stacks(3 * power) M.adjustFireLoss(5 * power) if(infective) - A.spread(A.holder, 4) + A.spread(4) return 1 /* diff --git a/code/datums/diseases/advance/symptoms/sneeze.dm b/code/datums/diseases/advance/symptoms/sneeze.dm index 43caf6d34e..fda1fc765c 100644 --- a/code/datums/diseases/advance/symptoms/sneeze.dm +++ b/code/datums/diseases/advance/symptoms/sneeze.dm @@ -1,34 +1,34 @@ -/* -////////////////////////////////////// - -Sneezing - - Very Noticable. - Increases resistance. - Doesn't increase stage speed. - Very transmittable. - Low Level. - -Bonus - Forces a spread type of AIRBORNE - with extra range! - -////////////////////////////////////// -*/ - -/datum/symptom/sneeze - name = "Sneezing" - stealth = -2 - resistance = 3 - stage_speed = 0 - transmittable = 4 - level = 1 - severity = 1 +/* +////////////////////////////////////// + +Sneezing + + Very Noticable. + Increases resistance. + Doesn't increase stage speed. + Very transmittable. + Low Level. + +Bonus + Forces a spread type of AIRBORNE + with extra range! + +////////////////////////////////////// +*/ + +/datum/symptom/sneeze + name = "Sneezing" + stealth = -2 + resistance = 3 + stage_speed = 0 + transmittable = 4 + level = 1 + severity = 1 symptom_delay_min = 5 symptom_delay_max = 35 - + /datum/symptom/sneeze/Start(datum/disease/advance/A) - ..() + ..() if(A.properties["transmittable"] >= 9) //longer spread range power = 2 if(A.properties["stealth"] >= 4) @@ -41,7 +41,8 @@ Bonus switch(A.stage) if(1, 2, 3) if(!suppress_warning) - M.emote("sniff") - else - M.emote("sneeze") - A.spread(A.holder, 4 + power) \ No newline at end of file + M.emote("sniff") + else + M.emote("sneeze") + A.spread(5) + return diff --git a/code/datums/diseases/advance/symptoms/symptoms.dm b/code/datums/diseases/advance/symptoms/symptoms.dm index 12ed912581..4bcb1b502f 100644 --- a/code/datums/diseases/advance/symptoms/symptoms.dm +++ b/code/datums/diseases/advance/symptoms/symptoms.dm @@ -29,7 +29,7 @@ /datum/symptom/New() var/list/S = SSdisease.list_symptoms for(var/i = 1; i <= S.len; i++) - if(src.type == S[i]) + if(type == S[i]) id = "[i]" return CRASH("We couldn't assign an ID!") diff --git a/code/datums/diseases/appendicitis.dm b/code/datums/diseases/appendicitis.dm index eba5e1173b..8c681b8ec3 100644 --- a/code/datums/diseases/appendicitis.dm +++ b/code/datums/diseases/appendicitis.dm @@ -8,11 +8,11 @@ permeability_mod = 1 desc = "If left untreated the subject will become very weak, and may vomit often." severity = "Dangerous!" - longevity = 1000 disease_flags = CAN_CARRY|CAN_RESIST spread_flags = NON_CONTAGIOUS visibility_flags = HIDDEN_PANDEMIC required_organs = list(/obj/item/organ/appendix) + bypasses_immunity = TRUE // Immunity is based on not having an appendix; this isn't a virus /datum/disease/appendicitis/stage_act() ..() diff --git a/code/datums/diseases/brainrot.dm b/code/datums/diseases/brainrot.dm index a58f85a494..e830cafbef 100644 --- a/code/datums/diseases/brainrot.dm +++ b/code/datums/diseases/brainrot.dm @@ -9,7 +9,7 @@ viable_mobtypes = list(/mob/living/carbon/human) cure_chance = 15//higher chance to cure, since two reagents are required desc = "This disease destroys the braincells, causing brain fever, brain necrosis and general intoxication." - required_organs = list(/obj/item/bodypart/head) + required_organs = list(/obj/item/organ/brain) severity = DANGEROUS /datum/disease/brainrot/stage_act() //Removed toxloss because damaging diseases are pretty horrible. Last round it killed the entire station because the cure didn't work -- Urist -ACTUALLY Removed rather than commented out, I don't see it returning - RR diff --git a/code/datums/diseases/dna_spread.dm b/code/datums/diseases/dna_spread.dm index 69b30589ac..2b77885359 100644 --- a/code/datums/diseases/dna_spread.dm +++ b/code/datums/diseases/dna_spread.dm @@ -25,8 +25,8 @@ //Absorbs the target DNA. strain_data["dna"] = new affected_mob.dna.type affected_mob.dna.copy_dna(strain_data["dna"]) - src.carrier = 1 - src.stage = 4 + carrier = TRUE + stage = 4 return switch(stage) diff --git a/code/datums/diseases/pierrot_throat.dm b/code/datums/diseases/pierrot_throat.dm index b2195a9527..75f63edf43 100644 --- a/code/datums/diseases/pierrot_throat.dm +++ b/code/datums/diseases/pierrot_throat.dm @@ -10,7 +10,6 @@ permeability_mod = 0.75 desc = "If left untreated the subject will probably drive others to insanity." severity = MEDIUM - longevity = 400 /datum/disease/pierrot_throat/stage_act() ..() diff --git a/code/datums/diseases/rhumba_beat.dm b/code/datums/diseases/rhumba_beat.dm index d33446cadf..9cbb829061 100644 --- a/code/datums/diseases/rhumba_beat.dm +++ b/code/datums/diseases/rhumba_beat.dm @@ -13,7 +13,7 @@ /datum/disease/rhumba_beat/stage_act() ..() if(affected_mob.ckey == "rosham") - src.cure() + cure() return switch(stage) if(2) diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm index 03b746a3bd..e5746c3f8b 100644 --- a/code/datums/diseases/transformation.dm +++ b/code/datums/diseases/transformation.dm @@ -73,7 +73,6 @@ permeability_mod = 1 cure_chance = 1 disease_flags = CAN_CARRY|CAN_RESIST - longevity = 30 desc = "Monkeys with this disease will bite humans, causing humans to mutate into a monkey." severity = BIOHAZARD stage_prob = 4 diff --git a/code/datums/diseases/tuberculosis.dm b/code/datums/diseases/tuberculosis.dm index 4b57c2655b..c8e2a4609b 100644 --- a/code/datums/diseases/tuberculosis.dm +++ b/code/datums/diseases/tuberculosis.dm @@ -1,4 +1,5 @@ /datum/disease/tuberculosis + form = "Disease" name = "Fungal tuberculosis" max_stages = 5 spread_text = "Airborne" @@ -8,8 +9,9 @@ viable_mobtypes = list(/mob/living/carbon/human) cure_chance = 5//like hell are you getting out of hell desc = "A rare highly transmittable virulent virus. Few samples exist, rumoured to be carefully grown and cultured by clandestine bio-weapon specialists. Causes fever, blood vomiting, lung damage, weight loss, and fatigue." - required_organs = list(/obj/item/bodypart/head) + required_organs = list(/obj/item/organ/lungs) severity = DANGEROUS + bypasses_immunity = TRUE // TB primarily impacts the lungs; it's also bacterial or fungal in nature; viral immunity should do nothing. /datum/disease/tuberculosis/stage_act() //it begins ..() diff --git a/code/datums/mind.dm b/code/datums/mind.dm index aeb0ff4a4e..4ee6725e2f 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -629,10 +629,11 @@ text = "[text]: " if (ishuman(current)) text += "healthy|infected|HUMAN|other" - else if (ismonkey(current)) - var/found = 0 - for(var/datum/disease/D in current.viruses) - if(istype(D, /datum/disease/transformation/jungle_fever)) found = 1 + else if(ismonkey(current)) + var/found = FALSE + for(var/datum/disease/transformation/jungle_fever/JF in current.viruses) + found = TRUE + break if(found) text += "healthy|INFECTED|human|other" @@ -1348,7 +1349,8 @@ src = M.mind //to_chat(world, "DEBUG: \"healthy\": M=[M], M.mind=[M.mind], src=[src]!") else if (istype(M) && length(M.viruses)) - for(var/datum/disease/D in M.viruses) + for(var/thing in M.viruses) + var/datum/disease/D = thing D.cure(0) if("infected") if (check_rights(R_ADMIN, 0)) @@ -1368,10 +1370,9 @@ var/mob/living/carbon/human/H = current var/mob/living/carbon/monkey/M = current if (istype(M)) - for(var/datum/disease/D in M.viruses) - if (istype(D,/datum/disease/transformation/jungle_fever)) - D.cure(0) - sleep(0) //because deleting of virus is doing throught spawn(0) + for(var/datum/disease/transformation/jungle_fever/JF in M.viruses) + JF.cure(0) + sleep(0) //because deleting of virus is doing throught spawn(0) //What log_admin("[key_name(usr)] attempting to humanize [key_name(current)]") message_admins("[key_name_admin(usr)] attempting to humanize [key_name_admin(current)]") H = M.humanize(TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPORGANS | TR_KEEPDAMAGE | TR_KEEPVIRUS | TR_DEFAULTMSG) diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index f94b0c9a48..2697df7ba9 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -62,7 +62,8 @@ //called when a carbon changes virus /mob/living/carbon/proc/check_virus() var/threat = 0 - for(var/datum/disease/D in viruses) + for(var/thing in viruses) + var/datum/disease/D = thing if(!(D.visibility_flags & HIDDEN_SCANNER)) if (D.severity != NONTHREAT) //a buffing virus gets an icon threat = 2 diff --git a/code/game/gamemodes/changeling/powers/panacea.dm b/code/game/gamemodes/changeling/powers/panacea.dm index 40ce63a60e..c961406810 100644 --- a/code/game/gamemodes/changeling/powers/panacea.dm +++ b/code/game/gamemodes/changeling/powers/panacea.dm @@ -41,6 +41,9 @@ user.reagents.add_reagent("antihol", 10) user.reagents.add_reagent("mannitol", 25) - for(var/datum/disease/D in user.viruses) + for(var/thing in user.viruses) + var/datum/disease/D = thing + if(D.severity == NONTHREAT) + continue D.cure() return TRUE diff --git a/code/game/gamemodes/miniantags/abduction/gland.dm b/code/game/gamemodes/miniantags/abduction/gland.dm index 3598446bc1..a118a979b4 100644 --- a/code/game/gamemodes/miniantags/abduction/gland.dm +++ b/code/game/gamemodes/miniantags/abduction/gland.dm @@ -133,10 +133,9 @@ to_chat(owner, "You feel sick.") var/virus_type = pick(/datum/disease/beesease, /datum/disease/brainrot, /datum/disease/magnitis) var/datum/disease/D = new virus_type() - D.carrier = 1 + D.carrier = TRUE owner.viruses += D D.affected_mob = owner - D.holder = owner owner.med_hud_set_status() diff --git a/code/game/gamemodes/miniantags/monkey/monkey.dm b/code/game/gamemodes/miniantags/monkey/monkey.dm index 20ba54afc4..da9f4b61f1 100644 --- a/code/game/gamemodes/miniantags/monkey/monkey.dm +++ b/code/game/gamemodes/miniantags/monkey/monkey.dm @@ -60,7 +60,6 @@ var/datum/disease/D = new /datum/disease/transformation/jungle_fever D.visibility_flags = HIDDEN_SCANNER|HIDDEN_PANDEMIC - D.holder = carriermind.current D.affected_mob = carriermind.current carriermind.current.viruses += D ..() diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 1f4fbaee08..811e90603e 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -365,7 +365,7 @@ fl.forceMove(T) unattached_flesh.Cut() mess = FALSE - new /obj/effect/gibspawner/generic(loc) + new /obj/effect/gibspawner/generic(get_turf(src)) audible_message("You hear a splat.") icon_state = "pod_0" return diff --git a/code/game/objects/effects/decals/cleanable/aliens.dm b/code/game/objects/effects/decals/cleanable/aliens.dm index 3ab96f6df5..26b5bca1ec 100644 --- a/code/game/objects/effects/decals/cleanable/aliens.dm +++ b/code/game/objects/effects/decals/cleanable/aliens.dm @@ -6,17 +6,10 @@ icon = 'icons/effects/blood.dmi' icon_state = "xfloor1" random_icon_states = list("xfloor1", "xfloor2", "xfloor3", "xfloor4", "xfloor5", "xfloor6", "xfloor7") - var/list/viruses = list() blood_DNA = list("UNKNOWN DNA" = "X*") bloodiness = MAX_SHOE_BLOODINESS blood_state = BLOOD_STATE_XENO -/obj/effect/decal/cleanable/xenoblood/Destroy() - for(var/datum/disease/D in viruses) - D.cure(0) - viruses = null - return ..() - /obj/effect/decal/cleanable/xenoblood/xsplatter random_icon_states = list("xgibbl1", "xgibbl2", "xgibbl3", "xgibbl4", "xgibbl5") @@ -34,13 +27,9 @@ var/direction = pick(directions) for(var/i = 0, i < pick(1, 200; 2, 150; 3, 50), i++) sleep(2) - if (i > 0) - var/obj/effect/decal/cleanable/xenoblood/b = new /obj/effect/decal/cleanable/xenoblood/xsplatter(src.loc) - for(var/datum/disease/D in src.viruses) - var/datum/disease/ND = D.Copy(1) - b.viruses += ND - ND.holder = b - if (!step_to(src, get_step(src, direction), 0)) + if(i > 0) + new /obj/effect/decal/cleanable/xenoblood/xsplatter(loc) + if(!step_to(src, get_step(src, direction), 0)) break /obj/effect/decal/cleanable/xenoblood/xgibs/ex_act() diff --git a/code/game/objects/effects/decals/cleanable/humans.dm b/code/game/objects/effects/decals/cleanable/humans.dm index 8248776a95..5127aa2285 100644 --- a/code/game/objects/effects/decals/cleanable/humans.dm +++ b/code/game/objects/effects/decals/cleanable/humans.dm @@ -4,17 +4,10 @@ icon = 'icons/effects/blood.dmi' icon_state = "floor1" random_icon_states = list("floor1", "floor2", "floor3", "floor4", "floor5", "floor6", "floor7") - var/list/viruses = list() blood_DNA = list() blood_state = BLOOD_STATE_HUMAN bloodiness = MAX_SHOE_BLOODINESS -/obj/effect/decal/cleanable/blood/Destroy() - for(var/datum/disease/D in viruses) - D.cure(0) - viruses = null - return ..() - /obj/effect/decal/cleanable/blood/replace_decal(obj/effect/decal/cleanable/blood/C) if (C.blood_DNA) blood_DNA |= C.blood_DNA.Copy() @@ -70,15 +63,11 @@ /obj/effect/decal/cleanable/blood/gibs/proc/streak(list/directions) set waitfor = 0 var/direction = pick(directions) - for (var/i = 0, i < pick(1, 200; 2, 150; 3, 50), i++) + for(var/i = 0, i < pick(1, 200; 2, 150; 3, 50), i++) sleep(2) - if (i > 0) - var/obj/effect/decal/cleanable/blood/b = new /obj/effect/decal/cleanable/blood/splatter(src.loc) - for(var/datum/disease/D in src.viruses) - var/datum/disease/ND = D.Copy(1) - b.viruses += ND - ND.holder = b - if (!step_to(src, get_step(src, direction), 0)) + if(i > 0) + new /obj/effect/decal/cleanable/blood/splatter(loc) + if(!step_to(src, get_step(src, direction), 0)) break /obj/effect/decal/cleanable/blood/gibs/up diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index f1b0a9ce40..98a9782600 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -80,9 +80,8 @@ icon = 'icons/effects/blood.dmi' icon_state = "vomit_1" random_icon_states = list("vomit_1", "vomit_2", "vomit_3", "vomit_4") - var/list/viruses = list() -/obj/effect/decal/cleanable/vomit/attack_hand(var/mob/user) +/obj/effect/decal/cleanable/vomit/attack_hand(mob/user) if(ishuman(user)) var/mob/living/carbon/human/H = user if(isflyperson(H)) @@ -98,12 +97,6 @@ reagents.trans_to(H, reagents.total_volume) qdel(src) -/obj/effect/decal/cleanable/vomit/Destroy() - for(var/datum/disease/D in viruses) - D.cure(0) - viruses = null - return ..() - /obj/effect/decal/cleanable/vomit/old name = "crusty dried vomit" desc = "You try not to look at the chunks, and fail." diff --git a/code/game/objects/effects/decals/cleanable/robots.dm b/code/game/objects/effects/decals/cleanable/robots.dm index 862d21ad6b..e91c273903 100644 --- a/code/game/objects/effects/decals/cleanable/robots.dm +++ b/code/game/objects/effects/decals/cleanable/robots.dm @@ -43,7 +43,6 @@ desc = "It's black and greasy. Looks like Beepsky made another mess." icon = 'icons/mob/robots.dmi' icon_state = "floor1" - var/viruses = list() random_icon_states = list("floor1", "floor2", "floor3", "floor4", "floor5", "floor6", "floor7") blood_state = BLOOD_STATE_OIL bloodiness = MAX_SHOE_BLOODINESS @@ -52,11 +51,5 @@ ..() reagents.add_reagent("oil", 30) -/obj/effect/decal/cleanable/oil/Destroy() - for(var/datum/disease/D in viruses) - D.cure(0) - viruses = null - return ..() - /obj/effect/decal/cleanable/oil/streak random_icon_states = list("streak1", "streak2", "streak3", "streak4", "streak5") diff --git a/code/game/objects/effects/spawners/gibspawner.dm b/code/game/objects/effects/spawners/gibspawner.dm index 20ccfbdca5..8d7a446248 100644 --- a/code/game/objects/effects/spawners/gibspawner.dm +++ b/code/game/objects/effects/spawners/gibspawner.dm @@ -6,8 +6,8 @@ var/list/gibamounts = list() //amount to spawn for each gib decal type we'll spawn. var/list/gibdirections = list() //of lists of possible directions to spread each gib decal type towards. -/obj/effect/gibspawner/Initialize(mapload, list/viruses, datum/dna/MobDNA) - ..() +/obj/effect/gibspawner/Initialize(mapload, datum/dna/MobDNA) + . = ..() if(gibtypes.len != gibamounts.len || gibamounts.len != gibdirections.len) to_chat(world, "Gib list length mismatch!") @@ -29,13 +29,6 @@ var/mob/living/carbon/digester = loc digester.stomach_contents += gib - if(viruses && viruses.len > 0) - for(var/datum/disease/D in viruses) - if(prob(virusProb)) - var/datum/disease/viruus = D.Copy(1) - gib.viruses += viruus - viruus.holder = gib - if(MobDNA) gib.blood_DNA[MobDNA.unique_enzymes] = MobDNA.blood_type else if(istype(src, /obj/effect/gibspawner/generic)) // Probably a monkey @@ -50,7 +43,7 @@ /obj/effect/gibspawner/generic - gibtypes = list(/obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/core) + gibtypes = list(/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs/core) gibamounts = list(2,2,1) /obj/effect/gibspawner/generic/Initialize() @@ -59,7 +52,7 @@ . = ..() /obj/effect/gibspawner/human - gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/up, /obj/effect/decal/cleanable/blood/gibs/down, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/body, /obj/effect/decal/cleanable/blood/gibs/limb, /obj/effect/decal/cleanable/blood/gibs/core) + gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/up,/obj/effect/decal/cleanable/blood/gibs/down,/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs/body,/obj/effect/decal/cleanable/blood/gibs/limb,/obj/effect/decal/cleanable/blood/gibs/core) gibamounts = list(1,1,1,1,1,1,1) /obj/effect/gibspawner/human/Initialize() @@ -69,7 +62,7 @@ /obj/effect/gibspawner/humanbodypartless //only the gibs that don't look like actual full bodyparts (except torso). - gibtypes = list(/obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/core, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/core, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/torso) + gibtypes = list(/obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/core,/obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/core, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/torso) gibamounts = list(1, 1, 1, 1, 1, 1) /obj/effect/gibspawner/humanbodypartless/Initialize() @@ -79,7 +72,7 @@ /obj/effect/gibspawner/xeno - gibtypes = list(/obj/effect/decal/cleanable/xenoblood/xgibs/up, /obj/effect/decal/cleanable/xenoblood/xgibs/down, /obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/body, /obj/effect/decal/cleanable/xenoblood/xgibs/limb, /obj/effect/decal/cleanable/xenoblood/xgibs/core) + gibtypes = list(/obj/effect/decal/cleanable/xenoblood/xgibs/up,/obj/effect/decal/cleanable/xenoblood/xgibs/down,/obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/body, /obj/effect/decal/cleanable/xenoblood/xgibs/limb, /obj/effect/decal/cleanable/xenoblood/xgibs/core) gibamounts = list(1,1,1,1,1,1,1) /obj/effect/gibspawner/xeno/Initialize() @@ -89,7 +82,7 @@ /obj/effect/gibspawner/xenobodypartless //only the gibs that don't look like actual full bodyparts (except torso). - gibtypes = list(/obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/core, /obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/core, /obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/torso) + gibtypes = list(/obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/core,/obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/core, /obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/torso) gibamounts = list(1, 1, 1, 1, 1, 1) @@ -118,10 +111,10 @@ /obj/effect/gibspawner/robot sparks = 1 - gibtypes = list(/obj/effect/decal/cleanable/robot_debris/up, /obj/effect/decal/cleanable/robot_debris/down, /obj/effect/decal/cleanable/robot_debris, /obj/effect/decal/cleanable/robot_debris, /obj/effect/decal/cleanable/robot_debris, /obj/effect/decal/cleanable/robot_debris/limb) + gibtypes = list(/obj/effect/decal/cleanable/robot_debris/up,/obj/effect/decal/cleanable/robot_debris/down,/obj/effect/decal/cleanable/robot_debris,/obj/effect/decal/cleanable/robot_debris,/obj/effect/decal/cleanable/robot_debris,/obj/effect/decal/cleanable/robot_debris/limb) gibamounts = list(1,1,1,1,1,1) /obj/effect/gibspawner/robot/Initialize() gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, GLOB.alldirs) gibamounts[6] = pick(0,1,2) - ..() + . = ..() diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 4ad227b1b2..3c94db8ca4 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -179,7 +179,8 @@ MASS SPECTROMETER if(tdelta < (DEFIB_TIME_LIMIT * 10)) to_chat(user, "Subject died [tdelta / 10] seconds ago, defibrillation may be possible!") - for(var/datum/disease/D in M.viruses) + for(var/thing in M.viruses) + var/datum/disease/D = thing if(!(D.visibility_flags & HIDDEN_SCANNER)) to_chat(user, "Warning: [D.form] detected\nName: [D.name].\nType: [D.spread_text].\nStage: [D.stage]/[D.max_stages].\nPossible Cure: [D.cure_text]") diff --git a/code/game/objects/items/weapons/melee/misc.dm b/code/game/objects/items/weapons/melee/misc.dm index 2bee842813..bd48650746 100644 --- a/code/game/objects/items/weapons/melee/misc.dm +++ b/code/game/objects/items/weapons/melee/misc.dm @@ -160,7 +160,7 @@ if (B && !QDELETED(B)) H.internal_organs -= B qdel(B) - new /obj/effect/gibspawner/generic(H.loc, H.viruses, H.dna) + new /obj/effect/gibspawner/generic(get_turf(H), H.dna) return (BRUTELOSS) /obj/item/weapon/melee/classic_baton/telescopic/attack_self(mob/user) diff --git a/code/modules/admin/secrets.dm b/code/modules/admin/secrets.dm index 0b8219466c..95e7c9a904 100644 --- a/code/modules/admin/secrets.dm +++ b/code/modules/admin/secrets.dm @@ -149,8 +149,9 @@ var/choice = input("Are you sure you want to cure all disease?") in list("Yes", "Cancel") if(choice == "Yes") message_admins("[key_name_admin(usr)] has cured all diseases.") - for(var/datum/disease/D in SSdisease.processing) - D.cure(D) + for(var/thing in SSdisease.active_diseases) + var/datum/disease/D = thing + D.cure(0) if("set_name") if(!check_rights(R_ADMIN)) return diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 551321e893..6461ad2a23 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -615,7 +615,7 @@ Traitors and the like can also be revived with the previous role mostly intact. message_admins("[key_name_admin(usr)] has gibbed [key_name_admin(M)]") if(isobserver(M)) - new /obj/effect/gibspawner/generic(M.loc, M.viruses) + new /obj/effect/gibspawner/generic(get_turf(M)) return if(confirm == "Yes") M.gib() diff --git a/code/modules/clothing/ears/ears.dm b/code/modules/clothing/ears/ears.dm index 906bde2a87..4061c4db03 100644 --- a/code/modules/clothing/ears/ears.dm +++ b/code/modules/clothing/ears/ears.dm @@ -47,4 +47,4 @@ H.update_inv_ears() H.update_inv_neck() H.update_inv_head() - to_chat(owner, "You turn the music [headphones_on? "on. Untz Untz Untz!" : "off."]") + to_chat(owner, "You turn the music [headphones_on? "on. Untz Untz Untz!" : "off."]") \ No newline at end of file diff --git a/code/modules/events/disease_outbreak.dm b/code/modules/events/disease_outbreak.dm index fc86356adf..dbac242321 100644 --- a/code/modules/events/disease_outbreak.dm +++ b/code/modules/events/disease_outbreak.dm @@ -27,11 +27,17 @@ continue if(T.z != ZLEVEL_STATION) continue - var/foundAlready = 0 // don't infect someone that already has the virus - for(var/datum/disease/D in H.viruses) - foundAlready = 1 + if(!H.client) + continue + if(H.stat == DEAD) + continue + if(VIRUSIMMUNE in H.dna.species.species_traits) //Don't pick someone who's virus immune, only for it to not do anything. + continue + var/foundAlready = FALSE // don't infect someone that already has a disease + for(var/thing in H.viruses) + foundAlready = TRUE break - if(H.stat == DEAD || foundAlready) + if(foundAlready) continue var/datum/disease/D @@ -45,6 +51,6 @@ DS.strain_data["SE"] = H.dna.struc_enzymes else D = new virus_type() - D.carrier = 1 + D.carrier = TRUE H.AddDisease(D) break \ No newline at end of file diff --git a/code/modules/events/shuttle_loan.dm b/code/modules/events/shuttle_loan.dm index b9f108c50d..d04d2fe65a 100644 --- a/code/modules/events/shuttle_loan.dm +++ b/code/modules/events/shuttle_loan.dm @@ -135,7 +135,7 @@ new /obj/structure/spider/stickyweb(T) if(ANTIDOTE_NEEDED) - var/virus_type = pick(/datum/disease/beesease, /datum/disease/brainrot, /datum/disease/fluspanish) + var/obj/item/weapon/reagent_containers/glass/bottle/virus_type = pick(/obj/item/weapon/reagent_containers/glass/bottle/beesease, /obj/item/weapon/reagent_containers/glass/bottle/brainrot, /obj/item/weapon/reagent_containers/glass/bottle/fluspanish) var/turf/T for(var/i=0, i<10, i++) if(prob(15)) @@ -145,11 +145,7 @@ else if(prob(25)) shuttle_spawns.Add(/obj/item/weapon/shard) T = pick_n_take(empty_shuttle_turfs) - var/obj/effect/decal/cleanable/blood/b = new(T) - var/datum/disease/D = new virus_type() - D.longevity = 1000 - b.viruses += D - D.holder = b + new virus_type(T) shuttle_spawns.Add(/obj/structure/closet/crate) shuttle_spawns.Add(/obj/item/weapon/reagent_containers/glass/bottle/pierrot_throat) shuttle_spawns.Add(/obj/item/weapon/reagent_containers/glass/bottle/magnitis) diff --git a/code/modules/events/spontaneous_appendicitis.dm b/code/modules/events/spontaneous_appendicitis.dm index eb66be3038..a441210432 100644 --- a/code/modules/events/spontaneous_appendicitis.dm +++ b/code/modules/events/spontaneous_appendicitis.dm @@ -8,10 +8,17 @@ /datum/round_event/spontaneous_appendicitis/start() for(var/mob/living/carbon/human/H in shuffle(GLOB.living_mob_list)) - var/foundAlready = 0 //don't infect someone that already has the virus - for(var/datum/disease/D in H.viruses) - foundAlready = 1 - if(H.stat == 2 || foundAlready) + if(!H.client) + continue + if(H.stat == DEAD) + continue + if(!H.getorgan(/obj/item/organ/appendix)) //Don't give the disease to some who lacks it, only for it to be auto-cured + continue + var/foundAlready = FALSE //don't infect someone that already has appendicitis + for(var/datum/disease/appendicitis/A in H.viruses) + foundAlready = TRUE + break + if(foundAlready) continue var/datum/disease/D = new /datum/disease/appendicitis diff --git a/code/modules/food_and_drinks/kitchen_machinery/processor.dm b/code/modules/food_and_drinks/kitchen_machinery/processor.dm index 8d3b8bae52..71f8d727fc 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/processor.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/processor.dm @@ -162,7 +162,8 @@ //set reagent data B.data["donor"] = O - for(var/datum/disease/D in O.viruses) + for(var/thing in O.viruses) + var/datum/disease/D = thing if(!(D.spread_flags & SPECIAL)) B.data["viruses"] += D.Copy() if(O.has_dna()) diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm index 69eacbb69e..8e547eeb12 100644 --- a/code/modules/mob/living/blood.dm +++ b/code/modules/mob/living/blood.dm @@ -137,7 +137,8 @@ if(blood_id == C.get_blood_id())//both mobs have the same blood substance if(blood_id == "blood") //normal blood if(blood_data["viruses"]) - for(var/datum/disease/D in blood_data["viruses"]) + for(var/thing in blood_data["viruses"]) + var/datum/disease/D = thing if((D.spread_flags & SPECIAL) || (D.spread_flags & NON_CONTAGIOUS)) continue C.ForceContractDisease(D) @@ -162,7 +163,8 @@ blood_data["donor"] = src blood_data["viruses"] = list() - for(var/datum/disease/D in viruses) + for(var/thing in viruses) + var/datum/disease/D = thing blood_data["viruses"] += D.Copy() blood_data["blood_DNA"] = copytext(dna.unique_enzymes,1,0) diff --git a/code/modules/mob/living/carbon/alien/death.dm b/code/modules/mob/living/carbon/alien/death.dm index 46facdc454..a31dba9fa9 100644 --- a/code/modules/mob/living/carbon/alien/death.dm +++ b/code/modules/mob/living/carbon/alien/death.dm @@ -1,8 +1,8 @@ /mob/living/carbon/alien/spawn_gibs(with_bodyparts) if(with_bodyparts) - new /obj/effect/gibspawner/xeno(loc,viruses) + new /obj/effect/gibspawner/xeno(get_turf(src)) else - new /obj/effect/gibspawner/xenobodypartless(loc,viruses) + new /obj/effect/gibspawner/xenobodypartless(get_turf(src)) /mob/living/carbon/alien/gib_animation() new /obj/effect/temp_visual/gib_animation(loc, "gibbed-a") diff --git a/code/modules/mob/living/carbon/alien/larva/death.dm b/code/modules/mob/living/carbon/alien/larva/death.dm index 585e5779c6..f49e545dfa 100644 --- a/code/modules/mob/living/carbon/alien/larva/death.dm +++ b/code/modules/mob/living/carbon/alien/larva/death.dm @@ -8,9 +8,9 @@ /mob/living/carbon/alien/larva/spawn_gibs(with_bodyparts) if(with_bodyparts) - new /obj/effect/gibspawner/larva(loc,viruses) + new /obj/effect/gibspawner/larva(get_turf(src)) else - new /obj/effect/gibspawner/larvabodypartless(loc,viruses) + new /obj/effect/gibspawner/larvabodypartless(get_turf(src)) /mob/living/carbon/alien/larva/gib_animation() new /obj/effect/temp_visual/gib_animation(loc, "gibbed-l") diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index a53ba5f5ee..91a178ca36 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -716,8 +716,9 @@ var/obj/item/organ/brain/B = getorgan(/obj/item/organ/brain) if(B) B.damaged_brain = 0 - for(var/datum/disease/D in viruses) - if (D.severity != NONTHREAT) + for(var/thing in viruses) + var/datum/disease/D = thing + if(D.severity != NONTHREAT) D.cure(0) if(admin_revive) regenerate_limbs() diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 2e17b466f1..8bf10c39ba 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -111,11 +111,13 @@ /mob/living/carbon/attack_hand(mob/living/carbon/human/user) - for(var/datum/disease/D in viruses) + for(var/thing in viruses) + var/datum/disease/D = thing if(D.IsSpreadByTouch()) user.ContractDisease(D) - for(var/datum/disease/D in user.viruses) + for(var/thing in user.viruses) + var/datum/disease/D = thing if(D.IsSpreadByTouch()) ContractDisease(D) @@ -128,11 +130,13 @@ /mob/living/carbon/attack_paw(mob/living/carbon/monkey/M) - for(var/datum/disease/D in viruses) + for(var/thing in viruses) + var/datum/disease/D = thing if(D.IsSpreadByTouch()) M.ContractDisease(D) - for(var/datum/disease/D in M.viruses) + for(var/thing in M.viruses) + var/datum/disease/D = thing if(D.IsSpreadByTouch()) ContractDisease(D) @@ -141,7 +145,8 @@ return 0 if(..()) //successful monkey bite. - for(var/datum/disease/D in M.viruses) + for(var/thing in M.viruses) + var/datum/disease/D = thing ForceContractDisease(D) return 1 diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index 4547390f56..a1b67fbee1 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -6,9 +6,9 @@ /mob/living/carbon/human/spawn_gibs(with_bodyparts) if(with_bodyparts) - new /obj/effect/gibspawner/human(loc, viruses, dna) + new /obj/effect/gibspawner/human(get_turf(src), dna) else - new /obj/effect/gibspawner/humanbodypartless(loc, viruses, dna) + new /obj/effect/gibspawner/humanbodypartless(get_turf(src), dna) /mob/living/carbon/human/spawn_dust(just_ash = FALSE) if(just_ash) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 49a645b7c1..74bc902be5 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -131,7 +131,8 @@ //Virsuses if(viruses.len) stat("Viruses:", null) - for(var/datum/disease/D in viruses) + for(var/thing in viruses) + var/datum/disease/D = thing stat("*", "[D.name], Type: [D.spread_text], Stage: [D.stage]/[D.max_stages], Possible Cure: [D.cure_text]") diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 8c20c12b80..72c65ae471 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -224,6 +224,15 @@ /mob/living/carbon/proc/handle_blood() return +/mob/living/carbon/handle_diseases() + for(var/thing in viruses) + var/datum/disease/D = thing + if(prob(D.infectivity)) + D.spread() + + if(stat != DEAD) + D.stage_act() + /mob/living/carbon/proc/handle_changeling() if(mind && hud_used && hud_used.lingchemdisplay) if(mind.changeling) diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm index eb96d09bde..0fd86ed02e 100644 --- a/code/modules/mob/living/death.dm +++ b/code/modules/mob/living/death.dm @@ -18,7 +18,7 @@ return /mob/living/proc/spawn_gibs() - new /obj/effect/gibspawner/generic(loc, viruses) + new /obj/effect/gibspawner/generic(get_turf(src)) /mob/living/proc/spill_organs() return diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index 28a6bb5dd4..66ca8bf8e2 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -18,12 +18,16 @@ return var/datum/gas_mixture/environment = loc.return_air() - if(stat != DEAD) - //Breathing, if applicable - handle_breathing(times_fired) if(stat != DEAD) //Mutations and radiation handle_mutations_and_radiation() + + if(stat != DEAD) + //Breathing, if applicable + handle_breathing(times_fired) + + handle_diseases() // DEAD check is in the proc itself; we want it to spread even if the mob is dead, but to handle its disease-y properties only if you're not. + if(stat != DEAD) //Random events (vomiting etc) handle_random_events() @@ -60,6 +64,9 @@ radiation = 0 //so radiation don't accumulate in simple animals return +/mob/living/proc/handle_diseases() + return + /mob/living/proc/handle_diginvis() if(!digitaldisguise) src.digitaldisguise = image(loc = src) diff --git a/code/modules/mob/living/silicon/death.dm b/code/modules/mob/living/silicon/death.dm index ca93c95f48..7537697d71 100644 --- a/code/modules/mob/living/silicon/death.dm +++ b/code/modules/mob/living/silicon/death.dm @@ -1,5 +1,5 @@ /mob/living/silicon/spawn_gibs() - new /obj/effect/gibspawner/robot(loc,viruses) + new /obj/effect/gibspawner/robot(get_turf(src)) /mob/living/silicon/spawn_dust() new /obj/effect/decal/remains/robot(loc) diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm index a4f8638c4a..0806f457d9 100644 --- a/code/modules/mob/living/silicon/pai/software.dm +++ b/code/modules/mob/living/silicon/pai/software.dm @@ -513,7 +513,8 @@ Structural Integrity: [M.getBruteLoss() > 50 ? "" : ""][M.getBruteLoss()]
Body Temperature: [M.bodytemperature-T0C]°C ([M.bodytemperature*1.8-459.67]°F)
"} - for(var/datum/disease/D in M.viruses) + for(var/thing in M.viruses) + var/datum/disease/D = thing dat += {"



Current Xenobiology Containment Level:Secure RUN

"; - name = "Evacuation Procedure" - }, +/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/research/evacuation, /obj/machinery/camera{ c_tag = "Research Division"; dir = 1; @@ -6241,10 +6205,7 @@ }, /obj/effect/decal/cleanable/blood/splatter, /obj/item/weapon/pen, -/obj/item/weapon/paper/crumpled{ - info = "19 06 2554

I fucking knew it. There was a major breach, that idiotic force field failed and the xenomorphs rushed out and took out the scientists. I've managed to make it to my office and closed the blast doors. I can hear them trying to pry open the doors. Probably don't have long. I have no clue what has happened to the rest of the crew, for all I know they've been killed to produce more of the fucks."; - name = "Hastily Written Note" - }, +/obj/item/weapon/paper/crumpled/awaymissions/moonoutpost19/hastey_note, /obj/effect/turf_decal/stripes/line{ dir = 4 }, @@ -7092,10 +7053,7 @@ /obj/structure/noticeboard{ pixel_y = 32 }, -/obj/item/weapon/paper{ - info = "

I Can't Believe It's Not Pasta: Half off on Wednesdays



Burger night every Friday 6PM-10PM, free drinks with purchase of meal!



Premiering Tonight: The comedy stylings of Shoe Snatching Willy! 11AM-7PM

"; - name = "Specials This Week" - }, +/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/food_specials, /turf/open/floor/plasteel{ burnt = 1; dir = 8; @@ -9039,10 +8997,7 @@ dir = 8; pixel_x = 32 }, -/obj/item/weapon/paper{ - info = "

Welcome to Moon Outpost 19! Property of Nanotrasen Inc.




Staff Roster:
-Dr. Gerald Rosswell: Research Director & Acting Captain
-Dr. Sakuma Sano: Xenobiologist
-Dr. Mark Douglas: Xenobiologist
-Kenneth Cunningham: Security Officer-Ivan Volodin: Engineer
-Mathias Kuester: Bartender
-Sven Edling: Chef
-Steve: Assistant

Please enjoy your stay, and report any abnormalities to an officer."; - name = "Welcome Notice" - }, +/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/welcome, /obj/machinery/camera{ c_tag = "Arrivals South"; dir = 8; @@ -9686,10 +9641,7 @@ }) "nI" = ( /obj/structure/dresser, -/obj/item/weapon/paper{ - info = "Bugs break out. I run to here and lock door. I hear door next to me break open and screams. All nice people here dead now. I no want to be eaten, and bottle always said to be coward way out, but person who say that is stupid. Mira, there is no escape for me, tell Alexis and Elena that father will never come home, and that I love you all."; - name = "Note" - }, +/obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/goodbye_note, /turf/open/floor/carpet{ heat_capacity = 1e+006 }, diff --git a/_maps/RandomZLevels/research.dmm b/_maps/RandomZLevels/research.dmm index 7d313a0915..1702e83e3a 100644 --- a/_maps/RandomZLevels/research.dmm +++ b/_maps/RandomZLevels/research.dmm @@ -896,8 +896,8 @@ icon_state = "1-8" }, /obj/structure/table, -/obj/item/weapon/paper/pamphlet, -/obj/item/weapon/paper/pamphlet, +/obj/item/weapon/paper/pamphlet/gateway, +/obj/item/weapon/paper/pamphlet/gateway, /turf/open/floor/plasteel/black, /area/awaymission/research/interior/gateway) "cG" = ( @@ -1691,9 +1691,7 @@ /turf/open/floor/plasteel/black, /area/awaymission/research/interior/secure) "eU" = ( -/obj/item/weapon/paper/crumpled{ - info = "Theres a lot of sensitive info on these disks, try and keep them secure! If these backup copies get into the wrong hands, god knows what they could do with the genetic research on these disk.." - }, +/obj/item/weapon/paper/crumpled/awaymissions/research/sensitive_info, /turf/open/floor/plasteel/black, /area/awaymission/research/interior/secure) "eV" = ( diff --git a/_maps/RandomZLevels/snowdin.dmm b/_maps/RandomZLevels/snowdin.dmm index b390094018..2391a827cb 100644 --- a/_maps/RandomZLevels/snowdin.dmm +++ b/_maps/RandomZLevels/snowdin.dmm @@ -95,7 +95,7 @@ "aq" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/westright, -/obj/item/weapon/paper/crumpled/snowdin/keys, +/obj/item/weapon/paper/crumpled/ruins/snowdin/keys, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/snow; wet = 0 @@ -123,7 +123,7 @@ /area/awaymission/snowdin/base) "at" = ( /obj/structure/filingcabinet, -/obj/item/weapon/paper/snowdin/secnotice, +/obj/item/weapon/paper/fluff/awaymissions/snowdin/secnotice, /turf/open/floor/plasteel/darkred{ baseturf = /turf/open/floor/plating/asteroid/snow }, @@ -547,7 +547,7 @@ "bt" = ( /obj/structure/table, /obj/item/weapon/shovel, -/obj/item/weapon/paper/crumpled/snowdin/shovel, +/obj/item/weapon/paper/crumpled/ruins/snowdin/shovel, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/snow }, @@ -982,7 +982,7 @@ /area/awaymission/snowdin/base) "cv" = ( /obj/structure/table/wood, -/obj/item/weapon/paper/crumpled/snowdin/snowdingatewaynotice, +/obj/item/weapon/paper/crumpled/ruins/snowdin/snowdingatewaynotice, /turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/snow }, @@ -1067,7 +1067,7 @@ dir = 8 }, /obj/structure/filingcabinet, -/obj/item/weapon/paper/snowdin/snowdinlog, +/obj/item/weapon/paper/fluff/awaymissions/snowdin/log, /turf/open/floor/plasteel/darkbrown{ baseturf = /turf/open/floor/plating/asteroid/snow }, @@ -1311,7 +1311,7 @@ }, /area/awaymission/snowdin/post) "dt" = ( -/obj/item/weapon/paper/crumpled/snowdin/lootstructures, +/obj/item/weapon/paper/crumpled/ruins/snowdin/lootstructures, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/snow; icon = 'icons/turf/snow.dmi'; @@ -1555,7 +1555,7 @@ /area/awaymission/snowdin/post) "dZ" = ( /obj/structure/table, -/obj/item/weapon/paper/crumpled/snowdin/syndielava, +/obj/item/weapon/paper/crumpled/ruins/snowdin/syndielava, /obj/machinery/light/small{ active_power_usage = 0; dir = 4; @@ -2721,7 +2721,7 @@ /area/awaymission/snowdin/post) "hn" = ( /obj/structure/filingcabinet, -/obj/item/weapon/paper/snowdin/secnotice, +/obj/item/weapon/paper/fluff/awaymissions/snowdin/secnotice, /turf/open/floor/plasteel/darkred{ baseturf = /turf/open/floor/plating/asteroid/snow }, @@ -3670,7 +3670,7 @@ /area/awaymission/snowdin) "jV" = ( /obj/structure/table, -/obj/item/weapon/paper/crumpled/snowdin/misc1, +/obj/item/weapon/paper/crumpled/ruins/snowdin/misc1, /turf/open/floor/mineral/plastitanium/brig{ baseturf = /turf/open/floor/plating/asteroid/snow }, @@ -3893,10 +3893,7 @@ dir = 4 }, /obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka, -/obj/item/weapon/paper{ - info = "YOU SEEN IVAN, WHEN YOU HOLD SAAW LIKE PEESTOL, YOU STRONGER THAN RECOIL FOR FEAR OF HITTING FACE!"; - name = "SAW Usage" - }, +/obj/item/weapon/paper/fluff/awaymissions/snowdin/saw_usage, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/snow }, @@ -3950,7 +3947,7 @@ /area/awaymission/snowdin/sekret) "kE" = ( /obj/structure/table/wood, -/obj/item/weapon/paper/snowdin/syndienotice, +/obj/item/weapon/paper/fluff/awaymissions/snowdin/syndienotice, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/asteroid/snow }, @@ -4970,7 +4967,7 @@ /area/awaymission/snowdin) "nc" = ( /obj/structure/table, -/obj/item/weapon/paper/crumpled/snowdin/shovel, +/obj/item/weapon/paper/crumpled/ruins/snowdin/shovel, /turf/open/floor/plasteel/darkbrown{ baseturf = /turf/open/floor/plating/asteroid/snow }, @@ -5175,7 +5172,7 @@ dir = 8 }, /obj/structure/filingcabinet, -/obj/item/weapon/paper/snowdin/snowdinlog2, +/obj/item/weapon/paper/fluff/awaymissions/snowdin/log2, /turf/open/floor/plasteel/darkbrown{ baseturf = /turf/open/floor/plating/asteroid/snow }, diff --git a/_maps/RandomZLevels/undergroundoutpost45.dmm b/_maps/RandomZLevels/undergroundoutpost45.dmm index fb82bb398a..02ab07915f 100644 --- a/_maps/RandomZLevels/undergroundoutpost45.dmm +++ b/_maps/RandomZLevels/undergroundoutpost45.dmm @@ -2824,7 +2824,7 @@ "eE" = ( /obj/structure/table, /obj/item/weapon/book/manual/hydroponics_pod_people, -/obj/item/weapon/paper/hydroponics, +/obj/item/weapon/paper/guides/jobs/hydroponics, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/vault{ dir = 1; @@ -5557,7 +5557,7 @@ dir = 4 }, /obj/structure/table, -/obj/item/weapon/paper/pamphlet, +/obj/item/weapon/paper/pamphlet/gateway, /turf/open/floor/plasteel/floorgrime{ dir = 8; heat_capacity = 1e+006 diff --git a/_maps/RandomZLevels/wildwest.dmm b/_maps/RandomZLevels/wildwest.dmm index 386f79ab87..243f74b6d2 100644 --- a/_maps/RandomZLevels/wildwest.dmm +++ b/_maps/RandomZLevels/wildwest.dmm @@ -171,7 +171,7 @@ /turf/open/floor/engine/cult, /area/awaymission/wwvault) "aL" = ( -/obj/item/weapon/paper{ +/obj/item/weapon/paper/fluff/awaymissions/wildwest/grinder{ info = "meat grinder requires sacri" }, /turf/open/floor/plasteel/cult{ @@ -607,10 +607,7 @@ /area/awaymission/wwgov) "cg" = ( /obj/structure/table/wood, -/obj/item/weapon/paper{ - info = " The miners in the town have become sick and almost all production has stopped. They, in a fit of delusion, tossed all of their mining equipment into the furnaces. They all claimed the same thing. A voice beckoning them to lay down their arms. Stupid miners."; - name = "Planer Saul's Journal: Page 4" - }, +/obj/item/weapon/paper/fluff/awaymissions/wildwest/journal/page4, /turf/open/floor/plasteel/cafeteria{ dir = 5 }, @@ -830,10 +827,7 @@ /turf/open/floor/plating, /area/awaymission/wwrefine) "cU" = ( -/obj/item/weapon/paper{ - info = "We've discovered something floating in space. We can't really tell how old it is, but it is scraped and bent to hell. There object is the size of about a room with double doors that we have yet to break into. It is a lot sturdier than we could have imagined. We have decided to call it 'The Vault' "; - name = "Planer Saul's Journal: Page 1" - }, +/obj/item/weapon/paper/fluff/awaymissions/wildwest/journal/page1, /turf/open/floor/carpet, /area/awaymission/wwgov) "cV" = ( @@ -1884,10 +1878,7 @@ /turf/open/floor/wood, /area/awaymission/wwmines) "fZ" = ( -/obj/item/weapon/paper{ - info = "The Vault...it just keeps growing and growing. I went on my daily walk through the garden and now its just right outside the mansion... a few days ago it was only barely visible. But whatever is inside...its calling to me."; - name = "Planer Sauls' Journal: Page 7" - }, +/obj/item/weapon/paper/fluff/awaymissions/wildwest/journal/page7, /turf/open/floor/wood, /area/awaymission/wwmines) "ga" = ( @@ -2192,10 +2183,7 @@ /turf/open/floor/mineral/titanium/yellow, /area/awaymission/wwrefine) "gY" = ( -/obj/item/weapon/paper{ - info = "The syndicate have invaded. Their ships appeared out of nowhere and now they likely intend to kill us all and take everything. On the off-chance that the Vault may grant us sanctuary, many of us have decided to force our way inside and bolt the door, taking as many provisions with us as we can carry. In case you find this, send for help immediately and open the Vault. Find us inside."; - name = "Planer Saul's Journal: Page 8" - }, +/obj/item/weapon/paper/fluff/awaymissions/wildwest/journal/page8, /turf/open/floor/plating/ironsand{ icon_state = "ironsand1" }, diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index 26feb0fa1b..fa2c78e010 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -7240,10 +7240,7 @@ /turf/open/space, /area/space/nearstation) "apR" = ( -/obj/item/weapon/paper{ - info = "01001001 00100000 01101000 01101111 01110000 01100101 00100000 01111001 01101111 01110101 00100000 01110011 01110100 01100001 01111001 00100000 01110011 01100001 01100110 01100101 00101110 00100000 01001100 01101111 01110110 01100101 00101100 00100000 01101101 01101111 01101101 00101110"; - name = "Note from Beepsky's Mom" - }, +/obj/item/weapon/paper/fluff/jobs/security/beepsky_mom, /turf/open/floor/plating, /area/security/processing) "apS" = ( @@ -10002,11 +9999,7 @@ /area/crew_quarters/fitness) "awC" = ( /obj/structure/table, -/obj/item/weapon/paper{ - desc = ""; - info = "Brusies sustained in the holodeck can be healed simply by sleeping."; - name = "Holodeck Disclaimer" - }, +/obj/item/weapon/paper/fluff/holodeck/disclaimer, /turf/open/floor/plasteel, /area/crew_quarters/fitness) "awD" = ( @@ -13672,7 +13665,7 @@ /area/ai_monitored/nuke_storage) "aEQ" = ( /obj/structure/table, -/obj/item/weapon/paper/pamphlet, +/obj/item/weapon/paper/pamphlet/gateway, /turf/open/floor/plasteel, /area/gateway) "aER" = ( @@ -15921,7 +15914,7 @@ "aJN" = ( /obj/structure/table, /obj/item/weapon/book/manual/hydroponics_pod_people, -/obj/item/weapon/paper/hydroponics, +/obj/item/weapon/paper/guides/jobs/hydroponics, /turf/open/floor/plasteel/hydrofloor, /area/hydroponics) "aJO" = ( @@ -27793,7 +27786,7 @@ /area/quartermaster/office) "bmR" = ( /obj/structure/table, -/obj/item/weapon/paper/morguereminder{ +/obj/item/weapon/paper/guides/jobs/medical/morgue{ pixel_x = 5; pixel_y = 4 }, @@ -29518,7 +29511,7 @@ pixel_y = 1 }, /obj/structure/table, -/obj/item/weapon/paper/gravity_gen{ +/obj/item/weapon/paper/guides/jobs/engi/gravity_gen{ layer = 3 }, /obj/item/weapon/pen/blue, @@ -44598,7 +44591,7 @@ /obj/machinery/recharger{ pixel_y = 4 }, -/obj/item/weapon/paper/range, +/obj/item/weapon/paper/guides/jobs/security/range, /obj/effect/turf_decal/stripes/line{ dir = 6 }, @@ -50694,7 +50687,7 @@ /obj/item/solar_assembly, /obj/item/weapon/circuitboard/computer/solar_control, /obj/item/weapon/electronics/tracker, -/obj/item/weapon/paper/solar, +/obj/item/weapon/paper/guides/jobs/engi/solars, /obj/effect/turf_decal/bot{ dir = 1 }, @@ -50734,7 +50727,7 @@ /obj/item/solar_assembly, /obj/item/weapon/circuitboard/computer/solar_control, /obj/item/weapon/electronics/tracker, -/obj/item/weapon/paper/solar, +/obj/item/weapon/paper/guides/jobs/engi/solars, /turf/open/floor/plasteel, /area/engine/engineering) "ckK" = ( diff --git a/_maps/map_files/Cerestation/cerestation.dmm b/_maps/map_files/Cerestation/cerestation.dmm index a679b2a111..e7d08fb1ed 100644 --- a/_maps/map_files/Cerestation/cerestation.dmm +++ b/_maps/map_files/Cerestation/cerestation.dmm @@ -19595,10 +19595,7 @@ dir = 8; pixel_x = 32 }, -/obj/item/weapon/paper{ - info = "
Dummies Guide To Quantum Pads


Do you hate the concept of having to use your legs, let alone walk to places? Well, with the Quantum Pad (tm), never again will the fear of cardio keep you from going places!

How to set up your Quantum Pad(tm)


1.Unscrew the Quantum Pad(tm) you wish to link.
2. Use your multi-tool to cache the buffer of the Quantum Pad(tm) you wish to link.
3. Apply the multi-tool to the secondary Quantum Pad(tm) you wish to link to the first Quantum Pad(tm)

If you followed these instructions carefully, your Quantum Pad(tm) should now be properly linked together for near-instant movement across the station! Bear in mind that this is technically a one-way teleport, so you'll need to do the same process with the secondary pad to the first one if you wish to travel between both.
"; - name = "Quantum Pad For Dummies" - }, +/obj/item/weapon/paper/guides/quantumpad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -23414,10 +23411,7 @@ dir = 8; pixel_x = 27 }, -/obj/item/weapon/paper{ - info = "
Dummies Guide To Quantum Pads


Do you hate the concept of having to use your legs, let alone walk to places? Well, with the Quantum Pad (tm), never again will the fear of cardio keep you from going places!

How to set up your Quantum Pad(tm)


1.Unscrew the Quantum Pad(tm) you wish to link.
2. Use your multi-tool to cache the buffer of the Quantum Pad(tm) you wish to link.
3. Apply the multi-tool to the secondary Quantum Pad(tm) you wish to link to the first Quantum Pad(tm)

If you followed these instructions carefully, your Quantum Pad(tm) should now be properly linked together for near-instant movement across the station! Bear in mind that this is technically a one-way teleport, so you'll need to do the same process with the secondary pad to the first one if you wish to travel between both.
"; - name = "Quantum Pad For Dummies" - }, +/obj/item/weapon/paper/guides/quantumpad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/vault{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -23554,10 +23548,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/weapon/paper{ - info = "You got a big job ahead of you, pal. This is a big station, lots of floors and assholes to dirty said floors without any thought for you. It might not be a bad idea to check on the external waste belts every now and again to make sure some foriegn object hasn't clogged the disposal loop, either."; - name = "Janitor Notice" - }, +/obj/item/weapon/paper/fluff/stations/cere/janitor, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -38752,10 +38743,7 @@ }, /area/awaymission/research/interior/gateway) "bur" = ( -/obj/item/weapon/paper{ - info = "
Nanotrasen Exploration and Colonization Program


Due to recent shutdowns of the Exploration and Colonization department shortly after this gateway was delivered on-site during station construction, this room has been condemmed and an engineering team will be on-site within the next few months to recollect the gate. Thank you for your cooperation."; - name = "NOTICE - GATEWAY STATUS" - }, +/obj/item/weapon/paper/fluff/stations/cere/gateway, /obj/effect/turf_decal/stripes/asteroid/line{ icon_state = "ast_warn"; dir = 8 @@ -40335,7 +40323,7 @@ d2 = 8; icon_state = "1-8" }, -/obj/item/weapon/paper/pamphlet, +/obj/item/weapon/paper/pamphlet/gateway, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -40908,7 +40896,7 @@ /area/awaymission/research/interior/gateway) "byg" = ( /obj/structure/table, -/obj/item/weapon/paper/pamphlet, +/obj/item/weapon/paper/pamphlet/gateway, /obj/item/weapon/coin/silver, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -44035,7 +44023,7 @@ "bDQ" = ( /obj/structure/table, /obj/item/weapon/book/manual/hydroponics_pod_people, -/obj/item/weapon/paper/hydroponics, +/obj/item/weapon/paper/guides/jobs/hydroponics, /obj/item/stack/packageWrap, /obj/item/device/destTagger, /turf/open/floor/plasteel/hydrofloor{ @@ -54826,11 +54814,7 @@ }) "bYp" = ( /obj/structure/table, -/obj/item/weapon/paper{ - desc = ""; - info = "Bruises sustained in the holodeck can be healed simply by sleeping."; - name = "Holodeck Disclaimer" - }, +/obj/item/weapon/paper/fluff/holodeck/disclaimer, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -57418,7 +57402,7 @@ /obj/item/solar_assembly, /obj/item/solar_assembly, /obj/item/weapon/electronics/tracker, -/obj/item/weapon/paper/solar, +/obj/item/weapon/paper/guides/jobs/engi/solars, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -58731,10 +58715,7 @@ "cgi" = ( /obj/structure/table, /obj/item/clothing/glasses/meson, -/obj/item/weapon/paper{ - info = "This station needs cleared out within the next few weeks, as construction is almost complete and NT expects most of the equipment off-site before then. Throw most of the shit in here for now and we'll come back later with a pod to haul the heavier stuff. Shouldn't be too big of an issue."; - name = "Disclaimer Notice" - }, +/obj/item/weapon/paper/fluff/stations/cere/abandoned_dock, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -61247,10 +61228,7 @@ dir = 4; pixel_x = -32 }, -/obj/item/weapon/paper{ - info = "
Dummies Guide To Quantum Pads


Do you hate the concept of having to use your legs, let alone walk to places? Well, with the Quantum Pad (tm), never again will the fear of cardio keep you from going places!

How to set up your Quantum Pad(tm)


1.Unscrew the Quantum Pad(tm) you wish to link.
2. Use your multi-tool to cache the buffer of the Quantum Pad(tm) you wish to link.
3. Apply the multi-tool to the secondary Quantum Pad(tm) you wish to link to the first Quantum Pad(tm)

If you followed these instructions carefully, your Quantum Pad(tm) should now be properly linked together for near-instant movement across the station! Bear in mind that this is technically a one-way teleport, so you'll need to do the same process with the secondary pad to the first one if you wish to travel between both.
"; - name = "Quantum Pad For Dummies" - }, +/obj/item/weapon/paper/guides/quantumpad, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -61316,10 +61294,7 @@ dir = 8; pixel_x = 32 }, -/obj/item/weapon/paper{ - info = "
Dummies Guide To Quantum Pads


Do you hate the concept of having to use your legs, let alone walk to places? Well, with the Quantum Pad (tm), never again will the fear of cardio keep you from going places!

How to set up your Quantum Pad(tm)


1.Unscrew the Quantum Pad(tm) you wish to link.
2. Use your multi-tool to cache the buffer of the Quantum Pad(tm) you wish to link.
3. Apply the multi-tool to the secondary Quantum Pad(tm) you wish to link to the first Quantum Pad(tm)

If you followed these instructions carefully, your Quantum Pad(tm) should now be properly linked together for near-instant movement across the station! Bear in mind that this is technically a one-way teleport, so you'll need to do the same process with the secondary pad to the first one if you wish to travel between both.
"; - name = "Quantum Pad For Dummies" - }, +/obj/item/weapon/paper/guides/quantumpad, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -79710,15 +79685,9 @@ pixel_x = 32 }, /obj/structure/closet/crate/bin, -/obj/item/weapon/paper/crumpled{ - info = "...SOMETHING IN THE ROCKS, IT WATCHES US ALL..." - }, -/obj/item/weapon/paper/crumpled{ - info = "...THEY SENT US HERE FOR A REASON...TERRIBLE..." - }, -/obj/item/weapon/paper/crumpled{ - info = "...EMPTY HALLS...USELESS SPACE..." - }, +/obj/item/weapon/paper/crumpled/stations/cere/rocks1, +/obj/item/weapon/paper/crumpled/stations/cere/rocks2, +/obj/item/weapon/paper/crumpled/stations/cere/rocks3, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -79732,17 +79701,9 @@ }) "cTH" = ( /obj/structure/filingcabinet/chestdrawer, -/obj/item/weapon/paper/crumpled{ - info = "I can't be here for much longer, this station is too empty for its own good. Something is wrong..." - }, -/obj/item/weapon/paper{ - info = "
2XXX - 2nd Trimestor


I hide in here, away from the masses, not like it matters much considering how fucking huge this place is. "; - name = "Journal Log" - }, -/obj/item/weapon/paper{ - info = "
2XXX - 3rd Trimestor


I hear strange whispers from the halls, longing for blood. Something isn't right here. Why did they transfer us here to work in the first place? "; - name = "Journal Log 2" - }, +/obj/item/weapon/paper/crumpled/stations/cere/empty_station, +/obj/item/weapon/paper/fluff/stations/cere/journal/journal, +/obj/item/weapon/paper/fluff/stations/cere/journal/journal_2, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -79750,9 +79711,7 @@ valid_territory = 0 }) "cTI" = ( -/obj/item/weapon/paper/crumpled/bloody{ - info = "...THE HOPLINE CALLS...IT THIRSTS FOR BLOOD...I MUST GO..." - }, +/obj/item/weapon/paper/crumpled/bloody/hop, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 574dcbb095..96c7f5a8ab 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -65684,9 +65684,9 @@ icon_state = "4-8" }, /obj/item/weapon/clipboard, -/obj/item/weapon/paper/pamphlet, -/obj/item/weapon/paper/pamphlet, -/obj/item/weapon/paper/pamphlet, +/obj/item/weapon/paper/pamphlet/gateway, +/obj/item/weapon/paper/pamphlet/gateway, +/obj/item/weapon/paper/pamphlet/gateway, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -72299,11 +72299,7 @@ /obj/structure/table/reinforced, /obj/item/weapon/clipboard, /obj/item/weapon/folder, -/obj/item/weapon/paper{ - desc = ""; - info = "Brusies sustained in the holodeck can be healed simply by sleeping."; - name = "Holodeck Disclaimer" - }, +/obj/item/weapon/paper/fluff/holodeck/disclaimer, /turf/open/floor/plasteel/neutral/side{ dir = 4 }, diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index a7db1e0909..4c863df3c9 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -522,7 +522,7 @@ "abk" = ( /obj/structure/table, /obj/item/weapon/folder, -/obj/item/weapon/paper/hydroponics, +/obj/item/weapon/paper/guides/jobs/hydroponics, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; @@ -5130,11 +5130,7 @@ /area/crew_quarters/fitness/recreation) "ajX" = ( /obj/structure/table, -/obj/item/weapon/paper{ - desc = ""; - info = "Brusies sustained in the holodeck can be healed simply by sleeping."; - name = "Holodeck Disclaimer" - }, +/obj/item/weapon/paper/fluff/holodeck/disclaimer, /obj/item/weapon/storage/firstaid/regular{ pixel_x = 3; pixel_y = -3 @@ -9493,11 +9489,7 @@ /obj/item/weapon/razor{ pixel_x = -6 }, -/obj/item/weapon/paper{ - desc = ""; - info = "Labor Camp Facility Operation Guide

Hello there, proud operator of an NT-Sec Prisoner Rehabilitation Center. A solution to rising crime rates and falling productivity, these facilities are specifically designed for the safe, productive imprisonment of your most dangerous criminals.

To press a long-term prisoner into the service of the station, replace his equipment with prisoners' garb at one of the prison lockers, as per normal operating procedure. Before assigning a prisoner his ID, insert the ID into a prisoner management console and assign the prisoner a quota, based on the severity of his crime.
A single sheet of most materials produces five points for the prisoner, and points can be expected to be produced at a rate of about 100 per minute, though punishments as severe as forced labor should be reserved for serious crimes of sentences not less than five minutes long.
Once you have prepared the prisoner, place him in the secure northern half of the labor shuttle, and send him to the station. Once he meets his quota by feeding sheets to the stacker, he will be allowed to return to the station, and will be able to open the secure door to the prisoner release area.

In the case of dangerous prisoners, surveilance may be needed. To that end, there is a prisoner monitoring room on the mining station, equipped with a remote flasher and a lockdown button. The mine itself is patrolled by a securibot, so the nearby security records console can also be used to secure hostile prisoners on the mine."; - name = "Labor Camp Operating Guide" - }, +/obj/item/weapon/paper/guides/jobs/security/labor_camp, /obj/item/weapon/pen, /turf/open/floor/plasteel/black, /area/security/brig) @@ -10079,7 +10071,7 @@ icon_state = "1-8" }, /obj/structure/table, -/obj/item/weapon/paper/gravity_gen{ +/obj/item/weapon/paper/guides/jobs/engi/gravity_gen{ layer = 3 }, /obj/item/weapon/pen/blue, @@ -17557,7 +17549,7 @@ /obj/item/solar_assembly, /obj/item/weapon/circuitboard/computer/solar_control, /obj/item/weapon/electronics/tracker, -/obj/item/weapon/paper/solar, +/obj/item/weapon/paper/guides/jobs/engi/solars, /obj/effect/turf_decal/bot{ dir = 1 }, @@ -23052,7 +23044,7 @@ /obj/structure/extinguisher_cabinet{ pixel_x = -27 }, -/obj/item/weapon/paper/hydroponics, +/obj/item/weapon/paper/guides/jobs/hydroponics, /obj/item/weapon/coin/silver, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -36470,10 +36462,7 @@ /obj/machinery/light/small{ dir = 8 }, -/obj/item/weapon/paper{ - info = "Congratulations,

Your station has been selected to carry out the Gateway Project.

The equipment will be shipped to you at the start of the next quarter.
You are to prepare a secure location to house the equipment as outlined in the attached documents.

--Nanotrasen Blue Space Research"; - name = "Confidential Correspondence, Pg 1" - }, +/obj/item/weapon/paper/fluff/gateway, /obj/item/weapon/coin/plasma, /obj/item/weapon/melee/chainofcommand, /turf/open/floor/wood, @@ -47189,7 +47178,7 @@ /area/gateway) "bLB" = ( /obj/structure/table, -/obj/item/weapon/paper/pamphlet, +/obj/item/weapon/paper/pamphlet/gateway, /obj/effect/turf_decal/bot{ dir = 1 }, @@ -53746,7 +53735,7 @@ network = list("SS13") }, /obj/item/weapon/book/manual/hydroponics_pod_people, -/obj/item/weapon/paper/hydroponics, +/obj/item/weapon/paper/guides/jobs/hydroponics, /obj/machinery/requests_console{ department = "Hydroponics"; departmentType = 2; @@ -54884,7 +54873,7 @@ /area/science/research) "cau" = ( /obj/structure/table, -/obj/item/weapon/paper/pamphlet, +/obj/item/weapon/paper/pamphlet/gateway, /turf/open/floor/plasteel/whitepurple/side{ dir = 1 }, @@ -56007,7 +55996,7 @@ /obj/structure/table, /obj/item/weapon/book/manual/hydroponics_pod_people, /obj/machinery/light, -/obj/item/weapon/paper/hydroponics, +/obj/item/weapon/paper/guides/jobs/hydroponics, /obj/machinery/camera{ c_tag = "Hydroponics - Foyer"; dir = 1; @@ -68090,7 +68079,7 @@ pixel_x = 4; pixel_y = -3 }, -/obj/item/weapon/paper/range{ +/obj/item/weapon/paper/guides/jobs/security/range{ pixel_x = 2; pixel_y = 2 }, @@ -69620,7 +69609,7 @@ pixel_x = 6; pixel_y = 4 }, -/obj/item/weapon/paper/morguereminder{ +/obj/item/weapon/paper/guides/jobs/medical/morgue{ pixel_x = -4 }, /obj/effect/landmark/revenantspawn, diff --git a/_maps/map_files/Mining/Lavaland.dmm b/_maps/map_files/Mining/Lavaland.dmm index 432d5ae341..4c00524717 100644 --- a/_maps/map_files/Mining/Lavaland.dmm +++ b/_maps/map_files/Mining/Lavaland.dmm @@ -1099,11 +1099,7 @@ pixel_y = 30 }, /obj/structure/table, -/obj/item/weapon/paper{ - anchored = 0; - info = "A hastily written note has been scribbled here...

Please use the ore redemption machine in the cargo office for smelting. PLEASE!

--The Research Staff"; - name = "URGENT!" - }, +/obj/item/weapon/paper/fluff/stations/lavaland/orm_notice, /turf/open/floor/plasteel, /area/mine/production) "de" = ( diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm index 8a7311fb5a..d0952a4385 100644 --- a/_maps/map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/map_files/OmegaStation/OmegaStation.dmm @@ -23651,7 +23651,7 @@ }, /obj/item/weapon/book/manual/hydroponics_pod_people, /obj/item/weapon/storage/box/syringes, -/obj/item/weapon/paper/hydroponics, +/obj/item/weapon/paper/guides/jobs/hydroponics, /obj/item/toy/figure/botanist, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/bot, diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 9d5192484f..be4b4d2c66 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -2154,9 +2154,7 @@ /area/security/prison) "aff" = ( /obj/structure/table, -/obj/item/weapon/paper{ - layer = 2.9 - }, +/obj/item/weapon/paper, /obj/item/weapon/pen, /turf/open/floor/plasteel/floorgrime, /area/security/prison) @@ -5673,11 +5671,7 @@ /obj/item/weapon/razor{ pixel_x = -6 }, -/obj/item/weapon/paper{ - desc = ""; - info = "Labor Camp Facility Operation Guide

Hello there, proud operator of an NT-Sec Prisoner Rehabilitation Center. A solution to rising crime rates and falling productivity, these facilities are specifically designed for the safe, productive imprisonment of your most dangerous criminals.

To press a long-term prisoner into the service of the station, replace his equipment with prisoners' garb at one of the prison lockers, as per normal operating procedure. Before assigning a prisoner his ID, insert the ID into a prisoner management console and assign the prisoner a quota, based on the severity of his crime.
A single sheet of most materials produces five points for the prisoner, and points can be expected to be produced at a rate of about 100 per minute, though punishments as severe as forced labor should be reserved for serious crimes of sentences not less than five minutes long.
Once you have prepared the prisoner, place him in the secure northern half of the labor shuttle, and send him to the station. Once he meets his quota by feeding sheets to the stacker, he will be allowed to return to the station, and will be able to open the secure door to the prisoner release area.

In the case of dangerous prisoners, surveilance may be needed. To that end, there is a prisoner monitoring room on the mining station, equipped with a remote flasher and a lockdown button. The mine itself is patrolled by a securibot, so the nearby security records console can also be used to secure hostile prisoners on the mine."; - name = "Labor Camp Operating Guide" - }, +/obj/item/weapon/paper/guides/jobs/security/labor_camp, /obj/item/weapon/pen, /turf/open/floor/plasteel/black, /area/security/brig) @@ -10101,11 +10095,7 @@ /area/crew_quarters/fitness/recreation) "awd" = ( /obj/structure/table, -/obj/item/weapon/paper{ - desc = ""; - info = "Brusies sustained in the holodeck can be healed simply by sleeping."; - name = "Holodeck Disclaimer" - }, +/obj/item/weapon/paper/fluff/holodeck/disclaimer, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "awe" = ( @@ -10305,10 +10295,7 @@ /obj/item/weapon/stock_parts/cell/potato{ name = "\improper Beepsky's emergency battery" }, -/obj/item/weapon/paper{ - info = "01001001 00100000 01101000 01101111 01110000 01100101 00100000 01111001 01101111 01110101 00100000 01110011 01110100 01100001 01111001 00100000 01110011 01100001 01100110 01100101 00101110 00100000 01001100 01101111 01110110 01100101 00101100 00100000 01101101 01101111 01101101 00101110"; - name = "Note from Beepsky's Mom" - }, +/obj/item/weapon/paper/fluff/jobs/security/beepsky_mom, /turf/open/floor/plating, /area/maintenance/department/security/brig) "awy" = ( @@ -18272,7 +18259,7 @@ "aNO" = ( /obj/structure/table, /obj/item/weapon/book/manual/hydroponics_pod_people, -/obj/item/weapon/paper/hydroponics, +/obj/item/weapon/paper/guides/jobs/hydroponics, /obj/item/weapon/reagent_containers/dropper, /obj/item/weapon/reagent_containers/glass/bottle/mutagen, /obj/item/weapon/reagent_containers/dropper, @@ -40231,7 +40218,7 @@ pixel_y = 1 }, /obj/structure/table, -/obj/item/weapon/paper/gravity_gen{ +/obj/item/weapon/paper/guides/jobs/engi/gravity_gen{ layer = 3 }, /obj/item/weapon/pen/blue, @@ -40355,7 +40342,7 @@ /obj/item/solar_assembly, /obj/item/weapon/circuitboard/computer/solar_control, /obj/item/weapon/electronics/tracker, -/obj/item/weapon/paper/solar, +/obj/item/weapon/paper/guides/jobs/engi/solars, /obj/machinery/power/apc{ dir = 2; name = "Tech Storage APC"; diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm.rej b/_maps/map_files/PubbyStation/PubbyStation.dmm.rej index 80fa973d0a..e4945f57e3 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm.rej +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm.rej @@ -210,4 +210,4 @@ diff a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStat + network = list("Telecomms") }, /turf/open/space, - /area/space) + /area/space) \ No newline at end of file diff --git a/_maps/map_files/generic/Centcomm.dmm b/_maps/map_files/generic/Centcomm.dmm index 8e3d678469..fe6fcad6e2 100644 --- a/_maps/map_files/generic/Centcomm.dmm +++ b/_maps/map_files/generic/Centcomm.dmm @@ -1397,7 +1397,7 @@ icon = 'icons/obj/machines/particle_accelerator.dmi'; icon_state = "control_boxp"; name = "Kobayashi Maru control computer"; - prizes = list(/obj/item/weapon/paper/trek_diploma = 1); + prizes = list(/obj/item/weapon/paper/fluff/holodeck/trek_diploma = 1); settlers = list("Kirk","Worf","Gene") }, /turf/open/floor/holofloor/plating, @@ -1423,7 +1423,7 @@ icon = 'icons/obj/machines/particle_accelerator.dmi'; icon_state = "control_boxp"; name = "Kobayashi Maru control computer"; - prizes = list(/obj/item/weapon/paper/trek_diploma = 1); + prizes = list(/obj/item/weapon/paper/fluff/holodeck/trek_diploma = 1); settlers = list("Kirk","Worf","Gene") }, /turf/open/floor/holofloor/plating, @@ -1438,7 +1438,7 @@ icon = 'icons/obj/machines/particle_accelerator.dmi'; icon_state = "control_boxp"; name = "Kobayashi Maru control computer"; - prizes = list(/obj/item/weapon/paper/trek_diploma = 1); + prizes = list(/obj/item/weapon/paper/fluff/holodeck/trek_diploma = 1); settlers = list("Kirk","Worf","Gene") }, /turf/open/floor/holofloor/plating, @@ -1918,7 +1918,7 @@ }, /area/holodeck/rec_center/firingrange) "ft" = ( -/obj/item/weapon/paper/range, +/obj/item/weapon/paper/guides/jobs/security/range, /turf/open/floor/holofloor, /area/holodeck/rec_center/firingrange) "fu" = ( @@ -4669,9 +4669,9 @@ }, /area/centcom/control) "mQ" = ( -/obj/item/weapon/paper/pamphlet/ccaInfo, -/obj/item/weapon/paper/pamphlet/ccaInfo, -/obj/item/weapon/paper/pamphlet/ccaInfo, +/obj/item/weapon/paper/pamphlet/centcom/visitor_info, +/obj/item/weapon/paper/pamphlet/centcom/visitor_info, +/obj/item/weapon/paper/pamphlet/centcom/visitor_info, /obj/structure/table/wood, /turf/open/floor/plasteel/vault{ dir = 8 @@ -4946,9 +4946,9 @@ /area/centcom/control) "ny" = ( /obj/structure/table, -/obj/item/weapon/paper/pamphlet/ccaInfo, -/obj/item/weapon/paper/pamphlet/ccaInfo, -/obj/item/weapon/paper/pamphlet/ccaInfo, +/obj/item/weapon/paper/pamphlet/centcom/visitor_info, +/obj/item/weapon/paper/pamphlet/centcom/visitor_info, +/obj/item/weapon/paper/pamphlet/centcom/visitor_info, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/centcom/control) @@ -5809,10 +5809,7 @@ /turf/open/floor/engine/cult, /area/wizard_station) "pz" = ( -/obj/item/weapon/paper{ - info = "GET DAT FUKKEN DISK"; - name = "memo" - }, +/obj/item/weapon/paper/fluff/stations/centcom/disk_memo, /obj/structure/noticeboard{ pixel_x = -32 }, @@ -7600,9 +7597,9 @@ /area/centcom/control) "tD" = ( /obj/structure/table, -/obj/item/weapon/paper/pamphlet/ccaInfo, -/obj/item/weapon/paper/pamphlet/ccaInfo, -/obj/item/weapon/paper/pamphlet/ccaInfo, +/obj/item/weapon/paper/pamphlet/centcom/visitor_info, +/obj/item/weapon/paper/pamphlet/centcom/visitor_info, +/obj/item/weapon/paper/pamphlet/centcom/visitor_info, /obj/machinery/light{ dir = 8 }, @@ -9495,9 +9492,9 @@ /area/centcom/control) "yy" = ( /obj/structure/table, -/obj/item/weapon/paper/pamphlet/ccaInfo, -/obj/item/weapon/paper/pamphlet/ccaInfo, -/obj/item/weapon/paper/pamphlet/ccaInfo, +/obj/item/weapon/paper/pamphlet/centcom/visitor_info, +/obj/item/weapon/paper/pamphlet/centcom/visitor_info, +/obj/item/weapon/paper/pamphlet/centcom/visitor_info, /obj/machinery/light{ dir = 1 }, @@ -10150,7 +10147,7 @@ "Af" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, -/obj/item/weapon/paper/pamphlet/ccaInfo, +/obj/item/weapon/paper/pamphlet/centcom/visitor_info, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/tdome/tdomeobserve) @@ -12152,9 +12149,7 @@ /area/shuttle/escape) "Fp" = ( /obj/structure/table/wood, -/obj/item/weapon/paper{ - info = "Due to circumstances beyond our control, your Emergency Evacuation Shuttle is out of service.

We apologise for the inconvinience this may cause you.

Please enjoy the use of this complementary book.

Sincerely,
Centcom Operations Demolitions Examination Retribution Bugfixing Underlining Services" - }, +/obj/item/weapon/paper/fluff/stations/centcom/broken_evac, /turf/open/floor/mineral/titanium, /area/shuttle/escape) "Fq" = ( @@ -12656,7 +12651,7 @@ /area/abductor_ship) "GS" = ( /obj/item/weapon/surgical_drapes, -/obj/item/weapon/paper/abductor, +/obj/item/weapon/paper/guides/antag/abductor, /obj/item/weapon/scalpel/alien, /obj/structure/table/abductor, /obj/item/weapon/cautery/alien, diff --git a/_maps/shuttles/emergency_imfedupwiththisworld.dmm b/_maps/shuttles/emergency_imfedupwiththisworld.dmm index bc3f87c187..3aaa1e5de3 100644 --- a/_maps/shuttles/emergency_imfedupwiththisworld.dmm +++ b/_maps/shuttles/emergency_imfedupwiththisworld.dmm @@ -126,9 +126,7 @@ "x" = ( /obj/structure/bed, /obj/item/weapon/bedsheet/red, -/obj/item/weapon/paper{ - info = "i love daniel
daniel is my best friend

you are tearing me apart elise" - }, +/obj/item/weapon/paper/fluff/shuttles/daniel, /turf/open/floor/carpet, /area/shuttle/escape) "y" = ( diff --git a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm index d6265a8f75..e84eedf91a 100644 --- a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm +++ b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm @@ -298,7 +298,7 @@ origin_tech = "combat=4;magnets=7;powerstorage=3;abductor=3" trigger_guard = TRIGGER_GUARD_ALLOW_ALL -/obj/item/weapon/paper/abductor +/obj/item/weapon/paper/guides/antag/abductor name = "Dissection Guide" icon_state = "alienpaper_words" info = {"Dissection for Dummies
@@ -320,10 +320,10 @@
Congratulations! You are now trained for invasive xenobiology research!"} -/obj/item/weapon/paper/abductor/update_icon() +/obj/item/weapon/paper/guides/antag/abductor/update_icon() return -/obj/item/weapon/paper/abductor/AltClick() +/obj/item/weapon/paper/guides/antag/abductor/AltClick() return #define BATON_STUN 0 diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm index d98878b352..69c26cdb43 100644 --- a/code/game/gamemodes/wizard/spellbook.dm +++ b/code/game/gamemodes/wizard/spellbook.dm @@ -376,7 +376,7 @@ /datum/spellbook_entry/item/guardian/Buy(mob/living/carbon/human/user,obj/item/weapon/spellbook/book) . = ..() if(.) - new /obj/item/weapon/paper/guardian/wizard(get_turf(user)) + new /obj/item/weapon/paper/guides/antag/guardian/wizard(get_turf(user)) /datum/spellbook_entry/item/bloodbottle name = "Bottle of Blood" diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 811e90603e..06c4cce2bc 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -483,7 +483,7 @@ * Manual -- A big ol' manual. */ -/obj/item/weapon/paper/Cloning +/obj/item/weapon/paper/guides/jobs/medical/cloning name = "paper - 'H-87 Cloning Apparatus Manual" info = {"

Getting Started

Congratulations, your station has purchased the H-87 industrial cloning device!
diff --git a/code/game/machinery/quantum_pad.dm b/code/game/machinery/quantum_pad.dm index 5b1eb0548c..b05ecdea70 100644 --- a/code/game/machinery/quantum_pad.dm +++ b/code/game/machinery/quantum_pad.dm @@ -150,3 +150,8 @@ else if(!isobserver(ROI)) continue do_teleport(ROI, get_turf(linked_pad)) + + +/obj/item/weapon/paper/guides/quantumpad + name = "Quantum Pad For Dummies" + info = "
Dummies Guide To Quantum Pads


Do you hate the concept of having to use your legs, let alone walk to places? Well, with the Quantum Pad (tm), never again will the fear of cardio keep you from going places!

How to set up your Quantum Pad(tm)


1.Unscrew the Quantum Pad(tm) you wish to link.
2. Use your multi-tool to cache the buffer of the Quantum Pad(tm) you wish to link.
3. Apply the multi-tool to the secondary Quantum Pad(tm) you wish to link to the first Quantum Pad(tm)

If you followed these instructions carefully, your Quantum Pad(tm) should now be properly linked together for near-instant movement across the station! Bear in mind that this is technically a one-way teleport, so you'll need to do the same process with the secondary pad to the first one if you wish to travel between both.
" diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index 1c3ba36028..f853407df8 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -198,7 +198,7 @@ crush_damage = 120 flags = NODECONSTRUCT -/obj/item/weapon/paper/recycler +/obj/item/weapon/paper/guides/recycler name = "paper - 'garbage duty instructions'" info = "

New Assignment

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

There is a recycling machine near your closet, inside maintenance; use it to recycle the trash for a small chance to get useful minerals. Then deliver these minerals to cargo or engineering. You are our last hope for a clean station, do not screw this up!" diff --git a/code/game/objects/items/theft_tools.dm b/code/game/objects/items/theft_tools.dm index a51dd403a0..9705dadb1c 100644 --- a/code/game/objects/items/theft_tools.dm +++ b/code/game/objects/items/theft_tools.dm @@ -86,7 +86,7 @@ toolspeed = 0.5 random_color = FALSE -/obj/item/weapon/paper/nuke_instructions +/obj/item/weapon/paper/guides/antag/nuke_instructions info = "How to break into a Nanotrasen self-destruct terminal and remove its plutonium core:
\
Blob
Progress: [GLOB.blobs_legit.len]/[mode.blobwincount]
',"
"],THEAD:['',"
"],TBODY:['',"
"],TR:['',"
"],SELECT:['"]}}var gl=function(t,e,n){var a,r,i,o,s,u=[];if(null!=t&&""!==t){for(pl&&(r=cl[e.tagName])?(a=_n("DIV"),a.innerHTML=r[0]+t+r[1],a=a.querySelector(".x"),"SELECT"===a.tagName&&(i=a.options[a.selectedIndex])):e.namespaceURI===no.svg?(a=_n("DIV"),a.innerHTML=''+t+"",a=a.querySelector(".x")):(a=_n(e.tagName),a.innerHTML=t,"SELECT"===a.tagName&&(i=a.options[a.selectedIndex]));o=a.firstChild;)u.push(o),n.appendChild(o);if("SELECT"===e.tagName)for(s=u.length;s--;)u[s]!==i&&(u[s].selected=!1)}return u},bl=wn,yl=En,xl=Sn,_l=Cn,wl=Pn,kl=An,El=function(t){this.type=Sp,Vc.init(this,t)};El.prototype={detach:fl,find:dl,findAll:hl,firstNode:ml,getValue:Vc.getValue,rebind:Vc.rebind,render:yl,resolve:Vc.resolve,setValue:xl,toString:_l,unbind:xc,unrender:wl,update:kl};var Sl,Cl,Pl,Al,Ol=El,Tl=function(){this.parentFragment.bubble()},Ml=On,Rl=function(t){return this.node?lo(this.node,t)?this.node:this.fragment&&this.fragment.find?this.fragment.find(t):void 0:null},jl=function(t,e){e._test(this,!0)&&e.live&&(this.liveQueries||(this.liveQueries=[])).push(e),this.fragment&&this.fragment.findAll(t,e)},Ll=function(t,e){this.fragment&&this.fragment.findAllComponents(t,e)},Dl=function(t){return this.fragment?this.fragment.findComponent(t):void 0},Nl=Tn,Fl=Mn,Il=Rn,Bl=/^true|on|yes|1$/i,ql=/^[0-9]+$/,Ul=function(t,e){var n,a,r;return r=e.a||{},a={},n=r.twoway,void 0!==n&&(a.twoway=0===n||Bl.test(n)),n=r.lazy,void 0!==n&&(0!==n&&ql.test(n)?a.lazy=parseInt(n):a.lazy=0===n||Bl.test(n)),a},Gl=jn;Sl="altGlyph altGlyphDef altGlyphItem animateColor animateMotion animateTransform clipPath feBlend feColorMatrix feComponentTransfer feComposite feConvolveMatrix feDiffuseLighting feDisplacementMap feDistantLight feFlood feFuncA feFuncB feFuncG feFuncR feGaussianBlur feImage feMerge feMergeNode feMorphology feOffset fePointLight feSpecularLighting feSpotLight feTile feTurbulence foreignObject glyphRef linearGradient radialGradient textPath vkern".split(" "),Cl="attributeName attributeType baseFrequency baseProfile calcMode clipPathUnits contentScriptType contentStyleType diffuseConstant edgeMode externalResourcesRequired filterRes filterUnits glyphRef gradientTransform gradientUnits kernelMatrix kernelUnitLength keyPoints keySplines keyTimes lengthAdjust limitingConeAngle markerHeight markerUnits markerWidth maskContentUnits maskUnits numOctaves pathLength patternContentUnits patternTransform patternUnits pointsAtX pointsAtY pointsAtZ preserveAlpha preserveAspectRatio primitiveUnits refX refY repeatCount repeatDur requiredExtensions requiredFeatures specularConstant specularExponent spreadMethod startOffset stdDeviation stitchTiles surfaceScale systemLanguage tableValues targetX targetY textLength viewBox viewTarget xChannelSelector yChannelSelector zoomAndPan".split(" "),Pl=function(t){for(var e={},n=t.length;n--;)e[t[n].toLowerCase()]=t[n];return e},Al=Pl(Sl.concat(Cl));var Vl=function(t){var e=t.toLowerCase();return Al[e]||e},zl=function(t,e){var n,a;if(n=e.indexOf(":"),-1===n||(a=e.substr(0,n),"xmlns"===a))t.name=t.element.namespace!==no.html?Vl(e):e;else if(e=e.substring(n+1),t.name=Vl(e),t.namespace=no[a.toLowerCase()],t.namespacePrefix=a,!t.namespace)throw'Unknown namespace ("'+a+'")'},Wl=Ln,Hl=Dn,Kl=Nn,Ql=Fn,$l={"accept-charset":"acceptCharset",accesskey:"accessKey",bgcolor:"bgColor","class":"className",codebase:"codeBase",colspan:"colSpan",contenteditable:"contentEditable",datetime:"dateTime",dirname:"dirName","for":"htmlFor","http-equiv":"httpEquiv",ismap:"isMap",maxlength:"maxLength",novalidate:"noValidate",pubdate:"pubDate",readonly:"readOnly",rowspan:"rowSpan",tabindex:"tabIndex",usemap:"useMap"},Yl=In,Jl=qn,Xl=Un,Zl=Gn,tf=Vn,ef=zn,nf=Wn,af=Hn,rf=Kn,of=Qn,sf=$n,uf=Yn,pf=Jn,cf=Xn,lf=Zn,ff=function(t){this.init(t)};ff.prototype={bubble:Gl,init:Hl,rebind:Kl,render:Ql,toString:Yl,unbind:Jl,update:lf};var df,hf=ff,mf=function(t,e){var n,a,r=[];for(n in e)"twoway"!==n&&"lazy"!==n&&e.hasOwnProperty(n)&&(a=new hf({element:t,name:n,value:e[n],root:t.root}),r[n]=a,"value"!==n&&r.push(a));return(a=r.value)&&r.push(a),r};"undefined"!=typeof document&&(df=co("div"));var vf=function(t,e){this.element=t,this.root=t.root,this.parentFragment=t.parentFragment,this.attributes=[],this.fragment=new rv({root:t.root,owner:this,template:[e]})};vf.prototype={bubble:function(){this.node&&this.update(),this.element.bubble()},rebind:function(t,e){this.fragment.rebind(t,e)},render:function(t){this.node=t,this.isSvg=t.namespaceURI===no.svg,this.update()},unbind:function(){this.fragment.unbind()},update:function(){var t,e,n=this;t=""+this.fragment,e=ta(t,this.isSvg),this.attributes.filter(function(t){return ea(e,t)}).forEach(function(t){n.node.removeAttribute(t.name)}),e.forEach(function(t){n.node.setAttribute(t.name,t.value)}),this.attributes=e},toString:function(){return""+this.fragment}};var gf=vf,bf=function(t,e){return e?e.map(function(e){return new gf(t,e)}):[]},yf=function(t){var e,n,a,r;if(this.element=t,this.root=t.root,this.attribute=t.attributes[this.name||"value"],e=this.attribute.interpolator,e.twowayBinding=this,n=e.keypath){if("}"===n.str.slice(-1))return v("Two-way binding does not work with expressions (`%s` on <%s>)",e.resolver.uniqueString,t.name,{ractive:this.root}),!1;if(n.isSpecial)return v("Two-way binding does not work with %s",e.resolver.ref,{ractive:this.root}),!1}else{var i=e.template.r?"'"+e.template.r+"' reference":"expression";m("The %s being used for two-way binding is ambiguous, and may cause unexpected results. Consider initialising your data to eliminate the ambiguity",i,{ractive:this.root}),e.resolver.forceResolution(),n=e.keypath}this.attribute.isTwoway=!0,this.keypath=n,a=this.root.viewmodel.get(n),void 0===a&&this.getInitialValue&&(a=this.getInitialValue(),void 0!==a&&this.root.viewmodel.set(n,a)),(r=na(t))&&(this.resetValue=a,r.formBindings.push(this))};yf.prototype={handleChange:function(){var t=this;bs.start(this.root),this.attribute.locked=!0,this.root.viewmodel.set(this.keypath,this.getValue()),bs.scheduleTask(function(){return t.attribute.locked=!1}),bs.end()},rebound:function(){var t,e,n;e=this.keypath,n=this.attribute.interpolator.keypath,e!==n&&(N(this.root._twowayBindings[e.str],this),this.keypath=n,t=this.root._twowayBindings[n.str]||(this.root._twowayBindings[n.str]=[]),t.push(this))},unbind:function(){}},yf.extend=function(t){var e,n=this;return e=function(t){yf.call(this,t),this.init&&this.init()},e.prototype=Eo(n.prototype),a(e.prototype,t),e.extend=yf.extend,e};var xf,_f=yf,wf=aa;xf=_f.extend({getInitialValue:function(){return""},getValue:function(){return this.element.node.value},render:function(){var t,e=this.element.node,n=!1;this.rendered=!0,t=this.root.lazy,this.element.lazy===!0?t=!0:this.element.lazy===!1?t=!1:u(this.element.lazy)?(t=!1,n=+this.element.lazy):u(t||"")&&(n=+t,t=!1,this.element.lazy=n),this.handler=n?ia:wf,e.addEventListener("change",wf,!1),t||(e.addEventListener("input",this.handler,!1),e.attachEvent&&e.addEventListener("keyup",this.handler,!1)),e.addEventListener("blur",ra,!1)},unrender:function(){var t=this.element.node;this.rendered=!1,t.removeEventListener("change",wf,!1),t.removeEventListener("input",this.handler,!1),t.removeEventListener("keyup",this.handler,!1),t.removeEventListener("blur",ra,!1)}});var kf=xf,Ef=kf.extend({getInitialValue:function(){return this.element.fragment?""+this.element.fragment:""},getValue:function(){return this.element.node.innerHTML}}),Sf=Ef,Cf=oa,Pf={},Af=_f.extend({name:"checked",init:function(){this.siblings=Cf(this.root._guid,"radio",this.element.getAttribute("name")),this.siblings.push(this)},render:function(){var t=this.element.node;t.addEventListener("change",wf,!1),t.attachEvent&&t.addEventListener("click",wf,!1)},unrender:function(){var t=this.element.node;t.removeEventListener("change",wf,!1),t.removeEventListener("click",wf,!1)},handleChange:function(){bs.start(this.root),this.siblings.forEach(function(t){t.root.viewmodel.set(t.keypath,t.getValue())}),bs.end()},getValue:function(){return this.element.node.checked},unbind:function(){N(this.siblings,this)}}),Of=Af,Tf=_f.extend({name:"name",init:function(){this.siblings=Cf(this.root._guid,"radioname",this.keypath.str),this.siblings.push(this),this.radioName=!0},getInitialValue:function(){return this.element.getAttribute("checked")?this.element.getAttribute("value"):void 0},render:function(){var t=this.element.node;t.name="{{"+this.keypath.str+"}}",t.checked=this.root.viewmodel.get(this.keypath)==this.element.getAttribute("value"),t.addEventListener("change",wf,!1),t.attachEvent&&t.addEventListener("click",wf,!1)},unrender:function(){var t=this.element.node;t.removeEventListener("change",wf,!1),t.removeEventListener("click",wf,!1)},getValue:function(){var t=this.element.node;return t._ractive?t._ractive.value:t.value},handleChange:function(){this.element.node.checked&&_f.prototype.handleChange.call(this)},rebound:function(t,e){var n;_f.prototype.rebound.call(this,t,e),(n=this.element.node)&&(n.name="{{"+this.keypath.str+"}}")},unbind:function(){N(this.siblings,this)}}),Mf=Tf,Rf=_f.extend({name:"name",getInitialValue:function(){return this.noInitialValue=!0,[]},init:function(){var t,e;this.checkboxName=!0,this.siblings=Cf(this.root._guid,"checkboxes",this.keypath.str),this.siblings.push(this),this.noInitialValue&&(this.siblings.noInitialValue=!0),this.siblings.noInitialValue&&this.element.getAttribute("checked")&&(t=this.root.viewmodel.get(this.keypath),e=this.element.getAttribute("value"),t.push(e))},unbind:function(){N(this.siblings,this)},render:function(){var t,e,n=this.element.node;t=this.root.viewmodel.get(this.keypath),e=this.element.getAttribute("value"),i(t)?this.isChecked=R(t,e):this.isChecked=t==e,n.name="{{"+this.keypath.str+"}}",n.checked=this.isChecked,n.addEventListener("change",wf,!1),n.attachEvent&&n.addEventListener("click",wf,!1)},unrender:function(){var t=this.element.node;t.removeEventListener("change",wf,!1),t.removeEventListener("click",wf,!1)},changed:function(){var t=!!this.isChecked;return this.isChecked=this.element.node.checked,this.isChecked===t},handleChange:function(){this.isChecked=this.element.node.checked,_f.prototype.handleChange.call(this)},getValue:function(){return this.siblings.filter(sa).map(ua)}}),jf=Rf,Lf=_f.extend({name:"checked",render:function(){var t=this.element.node;t.addEventListener("change",wf,!1),t.attachEvent&&t.addEventListener("click",wf,!1)},unrender:function(){var t=this.element.node;t.removeEventListener("change",wf,!1),t.removeEventListener("click",wf,!1)},getValue:function(){return this.element.node.checked}}),Df=Lf,Nf=_f.extend({getInitialValue:function(){var t,e,n,a,r=this.element.options;if(void 0===this.element.getAttribute("value")&&(e=t=r.length,t)){for(;e--;)if(r[e].getAttribute("selected")){n=r[e].getAttribute("value"),a=!0;break}if(!a)for(;++ee;e+=1)if(a=t[e],t[e].selected)return r=a._ractive?a._ractive.value:a.value},forceUpdate:function(){var t=this,e=this.getValue();void 0!==e&&(this.attribute.locked=!0,bs.scheduleTask(function(){return t.attribute.locked=!1}),this.root.viewmodel.set(this.keypath,e))}}),Ff=Nf,If=Ff.extend({getInitialValue:function(){return this.element.options.filter(function(t){return t.getAttribute("selected")}).map(function(t){return t.getAttribute("value")})},render:function(){var t;this.element.node.addEventListener("change",wf,!1),t=this.root.viewmodel.get(this.keypath),void 0===t&&this.handleChange()},unrender:function(){this.element.node.removeEventListener("change",wf,!1)},setValue:function(){throw Error("TODO not implemented yet")},getValue:function(){var t,e,n,a,r,i;for(t=[],e=this.element.node.options,a=e.length,n=0;a>n;n+=1)r=e[n],r.selected&&(i=r._ractive?r._ractive.value:r.value,t.push(i));return t},handleChange:function(){var t,e,n;return t=this.attribute,e=t.value,n=this.getValue(),void 0!==e&&j(n,e)||Ff.prototype.handleChange.call(this),this},forceUpdate:function(){var t=this,e=this.getValue();void 0!==e&&(this.attribute.locked=!0,bs.scheduleTask(function(){return t.attribute.locked=!1}),this.root.viewmodel.set(this.keypath,e))},updateModel:function(){void 0!==this.attribute.value&&this.attribute.value.length||this.root.viewmodel.set(this.keypath,this.initialValue)}}),Bf=If,qf=_f.extend({render:function(){this.element.node.addEventListener("change",wf,!1)},unrender:function(){this.element.node.removeEventListener("change",wf,!1)},getValue:function(){return this.element.node.files}}),Uf=qf,Gf=kf.extend({getInitialValue:function(){},getValue:function(){var t=parseFloat(this.element.node.value);return isNaN(t)?void 0:t}}),Vf=pa,zf=la,Wf=fa,Hf=da,Kf=ha,Qf=/^event(?:\.(.+))?/,$f=ba,Yf=ya,Jf={},Xf={touchstart:!0,touchmove:!0,touchend:!0,touchcancel:!0,touchleave:!0},Zf=_a,td=wa,ed=ka,nd=Ea,ad=Sa,rd=function(t,e,n){this.init(t,e,n)};rd.prototype={bubble:zf,fire:Wf,getAction:Hf,init:Kf,listen:Yf,rebind:Zf,render:td,resolve:ed,unbind:nd,unrender:ad};var id=rd,od=function(t,e){var n,a,r,i,o=[];for(a in e)if(e.hasOwnProperty(a))for(r=a.split("-"),n=r.length;n--;)i=new id(t,r[n],e[a]),o.push(i);return o},sd=function(t,e){var n,a,r,i=this;this.element=t,this.root=n=t.root,a=e.n||e,("string"==typeof a||(r=new rv({template:a,root:n,owner:t}),a=""+r,r.unbind(),""!==a))&&(e.a?this.params=e.a:e.d&&(this.fragment=new rv({template:e.d,root:n,owner:t}),this.params=this.fragment.getArgsList(),this.fragment.bubble=function(){this.dirtyArgs=this.dirtyValue=!0,i.params=this.getArgsList(),i.ready&&i.update()}),this.fn=g("decorators",n,a),this.fn||l(Io(a,"decorator")))};sd.prototype={init:function(){var t,e,n;if(t=this.element.node,this.params?(n=[t].concat(this.params),e=this.fn.apply(this.root,n)):e=this.fn.call(this.root,t),!e||!e.teardown)throw Error("Decorator definition must return an object with a teardown method");this.actual=e,this.ready=!0},update:function(){this.actual.update?this.actual.update.apply(this.root,this.params):(this.actual.teardown(!0),this.init())},rebind:function(t,e){this.fragment&&this.fragment.rebind(t,e)},teardown:function(t){this.torndown=!0,this.ready&&this.actual.teardown(),!t&&this.fragment&&this.fragment.unbind()}};var ud,pd,cd,ld=sd,fd=Ra,dd=ja,hd=Ba,md=function(t){return t.replace(/-([a-zA-Z])/g,function(t,e){return e.toUpperCase()})};Xi?(pd={},cd=co("div").style,ud=function(t){var e,n,a;if(t=md(t),!pd[t])if(void 0!==cd[t])pd[t]=t;else for(a=t.charAt(0).toUpperCase()+t.substring(1),e=ro.length;e--;)if(n=ro[e],void 0!==cd[n+a]){pd[t]=n+a;break}return pd[t]}):ud=null;var vd,gd,bd=ud;Xi?(gd=window.getComputedStyle||Po.getComputedStyle,vd=function(t){var e,n,a,r,o;if(e=gd(this.node),"string"==typeof t)return o=e[bd(t)],"0px"===o&&(o=0),o;if(!i(t))throw Error("Transition$getStyle must be passed a string, or an array of strings representing CSS properties");for(n={},a=t.length;a--;)r=t[a],o=e[bd(r)],"0px"===o&&(o=0),n[r]=o;return n}):vd=null;var yd=vd,xd=function(t,e){var n;if("string"==typeof t)this.node.style[bd(t)]=e;else for(n in t)t.hasOwnProperty(n)&&(this.node.style[bd(n)]=t[n]);return this},_d=function(t){var e;this.duration=t.duration,this.step=t.step,this.complete=t.complete,"string"==typeof t.easing?(e=t.root.easing[t.easing],e||(v(Io(t.easing,"easing")),e=qa)):e="function"==typeof t.easing?t.easing:qa,this.easing=e,this.start=ns(),this.end=this.start+this.duration,this.running=!0,_s.add(this)};_d.prototype={tick:function(t){var e,n;return this.running?t>this.end?(this.step&&this.step(1),this.complete&&this.complete(1),!1):(e=t-this.start,n=this.easing(e/this.duration),this.step&&this.step(n),!0):!1},stop:function(){this.abort&&this.abort(),this.running=!1}};var wd,kd,Ed,Sd,Cd,Pd,Ad,Od,Td=_d,Md=RegExp("^-(?:"+ro.join("|")+")-"),Rd=function(t){return t.replace(Md,"")},jd=RegExp("^(?:"+ro.join("|")+")([A-Z])"),Ld=function(t){var e;return t?(jd.test(t)&&(t="-"+t),e=t.replace(/[A-Z]/g,function(t){return"-"+t.toLowerCase()})):""},Dd={},Nd={};Xi?(kd=co("div").style,function(){void 0!==kd.transition?(Ed="transition",Sd="transitionend",Cd=!0):void 0!==kd.webkitTransition?(Ed="webkitTransition",Sd="webkitTransitionEnd",Cd=!0):Cd=!1}(),Ed&&(Pd=Ed+"Duration",Ad=Ed+"Property",Od=Ed+"TimingFunction"),wd=function(t,e,n,a,r){setTimeout(function(){var i,o,s,u,p;u=function(){o&&s&&(t.root.fire(t.name+":end",t.node,t.isIntro),r())},i=(t.node.namespaceURI||"")+t.node.tagName,t.node.style[Ad]=a.map(bd).map(Ld).join(","),t.node.style[Od]=Ld(n.easing||"linear"),t.node.style[Pd]=n.duration/1e3+"s",p=function(e){var n;n=a.indexOf(md(Rd(e.propertyName))),-1!==n&&a.splice(n,1),a.length||(t.node.removeEventListener(Sd,p,!1),s=!0,u())},t.node.addEventListener(Sd,p,!1),setTimeout(function(){for(var r,c,l,f,d,h=a.length,v=[];h--;)f=a[h],r=i+f,Cd&&!Nd[r]&&(t.node.style[bd(f)]=e[f],Dd[r]||(c=t.getStyle(f),Dd[r]=t.getStyle(f)!=e[f],Nd[r]=!Dd[r],Nd[r]&&(t.node.style[bd(f)]=c))),(!Cd||Nd[r])&&(void 0===c&&(c=t.getStyle(f)),l=a.indexOf(f),-1===l?m("Something very strange happened with transitions. Please raise an issue at https://github.com/ractivejs/ractive/issues - thanks!",{node:t.node}):a.splice(l,1),d=/[^\d]*$/.exec(e[f])[0],v.push({name:bd(f),interpolator:qo(parseFloat(c),parseFloat(e[f])),suffix:d}));v.length?new Td({root:t.root,duration:n.duration,easing:md(n.easing||""),step:function(e){var n,a;for(a=v.length;a--;)n=v[a],t.node.style[n.name]=n.interpolator(e)+n.suffix},complete:function(){o=!0,u()}}):o=!0,a.length||(t.node.removeEventListener(Sd,p,!1),s=!0,u())},0)},n.delay||0)}):wd=null;var Fd,Id,Bd,qd,Ud,Gd=wd;if("undefined"!=typeof document){if(Fd="hidden",Ud={},Fd in document)Bd="";else for(qd=ro.length;qd--;)Id=ro[qd],Fd=Id+"Hidden",Fd in document&&(Bd=Id);void 0!==Bd?(document.addEventListener(Bd+"visibilitychange",Ua),Ua()):("onfocusout"in document?(document.addEventListener("focusout",Ga),document.addEventListener("focusin",Va)):(window.addEventListener("pagehide",Ga),window.addEventListener("blur",Ga),window.addEventListener("pageshow",Va),window.addEventListener("focus",Va)),Ud.hidden=!1)}var Vd,zd,Wd,Hd=Ud;Xi?(zd=window.getComputedStyle||Po.getComputedStyle,Vd=function(t,e,n){var a,r=this;if(4===arguments.length)throw Error("t.animateStyle() returns a promise - use .then() instead of passing a callback");if(Hd.hidden)return this.setStyle(t,e),Wd||(Wd=ps.resolve());"string"==typeof t?(a={},a[t]=e):(a=t,n=e),n||(v('The "%s" transition does not supply an options object to `t.animateStyle()`. This will break in a future version of Ractive. For more info see https://github.com/RactiveJS/Ractive/issues/340',this.name),n=this);var i=new ps(function(t){var e,i,o,s,u,p,c;if(!n.duration)return r.setStyle(a),void t();for(e=Object.keys(a),i=[],o=zd(r.node),u={},p=e.length;p--;)c=e[p],s=o[bd(c)],"0px"===s&&(s=0),s!=a[c]&&(i.push(c),r.node.style[bd(c)]=s);return i.length?void Gd(r,a,n,i,t):void t()});return i}):Vd=null;var Kd=Vd,Qd=function(t,e){return"number"==typeof t?t={duration:t}:"string"==typeof t?t="slow"===t?{duration:600}:"fast"===t?{duration:200}:{duration:400}:t||(t={}),r({},t,e)},$d=za,Yd=function(t,e,n){this.init(t,e,n)};Yd.prototype={init:hd,start:$d,getStyle:yd,setStyle:xd,animateStyle:Kd,processParams:Qd};var Jd,Xd,Zd=Yd,th=Ha;Jd=function(){var t=this.node,e=this.fragment.toString(!1);if(window&&window.appearsToBeIELessEqual8&&(t.type="text/css"),t.styleSheet)t.styleSheet.cssText=e;else{for(;t.hasChildNodes();)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}},Xd=function(){this.node.type&&"text/javascript"!==this.node.type||m("Script tag was updated. This does not cause the code to be re-evaluated!",{ractive:this.root}),this.node.text=this.fragment.toString(!1)};var eh=function(){var t,e;return this.template.y?"":(t="<"+this.template.e,t+=this.attributes.map(Xa).join("")+this.conditionalAttributes.map(Xa).join(""),"option"===this.name&&Ya(this)&&(t+=" selected"),"input"===this.name&&Ja(this)&&(t+=" checked"),t+=">","textarea"===this.name&&void 0!==this.getAttribute("value")?t+=Ee(this.getAttribute("value")):void 0!==this.getAttribute("contenteditable")&&(t+=this.getAttribute("value")||""),this.fragment&&(e="script"!==this.name&&"style"!==this.name,t+=this.fragment.toString(e)),ic.test(this.template.e)||(t+=""),t)},nh=Za,ah=tr,rh=function(t){this.init(t)};rh.prototype={bubble:Tl,detach:Ml,find:Rl,findAll:jl,findAllComponents:Ll,findComponent:Dl,findNextNode:Nl,firstNode:Fl,getAttribute:Il,init:fd,rebind:dd,render:th,toString:eh,unbind:nh,unrender:ah};var ih=rh,oh=/^\s*$/,sh=/^\s*/,uh=function(t){var e,n,a,r;return e=t.split("\n"),n=e[0],void 0!==n&&oh.test(n)&&e.shift(),a=D(e),void 0!==a&&oh.test(a)&&e.pop(),r=e.reduce(nr,null),r&&(t=e.map(function(t){return t.replace(r,"")}).join("\n")),t},ph=ar,ch=function(t,e){var n;return e?n=t.split("\n").map(function(t,n){return n?e+t:t}).join("\n"):t},lh='Could not find template for partial "%s"',fh=function(t){var e,n;e=this.parentFragment=t.parentFragment,this.root=e.root,this.type=Ap,this.index=t.index,this.name=t.template.r,this.rendered=!1,this.fragment=this.fragmentToRender=this.fragmentToUnrender=null,Vc.init(this,t),this.keypath||((n=ph(this.root,this.name,e))?(xc.call(this),this.isNamed=!0,this.setTemplate(n)):v(lh,this.name))};fh.prototype={bubble:function(){this.parentFragment.bubble()},detach:function(){return this.fragment.detach()},find:function(t){return this.fragment.find(t)},findAll:function(t,e){return this.fragment.findAll(t,e)},findComponent:function(t){return this.fragment.findComponent(t)},findAllComponents:function(t,e){return this.fragment.findAllComponents(t,e)},firstNode:function(){return this.fragment.firstNode()},findNextNode:function(){return this.parentFragment.findNextNode(this)},getPartialName:function(){return this.isNamed&&this.name?this.name:void 0===this.value?this.name:this.value},getValue:function(){return this.fragment.getValue()},rebind:function(t,e){this.isNamed||Gc.call(this,t,e),this.fragment&&this.fragment.rebind(t,e)},render:function(){return this.docFrag=document.createDocumentFragment(),this.update(),this.rendered=!0,this.docFrag},resolve:Vc.resolve,setValue:function(t){var e;(void 0===t||t!==this.value)&&(void 0!==t&&(e=ph(this.root,""+t,this.parentFragment)),!e&&this.name&&(e=ph(this.root,this.name,this.parentFragment))&&(xc.call(this),this.isNamed=!0),e||v(lh,this.name,{ractive:this.root}),this.value=t,this.setTemplate(e||[]),this.bubble(),this.rendered&&bs.addView(this))},setTemplate:function(t){this.fragment&&(this.fragment.unbind(),this.rendered&&(this.fragmentToUnrender=this.fragment)),this.fragment=new rv({template:t,root:this.root,owner:this,pElement:this.parentFragment.pElement}),this.fragmentToRender=this.fragment},toString:function(t){var e,n,a,r;return e=this.fragment.toString(t),n=this.parentFragment.items[this.index-1],n&&n.type===kp?(a=n.text.split("\n").pop(),(r=/^\s+$/.exec(a))?ch(e,r[0]):e):e},unbind:function(){this.isNamed||xc.call(this),this.fragment&&this.fragment.unbind()},unrender:function(t){this.rendered&&(this.fragment&&this.fragment.unrender(t),this.rendered=!1)},update:function(){var t,e;this.fragmentToUnrender&&(this.fragmentToUnrender.unrender(!0),this.fragmentToUnrender=null),this.fragmentToRender&&(this.docFrag.appendChild(this.fragmentToRender.render()),this.fragmentToRender=null), + this.rendered&&(t=this.parentFragment.getNode(),e=this.parentFragment.findNextNode(this),t.insertBefore(this.docFrag,e))}};var dh,hh,mh,vh=fh,gh=ur,bh=pr,yh=new is("detach"),xh=cr,_h=lr,wh=fr,kh=dr,Eh=hr,Sh=mr,Ch=function(t,e,n,a){var r=t.root,i=t.keypath;a?r.viewmodel.smartUpdate(i,e,a):r.viewmodel.mark(i)},Ph=[],Ah=["pop","push","reverse","shift","sort","splice","unshift"];Ah.forEach(function(t){var e=function(){for(var e=arguments.length,n=Array(e),a=0;e>a;a++)n[a]=arguments[a];var r,i,o,s;for(r=bu(this,t,n),i=Array.prototype[t].apply(this,arguments),bs.start(),this._ractive.setting=!0,s=this._ractive.wrappers.length;s--;)o=this._ractive.wrappers[s],bs.addRactive(o.root),Ch(o,this,t,r);return bs.end(),this._ractive.setting=!1,i};So(Ph,t,{value:e})}),dh={},dh.__proto__?(hh=function(t){t.__proto__=Ph},mh=function(t){t.__proto__=Array.prototype}):(hh=function(t){var e,n;for(e=Ah.length;e--;)n=Ah[e],So(t,n,{value:Ph[n],configurable:!0})},mh=function(t){var e;for(e=Ah.length;e--;)delete t[Ah[e]]}),hh.unpatch=mh;var Oh,Th,Mh,Rh=hh;Oh={filter:function(t){return i(t)&&(!t._ractive||!t._ractive.setting)},wrap:function(t,e,n){return new Th(t,e,n)}},Th=function(t,e,n){this.root=t,this.value=e,this.keypath=E(n),e._ractive||(So(e,"_ractive",{value:{wrappers:[],instances:[],setting:!1},configurable:!0}),Rh(e)),e._ractive.instances[t._guid]||(e._ractive.instances[t._guid]=0,e._ractive.instances.push(t)),e._ractive.instances[t._guid]+=1,e._ractive.wrappers.push(this)},Th.prototype={get:function(){return this.value},teardown:function(){var t,e,n,a,r;if(t=this.value,e=t._ractive,n=e.wrappers,a=e.instances,e.setting)return!1;if(r=n.indexOf(this),-1===r)throw Error(Mh);if(n.splice(r,1),n.length){if(a[this.root._guid]-=1,!a[this.root._guid]){if(r=a.indexOf(this.root),-1===r)throw Error(Mh);a.splice(r,1)}}else delete t._ractive,Rh.unpatch(this.value)}},Mh="Something went wrong in a rather interesting way";var jh,Lh,Dh=Oh,Nh=/^\s*[0-9]+\s*$/,Fh=function(t){return Nh.test(t)?[]:{}};try{Object.defineProperty({},"test",{value:0}),jh={filter:function(t,e,n){var a,r;return e?(e=E(e),(a=n.viewmodel.wrapped[e.parent.str])&&!a.magic?!1:(r=n.viewmodel.get(e.parent),i(r)&&/^[0-9]+$/.test(e.lastKey)?!1:r&&("object"==typeof r||"function"==typeof r))):!1},wrap:function(t,e,n){return new Lh(t,e,n)}},Lh=function(t,e,n){var a,r,i;return n=E(n),this.magic=!0,this.ractive=t,this.keypath=n,this.value=e,this.prop=n.lastKey,a=n.parent,this.obj=a.isRoot?t.viewmodel.data:t.viewmodel.get(a),r=this.originalDescriptor=Object.getOwnPropertyDescriptor(this.obj,this.prop),r&&r.set&&(i=r.set._ractiveWrappers)?void(-1===i.indexOf(this)&&i.push(this)):void vr(this,e,r)},Lh.prototype={get:function(){return this.value},reset:function(t){return this.updating?void 0:(this.updating=!0,this.obj[this.prop]=t,bs.addRactive(this.ractive),this.ractive.viewmodel.mark(this.keypath,{keepExistingWrapper:!0}),this.updating=!1,!0)},set:function(t,e){this.updating||(this.obj[this.prop]||(this.updating=!0,this.obj[this.prop]=Fh(t),this.updating=!1),this.obj[this.prop][t]=e)},teardown:function(){var t,e,n,a,r;return this.updating?!1:(t=Object.getOwnPropertyDescriptor(this.obj,this.prop),e=t&&t.set,void(e&&(a=e._ractiveWrappers,r=a.indexOf(this),-1!==r&&a.splice(r,1),a.length||(n=this.obj[this.prop],Object.defineProperty(this.obj,this.prop,this.originalDescriptor||{writable:!0,enumerable:!0,configurable:!0}),this.obj[this.prop]=n))))}}}catch(Ao){jh=!1}var Ih,Bh,qh=jh;qh&&(Ih={filter:function(t,e,n){return qh.filter(t,e,n)&&Dh.filter(t)},wrap:function(t,e,n){return new Bh(t,e,n)}},Bh=function(t,e,n){this.value=e,this.magic=!0,this.magicWrapper=qh.wrap(t,e,n),this.arrayWrapper=Dh.wrap(t,e,n)},Bh.prototype={get:function(){return this.value},teardown:function(){this.arrayWrapper.teardown(),this.magicWrapper.teardown()},reset:function(t){return this.magicWrapper.reset(t)}});var Uh=Ih,Gh=gr,Vh={},zh=xr,Wh=_r,Hh=Er,Kh=Or,Qh=Tr,$h=function(t,e){this.computation=t,this.viewmodel=t.viewmodel,this.ref=e,this.root=this.viewmodel.ractive,this.parentFragment=this.root.component&&this.root.component.parentFragment};$h.prototype={resolve:function(t){this.computation.softDeps.push(t),this.computation.unresolvedDeps[t.str]=null,this.viewmodel.register(t,this.computation,"computed")}};var Yh=$h,Jh=function(t,e){this.key=t,this.getter=e.getter,this.setter=e.setter,this.hardDeps=e.deps||[],this.softDeps=[],this.unresolvedDeps={},this.depValues={},this._dirty=this._firstRun=!0};Jh.prototype={constructor:Jh,init:function(t){var e,n=this;this.viewmodel=t,this.bypass=!0,e=t.get(this.key),t.clearCache(this.key.str),this.bypass=!1,this.setter&&void 0!==e&&this.set(e),this.hardDeps&&this.hardDeps.forEach(function(e){return t.register(e,n,"computed")})},invalidate:function(){this._dirty=!0},get:function(){var t,e,n=this,a=!1;if(this.getting){var r="The "+this.key.str+" computation indirectly called itself. This probably indicates a bug in the computation. It is commonly caused by `array.sort(...)` - if that's the case, clone the array first with `array.slice().sort(...)`";return h(r),this.value}if(this.getting=!0,this._dirty){if(this._firstRun||!this.hardDeps.length&&!this.softDeps.length?a=!0:[this.hardDeps,this.softDeps].forEach(function(t){var e,r,i;if(!a)for(i=t.length;i--;)if(e=t[i],r=n.viewmodel.get(e),!s(r,n.depValues[e.str]))return n.depValues[e.str]=r,void(a=!0)}),a){this.viewmodel.capture();try{this.value=this.getter()}catch(i){m('Failed to compute "%s"',this.key.str),f(i.stack||i),this.value=void 0}t=this.viewmodel.release(),e=this.updateDependencies(t),e&&[this.hardDeps,this.softDeps].forEach(function(t){t.forEach(function(t){n.depValues[t.str]=n.viewmodel.get(t)})})}this._dirty=!1}return this.getting=this._firstRun=!1,this.value},set:function(t){if(this.setting)return void(this.value=t);if(!this.setter)throw Error("Computed properties without setters are read-only. (This may change in a future version of Ractive!)");this.setter(t)},updateDependencies:function(t){var e,n,a,r,i;for(n=this.softDeps,e=n.length;e--;)a=n[e],-1===t.indexOf(a)&&(r=!0,this.viewmodel.unregister(a,this,"computed"));for(e=t.length;e--;)a=t[e],-1!==n.indexOf(a)||this.hardDeps&&-1!==this.hardDeps.indexOf(a)||(r=!0,Mr(this.viewmodel,a)&&!this.unresolvedDeps[a.str]?(i=new Yh(this,a.str),t.splice(e,1),this.unresolvedDeps[a.str]=i,bs.addUnresolved(i)):this.viewmodel.register(a,this,"computed"));return r&&(this.softDeps=t.slice()),r}};var Xh=Jh,Zh=Rr,tm={FAILED_LOOKUP:!0},em=jr,nm={},am=Dr,rm=Nr,im=function(t,e){this.localKey=t,this.keypath=e.keypath,this.origin=e.origin,this.deps=[],this.unresolved=[],this.resolved=!1};im.prototype={forceResolution:function(){this.keypath=this.localKey,this.setup()},get:function(t,e){return this.resolved?this.origin.get(this.map(t),e):void 0},getValue:function(){return this.keypath?this.origin.get(this.keypath):void 0},initViewmodel:function(t){this.local=t,this.setup()},map:function(t){return void 0===typeof this.keypath?this.localKey:t.replace(this.localKey,this.keypath)},register:function(t,e,n){this.deps.push({keypath:t,dep:e,group:n}),this.resolved&&this.origin.register(this.map(t),e,n)},resolve:function(t){void 0!==this.keypath&&this.unbind(!0),this.keypath=t,this.setup()},set:function(t,e){this.resolved||this.forceResolution(),this.origin.set(this.map(t),e)},setup:function(){var t=this;void 0!==this.keypath&&(this.resolved=!0,this.deps.length&&(this.deps.forEach(function(e){var n=t.map(e.keypath);if(t.origin.register(n,e.dep,e.group),e.dep.setValue)e.dep.setValue(t.origin.get(n));else{if(!e.dep.invalidate)throw Error("An unexpected error occurred. Please raise an issue at https://github.com/ractivejs/ractive/issues - thanks!");e.dep.invalidate()}}),this.origin.mark(this.keypath)))},setValue:function(t){if(!this.keypath)throw Error("Mapping does not have keypath, cannot set value. Please raise an issue at https://github.com/ractivejs/ractive/issues - thanks!");this.origin.set(this.keypath,t)},unbind:function(t){var e=this;t||delete this.local.mappings[this.localKey],this.resolved&&(this.deps.forEach(function(t){e.origin.unregister(e.map(t.keypath),t.dep,t.group)}),this.tracker&&this.origin.unregister(this.keypath,this.tracker))},unregister:function(t,e,n){var a,r;if(this.resolved){for(a=this.deps,r=a.length;r--;)if(a[r].dep===e){a.splice(r,1);break}this.origin.unregister(this.map(t),e,n)}}};var om=Fr,sm=function(t,e){var n,a,r,i;return n={},a=0,r=t.map(function(t,r){var o,s,u;s=a,u=e.length;do{if(o=e.indexOf(t,s),-1===o)return i=!0,-1;s=o+1}while(n[o]&&u>s);return o===a&&(a+=1),o!==r&&(i=!0),n[o]=!0,o})},um=Ir,pm={},cm=Ur,lm=Vr,fm=zr,dm=Wr,hm=Kr,mm={implicit:!0},vm={noCascade:!0},gm=$r,bm=Yr,ym=function(t){var e,n,a=t.adapt,r=t.data,i=t.ractive,o=t.computed,s=t.mappings;this.ractive=i,this.adaptors=a,this.onchange=t.onchange,this.cache={},this.cacheMap=Eo(null),this.deps={computed:Eo(null),"default":Eo(null)},this.depsMap={computed:Eo(null),"default":Eo(null)},this.patternObservers=[],this.specials=Eo(null),this.wrapped=Eo(null),this.computations=Eo(null),this.captureGroups=[],this.unresolvedImplicitDependencies=[],this.changes=[],this.implicitChanges={},this.noCascade={},this.data=r,this.mappings=Eo(null);for(e in s)this.map(E(e),s[e]);if(r)for(e in r)(n=this.mappings[e])&&void 0===n.getValue()&&n.setValue(r[e]);for(e in o)s&&e in s&&l("Cannot map to a computed property ('%s')",e),this.compute(E(e),o[e]);this.ready=!0};ym.prototype={adapt:Gh,applyChanges:Hh,capture:Kh,clearCache:Qh,compute:Zh,get:em,init:am,map:rm,mark:om,merge:um,register:cm,release:lm,reset:fm,set:dm,smartUpdate:hm,teardown:gm,unregister:bm};var xm=ym;Xr.prototype={constructor:Xr,begin:function(t){this.inProcess[t._guid]=!0},end:function(t){var e=t.parent;e&&this.inProcess[e._guid]?Zr(this.queue,e).push(t):ti(this,t),delete this.inProcess[t._guid]}};var _m=Xr,wm=ei,km=/\$\{([^\}]+)\}/g,Em=new is("construct"),Sm=new is("config"),Cm=new _m("init"),Pm=0,Am=["adaptors","components","decorators","easing","events","interpolators","partials","transitions"],Om=ii,Tm=ci;ci.prototype={bubble:function(){this.dirty||(this.dirty=!0,bs.addView(this))},update:function(){this.callback(this.fragment.getValue()),this.dirty=!1},rebind:function(t,e){this.fragment.rebind(t,e)},unbind:function(){this.fragment.unbind()}};var Mm=function(t,e,n,r,o){var s,u,p,c,l,f,d={},h={},v={},g=[];for(u=t.parentFragment,p=t.root,o=o||{},a(d,o),o.content=r||[],d[""]=o.content,e.defaults.el&&m("The <%s/> component has a default `el` property; it has been disregarded",t.name),c=u;c;){if(c.owner.type===Rp){l=c.owner.container;break}c=c.parent}return n&&Object.keys(n).forEach(function(e){var a,r,o=n[e];if("string"==typeof o)a=fc(o),h[e]=a?a.value:o;else if(0===o)h[e]=!0;else{if(!i(o))throw Error("erm wut");fi(o)?(v[e]={origin:t.root.viewmodel,keypath:void 0},r=li(t,o[0],function(t){t.isSpecial?f?s.set(e,t.value):(h[e]=t.value,delete v[e]):f?s.viewmodel.mappings[e].resolve(t):v[e].keypath=t})):r=new Tm(t,o,function(t){f?s.set(e,t):h[e]=t}),g.push(r)}}),s=Eo(e.prototype),Om(s,{el:null,append:!0,data:h,partials:o,magic:p.magic||e.defaults.magic,modifyArrays:p.modifyArrays,adapt:p.adapt},{parent:p,component:t,container:l,mappings:v,inlinePartials:d,cssIds:u.cssIds}),f=!0,t.resolvers=g,s},Rm=di,jm=function(t){var e,n;for(e=t.root;e;)(n=e._liveComponentQueries["_"+t.name])&&n.push(t.instance),e=e.parent},Lm=mi,Dm=vi,Nm=gi,Fm=bi,Im=yi,Bm=new is("teardown"),qm=_i,Um=function(t,e){this.init(t,e)};Um.prototype={detach:bh,find:xh,findAll:_h,findAllComponents:wh,findComponent:kh,findNextNode:Eh,firstNode:Sh,init:Lm,rebind:Dm,render:Nm,toString:Fm,unbind:Im,unrender:qm};var Gm=Um,Vm=function(t){this.type=Op,this.value=t.template.c};Vm.prototype={detach:gc,firstNode:function(){return this.node},render:function(){return this.node||(this.node=document.createComment(this.value)),this.node},toString:function(){return""},unrender:function(t){t&&this.node.parentNode.removeChild(this.node)}};var zm=Vm,Wm=function(t){var e,n;this.type=Rp,this.container=e=t.parentFragment.root,this.component=n=e.component,this.container=e,this.containerFragment=t.parentFragment,this.parentFragment=n.parentFragment;var a=this.name=t.template.n||"",r=e._inlinePartials[a];r||(m('Could not find template for partial "'+a+'"',{ractive:t.root}),r=[]),this.fragment=new rv({owner:this,root:e.parent,template:r,pElement:this.containerFragment.pElement}),i(n.yielders[a])?n.yielders[a].push(this):n.yielders[a]=[this],bs.scheduleTask(function(){if(n.yielders[a].length>1)throw Error("A component template can only have one {{yield"+(a?" "+a:"")+"}} declaration at a time")})};Wm.prototype={detach:function(){return this.fragment.detach()},find:function(t){return this.fragment.find(t)},findAll:function(t,e){return this.fragment.findAll(t,e)},findComponent:function(t){return this.fragment.findComponent(t)},findAllComponents:function(t,e){return this.fragment.findAllComponents(t,e)},findNextNode:function(){return this.containerFragment.findNextNode(this)},firstNode:function(){return this.fragment.firstNode()},getValue:function(t){return this.fragment.getValue(t)},render:function(){return this.fragment.render()},unbind:function(){this.fragment.unbind()},unrender:function(t){this.fragment.unrender(t),N(this.component.yielders[this.name],this)},rebind:function(t,e){this.fragment.rebind(t,e)},toString:function(){return""+this.fragment}};var Hm=Wm,Km=function(t){this.declaration=t.template.a};Km.prototype={init:ko,render:ko,unrender:ko,teardown:ko,toString:function(){return""}};var Qm=Km,$m=wi,Ym=Ei,Jm=Si,Xm=Ci,Zm=Oi,tv=Mi,ev=function(t){this.init(t)};ev.prototype={bubble:cp,detach:lp,find:fp,findAll:dp,findAllComponents:hp,findComponent:mp,findNextNode:vp,firstNode:gp,getArgsList:hc,getNode:mc,getValue:vc,init:$m,rebind:Ym,registerIndexRef:function(t){var e=this.registeredIndexRefs;-1===e.indexOf(t)&&e.push(t)},render:Jm,toString:Xm,unbind:Zm,unregisterIndexRef:function(t){var e=this.registeredIndexRefs;e.splice(e.indexOf(t),1)},unrender:tv};var nv,av,rv=ev,iv=Ri,ov=["template","partials","components","decorators","events"],sv=new is("reset"),uv=function(t,e){function n(e,a,r){r&&r.partials[t]||e.forEach(function(e){e.type===Ap&&e.getPartialName()===t&&a.push(e),e.fragment&&n(e.fragment.items,a,r),i(e.fragments)?n(e.fragments,a,r):i(e.items)?n(e.items,a,r):e.type===Mp&&e.instance&&n(e.instance.fragment.items,a,e.instance),e.type===Pp&&(i(e.attributes)&&n(e.attributes,a,r),i(e.conditionalAttributes)&&n(e.conditionalAttributes,a,r))})}var a,r=[];return n(this.fragment.items,r),this.partials[t]=e,a=bs.start(this,!0),r.forEach(function(e){e.value=void 0,e.setValue(t)}),bs.end(),a},pv=ji,cv=xu("reverse"),lv=Li,fv=xu("shift"),dv=xu("sort"),hv=xu("splice"),mv=Ni,vv=Fi,gv=new is("teardown"),bv=Bi,yv=qi,xv=Ui,_v=new is("unrender"),wv=xu("unshift"),kv=Gi,Ev=new is("update"),Sv=Vi,Cv={add:Zo,animate:Es,detach:Cs,find:As,findAll:Fs,findAllComponents:Is,findComponent:Bs,findContainer:qs,findParent:Us,fire:Ws,get:Hs,insert:Qs,merge:Ys,observe:lu,observeOnce:fu,off:mu,on:vu,once:gu,pop:_u,push:wu,render:Tu,reset:iv,resetPartial:uv,resetTemplate:pv,reverse:cv,set:lv,shift:fv,sort:dv,splice:hv,subtract:mv,teardown:vv,toggle:bv,toHTML:yv,toHtml:yv,unrender:xv,unshift:wv,update:kv,updateModel:Sv},Pv=function(t,e,n){return n||Wi(t,e)?function(){var n,a="_super"in this,r=this._super;return this._super=e,n=t.apply(this,arguments),a&&(this._super=r),n}:t},Av=Hi,Ov=Yi,Tv=function(t){var e,n,a={};return t&&(e=t._ractive)?(a.ractive=e.root,a.keypath=e.keypath.str,a.index={},(n=Oc(e.proxy.parentFragment))&&(a.index=Oc.resolve(n)),a):a};nv=function(t){return this instanceof nv?void Om(this,t):new nv(t)},av={DEBUG:{writable:!0,value:!0},DEBUG_PROMISES:{writable:!0,value:!0},extend:{value:Ov},getNodeInfo:{value:Tv},parse:{value:Hu},Promise:{value:ps},svg:{value:ao},magic:{value:eo},VERSION:{value:"0.7.3"},adaptors:{writable:!0,value:{}},components:{writable:!0,value:{}},decorators:{writable:!0,value:{}},easing:{writable:!0,value:uo},events:{writable:!0,value:{}},interpolators:{writable:!0,value:Go},partials:{writable:!0,value:{}},transitions:{writable:!0,value:{}}},Co(nv,av),nv.prototype=a(Cv,so),nv.prototype.constructor=nv,nv.defaults=nv.prototype;var Mv="function";if(typeof Date.now!==Mv||typeof String.prototype.trim!==Mv||typeof Object.keys!==Mv||typeof Array.prototype.indexOf!==Mv||typeof Array.prototype.forEach!==Mv||typeof Array.prototype.map!==Mv||typeof Array.prototype.filter!==Mv||"undefined"!=typeof window&&typeof window.addEventListener!==Mv)throw Error("It looks like you're attempting to use Ractive.js in an older browser. You'll need to use one of the 'legacy builds' in order to continue - see http://docs.ractivejs.org/latest/legacy-builds for more information.");var Rv=nv;return Rv})},{}],206:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={oninit:function(){var t=this;this.observe("value",function(e,n,a){var r=t.get(),i=r.min,o=r.max,s=Math.clamp(i,o,e);t.animate("percentage",Math.round((s-i)/(o-i)*100))})}}}(r),r.exports.template={v:3,t:[" ",{p:[13,1,305],t:7,e:"div",a:{"class":"bar"},f:[{p:[14,3,326],t:7,e:"div",a:{"class":["barFill ",{t:2,r:"state",p:[14,23,346]}],style:["width: ",{t:2,r:"percentage",p:[14,48,371]},"%"]}}," ",{p:[15,3,398],t:7,e:"span",a:{"class":"barText"},f:[{t:16,p:[15,25,420]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],207:[function(t,e,n){var a=t(205),r={exports:{}};!function(e){"use strict";var n=t(310),a=t(309);e.exports={computed:{clickable:function(){return!this.get("enabled")||this.get("state")&&"toggle"!=this.get("state")?!1:!0},enabled:function(){return this.get("config.status")===n.UI_INTERACTIVE?!0:!1},styles:function(){var t="";if(this.get("class")&&(t+=" "+this.get("class")),this.get("tooltip-side")&&(t=" tooltip-"+this.get("tooltip-side")),this.get("grid")&&(t+=" gridable"),this.get("enabled")){var e=this.get("state"),n=this.get("style");return e?"inactive "+e+" "+t:"active normal "+n+" "+t}return"inactive disabled "+t}},oninit:function(){var t=this;this.on("press",function(e){var n=t.get(),r=n.action,i=n.params;(0,a.act)(t.get("config.ref"),r,i),e.node.blur()})},data:{iconStackToHTML:function(t){var e="",n=t.split(",");if(n.length){e+='';for(var a=n,r=Array.isArray(a),i=0,a=r?a:a[Symbol.iterator]();;){var o;if(r){if(i>=a.length)break;o=a[i++]}else{if(i=a.next(),i.done)break;o=i.value}var s=o,u=/([\w\-]+)\s*(\dx)/g,p=u.exec(s),c=p[1],l=p[2];e+=''}}return e&&(e+=""),e}}}}(r),r.exports.template={v:3,t:[" ",{p:[70,1,2015],t:7,e:"span",a:{"class":["button ",{t:2,r:"styles",p:[70,21,2035]}],unselectable:"on","data-tooltip":[{t:2,r:"tooltip",p:[73,17,2120]}]},m:[{t:4,f:["tabindex='0'"],r:"clickable",p:[72,3,2071]}],v:{"mouseover-mousemove":"hover",mouseleave:"unhover","click-enter":{n:[{t:4,f:["press"],r:"clickable",p:[76,19,2213]}],d:[]}},f:[{t:4,f:[{p:[78,5,2261],t:7,e:"i",a:{"class":["fa fa-",{t:2,r:"icon",p:[78,21,2277]}]}}],n:50,r:"icon",p:[77,3,2243]}," ",{t:4,f:[{t:3,x:{r:["iconStackToHTML","icon_stack"],s:"_0(_1)"},p:[81,6,2331]}],n:50,r:"icon_stack",p:[80,3,2306]}," ",{t:16,p:[83,3,2379]}]}]},e.exports=a.extend(r.exports)},{205:205,309:309,310:310}],208:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"div",a:{"class":"display"},f:[{t:4,f:[{p:[3,5,44],t:7,e:"header",f:[{p:[4,7,60],t:7,e:"h3",f:[{t:2,r:"title",p:[4,11,64]}]}," ",{t:4,f:[{p:[6,9,110],t:7,e:"div",a:{"class":"buttonRight"},f:[{t:16,n:"button",p:[6,34,135]}]}],n:50,r:"button",p:[5,7,86]}]}],n:50,r:"title",p:[2,3,25]}," ",{p:[10,3,202],t:7,e:"article",f:[{t:16,p:[11,5,217]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],209:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={oninit:function(){var t=this;this.on("clear",function(){t.set("value",""),t.find("input").focus()})}}}(r),r.exports.template={v:3,t:[" ",{p:[12,1,170],t:7,e:"input",a:{type:"text",value:[{t:2,r:"value",p:[12,27,196]}],placeholder:[{t:2,r:"placeholder",p:[12,51,220]}]}}," ",{p:[13,1,240],t:7,e:"ui-button",a:{icon:"refresh"},v:{press:"clear"}}]},e.exports=a.extend(r.exports)},{205:205}],210:[function(t,e,n){var a=t(205),r={exports:{}};!function(e){"use strict";e.exports={data:{graph:t(201),xaccessor:function(t){return t.x},yaccessor:function(t){return t.y}},computed:{size:function(){var t=this.get("points");return t[0].length},scale:function(){var t=this.get("points");return Math.max.apply(Math,Array.map(t,function(t){return Math.max.apply(Math,Array.map(t,function(t){return t.y}))}))},xaxis:function(){var t=this.get("xinc"),e=this.get("size");return Array.from(Array(e).keys()).filter(function(e){return e&&e%t==0})},yaxis:function(){var t=this.get("yinc"),e=this.get("scale");return Array.from(Array(t).keys()).map(function(t){return Math.round(e*(++t/100)*10)})}},oninit:function(){var t=this;this.on({enter:function(t){this.set("selected",t.index.count)},exit:function(t){this.set("selected")}}),window.addEventListener("resize",function(e){t.set("width",t.el.clientWidth)})},onrender:function(){this.set("width",this.el.clientWidth)}}}(r),r.exports.template={v:3,t:[" ",{p:[47,1,1269],t:7,e:"svg",a:{"class":"linegraph",width:"100%",height:[{t:2,x:{r:["height"],s:"_0+10"},p:[47,45,1313]}]},f:[{p:[48,3,1334],t:7,e:"g",a:{transform:"translate(0, 5)"},f:[{t:4,f:[{t:4,f:[{p:[51,9,1504],t:7,e:"line",a:{x1:[{t:2,x:{r:["xscale","."],s:"_0(_1)"},p:[51,19,1514]}],x2:[{t:2,x:{r:["xscale","."],s:"_0(_1)"},p:[51,38,1533]}],y1:"0",y2:[{t:2,r:"height",p:[51,64,1559]}],stroke:"darkgray"}}," ",{t:4,f:[{p:[53,11,1635],t:7,e:"text",a:{x:[{t:2,x:{r:["xscale","."],s:"_0(_1)"},p:[53,20,1644]}],y:[{t:2,x:{r:["height"],s:"_0-5"},p:[53,38,1662]}],"text-anchor":"middle",fill:"white"},f:[{t:2,x:{r:["size",".","xfactor"],s:"(_0-_1)*_2"},p:[53,88,1712]}," ",{t:2,r:"xunit",p:[53,113,1737]}]}],n:50,x:{r:["@index"],s:"_0%2==0"},p:[52,9,1600]}],n:52,r:"xaxis",p:[50,7,1479]}," ",{t:4,f:[{p:[57,9,1820],t:7,e:"line",a:{x1:"0",x2:[{t:2,r:"width",p:[57,26,1837]}],y1:[{t:2,x:{r:["yscale","."],s:"_0(_1)"},p:[57,41,1852]}],y2:[{t:2,x:{r:["yscale","."],s:"_0(_1)"},p:[57,60,1871]}],stroke:"darkgray"}}," ",{p:[58,9,1915],t:7,e:"text",a:{x:"0",y:[{t:2,x:{r:["yscale","."],s:"_0(_1)-5"},p:[58,24,1930]}],"text-anchor":"begin",fill:"white"},f:[{t:2,x:{r:[".","yfactor"],s:"_0*_1"},p:[58,76,1982]}," ",{t:2,r:"yunit",p:[58,92,1998]}]}],n:52,r:"yaxis",p:[56,7,1795]}," ",{t:4,f:[{p:[61,9,2071],t:7,e:"path",a:{d:[{t:2,x:{r:["area.path"],s:"_0.print()"},p:[61,18,2080]}],fill:[{t:2,rx:{r:"colors",m:[{t:30,n:"curve"}]},p:[61,47,2109]}],opacity:"0.1"}}],n:52,i:"curve",r:"curves",p:[60,7,2039]}," ",{t:4,f:[{p:[64,9,2200],t:7,e:"path",a:{d:[{t:2,x:{r:["line.path"],s:"_0.print()"},p:[64,18,2209]}],stroke:[{t:2,rx:{r:"colors",m:[{t:30,n:"curve"}]},p:[64,49,2240]}],fill:"none"}}],n:52,i:"curve",r:"curves",p:[63,7,2168]}," ",{t:4,f:[{t:4,f:[{p:[68,11,2375],t:7,e:"circle",a:{transform:["translate(",{t:2,r:".",p:[68,40,2404]},")"],r:[{t:2,x:{r:["selected","count"],s:"_0==_1?10:4"},p:[68,51,2415]}],fill:[{t:2,rx:{r:"colors",m:[{t:30,n:"curve"}]},p:[68,89,2453]}]},v:{mouseenter:"enter",mouseleave:"exit"}}],n:52,i:"count",x:{r:["line.path"],s:"_0.points()"},p:[67,9,2329]}],n:52,i:"curve",r:"curves",p:[66,7,2297]}," ",{t:4,f:[{t:4,f:[{t:4,f:[{p:[74,13,2678],t:7,e:"text",a:{transform:["translate(",{t:2,r:".",p:[74,40,2705]},") ",{t:2,x:{r:["count","size"],s:'_0<=_1/2?"translate(15, 4)":"translate(-15, 4)"'},p:[74,47,2712]}],"text-anchor":[{t:2,x:{r:["count","size"],s:'_0<=_1/2?"start":"end"'},p:[74,126,2791]}],fill:"white"},f:[{t:2,x:{r:["count","item","yfactor"],s:"_1[_0].y*_2"},p:[75,15,2861]}," ",{t:2,r:"yunit",p:[75,43,2889]}," @ ",{t:2,x:{r:["size","count","item","xfactor"],s:"(_0-_2[_1].x)*_3"},p:[75,55,2901]}," ",{t:2,r:"xunit",p:[75,92,2938]}]}],n:50,x:{r:["selected","count"],s:"_0==_1"},p:[73,11,2638]}],n:52,i:"count",x:{r:["line.path"],s:"_0.points()"},p:[72,9,2592]}],n:52,i:"curve",r:"curves",p:[71,7,2560]}," ",{t:4,f:[{p:[81,9,3063],t:7,e:"g",a:{transform:["translate(",{t:2,x:{r:["width","curves.length","@index"],s:"(_0/(_1+1))*(_2+1)"},p:[81,33,3087]},", 10)"]},f:[{p:[82,11,3154],t:7,e:"circle",a:{r:"4",fill:[{t:2,rx:{r:"colors",m:[{t:30,n:"curve"}]},p:[82,31,3174]}]}}," ",{p:[83,11,3206],t:7,e:"text",a:{x:"8",y:"4",fill:"white"},f:[{t:2,rx:{r:"legend",m:[{t:30,n:"curve"}]},p:[83,42,3237]}]}]}],n:52,i:"curve",r:"curves",p:[80,7,3031]}],x:{r:["graph","points","xaccessor","yaccessor","width","height"],s:"_0({data:_1,xaccessor:_2,yaccessor:_3,width:_4,height:_5})"},p:[49,5,1371]}]}]}]},e.exports=a.extend(r.exports)},{201:201,205:205}],211:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"div",a:{"class":"notice"},f:[{t:16,p:[2,3,24]}]}]},e.exports=a.extend(r.exports)},{205:205}],212:[function(t,e,n){var a=t(205),r={exports:{}};!function(e){"use strict";var n=t(309),a=t(311);e.exports={oninit:function(){var t=this,e=a.resize.bind(this),r=function(){return t.set({resize:!1,x:null,y:null})};this.observe("config.fancy",function(a,i,o){(0,n.winset)(t.get("config.window"),"can-resize",!a),a?(document.addEventListener("mousemove",e),document.addEventListener("mouseup",r)):(document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",r))}),this.on("resize",function(){return t.toggle("resize")})}}}(r),r.exports.template={v:3,t:[" ",{t:4,f:[{p:[28,3,766],t:7,e:"div",a:{"class":"resize"},v:{mousedown:"resize"}}],n:50,r:"config.fancy",p:[27,1,742]}]},e.exports=a.extend(r.exports)},{205:205,309:309,311:311}],213:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"section",a:{"class":[{t:4,f:["candystripe"],r:"candystripe",p:[1,17,16]}]},f:[{t:4,f:[{p:[3,5,84],t:7,e:"span",a:{"class":"label",style:[{t:4,f:["color:",{t:2,r:"labelcolor",p:[3,53,132]}],r:"labelcolor",p:[3,32,111]}]},f:[{t:2,r:"label",p:[3,84,163]},":"]}],n:50,r:"label",p:[2,3,65]}," ",{t:4,f:[{t:16,p:[6,5,215]}],n:50,r:"nowrap",p:[5,3,195]},{t:4,n:51,f:[{p:[8,5,242],t:7,e:"div",a:{"class":"content",style:[{t:4,f:["float:right;"],r:"right",p:[8,33,270]}]},f:[{t:16,p:[9,7,312]}]}],r:"nowrap"}]}]},e.exports=a.extend(r.exports)},{205:205}],214:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"div",a:{"class":"subdisplay"},f:[{t:4,f:[{p:[3,5,47],t:7,e:"header",f:[{p:[4,7,63],t:7,e:"h4",f:[{t:2,r:"title",p:[4,11,67]}]}," ",{t:4,f:[{t:16,n:"button",p:[5,21,103]}],n:50,r:"button",p:[5,7,89]}]}],n:50,r:"title",p:[2,3,28]}," ",{p:[8,3,156],t:7,e:"article",f:[{t:16,p:[9,5,171]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],215:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={oninit:function(){var t=this;this.set("active",this.findComponent("tab").get("name")),this.on("switch",function(e){t.set("active",e.node.textContent.trim())}),this.observe("active",function(e,n,a){for(var r=t.findAllComponents("tab"),i=Array.isArray(r),o=0,r=i?r:r[Symbol.iterator]();;){var s;if(i){if(o>=r.length)break;s=r[o++]}else{if(o=r.next(),o.done)break;s=o.value}var u=s;u.set("shown",u.get("name")===e)}})}}}(r),r.exports.template={v:3,t:[" "," ",{p:[20,1,524],t:7,e:"header",f:[{t:4,f:[{p:[22,5,556],t:7,e:"ui-button",a:{pane:[{t:2,r:".",p:[22,22,573]}]},v:{press:"switch"},f:[{t:2,r:".",p:[22,47,598]}]}],n:52,r:"tabs",p:[21,3,536]}]}," ",{p:[25,1,641],t:7,e:"ui-display",f:[{t:8,r:"content",p:[26,3,657]}]}]},r.exports.components=r.exports.components||{};var i={tab:t(216)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,216:216}],216:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{t:16,p:[2,3,17]}],n:50,r:"shown",p:[1,1,0]}]},e.exports=a.extend(r.exports)},{205:205}],217:[function(t,e,n){var a=t(205),r={exports:{}};!function(e){"use strict";var n=t(310),a=t(309),r=t(311);e.exports={computed:{visualStatus:function(){switch(this.get("config.status")){case n.UI_INTERACTIVE:return"good";case n.UI_UPDATE:return"average";case n.UI_DISABLED:return"bad";default:return"bad"}}},oninit:function(){var t=this,e=r.drag.bind(this),n=function(e){return t.set({drag:!1,x:null,y:null})};this.observe("config.fancy",function(r,i,o){(0,a.winset)(t.get("config.window"),"titlebar",!r&&t.get("config.titlebar")),r?(document.addEventListener("mousemove",e),document.addEventListener("mouseup",n)):(document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",n))}),this.on({drag:function(){this.toggle("drag")},close:function(){(0,a.winset)(this.get("config.window"),"is-visible",!1),window.location.href=(0,a.href)({command:"uiclose "+this.get("config.ref")},"winset")},minimize:function(){(0,a.winset)(this.get("config.window"),"is-minimized",!0)}})}}}(r),r.exports.template={v:3,t:[" ",{t:4,f:[{p:[50,3,1440],t:7,e:"header",a:{"class":"titlebar"},v:{mousedown:"drag"},f:[{p:[51,5,1491],t:7,e:"i",a:{"class":["statusicon fa fa-eye fa-2x ",{t:2,r:"visualStatus",p:[51,42,1528]}]}}," ",{p:[52,5,1556],t:7,e:"span",a:{"class":"title"},f:[{t:16,p:[52,25,1576]}]}," ",{t:4,f:[{p:[54,7,1626],t:7,e:"i",a:{"class":"minimize fa fa-minus fa-2x"},v:{click:"minimize"}}," ",{p:[55,7,1696],t:7,e:"i",a:{"class":"close fa fa-close fa-2x"},v:{click:"close"}}],n:50,r:"config.fancy",p:[53,5,1598]}]}],n:50,r:"config.titlebar",p:[49,1,1413]}]},e.exports=a.extend(r.exports)},{205:205,309:309,310:310,311:311}],218:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";var e=[11,10,9,8];t.exports={data:{userAgent:navigator.userAgent},computed:{ie:function(){if(document.documentMode)return document.documentMode;for(var t in e){var n=document.createElement("div");if(n.innerHTML="",n.getElementsByTagName("span").length)return t}}},oninit:function(){var t=this;this.on("debug",function(){return t.toggle("debug")})}}}(r),r.exports.template={v:3,t:[" ",{t:4,f:[{p:[27,3,662],t:7,e:"ui-notice",f:[{p:[28,5,679],t:7,e:"span",f:["You have an old (IE",{t:2,r:"ie",p:[28,30,704]},"), end-of-life (click 'EOL Info' for more information) version of Internet Explorer installed."]},{p:[28,137,811],t:7,e:"br"}," ",{p:[29,5,822],t:7,e:"span",f:["To upgrade, click 'Upgrade IE' to download IE11 from Microsoft."]},{p:[29,81,898],t:7,e:"br"}," ",{p:[30,5,909],t:7,e:"span",f:["If you are unable to upgrade directly, click 'IE VMs' to download a VM with IE11 or Edge from Microsoft."]},{p:[30,122,1026],t:7,e:"br"}," ",{p:[31,5,1037],t:7,e:"span",f:["Otherwise, click 'No Frills' below to disable potentially incompatible features (and this message)."]}," ",{p:[32,5,1155],t:7,e:"hr"}," ",{p:[33,5,1166],t:7,e:"ui-button",a:{icon:"close",action:"tgui:nofrills"},f:["No Frills"]}," ",{p:[34,5,1240],t:7,e:"ui-button",a:{icon:"internet-explorer",action:"tgui:link",params:'{"url": "http://windows.microsoft.com/en-us/internet-explorer/download-ie"}'},f:["Upgrade IE"]}," ",{p:[36,5,1416],t:7,e:"ui-button",a:{icon:"edge",action:"tgui:link",params:'{"url": "https://dev.windows.com/en-us/microsoft-edge/tools/vms"}'},f:["IE VMs"]}," ",{p:[38,5,1565],t:7,e:"ui-button",a:{icon:"info",action:"tgui:link",params:'{"url": "https://support.microsoft.com/en-us/lifecycle#gp/Microsoft-Internet-Explorer"}'},f:["EOL Info"]}," ",{p:[40,5,1738],t:7,e:"ui-button",a:{icon:"bug"},v:{press:"debug"},f:["Debug Info"]}," ",{t:4,f:[{p:[42,7,1826],t:7,e:"hr"}," ",{p:[43,7,1839],t:7,e:"span",f:["Detected: IE",{t:2,r:"ie",p:[43,25,1857]}]},{p:[43,38,1870],t:7,e:"br"}," ",{p:[44,7,1883],t:7,e:"span",f:["User Agent: ",{t:2,r:"userAgent",p:[44,25,1901]}]}],n:50,r:"debug",p:[41,5,1805]}]}],n:50,x:{r:["config.fancy","ie"],s:"_0&&_1&&_1<11"},p:[26,1,621]}]},e.exports=a.extend(r.exports)},{205:205}],219:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" "," "," "," "," ",{p:[7,1,267],t:7,e:"ui-notice",f:[{t:4,f:[{p:[9,5,312],t:7,e:"ui-section",a:{ + label:"Interface Lock"},f:[{p:[10,7,355],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.locked"],s:'_0?"lock":"unlock"'},p:[10,24,372]}],action:"lock"},f:[{t:2,x:{r:["data.locked"],s:'_0?"Engaged":"Disengaged"'},p:[10,75,423]}]}]}],n:50,r:"data.siliconUser",p:[8,3,282]},{t:4,n:51,f:[{p:[13,5,514],t:7,e:"span",f:["Swipe an ID card to ",{t:2,x:{r:["data.locked"],s:'_0?"unlock":"lock"'},p:[13,31,540]}," this interface."]}],r:"data.siliconUser"}]}," ",{p:[16,1,625],t:7,e:"status"}," ",{t:4,f:[{t:4,f:[{p:[19,7,719],t:7,e:"ui-display",a:{title:"Air Controls"},f:[{p:[20,9,762],t:7,e:"ui-section",f:[{p:[21,11,786],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.atmos_alarm"],s:'_0?"exclamation-triangle":"exclamation"'},p:[21,28,803]}],style:[{t:2,x:{r:["data.atmos_alarm"],s:'_0?"caution":null'},p:[21,98,873]}],action:[{t:2,x:{r:["data.atmos_alarm"],s:'_0?"reset":"alarm"'},p:[22,23,937]}]},f:["Area Atmosphere Alarm"]}]}," ",{p:[24,9,1045],t:7,e:"ui-section",f:[{p:[25,11,1069],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.mode"],s:'_0==3?"exclamation-triangle":"exclamation"'},p:[25,28,1086]}],style:[{t:2,x:{r:["data.mode"],s:'_0==3?"danger":null'},p:[25,96,1154]}],action:"mode",params:['{"mode": ',{t:2,x:{r:["data.mode"],s:"_0==3?1:3"},p:[26,44,1236]},"}"]},f:["Panic Siphon"]}]}," ",{p:[28,9,1322],t:7,e:"br"}," ",{p:[29,9,1337],t:7,e:"ui-section",f:[{p:[30,11,1361],t:7,e:"ui-button",a:{icon:"sign-out",action:"tgui:view",params:'{"screen": "vents"}'},f:["Vent Controls"]}]}," ",{p:[32,9,1494],t:7,e:"ui-section",f:[{p:[33,11,1518],t:7,e:"ui-button",a:{icon:"filter",action:"tgui:view",params:'{"screen": "scrubbers"}'},f:["Scrubber Controls"]}]}," ",{p:[35,9,1657],t:7,e:"ui-section",f:[{p:[36,11,1681],t:7,e:"ui-button",a:{icon:"cog",action:"tgui:view",params:'{"screen": "modes"}'},f:["Operating Mode"]}]}," ",{p:[38,9,1810],t:7,e:"ui-section",f:[{p:[39,11,1834],t:7,e:"ui-button",a:{icon:"bar-chart",action:"tgui:view",params:'{"screen": "thresholds"}'},f:["Alarm Thresholds"]}]}]}],n:50,x:{r:["config.screen"],s:'_0=="home"'},p:[18,3,680]},{t:4,n:51,f:[{t:4,n:50,x:{r:["config.screen"],s:'_0=="vents"'},f:[{p:[43,5,2032],t:7,e:"vents"}]},{t:4,n:50,x:{r:["config.screen"],s:'(!(_0=="vents"))&&(_0=="scrubbers")'},f:[" ",{p:[45,5,2089],t:7,e:"scrubbers"}]},{t:4,n:50,x:{r:["config.screen"],s:'(!(_0=="vents"))&&((!(_0=="scrubbers"))&&(_0=="modes"))'},f:[" ",{p:[47,5,2146],t:7,e:"modes"}]},{t:4,n:50,x:{r:["config.screen"],s:'(!(_0=="vents"))&&((!(_0=="scrubbers"))&&((!(_0=="modes"))&&(_0=="thresholds")))'},f:[" ",{p:[49,5,2204],t:7,e:"thresholds"}]}],x:{r:["config.screen"],s:'_0=="home"'}}],n:50,x:{r:["data.locked","data.siliconUser"],s:"!_0||_1"},p:[17,1,636]}]},r.exports.components=r.exports.components||{};var i={vents:t(225),modes:t(221),thresholds:t(224),status:t(223),scrubbers:t(222)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,221:221,222:222,223:223,224:224,225:225}],220:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-button",a:{icon:"arrow-left",action:"tgui:view",params:'{"screen": "home"}'},f:["Back"]}]},e.exports=a.extend(r.exports)},{205:205}],221:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:{button:[{p:[5,5,115],t:7,e:"back"}]},t:7,e:"ui-display",a:{title:"Operating Modes",button:0},f:[" ",{t:4,f:[{p:[8,5,168],t:7,e:"ui-section",f:[{p:[9,7,188],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["selected"],s:'_0?"check-square-o":"square-o"'},p:[9,24,205]}],state:[{t:2,x:{r:["selected","danger"],s:'_0?_1?"danger":"selected":null'},p:[10,16,267]}],action:"mode",params:['{"mode": ',{t:2,r:"mode",p:[11,40,361]},"}"]},f:[{t:2,r:"name",p:[11,51,372]}]}]}],n:52,r:"data.modes",p:[7,3,142]}]}]},r.exports.components=r.exports.components||{};var i={back:t(220)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,220:220}],222:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:{button:[{p:[5,5,117],t:7,e:"back"}]},t:7,e:"ui-display",a:{title:"Scrubber Controls",button:0},f:[" ",{t:4,f:[{p:[8,5,174],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"long_name",p:[8,27,196]}]},f:[{p:[9,7,219],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[10,9,255],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["power"],s:'_0?"power-off":"close"'},p:[10,26,272]}],style:[{t:2,x:{r:["power"],s:'_0?"selected":null'},p:[10,68,314]}],action:"power",params:['{"id_tag": "',{t:2,r:"id_tag",p:[11,46,391]},'", "val": ',{t:2,x:{r:["power"],s:"+!_0"},p:[11,66,411]},"}"]},f:[{t:2,x:{r:["power"],s:'_0?"On":"Off"'},p:[11,80,425]}]}]}," ",{p:[13,7,490],t:7,e:"ui-section",a:{label:"Mode"},f:[{p:[14,9,525],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["scrubbing"],s:'_0?"filter":"sign-in"'},p:[14,26,542]}],style:[{t:2,x:{r:["scrubbing"],s:'_0?null:"danger"'},p:[14,71,587]}],action:"scrubbing",params:['{"id_tag": "',{t:2,r:"id_tag",p:[15,50,670]},'", "val": ',{t:2,x:{r:["scrubbing"],s:"+!_0"},p:[15,70,690]},"}"]},f:[{t:2,x:{r:["scrubbing"],s:'_0?"Scrubbing":"Siphoning"'},p:[15,88,708]}]}]}," ",{p:[17,7,790],t:7,e:"ui-section",a:{label:"Range"},f:[{p:[18,9,826],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["widenet"],s:'_0?"expand":"compress"'},p:[18,26,843]}],style:[{t:2,x:{r:["widenet"],s:'_0?"selected":null'},p:[18,70,887]}],action:"widenet",params:['{"id_tag": "',{t:2,r:"id_tag",p:[19,48,968]},'", "val": ',{t:2,x:{r:["widenet"],s:"+!_0"},p:[19,68,988]},"}"]},f:[{t:2,x:{r:["widenet"],s:'_0?"Expanded":"Normal"'},p:[19,84,1004]}]}]}," ",{p:[21,7,1080],t:7,e:"ui-section",a:{label:"Filters"},f:[{p:[22,9,1118],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["filter_co2"],s:'_0?"check-square-o":"square-o"'},p:[22,26,1135]}],style:[{t:2,x:{r:["filter_co2"],s:'_0?"selected":null'},p:[22,81,1190]}],action:"co2_scrub",params:['{"id_tag": "',{t:2,r:"id_tag",p:[23,50,1276]},'", "val": ',{t:2,x:{r:["filter_co2"],s:"+!_0"},p:[23,70,1296]},"}"]},f:["CO2"]}," ",{p:[24,9,1340],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["filter_n2o"],s:'_0?"check-square-o":"square-o"'},p:[24,26,1357]}],style:[{t:2,x:{r:["filter_n2o"],s:'_0?"selected":null'},p:[24,81,1412]}],action:"n2o_scrub",params:['{"id_tag": "',{t:2,r:"id_tag",p:[25,50,1498]},'", "val": ',{t:2,x:{r:["filter_n2o"],s:"+!_0"},p:[25,70,1518]},"}"]},f:["N2O"]}," ",{p:[26,9,1562],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["filter_toxins"],s:'_0?"check-square-o":"square-o"'},p:[26,26,1579]}],style:[{t:2,x:{r:["filter_toxins"],s:'_0?"selected":null'},p:[26,84,1637]}],action:"tox_scrub",params:['{"id_tag": "',{t:2,r:"id_tag",p:[27,50,1726]},'", "val": ',{t:2,x:{r:["filter_toxins"],s:"+!_0"},p:[27,70,1746]},"}"]},f:["Plasma"]}," ",{p:[28,3,1790],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["filter_bz"],s:'_0?"check-square-o":"square-o"'},p:[28,20,1807]}],style:[{t:2,x:{r:["filter_bz"],s:'_0?"selected":null'},p:[28,74,1861]}],action:"bz_scrub",params:['{"id_tag": "',{t:2,r:"id_tag",p:[29,43,1939]},'", "val": ',{t:2,x:{r:["filter_bz"],s:"+!_0"},p:[29,63,1959]},"}"]},f:["BZ"]}," ",{p:[30,3,1995],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["filter_freon"],s:'_0?"check-square-o":"square-o"'},p:[30,20,2012]}],style:[{t:2,x:{r:["filter_freon"],s:'_0?"selected":null'},p:[30,77,2069]}],action:"freon_scrub",params:['{"id_tag": "',{t:2,r:"id_tag",p:[31,46,2153]},'", "val": ',{t:2,x:{r:["filter_freon"],s:"+!_0"},p:[31,66,2173]},"}"]},f:["Freon"]}," ",{p:[32,3,2215],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["filter_water_vapor"],s:'_0?"check-square-o":"square-o"'},p:[32,20,2232]}],style:[{t:2,x:{r:["filter_water_vapor"],s:'_0?"selected":null'},p:[32,83,2295]}],action:"water_vapor_scrub",params:['{"id_tag": "',{t:2,r:"id_tag",p:[33,52,2391]},'", "val": ',{t:2,x:{r:["filter_water_vapor"],s:"+!_0"},p:[33,72,2411]},"}"]},f:["Water Vapor"]}]}]}],n:52,r:"data.scrubbers",p:[7,3,144]},{t:4,n:51,f:[{p:[37,5,2522],t:7,e:"span",a:{"class":"bad"},f:["Error: No scrubbers connected."]}],r:"data.scrubbers"}]}]},r.exports.components=r.exports.components||{};var i={back:t(220)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,220:220}],223:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Air Status"},f:[{t:4,f:[{t:4,f:[{p:[4,7,110],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[4,26,129]}]},f:[{p:[5,6,146],t:7,e:"span",a:{"class":[{t:2,x:{r:["danger_level"],s:'_0==2?"bad":_0==1?"average":"good"'},p:[5,19,159]}]},f:[{t:2,x:{r:["value"],s:"Math.fixed(_0,2)"},p:[6,5,237]},{t:2,r:"unit",p:[6,29,261]}]}]}],n:52,r:"adata.environment_data",p:[3,5,70]}," ",{p:[10,5,322],t:7,e:"ui-section",a:{label:"Local Status"},f:[{p:[11,7,363],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.danger_level"],s:'_0==2?"bad bold":_0==1?"average bold":"good"'},p:[11,20,376]}]},f:[{t:2,x:{r:["data.danger_level"],s:'_0==2?"Danger (Internals Required)":_0==1?"Caution":"Optimal"'},p:[12,6,475]}]}]}," ",{p:[15,5,619],t:7,e:"ui-section",a:{label:"Area Status"},f:[{p:[16,7,659],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.atmos_alarm","data.fire_alarm"],s:'_0||_1?"bad bold":"good"'},p:[16,20,672]}]},f:[{t:2,x:{r:["data.atmos_alarm","fire_alarm"],s:'_0?"Atmosphere Alarm":_1?"Fire Alarm":"Nominal"'},p:[17,8,744]}]}]}],n:50,r:"data.environment_data",p:[2,3,35]},{t:4,n:51,f:[{p:[21,5,876],t:7,e:"ui-section",a:{label:"Warning"},f:[{p:[22,7,912],t:7,e:"span",a:{"class":"bad bold"},f:["Cannot obtain air sample for analysis."]}]}],r:"data.environment_data"}," ",{t:4,f:[{p:[26,5,1040],t:7,e:"ui-section",a:{label:"Warning"},f:[{p:[27,7,1076],t:7,e:"span",a:{"class":"bad bold"},f:["Safety measures offline. Device may exhibit abnormal behavior."]}]}],n:50,r:"data.emagged",p:[25,3,1014]}]}]},e.exports=a.extend(r.exports)},{205:205}],224:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.css=" th, td {\r\n padding-right: 16px;\r\n text-align: left;\r\n }",r.exports.template={v:3,t:[" ",{p:{button:[{p:[5,5,116],t:7,e:"back"}]},t:7,e:"ui-display",a:{title:"Alarm Thresholds",button:0},f:[" ",{p:[7,3,143],t:7,e:"table",f:[{p:[8,5,156],t:7,e:"thead",f:[{p:[8,12,163],t:7,e:"tr",f:[{p:[9,7,175],t:7,e:"th"}," ",{p:[10,7,192],t:7,e:"th",f:[{p:[10,11,196],t:7,e:"span",a:{"class":"bad"},f:["min2"]}]}," ",{p:[11,7,238],t:7,e:"th",f:[{p:[11,11,242],t:7,e:"span",a:{"class":"average"},f:["min1"]}]}," ",{p:[12,7,288],t:7,e:"th",f:[{p:[12,11,292],t:7,e:"span",a:{"class":"average"},f:["max1"]}]}," ",{p:[13,7,338],t:7,e:"th",f:[{p:[13,11,342],t:7,e:"span",a:{"class":"bad"},f:["max2"]}]}]}]}," ",{p:[15,5,401],t:7,e:"tbody",f:[{t:4,f:[{p:[16,32,441],t:7,e:"tr",f:[{p:[17,9,455],t:7,e:"th",f:[{t:3,r:"name",p:[17,13,459]}]}," ",{t:4,f:[{p:[18,27,502],t:7,e:"td",f:[{p:[19,11,518],t:7,e:"ui-button",a:{action:"threshold",params:['{"env": "',{t:2,r:"env",p:[19,58,565]},'", "var": "',{t:2,r:"val",p:[19,76,583]},'"}']},f:[{t:2,x:{r:["selected"],s:"Math.fixed(_0,2)"},p:[19,87,594]}]}]}],n:52,r:"settings",p:[18,9,484]}]}],n:52,r:"data.thresholds",p:[16,7,416]}]}," ",{p:[23,3,697],t:7,e:"table",f:[]}]}]}," "]},r.exports.components=r.exports.components||{};var i={back:t(220)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,220:220}],225:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:{button:[{p:[5,5,113],t:7,e:"back"}]},t:7,e:"ui-display",a:{title:"Vent Controls",button:0},f:[" ",{t:4,f:[{p:[8,5,166],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"long_name",p:[8,27,188]}]},f:[{p:[9,7,211],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[10,9,247],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["power"],s:'_0?"power-off":"close"'},p:[10,26,264]}],style:[{t:2,x:{r:["power"],s:'_0?"selected":null'},p:[10,68,306]}],action:"power",params:['{"id_tag": "',{t:2,r:"id_tag",p:[11,46,383]},'", "val": ',{t:2,x:{r:["power"],s:"+!_0"},p:[11,66,403]},"}"]},f:[{t:2,x:{r:["power"],s:'_0?"On":"Off"'},p:[11,80,417]}]}]}," ",{p:[13,7,482],t:7,e:"ui-section",a:{label:"Mode"},f:[{p:[14,9,517],t:7,e:"span",f:[{t:2,x:{r:["direction"],s:'_0=="release"?"Pressurizing":"Siphoning"'},p:[14,15,523]}]}]}," ",{p:[16,7,616],t:7,e:"ui-section",a:{label:"Pressure Regulator"},f:[{p:[17,9,665],t:7,e:"ui-button",a:{icon:"sign-in",style:[{t:2,x:{r:["incheck"],s:'_0?"selected":null'},p:[17,42,698]}],action:"incheck",params:['{"id_tag": "',{t:2,r:"id_tag",p:[18,48,779]},'", "val": ',{t:2,r:"checks",p:[18,68,799]},"}"]},f:["Internal"]}," ",{p:[19,9,842],t:7,e:"ui-button",a:{icon:"sign-out",style:[{t:2,x:{r:["excheck"],s:'_0?"selected":null'},p:[19,43,876]}],action:"excheck",params:['{"id_tag": "',{t:2,r:"id_tag",p:[20,48,957]},'", "val": ',{t:2,r:"checks",p:[20,68,977]},"}"]},f:["External"]}]}," ",{p:[22,7,1039],t:7,e:"ui-section",a:{label:"Target Pressure"},f:[{p:[23,9,1085],t:7,e:"ui-button",a:{icon:"pencil",action:"set_external_pressure",params:['{"id_tag": "',{t:2,r:"id_tag",p:[24,31,1172]},'"}']},f:[{t:2,x:{r:["external"],s:"Math.fixed(_0)"},p:[24,45,1186]}]}," ",{p:[25,9,1232],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["extdefault"],s:'_0?"disabled":null'},p:[25,42,1265]}],action:"reset_external_pressure",params:['{"id_tag": "',{t:2,r:"id_tag",p:[26,31,1365]},'"}']},f:["Reset"]}]}]}],n:52,r:"data.vents",p:[7,3,140]},{t:4,n:51,f:[{p:[30,5,1457],t:7,e:"span",a:{"class":"bad"},f:["Error: No vents connected."]}],r:"data.vents"}]}]},r.exports.components=r.exports.components||{};var i={back:t(220)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,220:220}],226:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.css=" table {\r\n width: 100%;\r\n border-spacing: 2px;\r\n }\r\n th {\r\n text-align: left;\r\n }\r\n td {\r\n vertical-align: top;\r\n }\r\n td .button {\r\n margin-top: 4px\r\n }",r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,3,16],t:7,e:"ui-section",f:[{p:[3,5,34],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.oneAccess"],s:'_0?"unlock":"lock"'},p:[3,22,51]}],action:"one_access"},f:[{t:2,x:{r:["data.oneAccess"],s:'_0?"One":"All"'},p:[3,82,111]}," Required"]}," ",{p:[4,5,172],t:7,e:"ui-button",a:{icon:"refresh",action:"clear"},f:["Clear"]}]}," ",{p:[6,3,251],t:7,e:"hr"}," ",{p:[7,3,260],t:7,e:"table",f:[{p:[8,3,271],t:7,e:"thead",f:[{p:[9,4,283],t:7,e:"tr",f:[{t:4,f:[{p:[10,5,315],t:7,e:"th",f:[{p:[10,9,319],t:7,e:"span",a:{"class":"highlight bold"},f:[{t:2,r:"name",p:[10,38,348]}]}]}],n:52,r:"data.regions",p:[9,8,287]}]}]}," ",{p:[13,3,403],t:7,e:"tbody",f:[{p:[14,4,415],t:7,e:"tr",f:[{t:4,f:[{p:[15,5,447],t:7,e:"td",f:[{t:4,f:[{p:[16,11,481],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["req"],s:'_0?"check-square-o":"square-o"'},p:[16,28,498]}],style:[{t:2,x:{r:["req"],s:'_0?"selected":null'},p:[16,76,546]}],action:"set",params:['{"access": "',{t:2,r:"id",p:[17,46,621]},'"}']},f:[{t:2,r:"name",p:[17,56,631]}]}," ",{p:[18,9,661],t:7,e:"br"}],n:52,r:"accesses",p:[15,9,451]}]}],n:52,r:"data.regions",p:[14,8,419]}]}]}]}]}," "]},e.exports=a.extend(r.exports)},{205:205}],227:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={data:{powerState:function(t){switch(t){case 2:return"good";case 1:return"average";default:return"bad"}}},computed:{malfAction:function(){switch(this.get("data.malfStatus")){case 1:return"hack";case 2:return"occupy";case 3:return"deoccupy"}},malfButton:function(){switch(this.get("data.malfStatus")){case 1:return"Override Programming";case 2:case 4:return"Shunt Core Process";case 3:return"Return to Main Core"}},malfIcon:function(){switch(this.get("data.malfStatus")){case 1:return"terminal";case 2:case 4:return"caret-square-o-down";case 3:return"caret-square-o-left"}},powerCellStatusState:function(){var t=this.get("data.powerCellStatus");return t>50?"good":t>25?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{t:4,f:[{p:[46,2,1206],t:7,e:"ui-notice",f:[{p:[47,3,1221],t:7,e:"b",f:[{p:[47,6,1224],t:7,e:"h3",f:["SYSTEM FAILURE"]}]}," ",{p:[48,3,1255],t:7,e:"i",f:["I/O regulators malfunction detected! Waiting for system reboot..."]},{p:[48,75,1327],t:7,e:"br"}," Automatic reboot in ",{t:2,r:"data.failTime",p:[49,23,1355]}," seconds... ",{p:[50,3,1387],t:7,e:"ui-button",a:{icon:"refresh",action:"reboot"},f:["Reboot Now"]},{p:[50,67,1451],t:7,e:"br"},{p:[50,71,1455],t:7,e:"br"},{p:[50,75,1459],t:7,e:"br"}]}],n:50,r:"data.failTime",p:[45,1,1182]},{t:4,n:51,f:[{p:[53,2,1491],t:7,e:"ui-notice",f:[{t:4,f:[{p:[55,3,1535],t:7,e:"ui-section",a:{label:"Interface Lock"},f:[{p:[56,5,1576],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.locked"],s:'_0?"lock":"unlock"'},p:[56,22,1593]}],action:"lock"},f:[{t:2,x:{r:["data.locked"],s:'_0?"Engaged":"Disengaged"'},p:[56,73,1644]}]}]}],n:50,r:"data.siliconUser",p:[54,4,1507]},{t:4,n:51,f:[{p:[59,3,1732],t:7,e:"span",f:["Swipe an ID card to ",{t:2,x:{r:["data.locked"],s:'_0?"unlock":"lock"'},p:[59,29,1758]}," this interface."]}],r:"data.siliconUser"}]}," ",{p:[62,2,1846],t:7,e:"ui-display",a:{title:"Power Status"},f:[{p:[63,4,1884],t:7,e:"ui-section",a:{label:"Main Breaker"},f:[{t:4,f:[{p:[65,5,1967],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.isOperating"],s:'_0?"good":"bad"'},p:[65,18,1980]}]},f:[{t:2,x:{r:["data.isOperating"],s:'_0?"On":"Off"'},p:[65,57,2019]}]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"},p:[64,3,1921]},{t:4,n:51,f:[{p:[67,5,2079],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isOperating"],s:'_0?"power-off":"close"'},p:[67,22,2096]}],style:[{t:2,x:{r:["data.isOperating"],s:'_0?"selected":null'},p:[67,75,2149]}],action:"breaker"},f:[{t:2,x:{r:["data.isOperating"],s:'_0?"On":"Off"'},p:[68,21,2212]}]}],x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"}}]}," ",{p:[71,4,2293],t:7,e:"ui-section",a:{label:"External Power"},f:[{p:[72,3,2332],t:7,e:"span",a:{"class":[{t:2,x:{r:["powerState","data.externalPower"],s:"_0(_1)"},p:[72,16,2345]}]},f:[{t:2,x:{r:["data.externalPower"],s:'_0==2?"Good":_0==1?"Low":"None"'},p:[72,52,2381]}]}]}," ",{p:[74,4,2490],t:7,e:"ui-section",a:{label:"Power Cell"},f:[{t:4,f:[{p:[76,5,2567],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.powerCellStatus",p:[76,38,2600]}],state:[{t:2,r:"powerCellStatusState",p:[76,71,2633]}]},f:[{t:2,x:{r:["adata.powerCellStatus"],s:"Math.fixed(_0)"},p:[76,97,2659]},"%"]}],n:50,x:{r:["data.powerCellStatus"],s:"_0!=null"},p:[75,3,2525]},{t:4,n:51,f:[{p:[78,5,2724],t:7,e:"span",a:{"class":"bad"},f:["Removed"]}],x:{r:["data.powerCellStatus"],s:"_0!=null"}}]}," ",{t:4,f:[{p:[82,3,2830],t:7,e:"ui-section",a:{label:"Charge Mode"},f:[{t:4,f:[{p:[84,4,2913],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.chargeMode"],s:'_0?"good":"bad"'},p:[84,17,2926]}]},f:[{t:2,x:{r:["data.chargeMode"],s:'_0?"Auto":"Off"'},p:[84,55,2964]}]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"},p:[83,5,2868]},{t:4,n:51,f:[{p:[86,4,3026],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.chargeMode"],s:'_0?"refresh":"close"'},p:[86,21,3043]}],style:[{t:2,x:{r:["data.chargeMode"],s:'_0?"selected":null'},p:[86,71,3093]}],action:"charge"},f:[{t:2,x:{r:["data.chargeMode"],s:'_0?"Auto":"Off"'},p:[87,22,3156]}]}],x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"}}," [",{p:[90,6,3236],t:7,e:"span",a:{"class":[{t:2,x:{r:["powerState","data.chargingStatus"],s:"_0(_1)"},p:[90,19,3249]}]},f:[{t:2,x:{r:["data.chargingStatus"],s:'_0==2?"Fully Charged":_0==1?"Charging":"Not Charging"'},p:[90,56,3286]}]},"]"]}],n:50,x:{r:["data.powerCellStatus"],s:"_0!=null"},p:[81,4,2790]}]}," ",{p:[94,2,3445],t:7,e:"ui-display",a:{title:"Power Channels"},f:[{t:4,f:[{p:[96,3,3517],t:7,e:"ui-section",a:{label:[{t:2,r:"title",p:[96,22,3536]}],nowrap:0},f:[{p:[97,5,3560],t:7,e:"div",a:{"class":"content"},f:[{t:2,x:{r:["@index","adata.powerChannels"],s:"Math.round(_1[_0].powerLoad)"},p:[97,26,3581]}," W"]}," ",{p:[98,5,3648],t:7,e:"div",a:{"class":"content"},f:[{p:[98,26,3669],t:7,e:"span",a:{"class":[{t:2,x:{r:["status"],s:'_0>=2?"good":"bad"'},p:[98,39,3682]}]},f:[{t:2,x:{r:["status"],s:'_0>=2?"On":"Off"'},p:[98,73,3716]}]}]}," ",{p:[99,5,3765],t:7,e:"div",a:{"class":"content"},f:["[",{p:[99,27,3787],t:7,e:"span",f:[{t:2,x:{r:["status"],s:'_0==1||_0==3?"Auto":"Manual"'},p:[99,33,3793]}]},"]"]}," ",{p:[100,5,3863],t:7,e:"div",a:{"class":"content",style:"float:right"},f:[{t:4,f:[{p:[102,6,3956],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["status"],s:'_0==1||_0==3?"selected":null'},p:[102,39,3989]}],action:"channel",params:[{t:2,r:"topicParams.auto",p:[103,30,4071]}]},f:["Auto"]}," ",{p:[104,6,4116],t:7,e:"ui-button",a:{icon:"power-off",state:[{t:2,x:{r:["status"],s:'_0==2?"selected":null'},p:[104,41,4151]}],action:"channel",params:[{t:2,r:"topicParams.on",p:[105,13,4218]}]},f:["On"]}," ",{p:[106,6,4259],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["status"],s:'_0==0?"selected":null'},p:[106,37,4290]}],action:"channel",params:[{t:2,r:"topicParams.off",p:[107,13,4357]}]},f:["Off"]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"!_0||_1"},p:[101,4,3909]}]}]}],n:52,r:"data.powerChannels",p:[95,4,3485]}," ",{p:[112,4,4453],t:7,e:"ui-section",a:{label:"Total Load"},f:[{p:[113,3,4488],t:7,e:"span",a:{"class":"bold"},f:[{t:2,x:{r:["adata.totalLoad"],s:"Math.round(_0)"},p:[113,22,4507]}," W"]}]}]}," ",{t:4,f:[{p:[117,4,4613],t:7,e:"ui-display",a:{title:"System Overrides"},f:[{p:[118,3,4654],t:7,e:"ui-button",a:{icon:"lightbulb-o",action:"overload"},f:["Overload"]}," ",{t:4,f:[{p:[120,5,4755],t:7,e:"ui-button",a:{icon:[{t:2,r:"malfIcon",p:[120,22,4772]}],state:[{t:2,x:{r:["data.malfStatus"],s:'_0==4?"disabled":null'},p:[120,43,4793]}],action:[{t:2,r:"malfAction",p:[120,97,4847]}]},f:[{t:2,r:"malfButton",p:[120,113,4863]}]}],n:50,r:"data.malfStatus",p:[119,3,4726]}]}],n:50,r:"data.siliconUser",p:[116,2,4584]}," ",{p:[124,2,4931],t:7,e:"ui-notice",f:[{p:[125,4,4947],t:7,e:"ui-section",a:{label:"Cover Lock"},f:[{t:4,f:[{p:[127,5,5028],t:7,e:"span",f:[{t:2,x:{r:["data.coverLocked"],s:'_0?"Engaged":"Disengaged"'},p:[127,11,5034]}]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"},p:[126,3,4982]},{t:4,n:51,f:[{p:[129,5,5106],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.coverLocked"],s:'_0?"lock":"unlock"'},p:[129,22,5123]}],action:"cover"},f:[{t:2,x:{r:["data.coverLocked"],s:'_0?"Engaged":"Disengaged"'},p:[129,79,5180]}]}],x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"}}]}]}],r:"data.failTime"}]},e.exports=a.extend(r.exports)},{205:205}],228:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Alarms"},f:[{p:[2,3,31],t:7,e:"ul",f:[{t:4,f:[{p:[4,7,72],t:7,e:"li",f:[{p:[4,11,76],t:7,e:"ui-button",a:{icon:"close",style:"danger",action:"clear",params:['{"zone": "',{t:2,r:".",p:[4,83,148]},'"}']},f:[{t:2,r:".",p:[4,92,157]}]}]}],n:52,r:"data.priority",p:[3,5,41]},{t:4,n:51,f:[{p:[6,7,201],t:7,e:"li",f:[{p:[6,11,205],t:7,e:"span",a:{"class":"good"},f:["No Priority Alerts"]}]}],r:"data.priority"}," ",{t:4,f:[{p:[9,7,303],t:7,e:"li",f:[{p:[9,11,307],t:7,e:"ui-button",a:{icon:"close",style:"caution",action:"clear",params:['{"zone": "',{t:2,r:".",p:[9,84,380]},'"}']},f:[{t:2,r:".",p:[9,93,389]}]}]}],n:52,r:"data.minor",p:[8,5,275]},{t:4,n:51,f:[{p:[11,7,433],t:7,e:"li",f:[{p:[11,11,437],t:7,e:"span",a:{"class":"good"},f:["No Minor Alerts"]}]}],r:"data.minor"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],229:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:[{t:2,x:{r:["data.tank","data.sensors.0.long_name"],s:"_0?_1:null"},p:[1,20,19]}]},f:[{t:4,f:[{p:[3,5,102],t:7,e:"ui-subdisplay",a:{title:[{t:2,x:{r:["data.tank","long_name"],s:"!_0?_1:null"},p:[3,27,124]}]},f:[{p:[4,7,167],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[5,3,200],t:7,e:"span",f:[{t:2,x:{r:["pressure"],s:"Math.fixed(_0,2)"},p:[5,9,206]}," kPa"]}]}," ",{t:4,f:[{p:[8,9,302],t:7,e:"ui-section",a:{label:"Temperature"},f:[{p:[9,11,346],t:7,e:"span",f:[{t:2,x:{r:["temperature"],s:"Math.fixed(_0,2)"},p:[9,17,352]}," K"]}]}],n:50,r:"temperature",p:[7,7,273]}," ",{t:4,f:[{p:[13,9,462],t:7,e:"ui-section",a:{label:[{t:2,r:"id",p:[13,28,481]}]},f:[{p:[14,5,495],t:7,e:"span",f:[{t:2,x:{r:["."],s:"Math.fixed(_0,2)"},p:[14,11,501]},"%"]}]}],n:52,i:"id",r:"gases",p:[12,4,434]}]}],n:52,r:"adata.sensors",p:[2,3,73]}]}," ",{t:4,f:[{p:{button:[{p:[23,5,704],t:7,e:"ui-button",a:{icon:"refresh",action:"reconnect"},f:["Reconnect"]}]},t:7,e:"ui-display",a:{title:"Controls",button:0},f:[" ",{p:[25,5,792],t:7,e:"ui-section",a:{label:"Input Injector"},f:[{p:[26,7,835],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.inputting"],s:'_0?"power-off":"close"'},p:[26,24,852]}],style:[{t:2,x:{r:["data.inputting"],s:'_0?"selected":null'},p:[26,75,903]}],action:"input"},f:[{t:2,x:{r:["data.inputting"],s:'_0?"Injecting":"Off"'},p:[27,9,968]}]}]}," ",{p:[29,5,1044],t:7,e:"ui-section",a:{label:"Input Rate"},f:[{p:[30,7,1083],t:7,e:"span",f:[{t:2,x:{r:["adata.inputRate"],s:"Math.fixed(_0)"},p:[30,13,1089]}," L/s"]}]}," ",{p:[32,5,1156],t:7,e:"ui-section",a:{label:"Output Regulator"},f:[{p:[33,7,1201],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.outputting"],s:'_0?"power-off":"close"'},p:[33,24,1218]}],style:[{t:2,x:{r:["data.outputting"],s:'_0?"selected":null'},p:[33,76,1270]}],action:"output"},f:[{t:2,x:{r:["data.outputting"],s:'_0?"Open":"Closed"'},p:[34,9,1337]}]}]}," ",{p:[36,5,1412],t:7,e:"ui-section",a:{label:"Output Pressure"},f:[{p:[37,7,1456],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure"},f:[{t:2,x:{r:["adata.outputPressure"],s:"Math.round(_0)"},p:[37,50,1499]}," kPa"]}]}]}],n:50,r:"data.tank",p:[20,1,618]}]},e.exports=a.extend(r.exports)},{205:205}],230:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,3,16],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[3,5,48],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[3,22,65]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[3,66,109]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[4,22,164]}]}]}," ",{p:[6,3,223],t:7,e:"ui-section",a:{label:"Output Pressure"},f:[{p:[7,5,265],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[8,5,360],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.pressure","data.max_pressure"],s:'_0==_1?"disabled":null'},p:[8,35,390]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}," ",{p:[9,5,518],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.round(_0)"},p:[9,11,524]}," kPa"]}]}," ",{p:[11,3,586],t:7,e:"ui-section",a:{label:"Filter"},f:[{p:[12,5,619],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0==""?"selected":null'},p:[12,23,637]}],action:"filter",params:'{"mode": ""}'},f:["Nothing"]}," ",{p:[14,5,755],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="plasma"?"selected":null'},p:[14,23,773]}],action:"filter",params:'{"mode": "plasma"}'},f:["Plasma"]}," ",{p:[16,5,902],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="o2"?"selected":null'},p:[16,23,920]}],action:"filter",params:'{"mode": "o2"}'},f:["O2"]}," ",{p:[18,5,1037],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="n2"?"selected":null'},p:[18,23,1055]}],action:"filter",params:'{"mode": "n2"}'},f:["N2"]}," ",{p:[20,5,1172],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="co2"?"selected":null'},p:[20,23,1190]}],action:"filter",params:'{"mode": "co2"}'},f:["CO2"]}," ",{p:[22,5,1310],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="n2o"?"selected":null'},p:[22,23,1328]}],action:"filter",params:'{"mode": "n2o"}'},f:["N2O"]}," ",{p:[24,2,1445],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="bz"?"selected":null'},p:[24,20,1463]}],action:"filter",params:'{"mode": "bz"}'},f:["BZ"]}," ",{p:[26,2,1578],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="freon"?"selected":null'},p:[26,20,1596]}],action:"filter",params:'{"mode": "freon"}'},f:["Freon"]}," ",{p:[28,2,1720],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="water_vapor"?"selected":null'},p:[28,20,1738]}],action:"filter",params:'{"mode": "water_vapor"}'},f:["Water Vapor"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],231:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,3,16],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[3,5,48],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[3,22,65]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[3,66,109]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[4,22,164]}]}]}," ",{p:[6,3,223],t:7,e:"ui-section",a:{label:"Output Pressure"},f:[{p:[7,5,265],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[8,5,360],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.set_pressure","data.max_pressure"],s:'_0==_1?"disabled":null'},p:[8,35,390]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}," ",{p:[9,5,522],t:7,e:"span",f:[{t:2,x:{r:["adata.set_pressure"],s:"Math.round(_0)"},p:[9,11,528]}," kPa"]}]}," ",{p:[11,3,594],t:7,e:"ui-section",a:{label:"Node 1"},f:[{p:[12,5,627],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.node1_concentration"],s:'_0==0?"disabled":null'},p:[12,44,666]}],action:"node1",params:'{"concentration": -0.1}'}}," ",{p:[14,5,783],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.node1_concentration"],s:'_0==0?"disabled":null'},p:[14,39,817]}],action:"node1",params:'{"concentration": -0.01}'}}," ",{p:[16,5,935],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.node1_concentration"],s:'_0==100?"disabled":null'},p:[16,38,968]}],action:"node1",params:'{"concentration": 0.01}'}}," ",{p:[18,5,1087],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.node1_concentration"],s:'_0==100?"disabled":null'},p:[18,43,1125]}],action:"node1",params:'{"concentration": 0.1}'}}," ",{p:[20,5,1243],t:7,e:"span",f:[{t:2,x:{r:["adata.node1_concentration"],s:"Math.round(_0)"},p:[20,11,1249]},"%"]}]}," ",{p:[22,3,1319],t:7,e:"ui-section",a:{label:"Node 2"},f:[{p:[23,5,1352],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.node2_concentration"],s:'_0==0?"disabled":null'},p:[23,44,1391]}],action:"node2",params:'{"concentration": -0.1}'}}," ",{p:[25,5,1508],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.node2_concentration"],s:'_0==0?"disabled":null'},p:[25,39,1542]}],action:"node2",params:'{"concentration": -0.01}'}}," ",{p:[27,5,1660],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.node2_concentration"],s:'_0==100?"disabled":null'},p:[27,38,1693]}],action:"node2",params:'{"concentration": 0.01}'}}," ",{p:[29,5,1812],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.node2_concentration"],s:'_0==100?"disabled":null'},p:[29,43,1850]}],action:"node2",params:'{"concentration": 0.1}'}}," ",{p:[31,5,1968],t:7,e:"span",f:[{t:2,x:{r:["adata.node2_concentration"],s:"Math.round(_0)"},p:[31,11,1974]},"%"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],232:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,3,16],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[3,5,48],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[3,22,65]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[3,66,109]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[4,22,164]}]}]}," ",{t:4,f:[{p:[7,5,250],t:7,e:"ui-section",a:{label:"Transfer Rate"},f:[{p:[8,7,292],t:7,e:"ui-button",a:{icon:"pencil",action:"rate",params:'{"rate": "input"}'},f:["Set"]}," ",{p:[9,7,381],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.rate","data.max_rate"],s:'_0==_1?"disabled":null'},p:[9,37,411]}],action:"rate",params:'{"rate": "max"}'},f:["Max"]}," ",{p:[10,7,525],t:7,e:"span",f:[{t:2,x:{r:["adata.rate"],s:"Math.round(_0)"},p:[10,13,531]}," L/s"]}]}],n:50,r:"data.max_rate",p:[6,3,223]},{t:4,n:51,f:[{ +-p:[13,5,605],t:7,e:"ui-section",a:{label:"Output Pressure"},f:[{p:[14,7,649],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[15,7,746],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.pressure","data.max_pressure"],s:'_0==_1?"disabled":null'},p:[15,37,776]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}," ",{p:[16,7,906],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.round(_0)"},p:[16,13,912]}," kPa"]}]}],r:"data.max_rate"}]}]},e.exports=a.extend(r.exports)},{205:205}],233:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:{button:[{p:[3,5,67],t:7,e:"ui-button",a:{icon:"clock-o",style:[{t:2,x:{r:["data.timing"],s:'_0?"selected":null'},p:[3,38,100]}],action:[{t:2,x:{r:["data.timing"],s:'_0?"stop":"start"'},p:[3,83,145]}]},f:[{t:2,x:{r:["data.timing"],s:'_0?"Stop":"Start"'},p:[3,119,181]}]}," ",{p:[4,5,233],t:7,e:"ui-button",a:{icon:"lightbulb-o",action:"flash",style:[{t:2,x:{r:["data.flash_charging"],s:'_0?"disabled":null'},p:[4,57,285]}]},f:[{t:2,x:{r:["data.flash_charging"],s:'_0?"Recharging":"Flash"'},p:[4,102,330]}]}]},t:7,e:"ui-display",a:{title:"Cell Timer",button:0},f:[" ",{p:[6,3,410],t:7,e:"ui-section",f:[{p:[7,5,428],t:7,e:"ui-button",a:{icon:"fast-backward",action:"time",params:'{"adjust": -600}'}}," ",{p:[8,5,518],t:7,e:"ui-button",a:{icon:"backward",action:"time",params:'{"adjust": -100}'}}," ",{p:[9,5,603],t:7,e:"span",f:[{t:2,x:{r:["text","data.minutes"],s:"_0.zeroPad(_1,2)"},p:[9,11,609]},":",{t:2,x:{r:["text","data.seconds"],s:"_0.zeroPad(_1,2)"},p:[9,45,643]}]}," ",{p:[10,5,689],t:7,e:"ui-button",a:{icon:"forward",action:"time",params:'{"adjust": 100}'}}," ",{p:[11,5,772],t:7,e:"ui-button",a:{icon:"fast-forward",action:"time",params:'{"adjust": 600}'}}]}," ",{p:[13,3,875],t:7,e:"ui-section",f:[{p:[14,7,895],t:7,e:"ui-button",a:{icon:"hourglass-start",action:"preset",params:'{"preset": "short"}'},f:["Short"]}," ",{p:[15,7,999],t:7,e:"ui-button",a:{icon:"hourglass-start",action:"preset",params:'{"preset": "medium"}'},f:["Medium"]}," ",{p:[16,7,1105],t:7,e:"ui-button",a:{icon:"hourglass-start",action:"preset",params:'{"preset": "long"}'},f:["Long"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],234:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,23],t:7,e:"ui-notice",f:[{t:2,r:"data.notice",p:[3,5,40]}]}],n:50,r:"data.notice",p:[1,1,0]},{p:[6,1,82],t:7,e:"ui-display",a:{title:"Bluespace Artillery Control",button:0},f:[{t:4,f:[{p:[8,3,167],t:7,e:"ui-section",a:{label:"Target"},f:[{p:[9,5,200],t:7,e:"ui-button",a:{icon:"crosshairs",action:"recalibrate"},f:[{t:2,r:"data.target",p:[9,55,250]}]}]}," ",{p:[11,3,298],t:7,e:"ui-section",a:{label:"Controls"},f:[{t:4,f:[{p:[13,3,356],t:7,e:"ui-notice",f:[{p:[14,4,372],t:7,e:"span",f:["Bluespace Artillery firing protocols must be globally unlocked from two keycard authentication devices first!"]}]}],n:50,x:{r:["data.unlocked"],s:"!_0"},p:[12,2,330]},{t:4,n:51,f:[{p:[17,3,525],t:7,e:"ui-button",a:{icon:"warning",state:[{t:2,x:{r:["data.ready"],s:'_0?null:"disabled"'},p:[17,36,558]}],action:"fire"},f:["FIRE!"]}],x:{r:["data.unlocked"],s:"!_0"}}]}],n:50,r:"data.connected",p:[7,3,141]}," ",{t:4,f:[{p:[22,3,694],t:7,e:"ui-section",a:{label:"Maintenance"},f:[{p:[23,7,734],t:7,e:"ui-button",a:{icon:"wrench",action:"build"},f:["Complete Deployment."]}]}],n:50,x:{r:["data.connected"],s:"!_0"},p:[21,3,667]}]}]},e.exports=a.extend(r.exports)},{205:205}],235:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-notice",f:[{p:[2,3,15],t:7,e:"span",f:["The regulator ",{t:2,x:{r:["data.hasHoldingTank"],s:'_0?"is":"is not"'},p:[2,23,35]}," connected to a tank."]}]}," ",{p:{button:[{p:[6,5,185],t:7,e:"ui-button",a:{icon:"pencil",action:"relabel"},f:["Relabel"]}]},t:7,e:"ui-display",a:{title:"Canister",button:0},f:[" ",{p:[8,3,266],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[9,5,301],t:7,e:"span",f:[{t:2,x:{r:["adata.tankPressure"],s:"Math.round(_0)"},p:[9,11,307]}," kPa"]}]}," ",{p:[11,3,373],t:7,e:"ui-section",a:{label:"Port"},f:[{p:[12,5,404],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.portConnected"],s:'_0?"good":"average"'},p:[12,18,417]}]},f:[{t:2,x:{r:["data.portConnected"],s:'_0?"Connected":"Not Connected"'},p:[12,63,462]}]}]}," ",{t:4,f:[{p:[15,3,573],t:7,e:"ui-section",a:{label:"Access"},f:[{p:[16,7,608],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.restricted"],s:'_0?"lock":"unlock"'},p:[16,24,625]}],style:[{t:2,x:{r:[],s:'"caution"'},p:[17,14,680]}],action:"restricted"},f:[{t:2,x:{r:["data.restricted"],s:'_0?"Restricted to Engineering":"Public"'},p:[18,27,722]}]}]}],n:50,r:"data.isPrototype",p:[14,3,544]}]}," ",{p:[22,1,839],t:7,e:"ui-display",a:{title:"Valve"},f:[{p:[23,3,869],t:7,e:"ui-section",a:{label:"Release Pressure"},f:[{p:[24,5,912],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.minReleasePressure",p:[24,18,925]}],max:[{t:2,r:"data.maxReleasePressure",p:[24,52,959]}],value:[{t:2,r:"data.releasePressure",p:[25,14,1002]}]},f:[{t:2,x:{r:["adata.releasePressure"],s:"Math.round(_0)"},p:[25,40,1028]}," kPa"]}]}," ",{p:[27,3,1099],t:7,e:"ui-section",a:{label:"Pressure Regulator"},f:[{p:[28,5,1144],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.releasePressure","data.defaultReleasePressure"],s:'_0!=_1?null:"disabled"'},p:[28,38,1177]}],action:"pressure",params:'{"pressure": "reset"}'},f:["Reset"]}," ",{p:[30,5,1333],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.releasePressure","data.minReleasePressure"],s:'_0>_1?null:"disabled"'},p:[30,36,1364]}],action:"pressure",params:'{"pressure": "min"}'},f:["Min"]}," ",{p:[32,5,1511],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[33,5,1606],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.releasePressure","data.maxReleasePressure"],s:'_0<_1?null:"disabled"'},p:[33,35,1636]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}]}," ",{p:[36,3,1798],t:7,e:"ui-section",a:{label:"Valve"},f:[{p:[37,5,1830],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.valveOpen"],s:'_0?"unlock":"lock"'},p:[37,22,1847]}],style:[{t:2,x:{r:["data.valveOpen","data.hasHoldingTank"],s:'_0?_1?"caution":"danger":null'},p:[38,14,1901]}],action:"valve"},f:[{t:2,x:{r:["data.valveOpen"],s:'_0?"Open":"Closed"'},p:[39,22,1995]}]}]}]}," ",{t:4,f:[{p:[42,1,2090],t:7,e:"ui-display",a:{title:"Valve Toggle Timer"},f:[{t:4,f:[{p:[44,5,2155],t:7,e:"ui-section",a:{label:"Adjust Timer"},f:[{p:[45,7,2196],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.timer_is_not_default"],s:'_0?null:"disabled"'},p:[45,40,2229]}],action:"timer",params:'{"change": "reset"}'},f:["Reset"]}," ",{p:[47,7,2358],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.timer_is_not_min"],s:'_0?null:"disabled"'},p:[47,38,2389]}],action:"timer",params:'{"change": "decrease"}'},f:["Decrease"]}," ",{p:[49,7,2520],t:7,e:"ui-button",a:{icon:"pencil",state:[{t:2,x:{r:[],s:'"disabled"'},p:[49,39,2552]}],action:"timer",params:'{"change": "input"}'},f:["Set"]}," ",{p:[51,7,2637],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.timer_is_not_max"],s:'_0?null:"disabled"'},p:[51,37,2667]}],action:"timer",params:'{"change": "increase"}'},f:["Increase"]}]}],n:51,r:"data.timing",p:[43,3,2133]}," ",{p:[55,3,2833],t:7,e:"ui-section",a:{label:"Timer"},f:[{p:[56,6,2866],t:7,e:"ui-button",a:{icon:"clock-o",style:[{t:2,x:{r:["data.timing"],s:'_0?"danger":"caution"'},p:[56,39,2899]}],action:"toggle_timer"},f:[{t:2,x:{r:["data.timing"],s:'_0?"On":"Off"'},p:[57,30,2969]}]}," ",{p:[59,2,3017],t:7,e:"ui-section",a:{label:"Time until Valve Toggle"},f:[{p:[60,2,3064],t:7,e:"span",f:[{t:2,x:{r:["data.timing","data.time_left","data.timer_set"],s:"_0?_1:_2"},p:[60,8,3070]}]}]}]}]}],n:50,r:"data.isPrototype",p:[41,1,2062]},{p:{button:[{t:4,f:[{p:[69,7,3277],t:7,e:"ui-button",a:{icon:"eject",style:[{t:2,x:{r:["data.valveOpen"],s:'_0?"danger":null'},p:[69,38,3308]}],action:"eject"},f:["Eject"]}],n:50,r:"data.hasHoldingTank",p:[68,5,3242]}]},t:7,e:"ui-display",a:{title:"Holding Tank",button:0},f:[" ",{t:4,f:[{p:[73,3,3442],t:7,e:"ui-section",a:{label:"Label"},f:[{t:2,r:"data.holdingTank.name",p:[74,4,3473]}]}," ",{p:[76,3,3519],t:7,e:"ui-section",a:{label:"Pressure"},f:[{t:2,x:{r:["adata.holdingTank.tankPressure"],s:"Math.round(_0)"},p:[77,4,3553]}," kPa"]}],n:50,r:"data.hasHoldingTank",p:[72,3,3411]},{t:4,n:51,f:[{p:[80,3,3635],t:7,e:"ui-section",f:[{p:[81,4,3652],t:7,e:"span",a:{"class":"average"},f:["No Holding Tank"]}]}],r:"data.hasHoldingTank"}]}]},e.exports=a.extend(r.exports)},{205:205}],236:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={computed:{tabs:function(){return Object.keys(this.get("data.supplies"))}}}}(r),r.exports.template={v:3,t:[" ",{p:[11,1,158],t:7,e:"ui-display",a:{title:"Cargo"},f:[{p:[12,3,188],t:7,e:"ui-section",a:{label:"Shuttle"},f:[{t:4,f:[{p:[14,7,270],t:7,e:"ui-button",a:{action:"send"},f:[{t:2,r:"data.location",p:[14,32,295]}]}],n:50,x:{r:["data.docked","data.requestonly"],s:"_0&&!_1"},p:[13,5,222]},{t:4,n:51,f:[{p:[16,7,346],t:7,e:"span",f:[{t:2,r:"data.location",p:[16,13,352]}]}],x:{r:["data.docked","data.requestonly"],s:"_0&&!_1"}}]}," ",{p:[19,3,410],t:7,e:"ui-section",a:{label:"Credits"},f:[{p:[20,5,444],t:7,e:"span",f:[{t:2,x:{r:["adata.points"],s:"Math.floor(_0)"},p:[20,11,450]}]}]}," ",{p:[22,3,506],t:7,e:"ui-section",a:{label:"Centcom Message"},f:[{p:[23,7,550],t:7,e:"span",f:[{t:2,r:"data.message",p:[23,13,556]}]}]}," ",{t:4,f:[{p:[26,5,644],t:7,e:"ui-section",a:{label:"Loan"},f:[{t:4,f:[{p:[28,9,716],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.away","data.docked"],s:'_0&&_1?null:"disabled"'},p:[29,17,744]}],action:"loan"},f:["Loan Shuttle"]}],n:50,x:{r:["data.loan_dispatched"],s:"!_0"},p:[27,7,677]},{t:4,n:51,f:[{p:[32,9,868],t:7,e:"span",a:{"class":"bad"},f:["Loaned to Centcom"]}],x:{r:["data.loan_dispatched"],s:"!_0"}}]}],n:50,x:{r:["data.loan","data.requestonly"],s:"_0&&!_1"},p:[25,3,600]}]}," ",{t:4,f:[{p:{button:[{p:[40,7,1066],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["data.cart.length"],s:'_0?null:"disabled"'},p:[40,38,1097]}],action:"clear"},f:["Clear"]}]},t:7,e:"ui-display",a:{title:"Cart",button:0},f:[" ",{t:4,f:[{p:[43,7,1222],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:[{p:[44,9,1263],t:7,e:"div",a:{"class":"content"},f:["#",{t:2,r:"id",p:[44,31,1285]}]}," ",{p:[45,9,1307],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"object",p:[45,30,1328]}]}," ",{p:[46,9,1354],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"cost",p:[46,30,1375]}," Credits"]}," ",{p:[47,9,1407],t:7,e:"div",a:{"class":"content"},f:[{p:[48,11,1440],t:7,e:"ui-button",a:{icon:"minus",action:"remove",params:['{"id": "',{t:2,r:"id",p:[48,67,1496]},'"}']}}]}]}],n:52,r:"data.cart",p:[42,5,1195]},{t:4,n:51,f:[{p:[52,7,1566],t:7,e:"span",f:["Nothing in Cart"]}],r:"data.cart"}]}],n:50,x:{r:["data.requestonly"],s:"!_0"},p:[37,1,972]},{p:{button:[{t:4,f:[{p:[59,7,1735],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["data.requests.length"],s:'_0?null:"disabled"'},p:[59,38,1766]}],action:"denyall"},f:["Clear"]}],n:50,x:{r:["data.requestonly"],s:"!_0"},p:[58,5,1702]}]},t:7,e:"ui-display",a:{title:"Requests",button:0},f:[" ",{t:4,f:[{p:[63,5,1908],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:[{p:[64,7,1947],t:7,e:"div",a:{"class":"content"},f:["#",{t:2,r:"id",p:[64,29,1969]}]}," ",{p:[65,7,1989],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"object",p:[65,28,2010]}]}," ",{p:[66,7,2034],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"cost",p:[66,28,2055]}," Credits"]}," ",{p:[67,7,2085],t:7,e:"div",a:{"class":"content"},f:["By ",{t:2,r:"orderer",p:[67,31,2109]}]}," ",{p:[68,7,2134],t:7,e:"div",a:{"class":"content"},f:["Comment: ",{t:2,r:"reason",p:[68,37,2164]}]}," ",{t:4,f:[{p:[70,9,2223],t:7,e:"div",a:{"class":"content"},f:[{p:[71,11,2256],t:7,e:"ui-button",a:{icon:"check",action:"approve",params:['{"id": "',{t:2,r:"id",p:[71,68,2313]},'"}']}}," ",{p:[72,11,2336],t:7,e:"ui-button",a:{icon:"close",action:"deny",params:['{"id": "',{t:2,r:"id",p:[72,65,2390]},'"}']}}]}],n:50,x:{r:["data.requestonly"],s:"!_0"},p:[69,7,2188]}]}],n:52,r:"data.requests",p:[62,3,1879]},{t:4,n:51,f:[{p:[77,7,2473],t:7,e:"span",f:["No Requests"]}],r:"data.requests"}]}," ",{p:[80,1,2529],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"tabs",p:[80,16,2544]}]},f:[{t:4,f:[{p:[82,5,2587],t:7,e:"tab",a:{name:[{t:2,r:"name",p:[82,16,2598]}]},f:[{t:4,f:[{p:[84,9,2641],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[84,28,2660]}],candystripe:0,right:0},f:[{p:[85,11,2700],t:7,e:"ui-button",a:{action:"add",params:['{"id": "',{t:2,r:"id",p:[85,51,2740]},'"}']},f:[{t:2,r:"cost",p:[85,61,2750]}," Credits"]}]}],n:52,r:"packs",p:[83,7,2616]}]}],n:52,r:"data.supplies",p:[81,3,2558]}]}]},e.exports=a.extend(r.exports)},{205:205}],237:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Cellular Emporium",button:0},f:[{p:[2,3,49],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.can_readapt"],s:'_0?null:"disabled"'},p:[2,36,82]}],action:"readapt"},f:["Readapt"]}," ",{p:[4,3,169],t:7,e:"ui-section",a:{label:"Genetic Points Remaining",right:0},f:[{t:2,r:"data.genetic_points_remaining",p:[5,5,226]}]}]}," ",{p:[8,1,293],t:7,e:"ui-display",f:[{t:4,f:[{p:[10,3,335],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[10,22,354]}],candystripe:0,right:0},f:[{p:[11,5,388],t:7,e:"span",f:[{t:2,r:"desc",p:[11,11,394]}]}," ",{p:[12,5,415],t:7,e:"span",f:[{t:2,r:"helptext",p:[12,11,421]}]}," ",{p:[13,5,446],t:7,e:"span",f:["Cost: ",{t:2,r:"dna_cost",p:[13,17,458]}]}," ",{p:[14,5,483],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["owned","can_purchase"],s:'_0?"selected":_1?null:"disabled"'},p:[15,14,508]}],action:"evolve",params:['{"name": "',{t:2,r:"name",p:[17,25,615]},'"}']},f:[{t:2,x:{r:["owned"],s:'_0?"Evolved":"Evolve"'},p:[18,7,635]}]}]}],n:52,r:"data.abilities",p:[9,1,307]},{t:4,f:[{p:[23,3,738],t:7,e:"span",a:{"class":"warning"},f:["No abilities availible."]}],n:51,r:"data.abilities",p:[22,1,715]}]}]},e.exports=a.extend(r.exports)},{205:205}],238:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[2,3,31],t:7,e:"ui-section",a:{label:"Energy"},f:[{p:[3,5,64],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.maxEnergy",p:[3,26,85]}],value:[{t:2,r:"data.energy",p:[3,53,112]}]},f:[{t:2,x:{r:["adata.energy"],s:"Math.fixed(_0)"},p:[3,70,129]}," Units"]}]}]}," ",{p:{button:[{t:4,f:[{p:[9,7,315],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.amount","."],s:'_0==_1?"selected":null'},p:[9,37,345]}],action:"amount",params:['{"target": ',{t:2,r:".",p:[9,114,422]},"}"]},f:[{t:2,r:".",p:[9,122,430]}]}],n:52,r:"data.beakerTransferAmounts",p:[8,5,271]}]},t:7,e:"ui-display",a:{title:"Dispense",button:0},f:[" ",{p:[12,3,482],t:7,e:"ui-section",f:[{t:4,f:[{p:[14,7,532],t:7,e:"ui-button",a:{grid:0,icon:"tint",action:"dispense",params:['{"reagent": "',{t:2,r:"id",p:[14,74,599]},'"}']},f:[{t:2,r:"title",p:[14,84,609]}]}],n:52,r:"data.chemicals",p:[13,5,500]}]}]}," ",{p:{button:[{t:4,f:[{p:[21,7,786],t:7,e:"ui-button",a:{icon:"minus",action:"remove",params:['{"amount": ',{t:2,r:".",p:[21,66,845]},"}"]},f:[{t:2,r:".",p:[21,74,853]}]}],n:52,r:"data.beakerTransferAmounts",p:[20,5,742]}," ",{p:[23,5,891],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[23,36,922]}],action:"eject"},f:["Eject"]}]},t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[" ",{p:[25,3,1019],t:7,e:"ui-section",a:{label:"Contents"},f:[{t:4,f:[{p:[27,7,1089],t:7,e:"span",f:[{t:2,x:{r:["adata.beakerCurrentVolume"],s:"Math.round(_0)"},p:[27,13,1095]},"/",{t:2,r:"data.beakerMaxVolume",p:[27,55,1137]}," Units"]}," ",{p:[28,7,1182],t:7,e:"br"}," ",{t:4,f:[{p:[30,9,1235],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[30,52,1278]}," units of ",{t:2,r:"name",p:[30,87,1313]}]},{p:[30,102,1328],t:7,e:"br"}],n:52,r:"adata.beakerContents",p:[29,7,1195]},{t:4,n:51,f:[{p:[32,9,1359],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"adata.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[26,5,1054]},{t:4,n:51,f:[{p:[35,7,1435],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],239:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Thermostat"},f:[{p:[2,3,35],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[3,5,67],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isActive"],s:'_0?"power-off":"close"'},p:[3,22,84]}],style:[{t:2,x:{r:["data.isActive"],s:'_0?"selected":null'},p:[4,10,137]}],state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[5,10,186]}],action:"power"},f:[{t:2,x:{r:["data.isActive"],s:'_0?"On":"Off"'},p:[6,18,249]}]}]}," ",{p:[8,3,314],t:7,e:"ui-section",a:{label:"Target"},f:[{p:[9,4,346],t:7,e:"ui-button",a:{icon:"pencil",action:"temperature",params:'{"target": "input"}'},f:[{t:2,x:{r:["adata.targetTemp"],s:"Math.round(_0)"},p:[9,79,421]}," K"]}]}]}," ",{p:{button:[{p:[14,5,564],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[14,36,595]}],action:"eject"},f:["Eject"]}]},t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[" ",{p:[16,3,692],t:7,e:"ui-section",a:{label:"Contents"},f:[{t:4,f:[{p:[18,7,762],t:7,e:"span",f:["Temperature: ",{t:2,x:{r:["adata.currentTemp"],s:"Math.round(_0)"},p:[18,26,781]}," K"]}," ",{p:[19,7,831],t:7,e:"br"}," ",{t:4,f:[{p:[21,9,885],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[21,52,928]}," units of ",{t:2,r:"name",p:[21,87,963]}]},{p:[21,102,978],t:7,e:"br"}],n:52,r:"adata.beakerContents",p:[20,7,845]},{t:4,n:51,f:[{p:[23,9,1009],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"adata.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[17,5,727]},{t:4,n:51,f:[{p:[26,7,1085],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],240:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,2,32],t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[{p:[3,3,70],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?"Eject":"close"'},p:[3,20,87]}],style:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?"selected":null'},p:[4,11,143]}],state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[5,11,199]}],action:"eject"},f:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?"Eject and Clear Buffer":"No beaker"'},p:[7,5,268]}]}," ",{p:[10,3,357],t:7,e:"ui-section",f:[{t:4,f:[{t:4,f:[{p:[13,6,443],t:7,e:"ui-section",a:{label:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[13,25,462]}," units of ",{t:2,r:"name",p:[13,60,497]}],nowrap:0},f:[{p:[14,7,522],t:7,e:"div",a:{"class":"content",style:"float:right"},f:[{p:[15,8,572],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[15,61,625]},'", "amount": 1}']},f:["1"]}," ",{p:[16,8,670],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[16,61,723]},'", "amount": 5}']},f:["5"]}," ",{p:[17,8,768],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[17,61,821]},'", "amount": 10}']},f:["10"]}," ",{p:[18,8,868],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[18,61,921]},'", "amount": 1000}']},f:["All"]}," ",{p:[19,8,971],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[19,61,1024]},'", "amount": -1}']},f:["Custom"]}," ",{p:[20,8,1075],t:7,e:"ui-button",a:{action:"analyze",params:['{"id": "',{t:2,r:"id",p:[20,52,1119]},'"}']},f:["Analyze"]}]}]}],n:52,r:"data.beakerContents",p:[12,5,407]},{t:4,n:51,f:[{p:[24,5,1201],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"data.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[11,4,374]},{t:4,n:51,f:[{p:[27,5,1272],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}," ",{p:[32,2,1360],t:7,e:"ui-display",a:{title:"Buffer"},f:[{p:[33,3,1391],t:7,e:"ui-button",a:{action:"toggleMode",state:[{t:2,x:{r:["data.mode"],s:'_0?null:"selected"'},p:[33,41,1429]}]},f:["Destroy"]}," ",{p:[34,3,1487],t:7,e:"ui-button",a:{action:"toggleMode",state:[{t:2,x:{r:["data.mode"],s:'_0?"selected":null'},p:[34,41,1525]}]},f:["Transfer to Beaker"]}," ",{p:[35,3,1594],t:7,e:"ui-section",f:[{t:4,f:[{p:[37,5,1646],t:7,e:"ui-section",a:{label:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[37,24,1665]}," units of ",{t:2,r:"name",p:[37,59,1700]}],nowrap:0},f:[{p:[38,6,1724],t:7,e:"div",a:{"class":"content",style:"float:right"},f:[{p:[39,7,1773],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[39,62,1828]},'", "amount": 1}']},f:["1"]}," ",{p:[40,7,1872],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[40,62,1927]},'", "amount": 5}']},f:["5"]}," ",{p:[41,7,1971],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[41,62,2026]},'", "amount": 10}']},f:["10"]}," ",{p:[42,7,2072],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[42,62,2127]},'", "amount": 1000}']},f:["All"]}," ",{p:[43,7,2176],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[43,62,2231]},'", "amount": -1}']},f:["Custom"]}," ",{p:[44,7,2281],t:7,e:"ui-button",a:{action:"analyze",params:['{"id": "',{t:2,r:"id",p:[44,51,2325]},'"}']},f:["Analyze"]}]}]}],n:52,r:"data.bufferContents",p:[36,4,1611]}]}]}," ",{t:4,f:[{p:[52,3,2461],t:7,e:"ui-display",a:{title:"Pills, Bottles and Patches"},f:[{t:4,f:[{p:[54,5,2551],t:7,e:"ui-button",a:{action:"ejectp",state:[{t:2,x:{r:["data.isPillBottleLoaded"],s:'_0?null:"disabled"'},p:[54,39,2585]}]},f:[{t:2,x:{r:["data.isPillBottleLoaded"],s:'_0?"Eject":"No Pill bottle loaded"'},p:[54,88,2634]}]}," ",{p:[55,5,2715],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.pillBotContent",p:[55,27,2737]},"/",{t:2,r:"data.pillBotMaxContent",p:[55,51,2761]}]}],n:50,r:"data.isPillBottleLoaded",p:[53,4,2514]},{t:4,n:51,f:[{p:[57,5,2813],t:7,e:"span",a:{"class":"average"},f:["No Pillbottle"]}],r:"data.isPillBottleLoaded"}," ",{p:[60,4,2877],t:7,e:"br"}," ",{p:[61,4,2887],t:7,e:"br"}," ",{p:[62,4,2897],t:7,e:"ui-button",a:{action:"createPill",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[62,63,2956]}]},f:["Create Pill (max 50µ)"]}," ",{p:[63,4,3040],t:7,e:"br"}," ",{p:[64,4,3050],t:7,e:"ui-button",a:{action:"createPill",params:'{"many": 1}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[64,63,3109]}]},f:["Create Multiple Pills"]}," ",{p:[65,4,3193],t:7,e:"br"}," ",{p:[66,4,3203],t:7,e:"br"}," ",{p:[67,4,3213],t:7,e:"ui-button",a:{action:"createPatch",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[67,64,3273]}]},f:["Create Patch (max 40µ)"]}," ",{p:[68,4,3358],t:7,e:"br"}," ",{p:[69,4,3368],t:7,e:"ui-button",a:{action:"createPatch",params:'{"many": 1}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[69,64,3428]}]},f:["Create Multiple Patches"]}," ",{p:[70,4,3514],t:7,e:"br"}," ",{p:[71,4,3524],t:7,e:"br"}," ",{p:[72,4,3534],t:7,e:"ui-button",a:{action:"createBottle",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[72,65,3595]}]},f:["Create Bottle (max 30µ)"]}," ",{p:[73,4,3681],t:7,e:"br"}," ",{p:[74,4,3691],t:7,e:"ui-button",a:{action:"createBottle",params:'{"many": 1}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[74,65,3752]}]},f:["Dispense Buffer to Bottles"]}]}],n:50,x:{r:["data.condi"],s:"!_0"},p:[51,2,2438]},{t:4,n:51,f:[{p:[79,3,3874],t:7,e:"ui-display",a:{title:"Condiments bottles and packs"},f:[{p:[80,4,3929],t:7,e:"ui-button",a:{action:"createPill",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[80,63,3988]}]},f:["Create Pack (max 10µ)"]}," ",{p:[81,4,4072],t:7,e:"br"}," ",{p:[82,4,4082],t:7,e:"br"}," ",{p:[83,4,4092],t:7,e:"ui-button",a:{action:"createBottle",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[83,65,4153]}]},f:["Create Bottle (max 50µ)"]}]}],x:{r:["data.condi"],s:"!_0"}}],n:50,x:{r:["data.screen"],s:'_0=="home"'},p:[1,1,0]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.screen"],s:'_0=="analyze"'},f:[{p:[87,2,4301],t:7,e:"ui-display",a:{title:[{t:2,r:"data.analyzeVars.name",p:[87,20,4319]}]},f:[{p:[88,3,4350],t:7,e:"span",a:{"class":"highlight"},f:["Description:"]}," ",{p:[89,3,4398],t:7,e:"span",a:{"class":"content",style:"float:center"},f:[{t:2,r:"data.analyzeVars.description",p:[89,46,4441]}]}," ",{p:[90,3,4484],t:7,e:"br"}," ",{p:[91,3,4493],t:7,e:"span",a:{"class":"highlight"},f:["Color:"]}," ",{p:[92,3,4535],t:7,e:"span",a:{style:["color: ",{t:2,r:"data.analyzeVars.color",p:[92,23,4555]},"; background-color: ",{t:2,r:"data.analyzeVars.color",p:[92,69,4601]}]},f:[{t:2,r:"data.analyzeVars.color",p:[92,97,4629]}]}," ",{p:[93,3,4666],t:7,e:"br"}," ",{p:[94,3,4675],t:7,e:"span",a:{"class":"highlight"},f:["State:"]}," ",{p:[95,3,4717],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.state",p:[95,25,4739]}]}," ",{p:[96,3,4776],t:7,e:"br"}," ",{p:[97,3,4785],t:7,e:"span",a:{"class":"highlight"},f:["Metabolization Rate:"]}," ",{p:[98,3,4841],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.metaRate",p:[98,25,4863]},"µ/minute"]}," ",{p:[99,3,4911],t:7,e:"br"}," ",{p:[100,3,4920],t:7,e:"span",a:{"class":"highlight"},f:["Overdose Threshold:"]}," ",{p:[101,3,4975],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.overD",p:[101,25,4997]}]}," ",{p:[102,3,5034],t:7,e:"br"}," ",{p:[103,3,5043],t:7,e:"span",a:{"class":"highlight"},f:["Addiction Threshold:"]}," ",{p:[104,3,5099],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.addicD",p:[104,25,5121]}]}," ",{p:[105,3,5159],t:7,e:"br"}," ",{p:[106,3,5168],t:7,e:"br"}," ",{p:[107,3,5177],t:7,e:"ui-button",a:{action:"goScreen",params:'{"screen": "home"}'},f:["Back"]}]}]}],x:{r:["data.screen"],s:'_0=="home"'}}]},e.exports=a.extend(r.exports)},{205:205}],241:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,3,16],t:7,e:"ui-button",a:{action:"toggle"},f:[{t:2,x:{r:["data.recollection"],s:'_0?"Recital":"Recollection"'},p:[2,30,43]}]}," ",{p:[3,3,107],t:7,e:"ui-button",a:{action:"component"},f:["Target Component: ",{t:3,r:"data.target_comp",p:[3,51,155]}]}]}," ",{t:4,f:[{p:[6,3,235],t:7,e:"ui-display",f:[{t:3,r:"data.rec_text",p:[7,3,251]}," ",{t:4,f:[{p:[9,4,317],t:7,e:"br"},{p:[9,8,321],t:7,e:"ui-button",a:{action:"rec_category",params:['{"category": "',{t:2,r:"name",p:[9,63,376]},'"}']},f:[{t:3,r:"name",p:[9,75,388]}," - ",{t:3,r:"desc",p:[9,88,401]}]}],n:52,r:"data.recollection_categories",p:[8,3,274]}," ",{t:3,r:"data.rec_section",p:[11,3,440]}," ",{t:3,r:"data.rec_binds",p:[12,3,466]}]}],n:50,r:"data.recollection",p:[5,1,206]},{t:4,n:51,f:[{p:[15,2,517],t:7,e:"ui-display",a:{title:"Components (with Global Cache)",button:0},f:[{p:[16,4,580],t:7,e:"ui-section",f:[{t:3,r:"data.components",p:[17,6,599]}]}]}," ",{p:[20,2,657],t:7,e:"ui-display",f:[{p:[21,3,673],t:7,e:"ui-section",f:[{p:[22,4,690],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Driver"?"selected":null'},p:[22,22,708]}],action:"select",params:'{"category": "Driver"}'},f:["Driver"]}," ",{p:[23,4,831],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Script"?"selected":null'},p:[23,22,849]}],action:"select",params:'{"category": "Script"}'},f:["Scripts"]}," ",{p:[24,4,973],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Application"?"selected":null'},p:[24,22,991]}],action:"select",params:'{"category": "Application"}'},f:["Applications"]}," ",{p:[25,4,1130],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Judgement"?"selected":null'},p:[25,22,1148]}],action:"select",params:'{"category": "Judgement"}'},f:["Judgement"]}," ",{p:[26,4,1279],t:7,e:"br"},{t:3,r:"data.tier_info",p:[26,8,1283]}]},{p:[27,16,1320],t:7,e:"hr"}," ",{p:[28,3,1328],t:7,e:"ui-section",f:[{t:4,f:[{p:[30,4,1373],t:7,e:"div",f:[{p:[30,9,1378],t:7,e:"ui-button",a:{tooltip:[{t:3,r:"tip",p:[30,29,1398]}],"tooltip-side":"right",action:"recite",params:['{"category": "',{t:2,r:"type",p:[30,99,1468]},'"}']},f:["Recite",{t:3,r:"required",p:[30,117,1486]}]}," ",{t:4,f:[{t:4,f:[{p:[33,6,1562],t:7,e:"ui-button",a:{action:"bind",params:['{"category": "',{t:2,r:"type",p:[33,53,1609]},'"}']},f:["Unbind ",{t:3,r:"bound",p:[33,72,1628]}]}],n:50,r:"bound",p:[32,5,1542]},{t:4,n:51,f:[{p:[35,6,1672],t:7,e:"ui-button",a:{action:"bind",params:['{"category": "',{t:2,r:"type",p:[35,53,1719]},'"}']},f:["Quickbind"]}],r:"bound"}],n:50,r:"quickbind",p:[31,6,1519]}," ",{t:3,r:"name",p:[38,6,1786]}," ",{t:3,r:"descname",p:[38,17,1797]}," ",{t:3,r:"invokers",p:[38,32,1812]}]}],n:52,r:"data.scripture",p:[29,3,1344]}]}]}],r:"data.recollection"}]},e.exports=a.extend(r.exports)},{205:205}],242:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Codex Gigas"},f:[{p:[2,2,35],t:7,e:"ui-section",f:[{t:2,r:"data.name",p:[3,3,51]}]}," ",{p:[5,5,86],t:7,e:"ui-section",a:{label:"Prefix"},f:[{p:[6,3,117],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[6,22,136]}],action:"Dark "},f:["Dark"]}," ",{p:[7,3,221],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[7,22,240]}],action:"Hellish "},f:["Hellish"]}," ",{p:[8,3,331],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[8,22,350]}],action:"Fallen "},f:["Fallen"]}," ",{p:[9,3,439],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[9,22,458]}],action:"Fiery "},f:["Fiery"]}," ",{p:[10,3,545],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[10,22,564]}],action:"Sinful "},f:["Sinful"]}," ",{p:[11,3,653],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[11,22,672]}],action:"Blood "},f:["Blood"]}," ",{p:[12,3,759],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[12,22,778]}],action:"Fluffy "},f:["Fluffy"]}]}," ",{p:[14,5,888],t:7,e:"ui-section",a:{label:"Title"},f:[{p:[15,3,918],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[15,22,937]}],action:"Lord "},f:["Lord"]}," ",{p:[16,3,1022],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[16,22,1041]}],action:"Prelate "},f:["Prelate"]}," ",{p:[17,3,1132],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[17,22,1151]}],action:"Count "},f:["Count"]}," ",{p:[18,3,1238],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[18,22,1257]}],action:"Viscount "},f:["Viscount"]}," ",{p:[19,3,1350],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[19,22,1369]}],action:"Vizier "},f:["Vizier"]}," ",{p:[20,3,1458],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[20,22,1477]}],action:"Elder "},f:["Elder"]}," ",{p:[21,3,1564],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[21,22,1583]}],action:"Adept "},f:["Adept"]}]}," ",{p:[23,5,1691],t:7,e:"ui-section",a:{label:"Name"},f:[{p:[24,3,1720],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[24,22,1739]}],action:"hal"},f:["hal"]}," ",{p:[25,3,1821],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[25,22,1840]}],action:"ve" ++p:[13,5,605],t:7,e:"ui-section",a:{label:"Output Pressure"},f:[{p:[14,7,649],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[15,7,746],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.pressure","data.max_pressure"],s:'_0==_1?"disabled":null'},p:[15,37,776]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}," ",{p:[16,7,906],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.round(_0)"},p:[16,13,912]}," kPa"]}]}],r:"data.max_rate"}]}]},e.exports=a.extend(r.exports)},{205:205}],233:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:{button:[{p:[3,5,67],t:7,e:"ui-button",a:{icon:"clock-o",style:[{t:2,x:{r:["data.timing"],s:'_0?"selected":null'},p:[3,38,100]}],action:[{t:2,x:{r:["data.timing"],s:'_0?"stop":"start"'},p:[3,83,145]}]},f:[{t:2,x:{r:["data.timing"],s:'_0?"Stop":"Start"'},p:[3,119,181]}]}," ",{p:[4,5,233],t:7,e:"ui-button",a:{icon:"lightbulb-o",action:"flash",style:[{t:2,x:{r:["data.flash_charging"],s:'_0?"disabled":null'},p:[4,57,285]}]},f:[{t:2,x:{r:["data.flash_charging"],s:'_0?"Recharging":"Flash"'},p:[4,102,330]}]}]},t:7,e:"ui-display",a:{title:"Cell Timer",button:0},f:[" ",{p:[6,3,410],t:7,e:"ui-section",f:[{p:[7,5,428],t:7,e:"ui-button",a:{icon:"fast-backward",action:"time",params:'{"adjust": -600}'}}," ",{p:[8,5,518],t:7,e:"ui-button",a:{icon:"backward",action:"time",params:'{"adjust": -100}'}}," ",{p:[9,5,603],t:7,e:"span",f:[{t:2,x:{r:["text","data.minutes"],s:"_0.zeroPad(_1,2)"},p:[9,11,609]},":",{t:2,x:{r:["text","data.seconds"],s:"_0.zeroPad(_1,2)"},p:[9,45,643]}]}," ",{p:[10,5,689],t:7,e:"ui-button",a:{icon:"forward",action:"time",params:'{"adjust": 100}'}}," ",{p:[11,5,772],t:7,e:"ui-button",a:{icon:"fast-forward",action:"time",params:'{"adjust": 600}'}}]}," ",{p:[13,3,875],t:7,e:"ui-section",f:[{p:[14,7,895],t:7,e:"ui-button",a:{icon:"hourglass-start",action:"preset",params:'{"preset": "short"}'},f:["Short"]}," ",{p:[15,7,999],t:7,e:"ui-button",a:{icon:"hourglass-start",action:"preset",params:'{"preset": "medium"}'},f:["Medium"]}," ",{p:[16,7,1105],t:7,e:"ui-button",a:{icon:"hourglass-start",action:"preset",params:'{"preset": "long"}'},f:["Long"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],234:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,23],t:7,e:"ui-notice",f:[{t:2,r:"data.notice",p:[3,5,40]}]}],n:50,r:"data.notice",p:[1,1,0]},{p:[6,1,82],t:7,e:"ui-display",a:{title:"Bluespace Artillery Control",button:0},f:[{t:4,f:[{p:[8,3,167],t:7,e:"ui-section",a:{label:"Target"},f:[{p:[9,5,200],t:7,e:"ui-button",a:{icon:"crosshairs",action:"recalibrate"},f:[{t:2,r:"data.target",p:[9,55,250]}]}]}," ",{p:[11,3,298],t:7,e:"ui-section",a:{label:"Controls"},f:[{t:4,f:[{p:[13,3,356],t:7,e:"ui-notice",f:[{p:[14,4,372],t:7,e:"span",f:["Bluespace Artillery firing protocols must be globally unlocked from two keycard authentication devices first!"]}]}],n:50,x:{r:["data.unlocked"],s:"!_0"},p:[12,2,330]},{t:4,n:51,f:[{p:[17,3,525],t:7,e:"ui-button",a:{icon:"warning",state:[{t:2,x:{r:["data.ready"],s:'_0?null:"disabled"'},p:[17,36,558]}],action:"fire"},f:["FIRE!"]}],x:{r:["data.unlocked"],s:"!_0"}}]}],n:50,r:"data.connected",p:[7,3,141]}," ",{t:4,f:[{p:[22,3,694],t:7,e:"ui-section",a:{label:"Maintenance"},f:[{p:[23,7,734],t:7,e:"ui-button",a:{icon:"wrench",action:"build"},f:["Complete Deployment."]}]}],n:50,x:{r:["data.connected"],s:"!_0"},p:[21,3,667]}]}]},e.exports=a.extend(r.exports)},{205:205}],235:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-notice",f:[{p:[2,3,15],t:7,e:"span",f:["The regulator ",{t:2,x:{r:["data.hasHoldingTank"],s:'_0?"is":"is not"'},p:[2,23,35]}," connected to a tank."]}]}," ",{p:{button:[{p:[6,5,185],t:7,e:"ui-button",a:{icon:"pencil",action:"relabel"},f:["Relabel"]}]},t:7,e:"ui-display",a:{title:"Canister",button:0},f:[" ",{p:[8,3,266],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[9,5,301],t:7,e:"span",f:[{t:2,x:{r:["adata.tankPressure"],s:"Math.round(_0)"},p:[9,11,307]}," kPa"]}]}," ",{p:[11,3,373],t:7,e:"ui-section",a:{label:"Port"},f:[{p:[12,5,404],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.portConnected"],s:'_0?"good":"average"'},p:[12,18,417]}]},f:[{t:2,x:{r:["data.portConnected"],s:'_0?"Connected":"Not Connected"'},p:[12,63,462]}]}]}," ",{t:4,f:[{p:[15,3,573],t:7,e:"ui-section",a:{label:"Access"},f:[{p:[16,7,608],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.restricted"],s:'_0?"lock":"unlock"'},p:[16,24,625]}],style:[{t:2,x:{r:[],s:'"caution"'},p:[17,14,680]}],action:"restricted"},f:[{t:2,x:{r:["data.restricted"],s:'_0?"Restricted to Engineering":"Public"'},p:[18,27,722]}]}]}],n:50,r:"data.isPrototype",p:[14,3,544]}]}," ",{p:[22,1,839],t:7,e:"ui-display",a:{title:"Valve"},f:[{p:[23,3,869],t:7,e:"ui-section",a:{label:"Release Pressure"},f:[{p:[24,5,912],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.minReleasePressure",p:[24,18,925]}],max:[{t:2,r:"data.maxReleasePressure",p:[24,52,959]}],value:[{t:2,r:"data.releasePressure",p:[25,14,1002]}]},f:[{t:2,x:{r:["adata.releasePressure"],s:"Math.round(_0)"},p:[25,40,1028]}," kPa"]}]}," ",{p:[27,3,1099],t:7,e:"ui-section",a:{label:"Pressure Regulator"},f:[{p:[28,5,1144],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.releasePressure","data.defaultReleasePressure"],s:'_0!=_1?null:"disabled"'},p:[28,38,1177]}],action:"pressure",params:'{"pressure": "reset"}'},f:["Reset"]}," ",{p:[30,5,1333],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.releasePressure","data.minReleasePressure"],s:'_0>_1?null:"disabled"'},p:[30,36,1364]}],action:"pressure",params:'{"pressure": "min"}'},f:["Min"]}," ",{p:[32,5,1511],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[33,5,1606],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.releasePressure","data.maxReleasePressure"],s:'_0<_1?null:"disabled"'},p:[33,35,1636]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}]}," ",{p:[36,3,1798],t:7,e:"ui-section",a:{label:"Valve"},f:[{p:[37,5,1830],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.valveOpen"],s:'_0?"unlock":"lock"'},p:[37,22,1847]}],style:[{t:2,x:{r:["data.valveOpen","data.hasHoldingTank"],s:'_0?_1?"caution":"danger":null'},p:[38,14,1901]}],action:"valve"},f:[{t:2,x:{r:["data.valveOpen"],s:'_0?"Open":"Closed"'},p:[39,22,1995]}]}]}]}," ",{t:4,f:[{p:[42,1,2090],t:7,e:"ui-display",a:{title:"Valve Toggle Timer"},f:[{t:4,f:[{p:[44,5,2155],t:7,e:"ui-section",a:{label:"Adjust Timer"},f:[{p:[45,7,2196],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.timer_is_not_default"],s:'_0?null:"disabled"'},p:[45,40,2229]}],action:"timer",params:'{"change": "reset"}'},f:["Reset"]}," ",{p:[47,7,2358],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.timer_is_not_min"],s:'_0?null:"disabled"'},p:[47,38,2389]}],action:"timer",params:'{"change": "decrease"}'},f:["Decrease"]}," ",{p:[49,7,2520],t:7,e:"ui-button",a:{icon:"pencil",state:[{t:2,x:{r:[],s:'"disabled"'},p:[49,39,2552]}],action:"timer",params:'{"change": "input"}'},f:["Set"]}," ",{p:[51,7,2637],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.timer_is_not_max"],s:'_0?null:"disabled"'},p:[51,37,2667]}],action:"timer",params:'{"change": "increase"}'},f:["Increase"]}]}],n:51,r:"data.timing",p:[43,3,2133]}," ",{p:[55,3,2833],t:7,e:"ui-section",a:{label:"Timer"},f:[{p:[56,6,2866],t:7,e:"ui-button",a:{icon:"clock-o",style:[{t:2,x:{r:["data.timing"],s:'_0?"danger":"caution"'},p:[56,39,2899]}],action:"toggle_timer"},f:[{t:2,x:{r:["data.timing"],s:'_0?"On":"Off"'},p:[57,30,2969]}]}," ",{p:[59,2,3017],t:7,e:"ui-section",a:{label:"Time until Valve Toggle"},f:[{p:[60,2,3064],t:7,e:"span",f:[{t:2,x:{r:["data.timing","data.time_left","data.timer_set"],s:"_0?_1:_2"},p:[60,8,3070]}]}]}]}]}],n:50,r:"data.isPrototype",p:[41,1,2062]},{p:{button:[{t:4,f:[{p:[69,7,3277],t:7,e:"ui-button",a:{icon:"eject",style:[{t:2,x:{r:["data.valveOpen"],s:'_0?"danger":null'},p:[69,38,3308]}],action:"eject"},f:["Eject"]}],n:50,r:"data.hasHoldingTank",p:[68,5,3242]}]},t:7,e:"ui-display",a:{title:"Holding Tank",button:0},f:[" ",{t:4,f:[{p:[73,3,3442],t:7,e:"ui-section",a:{label:"Label"},f:[{t:2,r:"data.holdingTank.name",p:[74,4,3473]}]}," ",{p:[76,3,3519],t:7,e:"ui-section",a:{label:"Pressure"},f:[{t:2,x:{r:["adata.holdingTank.tankPressure"],s:"Math.round(_0)"},p:[77,4,3553]}," kPa"]}],n:50,r:"data.hasHoldingTank",p:[72,3,3411]},{t:4,n:51,f:[{p:[80,3,3635],t:7,e:"ui-section",f:[{p:[81,4,3652],t:7,e:"span",a:{"class":"average"},f:["No Holding Tank"]}]}],r:"data.hasHoldingTank"}]}]},e.exports=a.extend(r.exports)},{205:205}],236:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={computed:{tabs:function(){return Object.keys(this.get("data.supplies"))}}}}(r),r.exports.template={v:3,t:[" ",{p:[11,1,158],t:7,e:"ui-display",a:{title:"Cargo"},f:[{p:[12,3,188],t:7,e:"ui-section",a:{label:"Shuttle"},f:[{t:4,f:[{p:[14,7,270],t:7,e:"ui-button",a:{action:"send"},f:[{t:2,r:"data.location",p:[14,32,295]}]}],n:50,x:{r:["data.docked","data.requestonly"],s:"_0&&!_1"},p:[13,5,222]},{t:4,n:51,f:[{p:[16,7,346],t:7,e:"span",f:[{t:2,r:"data.location",p:[16,13,352]}]}],x:{r:["data.docked","data.requestonly"],s:"_0&&!_1"}}]}," ",{p:[19,3,410],t:7,e:"ui-section",a:{label:"Credits"},f:[{p:[20,5,444],t:7,e:"span",f:[{t:2,x:{r:["adata.points"],s:"Math.floor(_0)"},p:[20,11,450]}]}]}," ",{p:[22,3,506],t:7,e:"ui-section",a:{label:"CentCom Message"},f:[{p:[23,7,550],t:7,e:"span",f:[{t:2,r:"data.message",p:[23,13,556]}]}]}," ",{t:4,f:[{p:[26,5,644],t:7,e:"ui-section",a:{label:"Loan"},f:[{t:4,f:[{p:[28,9,716],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.away","data.docked"],s:'_0&&_1?null:"disabled"'},p:[29,17,744]}],action:"loan"},f:["Loan Shuttle"]}],n:50,x:{r:["data.loan_dispatched"],s:"!_0"},p:[27,7,677]},{t:4,n:51,f:[{p:[32,9,868],t:7,e:"span",a:{"class":"bad"},f:["Loaned to CentCom"]}],x:{r:["data.loan_dispatched"],s:"!_0"}}]}],n:50,x:{r:["data.loan","data.requestonly"],s:"_0&&!_1"},p:[25,3,600]}]}," ",{t:4,f:[{p:{button:[{p:[40,7,1066],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["data.cart.length"],s:'_0?null:"disabled"'},p:[40,38,1097]}],action:"clear"},f:["Clear"]}]},t:7,e:"ui-display",a:{title:"Cart",button:0},f:[" ",{t:4,f:[{p:[43,7,1222],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:[{p:[44,9,1263],t:7,e:"div",a:{"class":"content"},f:["#",{t:2,r:"id",p:[44,31,1285]}]}," ",{p:[45,9,1307],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"object",p:[45,30,1328]}]}," ",{p:[46,9,1354],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"cost",p:[46,30,1375]}," Credits"]}," ",{p:[47,9,1407],t:7,e:"div",a:{"class":"content"},f:[{p:[48,11,1440],t:7,e:"ui-button",a:{icon:"minus",action:"remove",params:['{"id": "',{t:2,r:"id",p:[48,67,1496]},'"}']}}]}]}],n:52,r:"data.cart",p:[42,5,1195]},{t:4,n:51,f:[{p:[52,7,1566],t:7,e:"span",f:["Nothing in Cart"]}],r:"data.cart"}]}],n:50,x:{r:["data.requestonly"],s:"!_0"},p:[37,1,972]},{p:{button:[{t:4,f:[{p:[59,7,1735],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["data.requests.length"],s:'_0?null:"disabled"'},p:[59,38,1766]}],action:"denyall"},f:["Clear"]}],n:50,x:{r:["data.requestonly"],s:"!_0"},p:[58,5,1702]}]},t:7,e:"ui-display",a:{title:"Requests",button:0},f:[" ",{t:4,f:[{p:[63,5,1908],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:[{p:[64,7,1947],t:7,e:"div",a:{"class":"content"},f:["#",{t:2,r:"id",p:[64,29,1969]}]}," ",{p:[65,7,1989],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"object",p:[65,28,2010]}]}," ",{p:[66,7,2034],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"cost",p:[66,28,2055]}," Credits"]}," ",{p:[67,7,2085],t:7,e:"div",a:{"class":"content"},f:["By ",{t:2,r:"orderer",p:[67,31,2109]}]}," ",{p:[68,7,2134],t:7,e:"div",a:{"class":"content"},f:["Comment: ",{t:2,r:"reason",p:[68,37,2164]}]}," ",{t:4,f:[{p:[70,9,2223],t:7,e:"div",a:{"class":"content"},f:[{p:[71,11,2256],t:7,e:"ui-button",a:{icon:"check",action:"approve",params:['{"id": "',{t:2,r:"id",p:[71,68,2313]},'"}']}}," ",{p:[72,11,2336],t:7,e:"ui-button",a:{icon:"close",action:"deny",params:['{"id": "',{t:2,r:"id",p:[72,65,2390]},'"}']}}]}],n:50,x:{r:["data.requestonly"],s:"!_0"},p:[69,7,2188]}]}],n:52,r:"data.requests",p:[62,3,1879]},{t:4,n:51,f:[{p:[77,7,2473],t:7,e:"span",f:["No Requests"]}],r:"data.requests"}]}," ",{p:[80,1,2529],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"tabs",p:[80,16,2544]}]},f:[{t:4,f:[{p:[82,5,2587],t:7,e:"tab",a:{name:[{t:2,r:"name",p:[82,16,2598]}]},f:[{t:4,f:[{p:[84,9,2641],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[84,28,2660]}],candystripe:0,right:0},f:[{p:[85,11,2700],t:7,e:"ui-button",a:{action:"add",params:['{"id": "',{t:2,r:"id",p:[85,51,2740]},'"}']},f:[{t:2,r:"cost",p:[85,61,2750]}," Credits"]}]}],n:52,r:"packs",p:[83,7,2616]}]}],n:52,r:"data.supplies",p:[81,3,2558]}]}]},e.exports=a.extend(r.exports)},{205:205}],237:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Cellular Emporium",button:0},f:[{p:[2,3,49],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.can_readapt"],s:'_0?null:"disabled"'},p:[2,36,82]}],action:"readapt"},f:["Readapt"]}," ",{p:[4,3,169],t:7,e:"ui-section",a:{label:"Genetic Points Remaining",right:0},f:[{t:2,r:"data.genetic_points_remaining",p:[5,5,226]}]}]}," ",{p:[8,1,293],t:7,e:"ui-display",f:[{t:4,f:[{p:[10,3,335],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[10,22,354]}],candystripe:0,right:0},f:[{p:[11,5,388],t:7,e:"span",f:[{t:2,r:"desc",p:[11,11,394]}]}," ",{p:[12,5,415],t:7,e:"span",f:[{t:2,r:"helptext",p:[12,11,421]}]}," ",{p:[13,5,446],t:7,e:"span",f:["Cost: ",{t:2,r:"dna_cost",p:[13,17,458]}]}," ",{p:[14,5,483],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["owned","can_purchase"],s:'_0?"selected":_1?null:"disabled"'},p:[15,14,508]}],action:"evolve",params:['{"name": "',{t:2,r:"name",p:[17,25,615]},'"}']},f:[{t:2,x:{r:["owned"],s:'_0?"Evolved":"Evolve"'},p:[18,7,635]}]}]}],n:52,r:"data.abilities",p:[9,1,307]},{t:4,f:[{p:[23,3,738],t:7,e:"span",a:{"class":"warning"},f:["No abilities availible."]}],n:51,r:"data.abilities",p:[22,1,715]}]}]},e.exports=a.extend(r.exports)},{205:205}],238:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[2,3,31],t:7,e:"ui-section",a:{label:"Energy"},f:[{p:[3,5,64],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.maxEnergy",p:[3,26,85]}],value:[{t:2,r:"data.energy",p:[3,53,112]}]},f:[{t:2,x:{r:["adata.energy"],s:"Math.fixed(_0)"},p:[3,70,129]}," Units"]}]}]}," ",{p:{button:[{t:4,f:[{p:[9,7,315],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.amount","."],s:'_0==_1?"selected":null'},p:[9,37,345]}],action:"amount",params:['{"target": ',{t:2,r:".",p:[9,114,422]},"}"]},f:[{t:2,r:".",p:[9,122,430]}]}],n:52,r:"data.beakerTransferAmounts",p:[8,5,271]}]},t:7,e:"ui-display",a:{title:"Dispense",button:0},f:[" ",{p:[12,3,482],t:7,e:"ui-section",f:[{t:4,f:[{p:[14,7,532],t:7,e:"ui-button",a:{grid:0,icon:"tint",action:"dispense",params:['{"reagent": "',{t:2,r:"id",p:[14,74,599]},'"}']},f:[{t:2,r:"title",p:[14,84,609]}]}],n:52,r:"data.chemicals",p:[13,5,500]}]}]}," ",{p:{button:[{t:4,f:[{p:[21,7,786],t:7,e:"ui-button",a:{icon:"minus",action:"remove",params:['{"amount": ',{t:2,r:".",p:[21,66,845]},"}"]},f:[{t:2,r:".",p:[21,74,853]}]}],n:52,r:"data.beakerTransferAmounts",p:[20,5,742]}," ",{p:[23,5,891],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[23,36,922]}],action:"eject"},f:["Eject"]}]},t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[" ",{p:[25,3,1019],t:7,e:"ui-section",a:{label:"Contents"},f:[{t:4,f:[{p:[27,7,1089],t:7,e:"span",f:[{t:2,x:{r:["adata.beakerCurrentVolume"],s:"Math.round(_0)"},p:[27,13,1095]},"/",{t:2,r:"data.beakerMaxVolume",p:[27,55,1137]}," Units"]}," ",{p:[28,7,1182],t:7,e:"br"}," ",{t:4,f:[{p:[30,9,1235],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[30,52,1278]}," units of ",{t:2,r:"name",p:[30,87,1313]}]},{p:[30,102,1328],t:7,e:"br"}],n:52,r:"adata.beakerContents",p:[29,7,1195]},{t:4,n:51,f:[{p:[32,9,1359],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"adata.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[26,5,1054]},{t:4,n:51,f:[{p:[35,7,1435],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],239:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Thermostat"},f:[{p:[2,3,35],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[3,5,67],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isActive"],s:'_0?"power-off":"close"'},p:[3,22,84]}],style:[{t:2,x:{r:["data.isActive"],s:'_0?"selected":null'},p:[4,10,137]}],state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[5,10,186]}],action:"power"},f:[{t:2,x:{r:["data.isActive"],s:'_0?"On":"Off"'},p:[6,18,249]}]}]}," ",{p:[8,3,314],t:7,e:"ui-section",a:{label:"Target"},f:[{p:[9,4,346],t:7,e:"ui-button",a:{icon:"pencil",action:"temperature",params:'{"target": "input"}'},f:[{t:2,x:{r:["adata.targetTemp"],s:"Math.round(_0)"},p:[9,79,421]}," K"]}]}]}," ",{p:{button:[{p:[14,5,564],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[14,36,595]}],action:"eject"},f:["Eject"]}]},t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[" ",{p:[16,3,692],t:7,e:"ui-section",a:{label:"Contents"},f:[{t:4,f:[{p:[18,7,762],t:7,e:"span",f:["Temperature: ",{t:2,x:{r:["adata.currentTemp"],s:"Math.round(_0)"},p:[18,26,781]}," K"]}," ",{p:[19,7,831],t:7,e:"br"}," ",{t:4,f:[{p:[21,9,885],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[21,52,928]}," units of ",{t:2,r:"name",p:[21,87,963]}]},{p:[21,102,978],t:7,e:"br"}],n:52,r:"adata.beakerContents",p:[20,7,845]},{t:4,n:51,f:[{p:[23,9,1009],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"adata.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[17,5,727]},{t:4,n:51,f:[{p:[26,7,1085],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],240:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,2,32],t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[{p:[3,3,70],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?"Eject":"close"'},p:[3,20,87]}],style:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?"selected":null'},p:[4,11,143]}],state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[5,11,199]}],action:"eject"},f:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?"Eject and Clear Buffer":"No beaker"'},p:[7,5,268]}]}," ",{p:[10,3,357],t:7,e:"ui-section",f:[{t:4,f:[{t:4,f:[{p:[13,6,443],t:7,e:"ui-section",a:{label:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[13,25,462]}," units of ",{t:2,r:"name",p:[13,60,497]}],nowrap:0},f:[{p:[14,7,522],t:7,e:"div",a:{"class":"content",style:"float:right"},f:[{p:[15,8,572],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[15,61,625]},'", "amount": 1}']},f:["1"]}," ",{p:[16,8,670],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[16,61,723]},'", "amount": 5}']},f:["5"]}," ",{p:[17,8,768],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[17,61,821]},'", "amount": 10}']},f:["10"]}," ",{p:[18,8,868],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[18,61,921]},'", "amount": 1000}']},f:["All"]}," ",{p:[19,8,971],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[19,61,1024]},'", "amount": -1}']},f:["Custom"]}," ",{p:[20,8,1075],t:7,e:"ui-button",a:{action:"analyze",params:['{"id": "',{t:2,r:"id",p:[20,52,1119]},'"}']},f:["Analyze"]}]}]}],n:52,r:"data.beakerContents",p:[12,5,407]},{t:4,n:51,f:[{p:[24,5,1201],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"data.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[11,4,374]},{t:4,n:51,f:[{p:[27,5,1272],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}," ",{p:[32,2,1360],t:7,e:"ui-display",a:{title:"Buffer"},f:[{p:[33,3,1391],t:7,e:"ui-button",a:{action:"toggleMode",state:[{t:2,x:{r:["data.mode"],s:'_0?null:"selected"'},p:[33,41,1429]}]},f:["Destroy"]}," ",{p:[34,3,1487],t:7,e:"ui-button",a:{action:"toggleMode",state:[{t:2,x:{r:["data.mode"],s:'_0?"selected":null'},p:[34,41,1525]}]},f:["Transfer to Beaker"]}," ",{p:[35,3,1594],t:7,e:"ui-section",f:[{t:4,f:[{p:[37,5,1646],t:7,e:"ui-section",a:{label:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[37,24,1665]}," units of ",{t:2,r:"name",p:[37,59,1700]}],nowrap:0},f:[{p:[38,6,1724],t:7,e:"div",a:{"class":"content",style:"float:right"},f:[{p:[39,7,1773],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[39,62,1828]},'", "amount": 1}']},f:["1"]}," ",{p:[40,7,1872],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[40,62,1927]},'", "amount": 5}']},f:["5"]}," ",{p:[41,7,1971],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[41,62,2026]},'", "amount": 10}']},f:["10"]}," ",{p:[42,7,2072],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[42,62,2127]},'", "amount": 1000}']},f:["All"]}," ",{p:[43,7,2176],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[43,62,2231]},'", "amount": -1}']},f:["Custom"]}," ",{p:[44,7,2281],t:7,e:"ui-button",a:{action:"analyze",params:['{"id": "',{t:2,r:"id",p:[44,51,2325]},'"}']},f:["Analyze"]}]}]}],n:52,r:"data.bufferContents",p:[36,4,1611]}]}]}," ",{t:4,f:[{p:[52,3,2461],t:7,e:"ui-display",a:{title:"Pills, Bottles and Patches"},f:[{t:4,f:[{p:[54,5,2551],t:7,e:"ui-button",a:{action:"ejectp",state:[{t:2,x:{r:["data.isPillBottleLoaded"],s:'_0?null:"disabled"'},p:[54,39,2585]}]},f:[{t:2,x:{r:["data.isPillBottleLoaded"],s:'_0?"Eject":"No Pill bottle loaded"'},p:[54,88,2634]}]}," ",{p:[55,5,2715],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.pillBotContent",p:[55,27,2737]},"/",{t:2,r:"data.pillBotMaxContent",p:[55,51,2761]}]}],n:50,r:"data.isPillBottleLoaded",p:[53,4,2514]},{t:4,n:51,f:[{p:[57,5,2813],t:7,e:"span",a:{"class":"average"},f:["No Pillbottle"]}],r:"data.isPillBottleLoaded"}," ",{p:[60,4,2877],t:7,e:"br"}," ",{p:[61,4,2887],t:7,e:"br"}," ",{p:[62,4,2897],t:7,e:"ui-button",a:{action:"createPill",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[62,63,2956]}]},f:["Create Pill (max 50µ)"]}," ",{p:[63,4,3040],t:7,e:"br"}," ",{p:[64,4,3050],t:7,e:"ui-button",a:{action:"createPill",params:'{"many": 1}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[64,63,3109]}]},f:["Create Multiple Pills"]}," ",{p:[65,4,3193],t:7,e:"br"}," ",{p:[66,4,3203],t:7,e:"br"}," ",{p:[67,4,3213],t:7,e:"ui-button",a:{action:"createPatch",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[67,64,3273]}]},f:["Create Patch (max 40µ)"]}," ",{p:[68,4,3358],t:7,e:"br"}," ",{p:[69,4,3368],t:7,e:"ui-button",a:{action:"createPatch",params:'{"many": 1}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[69,64,3428]}]},f:["Create Multiple Patches"]}," ",{p:[70,4,3514],t:7,e:"br"}," ",{p:[71,4,3524],t:7,e:"br"}," ",{p:[72,4,3534],t:7,e:"ui-button",a:{action:"createBottle",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[72,65,3595]}]},f:["Create Bottle (max 30µ)"]}," ",{p:[73,4,3681],t:7,e:"br"}," ",{p:[74,4,3691],t:7,e:"ui-button",a:{action:"createBottle",params:'{"many": 1}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[74,65,3752]}]},f:["Dispense Buffer to Bottles"]}]}],n:50,x:{r:["data.condi"],s:"!_0"},p:[51,2,2438]},{t:4,n:51,f:[{p:[79,3,3874],t:7,e:"ui-display",a:{title:"Condiments bottles and packs"},f:[{p:[80,4,3929],t:7,e:"ui-button",a:{action:"createPill",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[80,63,3988]}]},f:["Create Pack (max 10µ)"]}," ",{p:[81,4,4072],t:7,e:"br"}," ",{p:[82,4,4082],t:7,e:"br"}," ",{p:[83,4,4092],t:7,e:"ui-button",a:{action:"createBottle",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[83,65,4153]}]},f:["Create Bottle (max 50µ)"]}]}],x:{r:["data.condi"],s:"!_0"}}],n:50,x:{r:["data.screen"],s:'_0=="home"'},p:[1,1,0]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.screen"],s:'_0=="analyze"'},f:[{p:[87,2,4301],t:7,e:"ui-display",a:{title:[{t:2,r:"data.analyzeVars.name",p:[87,20,4319]}]},f:[{p:[88,3,4350],t:7,e:"span",a:{"class":"highlight"},f:["Description:"]}," ",{p:[89,3,4398],t:7,e:"span",a:{"class":"content",style:"float:center"},f:[{t:2,r:"data.analyzeVars.description",p:[89,46,4441]}]}," ",{p:[90,3,4484],t:7,e:"br"}," ",{p:[91,3,4493],t:7,e:"span",a:{"class":"highlight"},f:["Color:"]}," ",{p:[92,3,4535],t:7,e:"span",a:{style:["color: ",{t:2,r:"data.analyzeVars.color",p:[92,23,4555]},"; background-color: ",{t:2,r:"data.analyzeVars.color",p:[92,69,4601]}]},f:[{t:2,r:"data.analyzeVars.color",p:[92,97,4629]}]}," ",{p:[93,3,4666],t:7,e:"br"}," ",{p:[94,3,4675],t:7,e:"span",a:{"class":"highlight"},f:["State:"]}," ",{p:[95,3,4717],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.state",p:[95,25,4739]}]}," ",{p:[96,3,4776],t:7,e:"br"}," ",{p:[97,3,4785],t:7,e:"span",a:{"class":"highlight"},f:["Metabolization Rate:"]}," ",{p:[98,3,4841],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.metaRate",p:[98,25,4863]},"µ/minute"]}," ",{p:[99,3,4911],t:7,e:"br"}," ",{p:[100,3,4920],t:7,e:"span",a:{"class":"highlight"},f:["Overdose Threshold:"]}," ",{p:[101,3,4975],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.overD",p:[101,25,4997]}]}," ",{p:[102,3,5034],t:7,e:"br"}," ",{p:[103,3,5043],t:7,e:"span",a:{"class":"highlight"},f:["Addiction Threshold:"]}," ",{p:[104,3,5099],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.addicD",p:[104,25,5121]}]}," ",{p:[105,3,5159],t:7,e:"br"}," ",{p:[106,3,5168],t:7,e:"br"}," ",{p:[107,3,5177],t:7,e:"ui-button",a:{action:"goScreen",params:'{"screen": "home"}'},f:["Back"]}]}]}],x:{r:["data.screen"],s:'_0=="home"'}}]},e.exports=a.extend(r.exports)},{205:205}],241:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,3,16],t:7,e:"ui-button",a:{action:"toggle"},f:[{t:2,x:{r:["data.recollection"],s:'_0?"Recital":"Recollection"'},p:[2,30,43]}]}," ",{p:[3,3,107],t:7,e:"ui-button",a:{action:"component"},f:["Target Component: ",{t:3,r:"data.target_comp",p:[3,51,155]}]}]}," ",{t:4,f:[{p:[6,3,235],t:7,e:"ui-display",f:[{t:3,r:"data.rec_text",p:[7,3,251]}," ",{t:4,f:[{p:[9,4,317],t:7,e:"br"},{p:[9,8,321],t:7,e:"ui-button",a:{action:"rec_category",params:['{"category": "',{t:2,r:"name",p:[9,63,376]},'"}']},f:[{t:3,r:"name",p:[9,75,388]}," - ",{t:3,r:"desc",p:[9,88,401]}]}],n:52,r:"data.recollection_categories",p:[8,3,274]}," ",{t:3,r:"data.rec_section",p:[11,3,440]}," ",{t:3,r:"data.rec_binds",p:[12,3,466]}]}],n:50,r:"data.recollection",p:[5,1,206]},{t:4,n:51,f:[{p:[15,2,517],t:7,e:"ui-display",a:{title:"Components (with Global Cache)",button:0},f:[{p:[16,4,580],t:7,e:"ui-section",f:[{t:3,r:"data.components",p:[17,6,599]}]}]}," ",{p:[20,2,657],t:7,e:"ui-display",f:[{p:[21,3,673],t:7,e:"ui-section",f:[{p:[22,4,690],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Driver"?"selected":null'},p:[22,22,708]}],action:"select",params:'{"category": "Driver"}'},f:["Driver"]}," ",{p:[23,4,831],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Script"?"selected":null'},p:[23,22,849]}],action:"select",params:'{"category": "Script"}'},f:["Scripts"]}," ",{p:[24,4,973],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Application"?"selected":null'},p:[24,22,991]}],action:"select",params:'{"category": "Application"}'},f:["Applications"]}," ",{p:[25,4,1130],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Judgement"?"selected":null'},p:[25,22,1148]}],action:"select",params:'{"category": "Judgement"}'},f:["Judgement"]}," ",{p:[26,4,1279],t:7,e:"br"},{t:3,r:"data.tier_info",p:[26,8,1283]}]},{p:[27,16,1320],t:7,e:"hr"}," ",{p:[28,3,1328],t:7,e:"ui-section",f:[{t:4,f:[{p:[30,4,1373],t:7,e:"div",f:[{p:[30,9,1378],t:7,e:"ui-button",a:{tooltip:[{t:3,r:"tip",p:[30,29,1398]}],"tooltip-side":"right",action:"recite",params:['{"category": "',{t:2,r:"type",p:[30,99,1468]},'"}']},f:["Recite",{t:3,r:"required",p:[30,117,1486]}]}," ",{t:4,f:[{t:4,f:[{p:[33,6,1562],t:7,e:"ui-button",a:{action:"bind",params:['{"category": "',{t:2,r:"type",p:[33,53,1609]},'"}']},f:["Unbind ",{t:3,r:"bound",p:[33,72,1628]}]}],n:50,r:"bound",p:[32,5,1542]},{t:4,n:51,f:[{p:[35,6,1672],t:7,e:"ui-button",a:{action:"bind",params:['{"category": "',{t:2,r:"type",p:[35,53,1719]},'"}']},f:["Quickbind"]}],r:"bound"}],n:50,r:"quickbind",p:[31,6,1519]}," ",{t:3,r:"name",p:[38,6,1786]}," ",{t:3,r:"descname",p:[38,17,1797]}," ",{t:3,r:"invokers",p:[38,32,1812]}]}],n:52,r:"data.scripture",p:[29,3,1344]}]}]}],r:"data.recollection"}]},e.exports=a.extend(r.exports)},{205:205}],242:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Codex Gigas"},f:[{p:[2,2,35],t:7,e:"ui-section",f:[{t:2,r:"data.name",p:[3,3,51]}]}," ",{p:[5,5,86],t:7,e:"ui-section",a:{label:"Prefix"},f:[{p:[6,3,117],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[6,22,136]}],action:"Dark "},f:["Dark"]}," ",{p:[7,3,221],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[7,22,240]}],action:"Hellish "},f:["Hellish"]}," ",{p:[8,3,331],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[8,22,350]}],action:"Fallen "},f:["Fallen"]}," ",{p:[9,3,439],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[9,22,458]}],action:"Fiery "},f:["Fiery"]}," ",{p:[10,3,545],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[10,22,564]}],action:"Sinful "},f:["Sinful"]}," ",{p:[11,3,653],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[11,22,672]}],action:"Blood "},f:["Blood"]}," ",{p:[12,3,759],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[12,22,778]}],action:"Fluffy "},f:["Fluffy"]}]}," ",{p:[14,5,888],t:7,e:"ui-section",a:{label:"Title"},f:[{p:[15,3,918],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[15,22,937]}],action:"Lord "},f:["Lord"]}," ",{p:[16,3,1022],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[16,22,1041]}],action:"Prelate "},f:["Prelate"]}," ",{p:[17,3,1132],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[17,22,1151]}],action:"Count "},f:["Count"]}," ",{p:[18,3,1238],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[18,22,1257]}],action:"Viscount "},f:["Viscount"]}," ",{p:[19,3,1350],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[19,22,1369]}],action:"Vizier "},f:["Vizier"]}," ",{p:[20,3,1458],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[20,22,1477]}],action:"Elder "},f:["Elder"]}," ",{p:[21,3,1564],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[21,22,1583]}],action:"Adept "},f:["Adept"]}]}," ",{p:[23,5,1691],t:7,e:"ui-section",a:{label:"Name"},f:[{p:[24,3,1720],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[24,22,1739]}],action:"hal"},f:["hal"]}," ",{p:[25,3,1821],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[25,22,1840]}],action:"ve" + },f:["ve"]}," ",{p:[26,3,1920],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[26,22,1939]}],action:"odr"},f:["odr"]}," ",{p:[27,3,2021],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[27,22,2040]}],action:"neit"},f:["neit"]}," ",{p:[28,3,2124],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[28,22,2143]}],action:"ci"},f:["ci"]}," ",{p:[29,3,2223],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[29,22,2242]}],action:"quon"},f:["quon"]}," ",{p:[30,3,2326],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[30,22,2345]}],action:"mya"},f:["mya"]}," ",{p:[31,3,2427],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[31,22,2446]}],action:"folth"},f:["folth"]}," ",{p:[32,3,2532],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[32,22,2551]}],action:"wren"},f:["wren"]}," ",{p:[33,3,2635],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[33,22,2654]}],action:"geyr"},f:["geyr"]}," ",{p:[34,3,2738],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[34,22,2757]}],action:"hil"},f:["hil"]}," ",{p:[35,3,2839],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[35,22,2858]}],action:"niet"},f:["niet"]}," ",{p:[36,3,2942],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[36,22,2961]}],action:"twou"},f:["twou"]}," ",{p:[37,3,3045],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[37,22,3064]}],action:"phi"},f:["phi"]}," ",{p:[38,3,3146],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[38,22,3165]}],action:"coa"},f:["coa"]}]}," ",{p:[40,5,3268],t:7,e:"ui-section",a:{label:"suffix"},f:[{p:[41,3,3299],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==4?null:"disabled"'},p:[41,22,3318]}],action:" the Red"},f:["the Red"]}," ",{p:[42,3,3409],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==4?null:"disabled"'},p:[42,22,3428]}],action:" the Soulless"},f:["the Soulless"]}," ",{p:[43,3,3529],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==4?null:"disabled"'},p:[43,22,3548]}],action:" the Master"},f:["the Master"]}," ",{p:[44,3,3645],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==4?null:"disabled"'},p:[44,22,3664]}],action:", the Lord of all things"},f:["the Lord of all things"]}," ",{p:[45,3,3786],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==4?null:"disabled"'},p:[45,22,3805]}],action:", Jr."},f:["jr"]}]}," ",{p:[47,5,3909],t:7,e:"ui-section",a:{label:"submit"},f:[{p:[48,3,3941],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0>=4?null:"disabled"'},p:[48,21,3959]}],action:"search"},f:["search"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],243:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[2,1,2],t:7,e:"ui-button",a:{icon:"circle",action:"clean_order"},f:["Clear Order"]},{p:[2,70,71],t:7,e:"br"},{p:[2,74,75],t:7,e:"br"}," ",{p:[3,1,81],t:7,e:"i",f:["Your new computer device you always dreamed of is just four steps away..."]},{p:[3,81,161],t:7,e:"hr"}," ",{t:4,f:[" ",{p:[5,1,223],t:7,e:"div",a:{"class":"item"},f:[{p:[6,2,244],t:7,e:"h2",f:["Step 1: Select your device type"]}," ",{p:[7,2,287],t:7,e:"ui-button",a:{icon:"calc",action:"pick_device",params:'{"pick" : "1"}'},f:["Laptop"]}," ",{p:[8,2,377],t:7,e:"ui-button",a:{icon:"calc",action:"pick_device",params:'{"pick" : "2"}'},f:["LTablet"]}]}],n:50,x:{r:["data.state"],s:"_0==0"},p:[4,1,167]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.state"],s:"_0==1"},f:[{p:[11,1,502],t:7,e:"div",a:{"class":"item"},f:[{p:[12,2,523],t:7,e:"h2",f:["Step 2: Personalise your device"]}," ",{p:[13,2,566],t:7,e:"table",f:[{p:[14,3,577],t:7,e:"tr",f:[{p:[15,4,586],t:7,e:"td",f:[{p:[15,8,590],t:7,e:"b",f:["Current Price:"]}]},{p:[16,4,616],t:7,e:"td",f:[{t:2,r:"data.totalprice",p:[16,8,620]},"C"]}]}," ",{p:[18,3,653],t:7,e:"tr",f:[{p:[19,4,663],t:7,e:"td",f:[{p:[19,8,667],t:7,e:"b",f:["Battery:"]}]},{p:[20,4,687],t:7,e:"td",f:[{p:[20,8,691],t:7,e:"ui-button",a:{action:"hw_battery",params:'{"battery" : "1"}',state:[{t:2,x:{r:["data.hw_battery"],s:'_0==1?"selected":null'},p:[20,73,756]}]},f:["Standard"]}]},{p:[21,4,827],t:7,e:"td",f:[{p:[21,8,831],t:7,e:"ui-button",a:{action:"hw_battery",params:'{"battery" : "2"}',state:[{t:2,x:{r:["data.hw_battery"],s:'_0==2?"selected":null'},p:[21,73,896]}]},f:["Upgraded"]}]},{p:[22,4,967],t:7,e:"td",f:[{p:[22,8,971],t:7,e:"ui-button",a:{action:"hw_battery",params:'{"battery" : "3"}',state:[{t:2,x:{r:["data.hw_battery"],s:'_0==3?"selected":null'},p:[22,73,1036]}]},f:["Advanced"]}]}]}," ",{p:[24,3,1115],t:7,e:"tr",f:[{p:[25,4,1124],t:7,e:"td",f:[{p:[25,8,1128],t:7,e:"b",f:["Hard Drive:"]}]},{p:[26,4,1151],t:7,e:"td",f:[{p:[26,8,1155],t:7,e:"ui-button",a:{action:"hw_disk",params:'{"disk" : "1"}',state:[{t:2,x:{r:["data.hw_disk"],s:'_0==1?"selected":null'},p:[26,67,1214]}]},f:["Standard"]}]},{p:[27,4,1282],t:7,e:"td",f:[{p:[27,8,1286],t:7,e:"ui-button",a:{action:"hw_disk",params:'{"disk" : "2"}',state:[{t:2,x:{r:["data.hw_disk"],s:'_0==2?"selected":null'},p:[27,67,1345]}]},f:["Upgraded"]}]},{p:[28,4,1413],t:7,e:"td",f:[{p:[28,8,1417],t:7,e:"ui-button",a:{action:"hw_disk",params:'{"disk" : "3"}',state:[{t:2,x:{r:["data.hw_disk"],s:'_0==3?"selected":null'},p:[28,67,1476]}]},f:["Advanced"]}]}]}," ",{p:[30,3,1552],t:7,e:"tr",f:[{p:[31,4,1561],t:7,e:"td",f:[{p:[31,8,1565],t:7,e:"b",f:["Network Card:"]}]},{p:[32,4,1590],t:7,e:"td",f:[{p:[32,8,1594],t:7,e:"ui-button",a:{action:"hw_netcard",params:'{"netcard" : "0"}',state:[{t:2,x:{r:["data.hw_netcard"],s:'_0==0?"selected":null'},p:[32,73,1659]}]},f:["None"]}]},{p:[33,4,1726],t:7,e:"td",f:[{p:[33,8,1730],t:7,e:"ui-button",a:{action:"hw_netcard",params:'{"netcard" : "1"}',state:[{t:2,x:{r:["data.hw_netcard"],s:'_0==1?"selected":null'},p:[33,73,1795]}]},f:["Standard"]}]},{p:[34,4,1866],t:7,e:"td",f:[{p:[34,8,1870],t:7,e:"ui-button",a:{action:"hw_netcard",params:'{"netcard" : "2"}',state:[{t:2,x:{r:["data.hw_netcard"],s:'_0==2?"selected":null'},p:[34,73,1935]}]},f:["Advanced"]}]}]}," ",{p:[36,3,2014],t:7,e:"tr",f:[{p:[37,4,2023],t:7,e:"td",f:[{p:[37,8,2027],t:7,e:"b",f:["Nano Printer:"]}]},{p:[38,4,2052],t:7,e:"td",f:[{p:[38,8,2056],t:7,e:"ui-button",a:{action:"hw_nanoprint",params:'{"print" : "0"}',state:[{t:2,x:{r:["data.hw_nanoprint"],s:'_0==0?"selected":null'},p:[38,73,2121]}]},f:["None"]}]},{p:[39,4,2190],t:7,e:"td",f:[{p:[39,8,2194],t:7,e:"ui-button",a:{action:"hw_nanoprint",params:'{"print" : "1"}',state:[{t:2,x:{r:["data.hw_nanoprint"],s:'_0==1?"selected":null'},p:[39,73,2259]}]},f:["Standard"]}]}]}," ",{p:[41,3,2340],t:7,e:"tr",f:[{p:[42,4,2349],t:7,e:"td",f:[{p:[42,8,2353],t:7,e:"b",f:["Card Reader:"]}]},{p:[43,4,2377],t:7,e:"td",f:[{p:[43,8,2381],t:7,e:"ui-button",a:{action:"hw_card",params:'{"card" : "0"}',state:[{t:2,x:{r:["data.hw_card"],s:'_0==0?"selected":null'},p:[43,67,2440]}]},f:["None"]}]},{p:[44,4,2504],t:7,e:"td",f:[{p:[44,8,2508],t:7,e:"ui-button",a:{action:"hw_card",params:'{"card" : "1"}',state:[{t:2,x:{r:["data.hw_card"],s:'_0==1?"selected":null'},p:[44,67,2567]}]},f:["Standard"]}]}]}]}," ",{t:4,f:[" ",{p:[49,4,2706],t:7,e:"table",f:[{p:[50,5,2719],t:7,e:"tr",f:[{p:[51,6,2730],t:7,e:"td",f:[{p:[51,10,2734],t:7,e:"b",f:["Processor Unit:"]}]},{p:[52,6,2763],t:7,e:"td",f:[{p:[52,10,2767],t:7,e:"ui-button",a:{action:"hw_cpu",params:'{"cpu" : "1"}',state:[{t:2,x:{r:["data.hw_cpu"],s:'_0==1?"selected":null'},p:[52,67,2824]}]},f:["Standard"]}]},{p:[53,6,2893],t:7,e:"td",f:[{p:[53,10,2897],t:7,e:"ui-button",a:{action:"hw_cpu",params:'{"cpu" : "2"}',state:[{t:2,x:{r:["data.hw_cpu"],s:'_0==2?"selected":null'},p:[53,67,2954]}]},f:["Advanced"]}]}]}," ",{p:[55,5,3033],t:7,e:"tr",f:[{p:[56,6,3044],t:7,e:"td",f:[{p:[56,10,3048],t:7,e:"b",f:["Tesla Relay:"]}]},{p:[57,6,3074],t:7,e:"td",f:[{p:[57,10,3078],t:7,e:"ui-button",a:{action:"hw_tesla",params:'{"tesla" : "0"}',state:[{t:2,x:{r:["data.hw_tesla"],s:'_0==0?"selected":null'},p:[57,71,3139]}]},f:["None"]}]},{p:[58,6,3206],t:7,e:"td",f:[{p:[58,10,3210],t:7,e:"ui-button",a:{action:"hw_tesla",params:'{"tesla" : "1"}',state:[{t:2,x:{r:["data.hw_tesla"],s:'_0==1?"selected":null'},p:[58,71,3271]}]},f:["Standard"]}]}]}]}],n:50,x:{r:["data.devtype"],s:"_0!=2"},p:[48,3,2659]}," ",{p:[62,3,3374],t:7,e:"table",f:[{p:[63,4,3386],t:7,e:"tr",f:[{p:[64,5,3396],t:7,e:"td",f:[{p:[64,9,3400],t:7,e:"b",f:["Confirm Order:"]}]},{p:[65,5,3427],t:7,e:"td",f:[{p:[65,9,3431],t:7,e:"ui-button",a:{action:"confirm_order"},f:["CONFIRM"]}]}]}]}," ",{p:[69,2,3512],t:7,e:"hr"}," ",{p:[70,2,3519],t:7,e:"b",f:["Battery"]}," allows your device to operate without external utility power source. Advanced batteries increase battery life.",{p:[70,127,3644],t:7,e:"br"}," ",{p:[71,2,3651],t:7,e:"b",f:["Hard Drive"]}," stores file on your device. Advanced drives can store more files, but use more power, shortening battery life.",{p:[71,130,3779],t:7,e:"br"}," ",{p:[72,2,3786],t:7,e:"b",f:["Network Card"]}," allows your device to wirelessly connect to stationwide NTNet network. Basic cards are limited to on-station use, while advanced cards can operate anywhere near the station, which includes the asteroid outposts.",{p:[72,233,4017],t:7,e:"br"}," ",{p:[73,2,4024],t:7,e:"b",f:["Processor Unit"]}," is critical for your device's functionality. It allows you to run programs from your hard drive. Advanced CPUs use more power, but allow you to run more programs on background at once.",{p:[73,208,4230],t:7,e:"br"}," ",{p:[74,2,4237],t:7,e:"b",f:["Tesla Relay"]}," is an advanced wireless power relay that allows your device to connect to nearby area power controller to provide alternative power source. This component is currently unavailable on tablet computers due to size restrictions.",{p:[74,246,4481],t:7,e:"br"}," ",{p:[75,2,4488],t:7,e:"b",f:["Nano Printer"]}," is device that allows for various paperwork manipulations, such as, scanning of documents or printing new ones. This device was certified EcoFriendlyPlus and is capable of recycling existing paper for printing purposes.",{p:[75,241,4727],t:7,e:"br"}," ",{p:[76,2,4734],t:7,e:"b",f:["Card Reader"]}," adds a slot that allows you to manipulate RFID cards. Please note that this is not necessary to allow the device to read your identification, it is just necessary to manipulate other cards."]}]},{t:4,n:50,x:{r:["data.state"],s:"(!(_0==1))&&(_0==2)"},f:[" ",{p:[79,2,4981],t:7,e:"h2",f:["Step 3: Payment"]}," ",{p:[80,2,5008],t:7,e:"b",f:["Your device is now ready for fabrication.."]},{p:[80,51,5057],t:7,e:"br"}," ",{p:[81,2,5064],t:7,e:"i",f:["Please ensure the required amount of credits are in the machine, then press purchase."]},{p:[81,94,5156],t:7,e:"br"}," ",{p:[82,2,5163],t:7,e:"i",f:["Current credits: ",{p:[82,22,5183],t:7,e:"b",f:[{t:2,r:"data.credits",p:[82,25,5186]},"C"]}]},{p:[82,50,5211],t:7,e:"br"}," ",{p:[83,2,5218],t:7,e:"i",f:["Total price: ",{p:[83,18,5234],t:7,e:"b",f:[{t:2,r:"data.totalprice",p:[83,21,5237]},"C"]}]},{p:[83,49,5265],t:7,e:"br"},{p:[83,53,5269],t:7,e:"br"}," ",{p:[84,2,5276],t:7,e:"ui-button",a:{action:"purchase",state:[{t:2,x:{r:["data.credits","data.totalprice"],s:'_0>=_1?null:"disabled"'},p:[84,38,5312]}]},f:["PURCHASE"]}]},{t:4,n:50,x:{r:["data.state"],s:"(!(_0==1))&&((!(_0==2))&&(_0==3))"},f:[" ",{p:[87,2,5423],t:7,e:"h2",f:["Step 4: Thank you for your purchase"]},{p:[87,46,5467],t:7,e:"br"}," ",{p:[88,2,5474],t:7,e:"b",f:["Should you experience any issues with your new device, contact your local network admin for assistance."]}]}],x:{r:["data.state"],s:"_0==0"}}]},e.exports=a.extend(r.exports)},{205:205}],244:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,1,22],t:7,e:"ui-display",f:[{p:[3,2,37],t:7,e:"ui-section",a:{label:"Cap"},f:[{p:[4,3,65],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.is_capped"],s:'_0?"power-off":"close"'},p:[4,20,82]}],style:[{t:2,x:{r:["data.is_capped"],s:'_0?null:"selected"'},p:[4,71,133]}],action:"toggle_cap"},f:[{t:2,x:{r:["data.is_capped"],s:'_0?"On":"Off"'},p:[6,4,202]}]}]}]}],n:50,r:"data.has_cap",p:[1,1,0]},{p:[10,1,288],t:7,e:"ui-display",f:[{t:4,f:[{p:[14,2,419],t:7,e:"ui-section",f:[{p:[15,3,435],t:7,e:"ui-button",a:{action:"select_colour"},f:["Select New Colour"]}]}],n:50,r:"data.can_change_colour",p:[13,1,386]}]}," ",{p:[19,1,540],t:7,e:"ui-display",a:{title:"Stencil"},f:[{t:4,f:[{p:[21,2,599],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[21,21,618]}]},f:[{t:4,f:[{p:[23,7,655],t:7,e:"ui-button",a:{action:"select_stencil",params:['{"item":"',{t:2,r:"item",p:[23,59,707]},'"}'],style:[{t:2,x:{r:["item","data.selected_stencil"],s:'_0==_1?"selected":null'},p:[24,12,731]}]},f:[{t:2,r:"item",p:[25,4,791]}]}],n:52,r:"items",p:[22,3,632]}]}],n:52,r:"data.drawables",p:[20,3,572]}]}," ",{p:[31,1,874],t:7,e:"ui-display",a:{title:"Text Mode"},f:[{p:[32,2,907],t:7,e:"ui-section",a:{label:"Current Buffer"},f:[{t:2,r:"text_buffer",p:[32,37,942]}]}," ",{p:[34,2,976],t:7,e:"ui-section",f:[{p:[34,14,988],t:7,e:"ui-button",a:{action:"enter_text"},f:["New Text"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],245:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={data:{temperatureStatus:function(t){return 225>t?"good":273.15>t?"average":"bad"}},computed:{occupantStatState:function(){switch(this.get("data.occupant.stat")){case 0:return"good";case 1:return"average";default:return"bad"}}}}}(r),r.exports.template={v:3,t:[" ",{p:[22,1,466],t:7,e:"ui-display",a:{title:"Occupant"},f:[{p:[23,3,499],t:7,e:"ui-section",a:{label:"Occupant"},f:[{p:[24,3,532],t:7,e:"span",f:[{t:2,x:{r:["data.occupant.name"],s:'_0?_0:"No Occupant"'},p:[24,9,538]}]}]}," ",{t:4,f:[{p:[27,5,655],t:7,e:"ui-section",a:{label:"State"},f:[{p:[28,7,689],t:7,e:"span",a:{"class":[{t:2,r:"occupantStatState",p:[28,20,702]}]},f:[{t:2,x:{r:["data.occupant.stat"],s:'_0==0?"Conscious":_0==1?"Unconcious":"Dead"'},p:[28,43,725]}]}]}," ",{p:[30,4,846],t:7,e:"ui-section",a:{label:"Temperature"},f:[{p:[31,6,885],t:7,e:"span",a:{"class":[{t:2,x:{r:["temperatureStatus","adata.occupant.bodyTemperature"],s:"_0(_1)"},p:[31,19,898]}]},f:[{t:2,x:{r:["adata.occupant.bodyTemperature"],s:"Math.round(_0)"},p:[31,74,953]}," K"]}]}," ",{p:[33,5,1032],t:7,e:"ui-section",a:{label:"Health"},f:[{p:[34,7,1067],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.occupant.minHealth",p:[34,20,1080]}],max:[{t:2,r:"data.occupant.maxHealth",p:[34,54,1114]}],value:[{t:2,r:"data.occupant.health",p:[34,90,1150]}],state:[{t:2,x:{r:["data.occupant.health"],s:'_0>=0?"good":"average"'},p:[35,16,1192]}]},f:[{t:2,x:{r:["adata.occupant.health"],s:"Math.round(_0)"},p:[35,68,1244]}]}]}," ",{t:4,f:[{p:[38,7,1481],t:7,e:"ui-section",a:{label:[{t:2,r:"label",p:[38,26,1500]}]},f:[{p:[39,9,1521],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.occupant.maxHealth",p:[39,30,1542]}],value:[{t:2,rx:{r:"data.occupant",m:[{t:30,n:"type"}]},p:[39,66,1578]}],state:"bad"},f:[{t:2,x:{r:["type","adata.occupant"],s:"Math.round(_1[_0])"},p:[39,103,1615]}]}]}],n:52,x:{r:[],s:'[{label:"Brute",type:"bruteLoss"},{label:"Respiratory",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Burn",type:"fireLoss"}]'},p:[37,5,1315]}],n:50,r:"data.hasOccupant",p:[26,3,625]}]}," ",{p:[44,1,1724],t:7,e:"ui-display",a:{title:"Cell"},f:[{p:[45,3,1753],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[46,5,1785],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isOperating"],s:'_0?"power-off":"close"'},p:[46,22,1802]}],style:[{t:2,x:{r:["data.isOperating"],s:'_0?"selected":null'},p:[47,14,1862]}],state:[{t:2,x:{r:["data.isOpen"],s:'_0?"disabled":null'},p:[48,14,1918]}],action:"power"},f:[{t:2,x:{r:["data.isOperating"],s:'_0?"On":"Off"'},p:[49,22,1977]}]}]}," ",{p:[51,3,2045],t:7,e:"ui-section",a:{label:"Temperature"},f:[{p:[52,3,2081],t:7,e:"span",a:{"class":[{t:2,x:{r:["temperatureStatus","adata.cellTemperature"],s:"_0(_1)"},p:[52,16,2094]}]},f:[{t:2,x:{r:["adata.cellTemperature"],s:"Math.round(_0)"},p:[52,62,2140]}," K"]}]}," ",{p:[54,2,2205],t:7,e:"ui-section",a:{label:"Door"},f:[{p:[55,5,2236],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isOpen"],s:'_0?"unlock":"lock"'},p:[55,22,2253]}],action:"door"},f:[{t:2,x:{r:["data.isOpen"],s:'_0?"Open":"Closed"'},p:[55,73,2304]}]}," ",{p:[56,5,2357],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.autoEject"],s:'_0?"sign-out":"sign-in"'},p:[56,22,2374]}],action:"autoeject"},f:[{t:2,x:{r:["data.autoEject"],s:'_0?"Auto":"Manual"'},p:[56,86,2438]}]}]}]}," ",{p:{button:[{p:[61,5,2584],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[61,36,2615]}],action:"ejectbeaker"},f:["Eject"]}]},t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[" ",{p:[63,3,2718],t:7,e:"ui-section",a:{label:"Contents"},f:[{t:4,f:[{t:4,f:[{p:[66,9,2828],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[66,52,2871]}," units of ",{t:2,r:"name",p:[66,87,2906]}]},{p:[66,102,2921],t:7,e:"br"}],n:52,r:"adata.beakerContents",p:[65,7,2788]},{t:4,n:51,f:[{p:[68,9,2952],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"adata.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[64,5,2753]},{t:4,n:51,f:[{p:[71,7,3028],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],246:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,2,15],t:7,e:"ui-section",a:{label:"State"},f:[{t:4,f:[{p:[4,4,76],t:7,e:"span",a:{"class":"good"},f:["Ready"]}],n:50,r:"data.full_pressure",p:[3,3,45]},{t:4,n:51,f:[{t:4,f:[{p:[7,5,153],t:7,e:"span",a:{"class":"bad"},f:["Power Disabled"]}],n:50,r:"data.panel_open",p:[6,4,124]},{t:4,n:51,f:[{t:4,f:[{p:[10,6,248],t:7,e:"span",a:{"class":"average"},f:["Pressurizing"]}],n:50,r:"data.pressure_charging",p:[9,5,211]},{t:4,n:51,f:[{p:[12,6,310],t:7,e:"span",a:{"class":"bad"},f:["Off"]}],r:"data.pressure_charging"}],r:"data.panel_open"}],r:"data.full_pressure"}]}," ",{p:[17,2,393],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[18,3,426],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.per",p:[18,36,459]}],state:"good"},f:[{t:2,r:"data.per",p:[18,63,486]},"%"]}]}," ",{p:[20,5,530],t:7,e:"ui-section",a:{label:"Handle"},f:[{p:[21,9,567],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.flush"],s:'_0?"toggle-on":"toggle-off"'},p:[22,10,589]}],state:[{t:2,x:{r:["data.isai","data.panel_open"],s:'_0||_1?"disabled":null'},p:[23,11,647]}],action:[{t:2,x:{r:["data.flush"],s:'_0?"handle-0":"handle-1"'},p:[24,12,714]}]},f:[{t:2,x:{r:["data.flush"],s:'_0?"Disengage":"Engage"'},p:[25,5,763]}]}]}," ",{p:[27,2,837],t:7,e:"ui-section",a:{label:"Eject"},f:[{p:[28,3,867],t:7,e:"ui-button",a:{icon:"sign-out",state:[{t:2,x:{r:["data.isai"],s:'_0?"disabled":null'},p:[28,37,901]}],action:"eject"},f:["Eject Contents"]},{p:[28,114,978],t:7,e:"br"}]}," ",{p:[30,2,1002],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[31,3,1032],t:7,e:"ui-button",a:{icon:"power-off",state:[{t:2,x:{r:["data.panel_open"],s:'_0?"disabled":null'},p:[31,38,1067]}],action:[{t:2,x:{r:["data.pressure_charging"],s:'_0?"pump-0":"pump-1"'},p:[31,87,1116]}],style:[{t:2,x:{r:["data.pressure_charging"],s:'_0?"selected":null'},p:[31,145,1174]}]}},{p:[31,206,1235],t:7,e:"br"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],247:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"DNA Vault Database"},f:[{p:[2,3,43],t:7,e:"ui-section",a:{label:"Human DNA"},f:[{p:[3,7,81],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.dna_max",p:[3,28,102]}],value:[{t:2,r:"data.dna",p:[3,53,127]}]},f:[{t:2,r:"data.dna",p:[3,67,141]},"/",{t:2,r:"data.dna_max",p:[3,80,154]}," Samples"]}]}," ",{p:[5,3,208],t:7,e:"ui-section",a:{label:"Plant Data"},f:[{p:[6,5,245],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.plants_max",p:[6,26,266]}],value:[{t:2,r:"data.plants",p:[6,54,294]}]},f:[{t:2,r:"data.plants",p:[6,71,311]},"/",{t:2,r:"data.plants_max",p:[6,87,327]}," Samples"]}]}," ",{p:[8,3,384],t:7,e:"ui-section",a:{label:"Animal Data"},f:[{p:[9,5,422],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.animals_max",p:[9,26,443]}],value:[{t:2,r:"data.animals",p:[9,55,472]}]},f:[{t:2,r:"data.animals",p:[9,73,490]},"/",{t:2,r:"data.animals_max",p:[9,90,507]}," Samples"]}]}]}," ",{t:4,f:[{p:[13,1,616],t:7,e:"ui-display",a:{title:"Personal Gene Therapy"},f:[{p:[14,3,663],t:7,e:"ui-section",f:[{p:[15,2,678],t:7,e:"span",f:["Applicable gene therapy treatments:"]}]}," ",{p:[17,3,747],t:7,e:"ui-section",f:[{p:[18,2,762],t:7,e:"ui-button",a:{action:"gene",params:['{"choice": "',{t:2,r:"data.choiceA",p:[18,47,807]},'"}']},f:[{t:2,r:"data.choiceA",p:[18,67,827]}]}," ",{p:[19,2,858],t:7,e:"ui-button",a:{action:"gene",params:['{"choice": "',{t:2,r:"data.choiceB",p:[19,47,903]},'"}']},f:[{t:2,r:"data.choiceB",p:[19,67,923]}]}]}]}],n:50,x:{r:["data.completed","data.used"],s:"_0&&!_1"},p:[12,1,578]}]},e.exports=a.extend(r.exports)},{205:205}],248:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,24],t:7,e:"ui-display",a:{title:[{t:2,r:"data.question",p:[2,21,42]}]},f:[{p:[3,5,66],t:7,e:"ui-section",f:[{t:4,f:[{p:[5,9,118],t:7,e:"ui-button",a:{action:"vote",params:['{"answer": "',{t:2,r:"answer",p:[6,45,174]},'"}'],style:[{t:2,x:{r:["selected"],s:'_0?"selected":null'},p:[7,18,206]}]},f:[{t:2,r:"answer",p:[7,53,241]}," (",{t:2,r:"amount",p:[7,65,253]},")"]}],n:52,r:"data.answers",p:[4,7,86]}]}]}],n:50,r:"data.shaking",p:[1,1,0]},{t:4,n:51,f:[{p:[13,3,353],t:7,e:"ui-notice",f:["The eightball is not currently being shaken."]}],r:"data.shaking"}]},e.exports=a.extend(r.exports)},{205:205}],249:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-notice",f:[{p:[2,5,17],t:7,e:"span",f:["Time Until Launch: ",{t:2,r:"data.timer_str",p:[2,30,42]}]}]}," ",{p:[4,1,83],t:7,e:"ui-notice",f:[{p:[5,3,98],t:7,e:"span",f:["Engines: ",{t:2,x:{r:["data.engines_started"],s:'_0?"Online":"Idle"'},p:[5,18,113]}]}]}," ",{p:[7,1,180],t:7,e:"ui-display",a:{title:"Early Launch"},f:[{p:[8,2,216],t:7,e:"span",f:["Authorizations Remaining: ",{t:2,x:{r:["data.emagged","data.authorizations_remaining"],s:'_0?"ERROR":_1'},p:[9,2,250]}]}," ",{p:[10,2,318],t:7,e:"ui-button",a:{icon:"exclamation-triangle",action:"authorize",style:"danger",state:[{t:2,x:{r:["data.enabled"],s:'_0?null:"disabled"'},p:[12,10,404]}]},f:["AUTHORIZE"]}," ",{p:[15,2,473],t:7,e:"ui-button",a:{icon:"minus",action:"repeal",state:[{t:2,x:{r:["data.enabled"],s:'_0?null:"disabled"'},p:[16,10,523]}]},f:["Repeal"]}," ",{p:[19,2,589],t:7,e:"ui-button",a:{icon:"close",action:"abort",state:[{t:2,x:{r:["data.enabled"],s:'_0?null:"disabled"'},p:[20,10,638]}]},f:["Repeal All"]}]}," ",{p:[24,1,722],t:7,e:"ui-display",a:{title:"Authorizations"},f:[{t:4,f:[{p:[26,3,793],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:[{t:2,r:"name",p:[26,34,824]}," (",{t:2,r:"job",p:[26,44,834]},")"]}],n:52,r:"data.authorizations",p:[25,2,760]},{t:4,n:51,f:[{p:[28,3,870],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:["No authorizations."]}],r:"data.authorizations"}]}]},e.exports=a.extend(r.exports)},{205:205}],250:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,3,16],t:7,e:"ui-section",a:{label:"Message"},f:[{t:2,r:"data.hidden_message",p:[3,5,50]}]}," ",{p:[5,3,94],t:7,e:"ui-section",a:{label:"Created On"},f:[{t:2,r:"data.realdate",p:[6,5,131]}]}," ",{p:[8,3,169],t:7,e:"ui-section",a:{label:"Approval"},f:[{p:[9,5,204],t:7,e:"ui-button",a:{icon:"arrow-up",state:[{t:2,x:{r:["data.is_creator","data.has_liked"],s:'_0?"disabled":_1?"selected":null'},p:[11,14,252]}],action:"like"},f:[{t:2,r:"data.num_likes",p:[12,21,344]}]}," ",{p:[13,5,380],t:7,e:"ui-button",a:{icon:"circle",state:[{t:2,x:{r:["data.is_creator","data.has_liked","data.has_disliked"],s:'_0?"disabled":!_1&&!_2?"selected":null'},p:[15,14,426]}],action:"neutral"}}," ",{p:[17,5,562],t:7,e:"ui-button",a:{icon:"arrow-down",state:[{t:2,x:{r:["data.is_creator","data.has_disliked"],s:'_0?"disabled":_1?"selected":null'},p:[19,14,612]}],action:"dislike"},f:[{t:2,r:"data.num_dislikes",p:[20,24,710]}]}]}]}," ",{t:4,f:[{p:[24,3,805],t:7,e:"ui-display",a:{title:"Admin Panel"},f:[{p:[25,5,843],t:7,e:"ui-section",a:{label:"Creator Ckey"},f:[{t:2,r:"data.creator_key",p:[25,38,876]}]}," ",{p:[26,5,915],t:7,e:"ui-section",a:{label:"Creator Character Name"},f:[{t:2,r:"data.creator_name",p:[26,48,958]}]}," ",{p:[27,5,998],t:7,e:"ui-button",a:{icon:"remove",action:"delete",style:"danger"},f:["Delete"]}]}],n:50,r:"data.admin_mode",p:[23,1,778]}]},e.exports=a.extend(r.exports)},{205:205}],251:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-notice",f:[{p:[2,3,15],t:7,e:"span",f:["The requested interface (",{t:2,r:"config.interface",p:[2,34,46]},") was not found. Does it exist?"]}]}]},e.exports=a.extend(r.exports)},{205:205}],252:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={computed:{seclevelState:function(){switch(this.get("data.seclevel")){case"blue":return"average";case"red":return"bad";case"delta":return"bad bold";default:return"good"}}}}}(r),r.exports.template={v:3,t:[" ",{p:[16,1,323],t:7,e:"ui-display",f:[{p:[17,5,341],t:7,e:"ui-section",a:{label:"Alert Level"},f:[{p:[18,9,383],t:7,e:"span",a:{"class":[{t:2,r:"seclevelState",p:[18,22,396]}]},f:[{t:2,x:{r:["text","data.seclevel"],s:"_0.titleCase(_1)"},p:[18,41,415]}]}]}," ",{p:[20,5,480],t:7,e:"ui-section",a:{label:"Controls"},f:[{p:[21,9,519],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.alarm"],s:'_0?"close":"bell-o"'},p:[21,26,536]}],action:[{t:2,x:{r:["data.alarm"],s:'_0?"reset":"alarm"'},p:[21,71,581]}]},f:[{t:2,x:{r:["data.alarm"],s:'_0?"Reset":"Activate"'},p:[22,13,631]}]}]}," ",{t:4,f:[{p:[25,7,733],t:7,e:"ui-section",a:{label:"Warning"},f:[{p:[26,9,771],t:7,e:"span",a:{"class":"bad bold"},f:["Safety measures offline. Device may exhibit abnormal behavior."]}]}],n:50,r:"data.emagged",p:[24,5,705]}]}]},e.exports=a.extend(r.exports)},{205:205}],253:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Controls"},f:[{p:[2,1,31],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[3,2,60],t:7,e:"ui-button",a:{icon:"power-off",style:[{t:2,x:{r:["data.power"],s:'_0?"selected":"danger"'},p:[3,37,95]}],action:"power"},f:[{t:2,x:{r:["data.power"],s:'_0?"Enabled":"Disabled"'},p:[3,92,150]}]}]}," ",{p:[5,1,218],t:7,e:"ui-section",a:{label:"Tag"},f:[{p:[6,2,245],t:7,e:"ui-button",a:{icon:"pencil",action:"rename"},f:[{t:2,r:"data.tag",p:[6,43,286]}]}]}," ",{p:[8,1,327],t:7,e:"ui-section",a:{label:"Scanning mode"},f:[{p:[9,2,364],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.updating"],s:'_0?"unlock":"lock"'},p:[9,18,380]}],style:[{t:2,x:{r:["data.updating"],s:'_0?null:"danger"'},p:[9,63,425]}],action:"updating",tooltip:"Toggle between automatic scanning or scan only when a button is pressed.","tooltip-side":"right"},f:[{t:2,x:{r:["data.updating"],s:'_0?"AUTO":"MANUAL"'},p:[9,221,583]}]}]}," ",{p:[11,1,649],t:7,e:"ui-section",a:{label:"Detection range"},f:[{p:[12,2,688],t:7,e:"ui-button",a:{icon:"refresh",style:[{t:2,x:{r:["data.globalmode"],s:'_0?null:"selected"'},p:[12,35,721]}],action:"globalmode",tooltip:"Local sector or whole region scanning.","tooltip-side":"right"},f:[{t:2,x:{r:["data.globalmode"],s:'_0?"MAXIMUM":"LOCAL"'},p:[12,165,851]}]}]}]}," ",{t:4,f:[{p:[16,2,957],t:7,e:"ui-display",a:{title:"Current Location"},f:[{p:[17,3,998],t:7,e:"span",f:[{t:2,r:"data.current",p:[17,9,1004]}]}]}," ",{p:[20,2,1048],t:7,e:"ui-display",a:{title:"Detected Signals"},f:[{t:4,f:[{p:[22,3,1114],t:7,e:"ui-section",a:{label:[{t:2,r:"entrytag",p:[22,21,1132]}]},f:[{p:[23,3,1149],t:7,e:"span",f:[{t:2,r:"area",p:[23,9,1155]}," (",{t:2,r:"coord",p:[23,19,1165]},")"]}," ",{t:4,f:[{p:[25,4,1209],t:7,e:"span",f:["Dist: ",{t:2,r:"dist",p:[25,16,1221]},"m Dir: ",{t:2,r:"degrees",p:[25,31,1236]},"° (",{t:2,r:"direction",p:[25,45,1250]},")"]}],n:50,r:"direction",p:[24,3,1187]}]}],n:52,r:"data.signals",p:[21,2,1088]}]}],n:50,r:"data.power",p:[15,1,936]}]},e.exports=a.extend(r.exports)},{205:205}],254:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Labor Camp Teleporter"},f:[{p:[2,2,45],t:7,e:"ui-section",a:{label:"Teleporter Status"},f:[{p:[3,3,87],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.teleporter"],s:'_0?"good":"bad"'},p:[3,16,100]}]},f:[{t:2,x:{r:["data.teleporter"],s:'_0?"Connected":"Not connected"'},p:[3,54,138]}]}]}," ",{t:4,f:[{p:[6,4,244],t:7,e:"ui-section",a:{label:"Location"},f:[{p:[7,5,279],t:7,e:"span",f:[{t:2,r:"data.teleporter_location",p:[7,11,285]}]}]}," ",{p:[9,4,343],t:7,e:"ui-section",a:{label:"Locked status"},f:[{p:[10,5,383],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.teleporter_lock"],s:'_0?"lock":"unlock"'},p:[10,22,400]}],action:"teleporter_lock"},f:[{t:2,x:{r:["data.teleporter_lock"],s:'_0?"Locked":"Unlocked"'},p:[10,93,471]}]}," ",{p:[11,5,537],t:7,e:"ui-button",a:{action:"toggle_open"},f:[{t:2,x:{r:["data.teleporter_state_open"],s:'_0?"Open":"Closed"'},p:[11,37,569]}]}]}],n:50,r:"data.teleporter",p:[5,3,216]},{t:4,n:51,f:[{p:[14,4,666],t:7,e:"span",f:[{p:[14,10,672],t:7,e:"ui-button",a:{action:"scan_teleporter"},f:["Scan Teleporter"]}]}],r:"data.teleporter"}]}," ",{p:[17,1,770],t:7,e:"ui-display",a:{title:"Labor Camp Beacon"},f:[{p:[18,2,811],t:7,e:"ui-section",a:{label:"Beacon Status"},f:[{p:[19,3,849],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.beacon"],s:'_0?"good":"bad"'},p:[19,16,862]}]},f:[{t:2,x:{r:["data.beacon"],s:'_0?"Connected":"Not connected"'},p:[19,50,896]}]}]}," ",{t:4,f:[{p:[22,3,992],t:7,e:"ui-section",a:{label:"Location"},f:[{p:[23,4,1026],t:7,e:"span",f:[{t:2,r:"data.beacon_location",p:[23,10,1032]}]}]}],n:50,r:"data.beacon",p:[21,2,969]},{t:4,n:51,f:[{p:[26,4,1097],t:7,e:"span",f:[{p:[26,10,1103],t:7,e:"ui-button",a:{action:"scan_beacon"},f:["Scan Beacon"]}]}],r:"data.beacon"}]}," ",{p:[29,1,1193],t:7,e:"ui-display",a:{title:"Prisoner details"},f:[{p:[30,2,1233],t:7,e:"ui-section",a:{label:"Prisoner ID"},f:[{p:[31,3,1269],t:7,e:"ui-button",a:{action:"handle_id"},f:[{t:2,x:{r:["data.id","data.id_name"],s:'_0?_1:"-------------"'},p:[31,33,1299]}]}]}," ",{t:4,f:[{p:[34,2,1392],t:7,e:"ui-section",a:{label:"Set ID goal"},f:[{p:[35,4,1429],t:7,e:"ui-button",a:{action:"set_goal"},f:[{t:2,r:"data.goal",p:[35,33,1458]}]}]}],n:50,r:"data.id",p:[33,2,1374]}," ",{p:[38,2,1512],t:7,e:"ui-section",a:{label:"Occupant"},f:[{p:[39,3,1545],t:7,e:"span",f:[{t:2,x:{r:["data.prisoner.name"],s:'_0?_0:"No Occupant"'},p:[39,9,1551]}]}]}," ",{t:4,f:[{p:[42,3,1661],t:7,e:"ui-section",a:{label:"Criminal Status"},f:[{p:[43,4,1702],t:7,e:"span",f:[{t:2,r:"data.prisoner.crimstat",p:[43,10,1708]}]}]}],n:50,r:"data.prisoner",p:[41,2,1636]}]}," ",{p:[47,1,1785],t:7,e:"ui-display",f:[{p:[48,2,1800],t:7,e:"center",f:[{p:[48,10,1808],t:7,e:"ui-button",a:{action:"teleport",state:[{t:2,x:{r:["data.can_teleport"],s:'_0?null:"disabled"'},p:[48,45,1843]}]},f:["Process Prisoner"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],255:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,2,15],t:7,e:"center",f:[{p:[2,10,23],t:7,e:"ui-button",a:{action:"handle_id"},f:[{t:2,x:{r:["data.id","data.id_name"],s:'_0?_1:"-------------"'},p:[2,40,53]}]}]}]}," ",{p:[4,1,135],t:7,e:"ui-display",a:{title:"Stored Items"},f:[{t:4,f:[{p:[6,3,194],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[6,22,213]}]},f:[{p:[7,4,228],t:7,e:"ui-button",a:{action:"release_items",params:['{"mobref":',{t:2, + r:"mob",p:[7,56,280]},"}"],state:[{t:2,x:{r:["data.can_reclaim"],s:'_0?null:"disabled"'},p:[7,72,296]}]},f:["Drop Items"]}]}],n:52,r:"data.mobs",p:[5,2,171]}]}]},e.exports=a.extend(r.exports)},{205:205}],256:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:{button:[{p:[3,3,70],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.emagged"],s:'_0?"un":null'},p:[3,20,87]},"lock"],state:[{t:2,x:{r:["data.can_toggle_safety"],s:'_0?null:"disabled"'},p:[3,63,130]}],action:"safety"},f:["Safeties: ",{p:[4,14,209],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.emagged"],s:'_0?"bad":"good"'},p:[4,27,222]}]},f:[{t:2,x:{r:["data.emagged"],s:'_0?"OFF":"ON"'},p:[4,62,257]}]}]}]},t:7,e:"ui-display",a:{title:"Default Programs",button:0},f:[" ",{t:4,f:[{p:[8,2,363],t:7,e:"ui-button",a:{action:"load_program",params:['{"type": ',{t:2,r:"type",p:[8,52,413]},"}"],style:[{t:2,x:{r:["data.program","type"],s:'_0==_1?"selected":null'},p:[8,70,431]}]},f:[{t:2,r:"name",p:[9,5,483]}," "]},{p:[10,14,506],t:7,e:"br"}],n:52,r:"data.default_programs",p:[7,2,329]}]}," ",{t:4,f:[{p:[14,2,562],t:7,e:"ui-display",a:{title:"Dangerous Programs"},f:[{t:4,f:[{p:[16,4,638],t:7,e:"ui-button",a:{icon:"warning",action:"load_program",params:['{"type": ',{t:2,r:"type",p:[16,69,703]},"}"],style:[{t:2,x:{r:["data.program","type"],s:'_0==_1?"selected":null'},p:[16,87,721]}]},f:[{t:2,r:"name",p:[17,5,773]}," "]},{p:[18,16,798],t:7,e:"br"}],n:52,r:"data.emag_programs",p:[15,3,605]}]}],n:50,r:"data.emagged",p:[13,1,539]}]},e.exports=a.extend(r.exports)},{205:205}],257:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={computed:{occupantStatState:function(){switch(this.get("data.occupant.stat")){case 0:return"good";case 1:return"average";default:return"bad"}}}}}(r),r.exports.template={v:3,t:[" ",{p:[15,1,280],t:7,e:"ui-display",a:{title:"Occupant"},f:[{p:[16,3,313],t:7,e:"ui-section",a:{label:"Occupant"},f:[{p:[17,3,346],t:7,e:"span",f:[{t:2,x:{r:["data.occupant.name"],s:'_0?_0:"No Occupant"'},p:[17,9,352]}]}]}," ",{t:4,f:[{p:[20,5,466],t:7,e:"ui-section",a:{label:"State"},f:[{p:[21,7,500],t:7,e:"span",a:{"class":[{t:2,r:"occupantStatState",p:[21,20,513]}]},f:[{t:2,x:{r:["data.occupant.stat"],s:'_0==0?"Conscious":_0==1?"Unconcious":"Dead"'},p:[21,43,536]}]}]}],n:50,r:"data.occupied",p:[19,3,439]}]}," ",{p:[25,1,680],t:7,e:"ui-display",a:{title:"Controls"},f:[{p:[26,2,712],t:7,e:"ui-section",a:{label:"Door"},f:[{p:[27,5,743],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.open"],s:'_0?"unlock":"lock"'},p:[27,22,760]}],action:"door"},f:[{t:2,x:{r:["data.open"],s:'_0?"Open":"Closed"'},p:[27,71,809]}]}]}," ",{p:[29,3,874],t:7,e:"ui-section",a:{label:"Uses"},f:[{t:2,r:"data.ready_implants",p:[30,5,905]}," ",{t:4,f:[{p:[32,7,969],t:7,e:"span",a:{"class":"fa fa-cog fa-spin"}}],n:50,r:"data.replenishing",p:[31,5,936]}]}," ",{p:[35,3,1036],t:7,e:"ui-section",a:{label:"Activate"},f:[{p:[36,7,1073],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.occupied","data.ready_implants","data.ready"],s:'_0&&_1>0&&_2?null:"disabled"'},p:[36,25,1091]}],action:"implant"},f:[{t:2,x:{r:["data.ready","data.special_name"],s:'_0?(_1?_1:"Implant"):"Recharging"'},p:[37,9,1198]}," "]},{p:[38,19,1302],t:7,e:"br"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],258:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={computed:{healthState:function(){var t=this.get("data.health");return t>70?"good":t>50?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{t:4,f:[{p:[15,3,296],t:7,e:"ui-notice",f:[{p:[16,5,313],t:7,e:"span",f:["Wipe in progress!"]}]}],n:50,r:"data.wiping",p:[14,1,273]},{p:{button:[{t:4,f:[{p:[22,7,479],t:7,e:"ui-button",a:{icon:"trash",state:[{t:2,x:{r:["data.isDead"],s:'_0?"disabled":null'},p:[22,38,510]}],action:"wipe"},f:[{t:2,x:{r:["data.wiping"],s:'_0?"Stop Wiping":"Wipe"'},p:[22,89,561]}," AI"]}],n:50,r:"data.name",p:[21,5,454]}]},t:7,e:"ui-display",a:{title:[{t:2,x:{r:["data.name"],s:'_0||"Empty Card"'},p:[19,19,388]}],button:0},f:[" ",{t:4,f:[{p:[26,5,672],t:7,e:"ui-section",a:{label:"Status"},f:[{p:[27,9,709],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.isDead","data.isBraindead"],s:'_0||_1?"bad":"good"'},p:[27,22,722]}]},f:[{t:2,x:{r:["data.isDead","data.isBraindead"],s:'_0||_1?"Offline":"Operational"'},p:[27,76,776]}]}]}," ",{p:[29,5,871],t:7,e:"ui-section",a:{label:"Software Integrity"},f:[{p:[30,7,918],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.health",p:[30,40,951]}],state:[{t:2,r:"healthState",p:[30,64,975]}]},f:[{t:2,x:{r:["adata.health"],s:"Math.round(_0)"},p:[30,81,992]},"%"]}]}," ",{p:[32,5,1055],t:7,e:"ui-section",a:{label:"Laws"},f:[{t:4,f:[{p:[34,9,1117],t:7,e:"span",a:{"class":"highlight"},f:[{t:2,r:".",p:[34,33,1141]}]},{p:[34,45,1153],t:7,e:"br"}],n:52,r:"data.laws",p:[33,7,1088]}]}," ",{p:[37,5,1200],t:7,e:"ui-section",a:{label:"Settings"},f:[{p:[38,7,1237],t:7,e:"ui-button",a:{icon:"signal",style:[{t:2,x:{r:["data.wireless"],s:'_0?"selected":null'},p:[38,39,1269]}],action:"wireless"},f:["Wireless Activity"]}," ",{p:[39,7,1363],t:7,e:"ui-button",a:{icon:"microphone",style:[{t:2,x:{r:["data.radio"],s:'_0?"selected":null'},p:[39,43,1399]}],action:"radio"},f:["Subspace Radio"]}]}],n:50,r:"data.name",p:[25,3,649]}]}]},e.exports=a.extend(r.exports)},{205:205}],259:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,2,23],t:7,e:"ui-notice",f:[{p:[3,3,38],t:7,e:"span",f:["Waiting for another device to confirm your request..."]}]}],n:50,r:"data.waiting",p:[1,1,0]},{t:4,n:51,f:[{p:[6,2,132],t:7,e:"ui-display",f:[{p:[7,3,148],t:7,e:"ui-section",f:[{t:4,f:[{p:[9,5,197],t:7,e:"ui-button",a:{icon:"check",action:"auth_swipe"},f:["Authorize ",{t:2,r:"data.auth_required",p:[9,59,251]}]}],n:50,r:"data.auth_required",p:[8,4,165]},{t:4,n:51,f:[{p:[11,5,304],t:7,e:"ui-button",a:{icon:"warning",state:[{t:2,x:{r:["data.red_alert"],s:'_0?"disabled":null'},p:[11,38,337]}],action:"red_alert"},f:["Red Alert"]}," ",{p:[12,5,423],t:7,e:"ui-button",a:{icon:"wrench",state:[{t:2,x:{r:["data.emergency_maint"],s:'_0?"disabled":null'},p:[12,37,455]}],action:"emergency_maint"},f:["Emergency Maintenance Access"]}," ",{p:[13,5,572],t:7,e:"ui-button",a:{icon:"warning",state:"null",action:"bsa_unlock"},f:["Bluespace Artillery Unlock"]}],r:"data.auth_required"}]}]}],r:"data.waiting"}]},e.exports=a.extend(r.exports)},{205:205}],260:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Ore values"},f:[{t:4,f:[{p:[3,3,57],t:7,e:"ui-section",a:{label:[{t:2,r:"ore",p:[3,22,76]}]},f:[{p:[4,4,90],t:7,e:"span",f:[{t:2,r:"value",p:[4,10,96]}]}]}],n:52,r:"data.ores",p:[2,2,34]}]}," ",{p:[8,1,158],t:7,e:"ui-display",a:{title:"Points"},f:[{p:[9,2,188],t:7,e:"ui-section",a:{label:"ID"},f:[{p:[10,3,215],t:7,e:"ui-button",a:{action:"handle_id"},f:[{t:2,x:{r:["data.id","data.id_name"],s:'_0?_1:"-------------"'},p:[10,33,245]}]}]}," ",{t:4,f:[{p:[13,3,339],t:7,e:"ui-section",a:{label:"Points collected"},f:[{p:[14,4,381],t:7,e:"span",f:[{t:2,r:"data.points",p:[14,10,387]}]}]}," ",{p:[16,3,430],t:7,e:"ui-section",a:{label:"Goal"},f:[{p:[17,4,460],t:7,e:"span",f:[{t:2,r:"data.goal",p:[17,10,466]}]}]}," ",{p:[19,3,507],t:7,e:"ui-section",a:{label:"Unclaimed points"},f:[{p:[20,4,549],t:7,e:"span",f:[{t:2,r:"data.unclaimed_points",p:[20,10,555]}]}," ",{p:[21,4,592],t:7,e:"ui-button",a:{action:"claim_points",state:[{t:2,x:{r:["data.unclaimed_points"],s:'_0?null:"disabled"'},p:[21,43,631]}]},f:["Claim points"]}]}],n:50,r:"data.id",p:[12,2,320]}]}," ",{p:[25,1,745],t:7,e:"ui-display",f:[{p:[26,2,760],t:7,e:"center",f:[{p:[27,3,772],t:7,e:"ui-button",a:{action:"move_shuttle",state:[{t:2,x:{r:["data.can_go_home"],s:'_0?null:"disabled"'},p:[27,42,811]}]},f:["Move shuttle"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],261:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Known Languages"},f:[{t:4,f:[{p:[3,5,70],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[3,23,88]}]},f:[{p:[4,7,105],t:7,e:"span",f:[{t:2,r:"desc",p:[4,13,111]}]}," ",{p:[5,7,134],t:7,e:"span",f:["Key: ,",{t:2,r:"key",p:[5,19,146]}]}," ",{t:4,f:[{p:[7,9,192],t:7,e:"span",f:["(gained from mob)"]}],n:50,r:"shadow",p:[6,7,168]}," ",{p:[9,7,245],t:7,e:"span",f:[{t:2,x:{r:["can_speak"],s:'_0?"Can Speak":"Cannot Speak"'},p:[9,13,251]}]}," ",{t:4,f:[{p:[11,9,342],t:7,e:"ui-button",a:{action:"select_default",params:['{"language_name":"',{t:2,r:"name",p:[13,37,425]},'"}'],style:[{t:2,x:{r:["is_default","can_speak"],s:'_0?"selected":_1?null:"disabled"'},p:[14,18,455]}]},f:[{t:2,x:{r:["is_default"],s:'_0?"Default Language":"Select as Default"'},p:[15,10,526]}]}],n:50,r:"data.is_living",p:[10,7,310]}," ",{t:4,f:[{t:4,f:[{p:[20,11,685],t:7,e:"ui-button",a:{action:"grant_language",params:['{"language_name":"',{t:2,r:"name",p:[20,72,746]},'"}']},f:["Grant"]}],n:50,r:"shadow",p:[19,9,659]},{t:4,n:51,f:[{p:[22,11,805],t:7,e:"ui-button",a:{action:"remove_language",params:['{"language_name":"',{t:2,r:"name",p:[22,73,867]},'"}']},f:["Remove"]}],r:"shadow"}],n:50,r:"data.admin_mode",p:[18,7,626]}]}],n:52,r:"data.languages",p:[2,3,40]}]}," ",{t:4,f:[{t:4,f:[{p:[30,5,1033],t:7,e:"ui-button",a:{action:"toggle_omnitongue",style:[{t:2,x:{r:["data.omnitongue"],s:'_0?"selected":null'},p:[32,14,1092]}]},f:["Omnitongue ",{t:2,x:{r:["data.omnitongue"],s:'_0?"Enabled":"Disabled"'},p:[33,19,1152]}]}],n:50,r:"data.is_living",p:[29,3,1005]}," ",{p:[36,3,1231],t:7,e:"ui-display",a:{title:"Unknown Languages"},f:[{t:4,f:[{p:[38,7,1315],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[38,25,1333]}]},f:[{p:[39,9,1352],t:7,e:"span",f:[{t:2,r:"desc",p:[39,15,1358]}]}," ",{p:[40,9,1383],t:7,e:"span",f:["Key: ,",{t:2,r:"key",p:[40,21,1395]}]}," ",{p:[41,9,1419],t:7,e:"ui-button",a:{action:"grant_language",params:['{"language_name":"',{t:2,r:"name",p:[43,37,1502]},'"}']},f:["Grant"]}]}],n:52,r:"data.unknown_languages",p:[37,5,1275]}]}],n:50,r:"data.admin_mode",p:[28,1,978]}]},e.exports=a.extend(r.exports)},{205:205}],262:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Controls"},f:[{t:4,f:[{t:4,f:[{p:[4,4,84],t:7,e:"ui-section",a:{label:"Warning"},f:[{p:[5,5,118],t:7,e:"span",f:["Launchpad closed."]}]}],n:50,r:"data.pad_closed",p:[3,3,56]},{t:4,n:51,f:[{p:[8,4,183],t:7,e:"ui-section",a:{label:"Launchpad"},f:[{p:[9,4,218],t:7,e:"span",f:[{p:[9,10,224],t:7,e:"b",f:[{t:2,r:"data.pad_name",p:[9,13,227]}]}]},{p:[9,41,255],t:7,e:"br"}," ",{p:[10,4,264],t:7,e:"ui-button",a:{icon:"pencil",action:"rename"},f:["Rename"]}," ",{p:[11,4,328],t:7,e:"ui-button",a:{icon:"remove",style:"danger",action:"remove"},f:["Remove"]}]}," ",{p:[14,4,427],t:7,e:"ui-section",a:{label:"Set Target"},f:[{p:[15,4,463],t:7,e:"table",f:[{p:[16,4,475],t:7,e:"tr",f:[{p:[17,5,485],t:7,e:"td",a:{style:"width:25px!important"},f:[{p:[17,38,518],t:7,e:"ui-button",a:{action:"up-left"},f:["↖"]}]}," ",{p:[18,5,570],t:7,e:"td",a:{style:"width:25px!important; text-align:center"},f:[{p:[18,57,622],t:7,e:"ui-button",a:{action:"up"},f:["↑"]}]}," ",{p:[19,5,669],t:7,e:"td",a:{style:"width:25px!important; text-align:right"},f:[{p:[19,56,720],t:7,e:"ui-button",a:{action:"up-right"},f:["↗"]}]}]}," ",{p:[21,4,782],t:7,e:"tr",f:[{p:[22,5,792],t:7,e:"td",a:{style:"width:25px!important"},f:[{p:[22,38,825],t:7,e:"ui-button",a:{action:"left",style:"width:35px!important"},f:["â†"]}]}," ",{p:[23,5,903],t:7,e:"td",a:{style:"width:25px!important; text-align:center"},f:[{p:[23,57,955],t:7,e:"ui-button",a:{action:"reset"},f:["R"]}]}," ",{p:[24,5,1005],t:7,e:"td",a:{style:"width:25px!important; text-align:right"},f:[{p:[24,56,1056],t:7,e:"ui-button",a:{action:"right"},f:["→"]}]}]}," ",{p:[26,4,1115],t:7,e:"tr",f:[{p:[27,5,1125],t:7,e:"td",a:{style:"width:25px!important"},f:[{p:[27,38,1158],t:7,e:"ui-button",a:{action:"down-left"},f:["↙"]}]}," ",{p:[28,5,1212],t:7,e:"td",a:{style:"width:25px!important; text-align:center"},f:[{p:[28,57,1264],t:7,e:"ui-button",a:{action:"down"},f:["↓"]}]}," ",{p:[29,5,1313],t:7,e:"td",a:{style:"width:25px!important; text-align:right"},f:[{p:[29,56,1364],t:7,e:"ui-button",a:{action:"down-right"},f:["↘"]}]}]}]}]}," ",{p:[33,4,1459],t:7,e:"ui-section",a:{label:"Current Target"},f:[{p:[34,5,1500],t:7,e:"span",f:[{t:2,r:"data.abs_y",p:[34,11,1506]}," ",{t:2,r:"data.north_south",p:[34,26,1521]}]},{p:[34,53,1548],t:7,e:"br"}," ",{p:[35,5,1558],t:7,e:"span",f:[{t:2,r:"data.abs_x",p:[35,11,1564]}," ",{t:2,r:"data.east_west",p:[35,26,1579]}]}]}," ",{p:[37,4,1627],t:7,e:"ui-section",a:{label:"Activate"},f:[{p:[38,5,1662],t:7,e:"ui-button",a:{action:"launch",tooltip:"Teleport everything on the pad to the target.","tooltip-side":"down"},f:["Launch"]}," ",{p:[39,5,1789],t:7,e:"ui-button",a:{action:"pull",tooltip:"Teleport everything from the target to the pad.","tooltip-side":"down"},f:["Pull"]}]}],r:"data.pad_closed"}],n:50,r:"data.has_pad",p:[2,2,32]},{t:4,n:51,f:[{p:[45,3,1956],t:7,e:"ui-section",a:{label:"Warning"},f:[{p:[46,4,1989],t:7,e:"span",f:["No launchpad found. Link the remote to a launchpad."]}]}],r:"data.has_pad"}]}]},e.exports=a.extend(r.exports)},{205:205}],263:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={data:{mechChargeState:function(t){var e=this.get("data.recharge_port.mech.cell.maxcharge");return t>=e/1.5?"good":t>=e/3?"average":"bad"},mechHealthState:function(t){var e=this.get("data.recharge_port.mech.maxhealth");return t>e/1.5?"good":t>e/3?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{p:[20,1,545],t:7,e:"ui-display",a:{title:"Mech Status"},f:[{t:4,f:[{t:4,f:[{p:[23,4,646],t:7,e:"ui-section",a:{label:"Integrity"},f:[{p:[24,6,683],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.recharge_port.mech.maxhealth",p:[24,27,704]}],value:[{t:2,r:"adata.recharge_port.mech.health",p:[24,74,751]}],state:[{t:2,x:{r:["mechHealthState","adata.recharge_port.mech.health"],s:"_0(_1)"},p:[24,117,794]}]},f:[{t:2,x:{r:["adata.recharge_port.mech.health"],s:"Math.round(_0)"},p:[24,171,848]},"/",{t:2,r:"adata.recharge_port.mech.maxhealth",p:[24,219,896]}]}]}," ",{t:4,f:[{t:4,f:[{p:[28,5,1061],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[28,31,1087],t:7,e:"span",a:{"class":"bad"},f:["Cell Critical Failure"]}]}],n:50,r:"data.recharge_port.mech.cell.critfail",p:[27,3,1010]},{t:4,n:51,f:[{p:[30,11,1170],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[31,13,1210],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.recharge_port.mech.cell.maxcharge",p:[31,34,1231]}],value:[{t:2,r:"adata.recharge_port.mech.cell.charge",p:[31,86,1283]}],state:[{t:2,x:{r:["mechChargeState","adata.recharge_port.mech.cell.charge"],s:"_0(_1)"},p:[31,134,1331]}]},f:[{t:2,x:{r:["adata.recharge_port.mech.cell.charge"],s:"Math.round(_0)"},p:[31,193,1390]},"/",{t:2,x:{r:["adata.recharge_port.mech.cell.maxcharge"],s:"Math.round(_0)"},p:[31,246,1443]}]}]}],r:"data.recharge_port.mech.cell.critfail"}],n:50,r:"data.recharge_port.mech.cell",p:[26,4,970]},{t:4,n:51,f:[{p:[35,3,1558],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[35,29,1584],t:7,e:"span",a:{"class":"bad"},f:["Cell Missing"]}]}],r:"data.recharge_port.mech.cell"}],n:50,r:"data.recharge_port.mech",p:[22,2,610]},{t:4,n:51,f:[{p:[38,4,1662],t:7,e:"ui-section",f:["Mech Not Found"]}],r:"data.recharge_port.mech"}],n:50,r:"data.recharge_port",p:[21,3,581]},{t:4,n:51,f:[{p:[41,5,1729],t:7,e:"ui-section",f:["Recharging Port Not Found"]}," ",{p:[42,2,1782],t:7,e:"ui-button",a:{icon:"refresh",action:"reconnect"},f:["Reconnect"]}],r:"data.recharge_port"}]}]},e.exports=a.extend(r.exports)},{205:205}],264:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-notice",f:[{t:4,f:[{p:[3,5,45],t:7,e:"ui-section",a:{label:"Interface Lock"},f:[{p:[4,7,88],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.locked"],s:'_0?"lock":"unlock"'},p:[4,24,105]}],action:"lock"},f:[{t:2,x:{r:["data.locked"],s:'_0?"Engaged":"Disengaged"'},p:[4,75,156]}]}]}],n:50,r:"data.siliconUser",p:[2,3,15]},{t:4,n:51,f:[{p:[7,5,247],t:7,e:"span",f:["Swipe an ID card to ",{t:2,x:{r:["data.locked"],s:'_0?"unlock":"lock"'},p:[7,31,273]}," this interface."]}],r:"data.siliconUser"}]}," ",{p:[10,1,358],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[11,3,389],t:7,e:"ui-section",a:{label:"Power"},f:[{t:4,f:[{p:[13,7,470],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[13,24,487]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[13,68,531]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[13,116,579]}]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"!_0||_1"},p:[12,5,421]},{t:4,n:51,f:[{p:[15,7,639],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.on"],s:'_0?"good":"bad"'},p:[15,20,652]}],state:[{t:2,x:{r:["data.cell"],s:'_0?null:"disabled"'},p:[15,57,689]}]},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[15,92,724]}]}],x:{r:["data.locked","data.siliconUser"],s:"!_0||_1"}}]}," ",{p:[18,3,791],t:7,e:"ui-section",a:{label:"Cell"},f:[{p:[19,5,822],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.cell"],s:'_0?null:"bad"'},p:[19,18,835]}]},f:[{t:2,x:{r:["data.cell","data.cellPercent"],s:'_0?_1+"%":"No Cell"'},p:[19,48,865]}]}]}," ",{p:[21,3,943],t:7,e:"ui-section",a:{label:"Mode"},f:[{p:[22,5,974],t:7,e:"span",a:{"class":[{t:2,r:"data.modeStatus",p:[22,18,987]}]},f:[{t:2,r:"data.mode",p:[22,39,1008]}]}]}," ",{p:[24,3,1049],t:7,e:"ui-section",a:{label:"Load"},f:[{p:[25,5,1080],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.load"],s:'_0?"good":"average"'},p:[25,18,1093]}]},f:[{t:2,x:{r:["data.load"],s:'_0?_0:"None"'},p:[25,54,1129]}]}]}," ",{p:[27,3,1191],t:7,e:"ui-section",a:{label:"Destination"},f:[{p:[28,5,1229],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.destination"],s:'_0?"good":"average"'},p:[28,18,1242]}]},f:[{t:2,x:{r:["data.destination"],s:'_0?_0:"None"'},p:[28,60,1284]}]}]}]}," ",{t:4,f:[{p:{button:[{t:4,f:[{p:[35,9,1513],t:7,e:"ui-button",a:{icon:"eject",action:"unload"},f:["Unload"]}],n:50,r:"data.load",p:[34,7,1486]}," ",{t:4,f:[{p:[38,9,1623],t:7,e:"ui-button",a:{icon:"eject",action:"ejectpai"},f:["Eject PAI"]}],n:50,r:"data.haspai",p:[37,7,1594]}," ",{p:[40,7,1709],t:7,e:"ui-button",a:{icon:"pencil",action:"setid"},f:["Set ID"]}]},t:7,e:"ui-display",a:{title:"Controls",button:0},f:[" ",{p:[42,5,1791],t:7,e:"ui-section",a:{label:"Destination"},f:[{p:[43,7,1831],t:7,e:"ui-button",a:{icon:"pencil",action:"destination"},f:["Set Destination"]}," ",{p:[44,7,1912],t:7,e:"ui-button",a:{icon:"stop",action:"stop"},f:["Stop"]}," ",{p:[45,7,1973],t:7,e:"ui-button",a:{icon:"play",action:"go"},f:["Go"]}]}," ",{p:[47,5,2047],t:7,e:"ui-section",a:{label:"Home"},f:[{p:[48,7,2080],t:7,e:"ui-button",a:{icon:"home",action:"home"},f:["Go Home"]}," ",{p:[49,7,2144],t:7,e:"ui-button",a:{icon:"pencil",action:"sethome"},f:["Set Home"]}]}," ",{p:[51,5,2231],t:7,e:"ui-section",a:{label:"Settings"},f:[{p:[52,7,2268],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.autoReturn"],s:'_0?"check-square-o":"square-o"'},p:[52,24,2285]}],style:[{t:2,x:{r:["data.autoReturn"],s:'_0?"selected":null'},p:[52,84,2345]}],action:"autoret"},f:["Auto-Return Home"]}," ",{p:[54,7,2449],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.autoPickup"],s:'_0?"check-square-o":"square-o"'},p:[54,24,2466]}],style:[{t:2,x:{r:["data.autoPickup"],s:'_0?"selected":null'},p:[54,84,2526]}],action:"autopick"},f:["Auto-Pickup Crate"]}," ",{p:[56,7,2632],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.reportDelivery"],s:'_0?"check-square-o":"square-o"'},p:[56,24,2649]}],style:[{t:2,x:{r:["data.reportDelivery"],s:'_0?"selected":null'},p:[56,88,2713]}],action:"report"},f:["Report Deliveries"]}]}]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"!_0||_1"},p:[31,1,1373]}]},e.exports=a.extend(r.exports)},{205:205}],265:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Relay"},f:[{t:4,f:[{p:[3,3,57],t:7,e:"h2",f:["NETWORK BUFFERS OVERLOADED"]}," ",{p:[4,3,96],t:7,e:"h3",f:["Overload Recovery Mode"]}," ",{p:[5,3,131],t:7,e:"i",f:["This system is suffering temporary outage due to overflow of traffic buffers. Until buffered traffic is processed, all further requests will be dropped. Frequent occurences of this error may indicate insufficient hardware capacity of your network. Please contact your network planning department for instructions on how to resolve this issue."]}," ",{p:[6,3,484],t:7,e:"h3",f:["ADMINISTRATIVE OVERRIDE"]}," ",{p:[7,3,520],t:7,e:"b",f:["CAUTION - Data loss may occur"]}," ",{p:[8,3,562],t:7,e:"ui-button",a:{icon:"signal",action:"restart"},f:["Purge buffered traffic"]}],n:50,r:"data.dos_crashed",p:[2,2,29]},{t:4,n:51,f:[{p:[12,3,663],t:7,e:"ui-section",a:{label:"Relay status"},f:[{p:[13,4,701],t:7,e:"ui-button",a:{icon:"power-off",action:"toggle"},f:[{t:2,x:{r:["data.enabled"],s:'_0?"ENABLED":"DISABLED"'},p:[14,6,752]}]}]}," ",{p:[18,3,836],t:7,e:"ui-section",a:{label:"Network buffer status"},f:[{t:2,r:"data.dos_overload",p:[19,4,883]}," / ",{t:2,r:"data.dos_capacity",p:[19,28,907]}," GQ"]}],r:"data.dos_crashed"}]}]},e.exports=a.extend(r.exports)},{205:205}],266:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={computed:{healthState:function(){var t=this.get("data.health");return t>70?"good":t>50?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" "," ",{p:[15,1,320],t:7,e:"ntosheader"}," ",{t:4,f:[{p:[18,3,363],t:7,e:"ui-notice",f:[{p:[19,5,380],t:7,e:"span",f:["Reconstruction in progress!"]}]}],n:50,r:"data.restoring",p:[17,1,337]},{p:[24,1,451],t:7,e:"ui-display",f:[{p:[26,1,467],t:7,e:"div",a:{"class":"item"},f:[{p:[27,3,489],t:7,e:"div",a:{"class":"itemLabel"},f:["Inserted AI:"]}," ",{p:[30,3,541],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[31,2,569],t:7,e:"ui-button",a:{icon:"eject",action:"PRG_eject",state:[{t:2,x:{r:["data.nocard"],s:'_0?"disabled":null'},p:[31,52,619]}]},f:[{t:2,x:{r:["data.name"],s:'_0?_0:"---"'},p:[31,89,656]}]}]}]}," ",{t:4,f:[{p:[36,2,744],t:7,e:"b",f:["ERROR: ",{t:2,r:"data.error",p:[36,12,754]}]}],n:50,r:"data.error",p:[35,1,723]},{t:4,n:51,f:[{p:[38,2,785],t:7,e:"h2",f:["System Status"]}," ",{p:[39,2,810],t:7,e:"div",a:{"class":"item"},f:[{p:[40,3,832],t:7,e:"div",a:{"class":"itemLabel"},f:["Current AI:"]}," ",{p:[43,3,885],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.name",p:[44,4,915]}]}," ",{p:[46,3,942],t:7,e:"div",a:{"class":"itemLabel"},f:["Status:"]}," ",{p:[49,3,991],t:7,e:"div",a:{"class":"itemContent"},f:[{t:4,f:["Nonfunctional"],n:50,r:"data.isDead",p:[50,4,1021]},{t:4,n:51,f:["Functional"],r:"data.isDead"}]}," ",{p:[56,3,1114],t:7,e:"div",a:{"class":"itemLabel"},f:["System Integrity:"]}," ",{p:[59,3,1173],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[60,4,1203],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.health",p:[60,37,1236]}],state:[{t:2,r:"healthState",p:[61,11,1264]}]},f:[{t:2,x:{r:["adata.health"],s:"Math.round(_0)"},p:[61,28,1281]},"%"]}]}," ",{p:[63,3,1336],t:7,e:"div",a:{"class":"itemLabel"},f:["Active Laws:"]}," ",{p:[66,3,1390],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[67,4,1420],t:7,e:"table",f:[{t:4,f:[{p:[69,6,1462],t:7,e:"tr",f:[{p:[69,10,1466],t:7,e:"td",f:[{p:[69,14,1470],t:7,e:"span",a:{"class":"highlight"},f:[{t:2,r:".",p:[69,38,1494]}]}]}]}],n:52,r:"data.ai_laws",p:[68,5,1433]}]}]}," ",{p:[73,2,1547],t:7,e:"ui-section",a:{label:"Operations"},f:[{p:[74,3,1582],t:7,e:"ui-button",a:{icon:"plus",style:[{t:2,x:{r:["data.restoring"],s:'_0?"disabled":null'},p:[74,33,1612]}],action:"PRG_beginReconstruction"},f:["Begin Reconstruction"]}]}]}],r:"data.error"}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],267:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{t:4,f:[{p:[5,1,91],t:7,e:"ui-button",a:{action:"PRG_switchm",icon:"home",params:'{"target" : "mod"}',state:[{t:2,x:{r:["data.mmode"],s:'_0==1?"disabled":null'},p:[5,80,170]}]},f:["Access Modification"]}],n:50,r:"data.have_id_slot",p:[4,1,64]},{p:[7,1,253],t:7,e:"ui-button",a:{action:"PRG_switchm",icon:"folder-open",params:'{"target" : "manage"}',state:[{t:2,x:{r:["data.mmode"],s:'_0==2?"disabled":null'},p:[7,90,342]}]},f:["Job Management"]}," ",{p:[8,1,411],t:7,e:"ui-button",a:{action:"PRG_switchm",icon:"folder-open",params:'{"target" : "manifest"}',state:[{t:2,x:{r:["data.mmode"],s:'!_0?"disabled":null'},p:[8,92,502]}]},f:["Crew Manifest"]}," ",{t:4,f:[{p:[10,1,593],t:7,e:"ui-button",a:{action:"PRG_print",icon:"print",state:[{t:2,x:{r:["data.has_id","data.mmode"],s:'!_1||_0&&_1==1?null:"disabled"'},p:[10,51,643]}]},f:["Print"]}],n:50,r:"data.have_printer",p:[9,1,566]},{t:4,f:[{p:[14,1,766],t:7,e:"div",a:{"class":"item"},f:[{p:[15,3,788],t:7,e:"h2",f:["Crew Manifest"]}," ",{p:[16,3,814],t:7,e:"br"},"Please use security record computer to modify entries.",{p:[16,61,872],t:7,e:"br"},{p:[16,65,876],t:7,e:"br"}]}," ",{t:4,f:[{p:[19,2,916],t:7,e:"div",a:{"class":"item"},f:[{t:2,r:"name",p:[20,2,937]}," - ",{t:2,r:"rank",p:[20,13,948]}]}],n:52,r:"data.manifest",p:[18,1,890]}],n:50,x:{r:["data.mmode"],s:"!_0"},p:[13,1,745]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.mmode"],s:"_0==2"},f:[{p:[25,1,1008],t:7,e:"div",a:{"class":"item"},f:[{p:[26,3,1030],t:7,e:"h2",f:["Job Management"]}]}," ",{p:[28,1,1063],t:7,e:"table",f:[{p:[29,1,1072],t:7,e:"tr",f:[{p:[29,5,1076],t:7,e:"td",a:{style:"width:25%"},f:[{p:[29,27,1098],t:7,e:"b",f:["Job"]}]},{p:[29,42,1113],t:7,e:"td",a:{style:"width:25%"},f:[{p:[29,64,1135],t:7,e:"b",f:["Slots"]}]},{p:[29,81,1152],t:7,e:"td",a:{style:"width:25%"},f:[{p:[29,103,1174],t:7,e:"b",f:["Open job"]}]},{p:[29,123,1194],t:7,e:"td",a:{style:"width:25%"},f:[{p:[29,145,1216],t:7,e:"b",f:["Close job"]}]}]}," ",{t:4,f:[{p:[32,2,1269],t:7,e:"tr",f:[{p:[32,6,1273],t:7,e:"td",f:[{t:2,r:"title",p:[32,10,1277]}]},{p:[32,24,1291],t:7,e:"td",f:[{t:2,r:"current",p:[32,28,1295]},"/",{t:2,r:"total",p:[32,40,1307]}]},{p:[32,54,1321],t:7,e:"td",f:[{p:[32,58,1325],t:7,e:"ui-button",a:{action:"PRG_open_job",params:['{"target" : "',{t:2,r:"title",p:[32,112,1379]},'"}'],state:[{t:2,x:{r:["status_open"],s:'_0?null:"disabled"'},p:[32,132,1399]}]},f:[{t:2,r:"desc_open",p:[32,169,1436]}]},{p:[32,194,1461],t:7,e:"br"}]},{p:[32,203,1470],t:7,e:"td",f:[{p:[32,207,1474],t:7,e:"ui-button",a:{action:"PRG_close_job",params:['{"target" : "',{t:2,r:"title",p:[32,262,1529]},'"}'],state:[{t:2,x:{r:["status_close"],s:'_0?null:"disabled"'},p:[32,282,1549]}]},f:[{t:2,r:"desc_close",p:[32,320,1587]}]}]}]}],n:52,r:"data.slots",p:[30,1,1244]}]}]},{t:4,n:50,x:{r:["data.mmode"],s:"!(_0==2)"},f:[" ",{p:[40,1,1665],t:7,e:"div",a:{"class":"item"},f:[{p:[41,3,1687],t:7,e:"h2",f:["Access Modification"]}]}," ",{t:4,f:[{p:[45,3,1751],t:7,e:"span",a:{"class":"alert"},f:[{p:[45,23,1771],t:7,e:"i",f:["Please insert the ID into the terminal to proceed."]}]},{p:[45,87,1835],t:7,e:"br"}],n:50,x:{r:["data.has_id"],s:"!_0"},p:[44,1,1727]},{p:[48,1,1852],t:7,e:"div",a:{"class":"item"},f:[{p:[49,3,1874],t:7,e:"div",a:{"class":"itemLabel"},f:["Target Identity:"]}," ",{p:[52,3,1930],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[53,2,1958],t:7,e:"ui-button",a:{icon:"eject",action:"PRG_eject",params:'{"target" : "id"}'},f:[{t:2,r:"data.id_name",p:[53,72,2028]}]}]}]}," ",{p:[56,1,2076],t:7,e:"div",a:{"class":"item"},f:[{p:[57,3,2098],t:7,e:"div",a:{"class":"itemLabel"},f:["Auth Identity:"]}," ",{p:[60,3,2152],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[61,2,2180],t:7,e:"ui-button",a:{icon:"eject",action:"PRG_eject",params:'{"target" : "auth"}'},f:[{t:2,r:"data.auth_name",p:[61,74,2252]}]}]}]}," ",{p:[64,1,2302],t:7,e:"hr"}," ",{t:4,f:[{t:4,f:[{p:[68,2,2362],t:7,e:"div",a:{"class":"item"},f:[{p:[69,4,2385],t:7,e:"h2",f:["Details"]}]}," ",{t:4,f:[{p:[73,2,2436],t:7,e:"div",a:{"class":"item"},f:[{p:[74,4,2459],t:7,e:"div",a:{"class":"itemLabel"},f:["Registered Name:"]}," ",{p:[77,4,2518],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.id_owner",p:[78,3,2547]}]}]}," ",{p:[81,2,2587],t:7,e:"div",a:{"class":"item"},f:[{p:[82,4,2610],t:7,e:"div",a:{"class":"itemLabel"},f:["Rank:"]}," ",{p:[85,4,2658],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.id_rank",p:[86,3,2687]}]}]}," ",{p:[89,2,2726],t:7,e:"div",a:{"class":"item"},f:[{p:[90,4,2749],t:7,e:"div",a:{"class":"itemLabel"},f:["Demote:"]}," ",{p:[93,4,2799],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[94,3,2828],t:7,e:"ui-button",a:{action:"PRG_terminate",icon:"gear",state:[{t:2,x:{r:["data.id_rank"],s:'_0=="Unassigned"?"disabled":null'},p:[94,56,2881]}]},f:["Demote ",{t:2,r:"data.id_owner",p:[94,117,2942]}]}]}]}],n:50,r:"data.minor",p:[72,2,2415]},{t:4,n:51,f:[{p:[99,2,3007],t:7,e:"div",a:{"class":"item"},f:[{p:[100,4,3030],t:7,e:"div",a:{"class":"itemLabel"},f:["Registered Name:"]}," ",{p:[103,4,3089],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[104,3,3118],t:7,e:"ui-button",a:{action:"PRG_edit",icon:"pencil",params:'{"name" : "1"}'},f:[{t:2,r:"data.id_owner",p:[104,70,3185]}]}]}]}," ",{p:[108,2,3239],t:7,e:"div",a:{"class":"item"},f:[{p:[109,4,3262],t:7,e:"h2",f:["Assignment"]}]}," ",{p:[111,3,3294],t:7,e:"ui-button",a:{action:"PRG_togglea",icon:"gear"},f:[{t:2,x:{r:["data.assignments"],s:'_0?"Hide assignments":"Show assignments"'},p:[111,47,3338]}]}," ",{p:[112,2,3415],t:7,e:"div",a:{"class":"item"},f:[{p:[113,4,3438],t:7,e:"span",a:{id:"allvalue.jobsslot"},f:[]}]}," ",{p:[117,2,3495],t:7,e:"div",a:{"class":"item"},f:[{t:4,f:[{p:[119,4,3547],t:7,e:"div",a:{id:"all-value.jobs"},f:[{p:[120,3,3576],t:7,e:"table",f:[{p:[121,5,3589],t:7,e:"tr",f:[{p:[122,4,3598],t:7,e:"th",f:["Command"]}," ",{p:[123,4,3619],t:7,e:"td",f:[{p:[124,6,3630],t:7,e:"ui-button",a:{action:"PRG_assign",params:'{"assign_target" : "Captain"}',state:[{t:2,x:{r:["data.id_rank"],s:'_0=="Captain"?"selected":null'},p:[124,83,3707]}]},f:["Captain"]}]}]}," ",{p:[127,5,3804],t:7,e:"tr",f:[{p:[128,4,3813],t:7,e:"th",f:["Special"]}," ",{p:[129,4,3834],t:7,e:"td",f:[{p:[130,6,3845],t:7,e:"ui-button",a:{action:"PRG_assign",params:'{"assign_target" : "Custom"}'},f:["Custom"]}]}]}," ",{p:[133,5,3959],t:7,e:"tr",f:[{p:[134,4,3968],t:7,e:"th",a:{style:"color: '#FFA500';"},f:["Engineering"]}," ",{p:[135,4,4019],t:7,e:"td",f:[{t:4,f:[{p:[137,5,4067],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[137,64,4126]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[137,82,4144]}]},f:[{t:2,r:"display_name",p:[137,127,4189]}]}],n:52,r:"data.engineering_jobs",p:[136,6,4030]}]}]}," ",{p:[141,5,4260],t:7,e:"tr",f:[{p:[142,4,4269],t:7,e:"th",a:{style:"color: '#008000';"},f:["Medical"]}," ",{p:[143,4,4316],t:7,e:"td",f:[{t:4,f:[{p:[145,5,4360],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[145,64,4419]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[145,82,4437]}]},f:[{t:2,r:"display_name",p:[145,127,4482]}]}],n:52,r:"data.medical_jobs",p:[144,6,4327]}]}]}," ",{p:[149,5,4553],t:7,e:"tr",f:[{p:[150,4,4562],t:7,e:"th",a:{style:"color: '#800080';"},f:["Science"]}," ",{p:[151,4,4609],t:7,e:"td",f:[{t:4,f:[{p:[153,5,4653],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[153,64,4712]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[153,82,4730]}]},f:[{t:2,r:"display_name",p:[153,127,4775]}]}],n:52,r:"data.science_jobs",p:[152,6,4620]}]}]}," ",{p:[157,5,4846],t:7,e:"tr",f:[{p:[158,4,4855],t:7,e:"th",a:{style:"color: '#DD0000';"},f:["Security"]}," ",{p:[159,4,4903],t:7,e:"td",f:[{t:4,f:[{p:[161,5,4948],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[161,64,5007]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[161,82,5025]}]},f:[{t:2,r:"display_name",p:[161,127,5070]}]}],n:52,r:"data.security_jobs",p:[160,6,4914]}]}]}," ",{p:[165,5,5141],t:7,e:"tr",f:[{p:[166,4,5150],t:7,e:"th",a:{style:"color: '#cc6600';" +-},f:["Cargo"]}," ",{p:[167,4,5195],t:7,e:"td",f:[{t:4,f:[{p:[169,5,5237],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[169,64,5296]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[169,82,5314]}]},f:[{t:2,r:"display_name",p:[169,127,5359]}]}],n:52,r:"data.cargo_jobs",p:[168,6,5206]}]}]}," ",{p:[173,5,5430],t:7,e:"tr",f:[{p:[174,4,5439],t:7,e:"th",a:{style:"color: '#808080';"},f:["Civilian"]}," ",{p:[175,4,5487],t:7,e:"td",f:[{t:4,f:[{p:[177,5,5532],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[177,64,5591]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[177,82,5609]}]},f:[{t:2,r:"display_name",p:[177,127,5654]}]}],n:52,r:"data.civilian_jobs",p:[176,6,5498]}]}]}," ",{t:4,f:[{p:[182,4,5757],t:7,e:"tr",f:[{p:[183,6,5768],t:7,e:"th",a:{style:"color: '#A52A2A';"},f:["Centcom"]}," ",{p:[184,6,5817],t:7,e:"td",f:[{t:4,f:[{p:[186,7,5862],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[186,66,5921]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[186,84,5939]}]},f:[{t:2,r:"display_name",p:[186,129,5984]}]}],n:52,r:"data.centcom_jobs",p:[185,5,5827]}]}]}],n:50,r:"data.centcom_access",p:[181,5,5725]}]}]}],n:50,r:"data.assignments",p:[118,4,3518]}]}],r:"data.minor"}," ",{t:4,f:[{p:[198,4,6153],t:7,e:"div",a:{"class":"item"},f:[{p:[199,3,6175],t:7,e:"h2",f:["Central Command"]}]}," ",{p:[201,4,6215],t:7,e:"div",a:{"class":"item",style:"width: 100%"},f:[{t:4,f:[{p:[203,5,6296],t:7,e:"div",a:{"class":"itemContentWide"},f:[{p:[204,5,6331],t:7,e:"ui-button",a:{action:"PRG_access",params:['{"access_target" : "',{t:2,r:"ref",p:[204,64,6390]},'", "allowed" : "',{t:2,r:"allowed",p:[204,87,6413]},'"}'],state:[{t:2,x:{r:["allowed"],s:'_0?"toggle":null'},p:[204,109,6435]}]},f:[{t:2,r:"desc",p:[204,140,6466]}]}]}],n:52,r:"data.all_centcom_access",p:[202,3,6257]}]}],n:50,r:"data.centcom_access",p:[197,2,6121]},{t:4,n:51,f:[{p:[209,4,6538],t:7,e:"div",a:{"class":"item"},f:[{p:[210,3,6560],t:7,e:"h2",f:[{t:2,r:"data.station_name",p:[210,7,6564]}]}]}," ",{p:[212,4,6606],t:7,e:"div",a:{"class":"item",style:"width: 100%"},f:[{t:4,f:[{p:[214,5,6676],t:7,e:"div",a:{style:"float: left; width: 175px; min-height: 250px"},f:[{p:[215,4,6739],t:7,e:"div",a:{"class":"average"},f:[{p:[215,25,6760],t:7,e:"ui-button",a:{action:"PRG_regsel",state:[{t:2,x:{r:["selected"],s:'_0?"toggle":null'},p:[215,63,6798]}],params:['{"region" : "',{t:2,r:"regid",p:[215,116,6851]},'"}']},f:[{p:[215,129,6864],t:7,e:"b",f:[{t:2,r:"name",p:[215,132,6867]}]}]}]}," ",{p:[216,4,6902],t:7,e:"br"}," ",{t:4,f:[{p:[218,6,6938],t:7,e:"div",a:{"class":"itemContentWide"},f:[{p:[219,5,6973],t:7,e:"ui-button",a:{action:"PRG_access",params:['{"access_target" : "',{t:2,r:"ref",p:[219,64,7032]},'", "allowed" : "',{t:2,r:"allowed",p:[219,87,7055]},'"}'],state:[{t:2,x:{r:["allowed"],s:'_0?"toggle":null'},p:[219,109,7077]}]},f:[{t:2,r:"desc",p:[219,140,7108]}]}]}],n:52,r:"accesses",p:[217,6,6913]}]}],n:52,r:"data.regions",p:[213,3,6648]}]}],r:"data.centcom_access"}],n:50,r:"data.has_id",p:[67,3,2340]}],n:50,r:"data.authenticated",p:[66,1,2310]}]}],x:{r:["data.mmode"],s:"!_0"}}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],268:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={data:{chargeState:function(t){var e=this.get("data.battery.max");return t>e/2?"good":t>e/4?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" "," ",{p:[15,1,311],t:7,e:"ntosheader"}," ",{p:[17,1,328],t:7,e:"ui-display",f:[{p:[18,2,343],t:7,e:"i",f:["Welcome to computer configuration utility. Please consult your system administrator if you have any questions about your device."]},{p:[18,137,478],t:7,e:"hr"}," ",{p:[19,2,485],t:7,e:"ui-display",a:{title:"Power Supply"},f:[{p:[20,3,522],t:7,e:"ui-section",a:{label:"Power Usage"},f:[{t:2,r:"data.power_usage",p:[21,4,559]},"W"]}," ",{t:4,f:[{p:[25,4,630],t:7,e:"ui-section",a:{label:"Battery Status"},f:["Active"]}," ",{p:[28,4,701],t:7,e:"ui-section",a:{label:"Battery Rating"},f:[{t:2,r:"data.battery.max",p:[29,5,742]}]}," ",{p:[31,4,785],t:7,e:"ui-section",a:{label:"Battery Charge"},f:[{p:[32,5,826],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.battery.max",p:[32,26,847]}],value:[{t:2,r:"adata.battery.charge",p:[32,56,877]}],state:[{t:2,x:{r:["chargeState","adata.battery.charge"],s:"_0(_1)"},p:[32,89,910]}]},f:[{t:2,x:{r:["adata.battery.charge"],s:"Math.round(_0)"},p:[32,128,949]},"/",{t:2,r:"adata.battery.max",p:[32,165,986]}]}]}],n:50,r:"data.battery",p:[24,3,605]},{t:4,n:51,f:[{p:[35,4,1051],t:7,e:"ui-section",a:{label:"Battery Status"},f:["Not Available"]}],r:"data.battery"}]}," ",{p:[41,2,1156],t:7,e:"ui-display",a:{title:"File System"},f:[{p:[42,3,1192],t:7,e:"ui-section",a:{label:"Used Capacity"},f:[{p:[43,4,1231],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.disk_size",p:[43,25,1252]}],value:[{t:2,r:"adata.disk_used",p:[43,53,1280]}],state:"good"},f:[{t:2,x:{r:["adata.disk_used"],s:"Math.round(_0)"},p:[43,87,1314]},"GQ / ",{t:2,r:"adata.disk_size",p:[43,123,1350]},"GQ"]}]}]}," ",{p:[47,2,1419],t:7,e:"ui-display",a:{title:"Computer Components"},f:[{t:4,f:[{p:[49,4,1491],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"name",p:[49,26,1513]}]},f:[{p:[50,5,1529],t:7,e:"div",a:{style:"display: table-caption; margin-left: 3px"},f:[{t:2,r:"desc",p:[50,59,1583]}]}," ",{p:[52,5,1605],t:7,e:"ui-section",a:{label:"State"},f:[{p:[53,6,1638],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["critical"],s:'_0?"disabled":null'},p:[53,24,1656]}],action:"PC_toggle_component",params:['{"name": "',{t:2,r:"name",p:[53,105,1737]},'"}']},f:[{t:2,x:{r:["enabled"],s:'_0?"Enabled":"Disabled"'},p:[54,7,1757]}]}]}," ",{t:4,f:[{p:[59,6,1868],t:7,e:"ui-section",a:{label:"Power Usage"},f:[{t:2,r:"powerusage",p:[60,7,1908]},"W"]}],n:50,r:"powerusage",p:[58,5,1843]}]}," ",{p:[64,4,1985],t:7,e:"br"}],n:52,r:"data.hardware",p:[48,3,1463]}]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],269:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{p:[4,1,64],t:7,e:"ui-display",f:[{t:4,f:[{p:[7,3,103],t:7,e:"h2",f:["An error has occurred and this program can not continue."]}," Additional information: ",{t:2,r:"data.error",p:[8,27,196]},{p:[8,41,210],t:7,e:"br"}," ",{p:[9,3,218],t:7,e:"i",f:["Please try again. If the problem persists contact your system administrator for assistance."]}," ",{p:[10,3,320],t:7,e:"ui-button",a:{action:"PRG_closefile"},f:["Restart program"]}],n:50,r:"data.error",p:[6,2,81]},{t:4,n:51,f:[{t:4,f:[{p:[13,4,422],t:7,e:"h2",f:["Viewing file ",{t:2,r:"data.filename",p:[13,21,439]}]}," ",{p:[14,4,466],t:7,e:"div",a:{"class":"item"},f:[{p:[15,4,489],t:7,e:"ui-button",a:{action:"PRG_closefile"},f:["CLOSE"]}," ",{p:[16,4,545],t:7,e:"ui-button",a:{action:"PRG_edit"},f:["EDIT"]}," ",{p:[17,4,595],t:7,e:"ui-button",a:{action:"PRG_printfile"},f:["PRINT"]}," "]},{p:[18,10,657],t:7,e:"hr"}," ",{t:3,r:"data.filedata",p:[19,4,666]}],n:50,r:"data.filename",p:[12,3,396]},{t:4,n:51,f:[{p:[21,4,702],t:7,e:"h2",f:["Available files (local):"]}," ",{p:[22,4,740],t:7,e:"table",f:[{p:[23,5,753],t:7,e:"tr",f:[{p:[24,6,764],t:7,e:"th",f:["File name"]}," ",{p:[25,6,789],t:7,e:"th",f:["File type"]}," ",{p:[26,6,814],t:7,e:"th",f:["File size (GQ)"]}," ",{p:[27,6,844],t:7,e:"th",f:["Operations"]}]}," ",{t:4,f:[{p:[30,6,907],t:7,e:"tr",f:[{p:[31,7,919],t:7,e:"td",f:[{t:2,r:"name",p:[31,11,923]}]}," ",{p:[32,7,944],t:7,e:"td",f:[".",{t:2,r:"type",p:[32,12,949]}]}," ",{p:[33,7,970],t:7,e:"td",f:[{t:2,r:"size",p:[33,11,974]},"GQ"]}," ",{p:[34,7,997],t:7,e:"td",f:[{p:[35,8,1010],t:7,e:"ui-button",a:{action:"PRG_openfile",params:['{"name": "',{t:2,r:"name",p:[35,59,1061]},'"}']},f:["VIEW"]}," ",{p:[36,8,1098],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[36,26,1116]}],action:"PRG_deletefile",params:['{"name": "',{t:2,r:"name",p:[36,105,1195]},'"}']},f:["DELETE"]}," ",{p:[37,8,1234],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[37,26,1252]}],action:"PRG_rename",params:['{"name": "',{t:2,r:"name",p:[37,101,1327]},'"}']},f:["RENAME"]}," ",{p:[38,8,1366],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[38,26,1384]}],action:"PRG_clone",params:['{"name": "',{t:2,r:"name",p:[38,100,1458]},'"}']},f:["CLONE"]}," ",{t:4,f:[{p:[40,9,1531],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[40,27,1549]}],action:"PRG_copytousb",params:['{"name": "',{t:2,r:"name",p:[40,105,1627]},'"}']},f:["EXPORT"]}],n:50,r:"data.usbconnected",p:[39,8,1496]}]}]}],n:52,r:"data.files",p:[29,5,880]}]}," ",{t:4,f:[{p:[47,4,1761],t:7,e:"h2",f:["Available files (portable device):"]}," ",{p:[48,4,1809],t:7,e:"table",f:[{p:[49,5,1822],t:7,e:"tr",f:[{p:[50,6,1833],t:7,e:"th",f:["File name"]}," ",{p:[51,6,1858],t:7,e:"th",f:["File type"]}," ",{p:[52,6,1883],t:7,e:"th",f:["File size (GQ)"]}," ",{p:[53,6,1913],t:7,e:"th",f:["Operations"]}]}," ",{t:4,f:[{p:[56,6,1979],t:7,e:"tr",f:[{p:[57,7,1991],t:7,e:"td",f:[{t:2,r:"name",p:[57,11,1995]}]}," ",{p:[58,7,2016],t:7,e:"td",f:[".",{t:2,r:"type",p:[58,12,2021]}]}," ",{p:[59,7,2042],t:7,e:"td",f:[{t:2,r:"size",p:[59,11,2046]},"GQ"]}," ",{p:[60,7,2069],t:7,e:"td",f:[{p:[61,8,2082],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[61,26,2100]}],action:"PRG_usbdeletefile",params:['{"name": "',{t:2,r:"name",p:[61,108,2182]},'"}']},f:["DELETE"]}," ",{t:4,f:[{p:[63,9,2256],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[63,27,2274]}],action:"PRG_copyfromusb",params:['{"name": "',{t:2,r:"name",p:[63,107,2354]},'"}']},f:["IMPORT"]}],n:50,r:"data.usbconnected",p:[62,8,2221]}]}]}],n:52,r:"data.usbfiles",p:[55,5,1949]}]}],n:50,r:"data.usbconnected",p:[46,4,1731]}," ",{p:[70,4,2470],t:7,e:"ui-button",a:{action:"PRG_newtextfile"},f:["NEW DATA FILE"]}],r:"data.filename"}],r:"data.error"}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],270:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{p:[4,1,64],t:7,e:"ui-display",f:[{p:[5,2,79],t:7,e:"i",f:["No program loaded. Please select program from list below."]}," ",{p:[6,2,146],t:7,e:"table",f:[{t:4,f:[{p:[8,4,185],t:7,e:"tr",f:[{p:[8,8,189],t:7,e:"td",f:[{p:[8,12,193],t:7,e:"ui-button",a:{action:"PC_runprogram",params:['{"name": "',{t:2,r:"name",p:[8,64,245]},'"}']},f:[{t:2,r:"desc",p:[9,5,263]}]}]},{p:[11,4,293],t:7,e:"td",f:[{p:[11,8,297],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["running"],s:'_0?null:"disabled"'},p:[11,26,315]}],icon:"close",action:"PC_killprogram",params:['{"name": "',{t:2,r:"name",p:[11,114,403]},'"}']}}]}]}],n:52,r:"data.programs",p:[7,3,157]}]}," ",{p:[14,2,454],t:7,e:"br"},{p:[14,6,458],t:7,e:"br"}," ",{t:4,f:[{p:[16,3,491],t:7,e:"ui-button",a:{action:"PC_toggle_light",style:[{t:2,x:{r:["data.light_on"],s:'_0?"selected":null'},p:[16,46,534]}]},f:["Toggle Flashlight"]},{p:[16,114,602],t:7,e:"br"}," ",{p:[17,3,610],t:7,e:"ui-button",a:{action:"PC_light_color"},f:["Change Flashlight Color ",{p:[17,62,669],t:7,e:"span",a:{style:["border:1px solid #161616; background-color: ",{t:2,r:"data.comp_light_color",p:[17,119,726]},";"]},f:["   "]}]}],n:50,r:"data.has_light",p:[15,2,465]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],271:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{p:[4,1,64],t:7,e:"ui-display",f:[{t:4,f:[{p:[6,3,105],t:7,e:"h1",f:["ADMINISTRATIVE MODE"]}],n:50,r:"data.adminmode",p:[5,2,79]}," ",{t:4,f:[{p:[10,3,170],t:7,e:"div",a:{"class":"itemLabel"},f:["Current channel:"]}," ",{p:[13,3,229],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.title",p:[14,4,259]}]}," ",{p:[16,3,287],t:7,e:"div",a:{"class":"itemLabel"},f:["Operator access:"]}," ",{p:[19,3,346],t:7,e:"div",a:{"class":"itemContent"},f:[{t:4,f:[{p:[21,5,406],t:7,e:"b",f:["Enabled"]}],n:50,r:"data.is_operator",p:[20,4,376]},{t:4,n:51,f:[{p:[23,5,439],t:7,e:"b",f:["Disabled"]}],r:"data.is_operator"}]}," ",{p:[26,3,480],t:7,e:"div",a:{"class":"itemLabel"},f:["Controls:"]}," ",{p:[29,3,532],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[30,4,562],t:7,e:"table",f:[{p:[31,5,575],t:7,e:"tr",f:[{p:[31,9,579],t:7,e:"td",f:[{p:[31,13,583],t:7,e:"ui-button",a:{action:"PRG_speak"},f:["Send message"]}]}]},{p:[32,5,643],t:7,e:"tr",f:[{p:[32,9,647],t:7,e:"td",f:[{p:[32,13,651],t:7,e:"ui-button",a:{action:"PRG_changename"},f:["Change nickname"]}]}]},{p:[33,5,719],t:7,e:"tr",f:[{p:[33,9,723],t:7,e:"td",f:[{p:[33,13,727],t:7,e:"ui-button",a:{action:"PRG_toggleadmin"},f:["Toggle administration mode"]}]}]},{p:[34,5,807],t:7,e:"tr",f:[{p:[34,9,811],t:7,e:"td",f:[{p:[34,13,815],t:7,e:"ui-button",a:{action:"PRG_leavechannel"},f:["Leave channel"]}]}]},{p:[35,5,883],t:7,e:"tr",f:[{p:[35,9,887],t:7,e:"td",f:[{p:[35,13,891],t:7,e:"ui-button",a:{action:"PRG_savelog"},f:["Save log to local drive"]}," ",{t:4,f:[{p:[37,6,995],t:7,e:"tr",f:[{p:[37,10,999],t:7,e:"td",f:[{p:[37,14,1003],t:7,e:"ui-button",a:{action:"PRG_renamechannel"},f:["Rename channel"]}]}]},{p:[38,6,1074],t:7,e:"tr",f:[{p:[38,10,1078],t:7,e:"td",f:[{p:[38,14,1082],t:7,e:"ui-button",a:{action:"PRG_setpassword"},f:["Set password"]}]}]},{p:[39,6,1149],t:7,e:"tr",f:[{p:[39,10,1153],t:7,e:"td",f:[{p:[39,14,1157],t:7,e:"ui-button",a:{action:"PRG_deletechannel"},f:["Delete channel"]}]}]}],n:50,r:"data.is_operator",p:[36,5,964]}]}]}]}]}," ",{p:[43,3,1263],t:7,e:"b",f:["Chat Window"]}," ",{p:[44,4,1286],t:7,e:"div",a:{"class":"statusDisplay",style:"overflow: auto;"},f:[{p:[45,4,1342],t:7,e:"div",a:{"class":"item"},f:[{p:[46,5,1366],t:7,e:"div",a:{"class":"itemContent",style:"width: 100%;"},f:[{t:4,f:[{t:2,r:"msg",p:[48,7,1450]},{p:[48,14,1457],t:7,e:"br"}],n:52,r:"data.messages",p:[47,6,1419]}]}]}]}," ",{p:[53,3,1516],t:7,e:"b",f:["Connected Users"]},{p:[53,25,1538],t:7,e:"br"}," ",{t:4,f:[{t:2,r:"name",p:[55,4,1573]},{p:[55,12,1581],t:7,e:"br"}],n:52,r:"data.clients",p:[54,3,1546]}],n:50,r:"data.title",p:[9,2,148]},{t:4,n:51,f:[{p:[58,3,1613],t:7,e:"b",f:["Controls:"]}," ",{p:[59,3,1633],t:7,e:"table",f:[{p:[60,4,1645],t:7,e:"tr",f:[{p:[60,8,1649],t:7,e:"td",f:[{p:[60,12,1653],t:7,e:"ui-button",a:{action:"PRG_changename"},f:["Change nickname"]}]}]},{p:[61,4,1720],t:7,e:"tr",f:[{p:[61,8,1724],t:7,e:"td",f:[{p:[61,12,1728],t:7,e:"ui-button",a:{action:"PRG_newchannel"},f:["New Channel"]}]}]},{p:[62,4,1791],t:7,e:"tr",f:[{p:[62,8,1795],t:7,e:"td",f:[{p:[62,12,1799],t:7,e:"ui-button",a:{action:"PRG_toggleadmin"},f:["Toggle administration mode"]}]}]}]}," ",{p:[64,3,1889],t:7,e:"b",f:["Available channels:"]}," ",{p:[65,3,1919],t:7,e:"table",f:[{t:4,f:[{p:[67,4,1964],t:7,e:"tr",f:[{p:[67,8,1968],t:7,e:"td",f:[{p:[67,12,1972],t:7,e:"ui-button",a:{action:"PRG_joinchannel",params:['{"id": "',{t:2,r:"id",p:[67,64,2024]},'"}']},f:[{t:2,r:"chan",p:[67,74,2034]}]},{p:[67,94,2054],t:7,e:"br"}]}]}],n:52,r:"data.all_channels",p:[66,3,1930]}]}],r:"data.title"}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],272:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{p:[4,1,64],t:7,e:"ui-display",f:[{t:4,f:["##SYSTEM ERROR: ",{t:2,r:"data.error",p:[6,19,117]},{p:[6,33,131],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["RESET"]}],n:50,r:"data.error",p:[5,2,79]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.target"],s:"_0"},f:["##DoS traffic generator active. Tx: ",{t:2,r:"data.speed",p:[8,39,243]},"GQ/s",{p:[8,57,261],t:7,e:"br"}," ",{t:4,f:[{t:2,r:"nums",p:[10,4,300]},{p:[10,12,308],t:7,e:"br"}],n:52,r:"data.dos_strings",p:[9,3,269]}," ",{p:[12,3,329],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["ABORT"]}]},{t:4,n:50,x:{r:["data.target"],s:"!(_0)"},f:[" ##DoS traffic generator ready. Select target device.",{p:[14,55,443],t:7,e:"br"}," ",{t:4,f:["Targeted device ID: ",{t:2,r:"data.focus",p:[16,24,494]}],n:50,r:"data.focus",p:[15,3,451]},{t:4,n:51,f:["Targeted device ID: None"],r:"data.focus"}," ",{p:[20,3,564],t:7,e:"ui-button",a:{action:"PRG_execute"},f:["EXECUTE"]},{p:[20,54,615],t:7,e:"div",a:{style:"clear:both"}}," Detected devices on network:",{p:[21,31,677],t:7,e:"br"}," ",{t:4,f:[{p:[23,4,711],t:7,e:"ui-button",a:{action:"PRG_target_relay",params:['{"targid": "',{t:2,r:"id",p:[23,61,768]},'"}']},f:[{t:2,r:"id",p:[23,71,778]}]}],n:52,r:"data.relays",p:[22,3,685]}]}],r:"data.error"}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],273:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{p:[4,1,64],t:7,e:"ui-display",f:[{p:[5,2,79],t:7,e:"i",f:["Welcome to software download utility. Please select which software you wish to download."]},{p:[5,97,174],t:7,e:"hr"}," ",{t:4,f:[{p:[7,3,203],t:7,e:"ui-display",a:{title:"Download Error"},f:[{p:[8,4,243],t:7,e:"ui-section",a:{label:"Information"},f:[{t:2,r:"data.error",p:[9,5,281]}]}," ",{p:[11,4,318],t:7,e:"ui-section",a:{label:"Reset Program"},f:[{p:[12,5,358],t:7,e:"ui-button",a:{icon:"times",action:"PRG_reseterror"},f:["RESET"]}]}]}],n:50,r:"data.error",p:[6,2,181]},{t:4,n:51,f:[{t:4,f:[{p:[19,4,516],t:7,e:"ui-display",a:{title:"Download Running"},f:[{p:[20,5,559],t:7,e:"i",f:["Please wait..."]}," ",{p:[21,5,586],t:7,e:"ui-section",a:{label:"File name"},f:[{t:2,r:"data.downloadname",p:[22,6,623]}]}," ",{p:[24,5,669],t:7,e:"ui-section",a:{label:"File description"},f:[{t:2,r:"data.downloaddesc",p:[25,6,713]}]}," ",{p:[27,5,759],t:7,e:"ui-section",a:{label:"File size"},f:[{t:2,r:"data.downloadsize",p:[28,6,796]},"GQ"]}," ",{p:[30,5,844],t:7,e:"ui-section",a:{label:"Transfer Rate"},f:[{t:2,r:"data.downloadspeed",p:[31,6,885]}," GQ/s"]}," ",{p:[33,5,937],t:7,e:"ui-section",a:{label:"Download progress"},f:[{p:[34,6,982],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.downloadsize",p:[34,27,1003]}],value:[{t:2,r:"adata.downloadcompletion",p:[34,58,1034]}],state:"good"},f:[{t:2,x:{r:["adata.downloadcompletion"],s:"Math.round(_0)"},p:[34,101,1077]},"GQ / ",{t:2,r:"adata.downloadsize",p:[34,146,1122]},"GQ"]}]}]}],n:50,r:"data.downloadname",p:[18,3,486]}],r:"data.error"}," ",{t:4,f:[{t:4,f:[{p:[41,4,1270],t:7,e:"ui-display",a:{title:"File System"},f:[{p:[42,5,1308],t:7,e:"ui-section",a:{label:"Used Capacity"},f:[{p:[43,6,1349],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.disk_size",p:[43,27,1370]}],value:[{t:2,r:"adata.disk_used",p:[43,55,1398]}],state:"good"},f:[{t:2,x:{r:["adata.disk_used"],s:"Math.round(_0)"},p:[43,89,1432]},"GQ / ",{t:2,r:"adata.disk_size",p:[43,125,1468]},"GQ"]}]}]}," ",{p:[47,4,1545],t:7,e:"ui-display",a:{title:"Primary Software Repository"},f:[{t:4,f:[{p:[49,6,1642],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"filedesc",p:[49,28,1664]}]},f:[{p:[50,7,1686],t:7,e:"div",a:{style:"display: table-caption; margin-left: 3px"},f:[{t:2,r:"fileinfo",p:[50,61,1740]}]}," ",{p:[52,7,1774],t:7,e:"ui-section",a:{label:"File name"},f:[{t:2,r:"filename",p:[53,8,1813]}," (",{t:2,r:"size",p:[53,22,1827]}," GQ)"]}," ",{p:[55,7,1868],t:7,e:"ui-section",a:{label:"Compatibility"},f:[{t:2,r:"compatibility",p:[56,8,1911]}]}," ",{p:[58,7,1957],t:7,e:"ui-button",a:{icon:"signal",action:"PRG_downloadfile",params:['{"filename": "',{t:2,r:"filename",p:[58,80,2030]},'"}']},f:["DOWNLOAD"]}]}," ",{p:[62,6,2113],t:7,e:"br"}],n:52,r:"data.downloadable_programs",p:[48,5,1599]}]}," ",{t:4,f:[{p:[67,5,2194],t:7,e:"ui-display",a:{title:"UNKNOWN Software Repository"},f:[{p:[68,6,2249],t:7,e:"i",f:["Please note that Nanotrasen does not recommend download of software from non-official servers."]}," ",{t:4,f:[{p:[70,7,2395],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"filedesc",p:[70,29,2417]}]},f:[{p:[71,8,2440],t:7,e:"div",a:{style:"display: table-caption; margin-left: 3px"},f:[{t:2,r:"fileinfo",p:[71,62,2494]}]}," ",{p:[73,8,2530],t:7,e:"ui-section",a:{label:"File name"},f:[{t:2,r:"filename",p:[74,9,2570]}," (",{t:2,r:"size",p:[74,23,2584]}," GQ)"]}," ",{p:[76,8,2627],t:7,e:"ui-section",a:{label:"Compatibility"},f:[{t:2,r:"compatibility",p:[77,9,2671]}]}," ",{p:[79,8,2719],t:7,e:"ui-button",a:{icon:"signal",action:"PRG_downloadfile",params:['{"filename": "',{t:2,r:"filename",p:[79,81,2792]},'"}']},f:["DOWNLOAD"]}]}," ",{p:[83,7,2879],t:7,e:"br"}],n:52,r:"data.hacked_programs",p:[69,6,2357]}]}],n:50,r:"data.hackedavailable",p:[66,4,2160]}],n:50,x:{r:["data.error"],s:"!_0"},p:[40,3,1246]}],n:50,x:{r:["data.downloadname"],s:"!_0"},p:[39,2,1216]}," ",{p:[89,2,2954],t:7,e:"br"},{p:[89,6,2958],t:7,e:"br"},{p:[89,10,2962],t:7,e:"hr"},{p:[89,14,2966],t:7,e:"i",f:["NTOS v2.0.4b Copyright Nanotrasen 2557 - 2559"]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],274:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{p:[4,1,64],t:7,e:"ui-display",f:[{p:[6,2,81],t:7,e:"ui-display",a:{title:"WIRELESS CONNECTIVITY"},f:[{p:[8,3,129],t:7,e:"ui-section",a:{label:"Active NTNetRelays"},f:[{p:[9,4,173],t:7,e:"b",f:[{t:2,r:"data.ntnetrelays",p:[9,7,176]}]}]}," ",{t:4,f:[{p:[12,4,250],t:7,e:"ui-section",a:{label:"System status"},f:[{p:[13,6,291],t:7,e:"b",f:[{t:2,x:{r:["data.ntnetstatus"],s:'_0?"ENABLED":"DISABLED"'},p:[13,9,294]}]}]}," ",{p:[15,4,366],t:7,e:"ui-section",a:{label:"Control"},f:[{p:[17,4,401],t:7,e:"ui-button",a:{icon:"plus",action:"toggleWireless"},f:["TOGGLE"]}]}," ",{p:[21,4,500],t:7,e:"br"},{p:[21,8,504],t:7,e:"br"}," ",{p:[22,4,513],t:7,e:"i",f:["Caution - Disabling wireless transmitters when using wireless device may prevent you from re-enabling them again!"]}],n:50,r:"data.ntnetrelays",p:[11,3,221]},{t:4,n:51,f:[{p:[24,4,650],t:7,e:"br"},{p:[24,8,654],t:7,e:"p",f:["Wireless coverage unavailable, no relays are connected."]}],r:"data.ntnetrelays"}]}," ",{p:[29,2,750],t:7,e:"ui-display",a:{title:"FIREWALL CONFIGURATION"},f:[{p:[31,2,798],t:7,e:"table",f:[{p:[32,3,809],t:7,e:"tr",f:[{p:[33,4,818],t:7,e:"th",f:["PROTOCOL"]},{p:[34,4,835],t:7,e:"th",f:["STATUS"]},{p:[35,4,850],t:7,e:"th",f:["CONTROL"]}]},{p:[36,3,865],t:7,e:"tr",f:[" ",{p:[37,4,874],t:7,e:"td",f:["Software Downloads"]},{p:[38,4,901],t:7,e:"td",f:[{t:2,x:{r:["data.config_softwaredownload"],s:'_0?"ENABLED":"DISABLED"'},p:[38,8,905]}]},{p:[39,4,967],t:7,e:"td",f:[" ",{p:[39,9,972],t:7,e:"ui-button",a:{action:"toggle_function",params:'{"id": "1"}'},f:["TOGGLE"]}]}]},{p:[40,3,1051],t:7,e:"tr",f:[" ",{p:[41,4,1060],t:7,e:"td",f:["Peer to Peer Traffic"]},{p:[42,4,1089],t:7,e:"td",f:[{t:2,x:{r:["data.config_peertopeer"],s:'_0?"ENABLED":"DISABLED"'},p:[42,8,1093]}]},{p:[43,4,1149],t:7,e:"td",f:[{p:[43,8,1153],t:7,e:"ui-button",a:{action:"toggle_function",params:'{"id": "2"}'},f:["TOGGLE"]}]}]},{p:[44,3,1232],t:7,e:"tr",f:[" ",{p:[45,4,1241],t:7,e:"td",f:["Communication Systems"]},{p:[46,4,1271],t:7,e:"td",f:[{t:2,x:{r:["data.config_communication"],s:'_0?"ENABLED":"DISABLED"'},p:[46,8,1275]}]},{p:[47,4,1334],t:7,e:"td",f:[{p:[47,8,1338],t:7,e:"ui-button",a:{action:"toggle_function",params:'{"id": "3"}'},f:["TOGGLE"]}]}]},{p:[48,3,1417],t:7,e:"tr",f:[" ",{p:[49,4,1426],t:7,e:"td",f:["Remote System Control"]},{p:[50,4,1456],t:7,e:"td",f:[{t:2,x:{r:["data.config_systemcontrol"],s:'_0?"ENABLED":"DISABLED"'},p:[50,8,1460]}]},{p:[51,4,1519],t:7,e:"td",f:[{p:[51,8,1523],t:7,e:"ui-button",a:{action:"toggle_function",params:'{"id": "4"}'},f:["TOGGLE"]}]}]}]}]}," ",{p:[55,2,1630],t:7,e:"ui-display",a:{title:"SECURITY SYSTEMS"},f:[{t:4,f:[{p:[58,4,1699],t:7,e:"ui-notice",f:[{p:[59,5,1716],t:7,e:"h1",f:["NETWORK INCURSION DETECTED"]}]}," ",{p:[61,5,1774],t:7,e:"i",f:["An abnormal activity has been detected in the network. Please verify system logs for more information"]}],n:50,r:"data.idsalarm",p:[57,3,1673]}," ",{p:[64,3,1902],t:7,e:"ui-section",a:{label:"Intrusion Detection System"},f:[{p:[65,4,1954],t:7,e:"b",f:[{t:2,x:{r:["data.idsstatus"],s:'_0?"ENABLED":"DISABLED"'},p:[65,7,1957]}]}]}," ",{p:[68,3,2029],t:7,e:"ui-section",a:{label:"Maximal Log Count"},f:[{p:[69,4,2072],t:7,e:"b",f:[{t:2,r:"data.ntnetmaxlogs",p:[69,7,2075]}]}]}," ",{p:[72,3,2125],t:7,e:"ui-section",a:{label:"Controls"},f:[]}," ",{p:[74,4,2176],t:7,e:"table",f:[{p:[75,4,2188],t:7,e:"tr",f:[{p:[75,8,2192],t:7,e:"td",f:[{p:[75,12,2196],t:7,e:"ui-button",a:{action:"resetIDS"},f:["RESET IDS"]}]}]},{p:[76,4,2251],t:7,e:"tr",f:[{p:[76,8,2255],t:7,e:"td",f:[{p:[76,12,2259],t:7,e:"ui-button",a:{action:"toggleIDS"},f:["TOGGLE IDS"]}]}]},{p:[77,4,2316],t:7,e:"tr",f:[{p:[77,8,2320],t:7,e:"td",f:[{p:[77,12,2324],t:7,e:"ui-button",a:{action:"updatemaxlogs"},f:["SET LOG LIMIT"]}]}]},{p:[78,4,2388],t:7,e:"tr",f:[{p:[78,8,2392],t:7,e:"td",f:[{p:[78,12,2396],t:7,e:"ui-button",a:{action:"purgelogs"},f:["PURGE LOGS"]}]}]}]}," ",{p:[81,3,2467],t:7,e:"ui-subdisplay",a:{title:"System Logs"},f:[{p:[82,3,2506],t:7,e:"div",a:{"class":"statusDisplay",style:"overflow: auto;"},f:[{p:[83,3,2561],t:7,e:"div",a:{"class":"item"},f:[{p:[84,4,2584],t:7,e:"div",a:{"class":"itemContent",style:"width: 100%;"},f:[{t:4,f:[{t:2,r:"entry",p:[86,6,2667]},{p:[86,15,2676],t:7,e:"br"}],n:52,r:"data.ntnetlogs",p:[85,5,2636]}]}]}]}]}]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],275:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{p:[4,1,64],t:7,e:"ui-display",f:[{t:4,f:[{p:[7,2,102],t:7,e:"div",a:{"class":"item"},f:[{p:[8,3,124],t:7,e:"h2",f:["An error has occurred during operation..."]}," ",{p:[9,3,178],t:7,e:"b",f:["Additional information:"]},{t:2,r:"data.error",p:[9,34,209]},{p:[9,48,223],t:7,e:"br"}," ",{p:[10,3,231],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["Clear"]}]}],n:50,r:"data.error",p:[6,2,81]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.downloading"],s:"_0"},f:[{p:[13,3,321],t:7,e:"h2",f:["Download in progress..."]}," ",{p:[14,3,357],t:7,e:"div",a:{"class":"itemLabel"},f:["Downloaded file:"]}," ",{p:[17,3,416],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.download_name",p:[18,4,446]}]}," ",{p:[20,3,483],t:7,e:"div",a:{"class":"itemLabel"},f:["Download progress:"]}," ",{p:[23,3,544],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.download_progress",p:[24,4,574]}," / ",{t:2,r:"data.download_size",p:[24,33,603]}," GQ"]}," ",{p:[26,3,642],t:7,e:"div",a:{"class":"itemLabel"},f:["Transfer speed:"]}," ",{p:[29,3,700],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.download_netspeed",p:[30,4,730]},"GQ/s"]}," ",{p:[32,3,774],t:7,e:"div",a:{"class":"itemLabel"},f:["Controls:"]}," ",{p:[35,3,826],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[36,4,856],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["Abort download"]}]}]},{t:4,n:50,x:{r:["data.downloading","data.uploading"],s:"(!(_0))&&(_1)"},f:[" ",{p:[39,3,954],t:7,e:"h2",f:["Server enabled"]}," ",{p:[40,3,981],t:7,e:"div",a:{"class":"itemLabel"},f:["Connected clients:"]}," ",{p:[43,3,1042],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.upload_clients",p:[44,4,1072]}]}," ",{p:[46,3,1109],t:7,e:"div",a:{"class":"itemLabel"},f:["Provided file:"]}," ",{p:[49,3,1166],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.upload_filename",p:[50,4,1196]}]}," ",{p:[52,3,1234],t:7,e:"div",a:{"class":"itemLabel"},f:["Server password:"]}," ",{p:[55,3,1293],t:7,e:"div",a:{"class":"itemContent"},f:[{t:4,f:["ENABLED"],n:50,r:"data.upload_haspassword",p:[56,4,1323]},{t:4,n:51,f:["DISABLED"],r:"data.upload_haspassword"}]}," ",{p:[62,3,1420],t:7,e:"div",a:{"class":"itemLabel"},f:["Commands:"]}," ",{p:[65,3,1472],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[66,4,1502],t:7,e:"ui-button",a:{action:"PRG_setpassword"},f:["Set password"]}," ",{p:[67,4,1567],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["Exit server"]}]}]},{t:4,n:50,x:{r:["data.downloading","data.uploading","data.upload_filelist"],s:"(!(_0))&&((!(_1))&&(_2))"},f:[" ",{p:[70,3,1668],t:7,e:"h2",f:["File transfer server ready. Select file to upload:"]}," ",{p:[71,3,1732],t:7,e:"table",f:[{p:[72,3,1743],t:7,e:"tr",f:[{p:[72,7,1747],t:7,e:"th",f:["File name"]},{p:[72,20,1760],t:7,e:"th",f:["File size"]},{p:[72,33,1773],t:7,e:"th",f:["Controls ",{t:4,f:[{p:[74,4,1824],t:7,e:"tr",f:[{p:[74,8,1828],t:7,e:"td",f:[{t:2,r:"filename",p:[74,12,1832]}]},{p:[75,4,1849],t:7,e:"td",f:[{t:2,r:"size",p:[75,8,1853]},"GQ"]},{p:[76,4,1868],t:7,e:"td",f:[{p:[76,8,1872],t:7,e:"ui-button",a:{action:"PRG_uploadfile",params:['{"id": "',{t:2,r:"uid",p:[76,59,1923]},'"}']},f:["Select"]}]}]}],n:52,r:"data.upload_filelist",p:[73,3,1789]}]}]}]}," ",{p:[79,3,1981],t:7,e:"hr"}," ",{p:[80,3,1989],t:7,e:"ui-button",a:{action:"PRG_setpassword"},f:["Set password"]}," ",{p:[81,3,2053],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["Return"]}]},{t:4,n:50,x:{r:["data.downloading","data.uploading","data.upload_filelist"],s:"(!(_0))&&((!(_1))&&(!(_2)))"},f:[" ",{p:[83,3,2116],t:7,e:"h2",f:["Available files:"]}," ",{p:[84,3,2145],t:7,e:"table",a:{border:"1",style:"border-collapse: collapse"},f:[{p:[84,55,2197],t:7,e:"tr",f:[{p:[84,59,2201],t:7,e:"th",f:["Server UID"]},{p:[84,73,2215],t:7,e:"th",f:["File Name"]},{p:[84,86,2228],t:7,e:"th",f:["File Size"]},{p:[84,99,2241],t:7,e:"th",f:["Password Protection"]},{p:[84,122,2264],t:7,e:"th",f:["Operations ",{t:4,f:[{p:[86,5,2311],t:7,e:"tr",f:[{p:[86,9,2315],t:7,e:"td",f:[{t:2,r:"uid",p:[86,13,2319]}]},{p:[87,5,2332],t:7,e:"td",f:[{t:2,r:"filename",p:[87,9,2336]}]},{p:[88,5,2354],t:7,e:"td",f:[{t:2,r:"size",p:[88,9,2358]},"GQ ",{t:4,f:[{p:[90,6,2400],t:7,e:"td",f:["Enabled"]}],n:50,r:"haspassword",p:[89,5,2374]}," ",{t:4,f:[{p:[93,6,2457],t:7,e:"td",f:["Disabled"]}],n:50,x:{r:["haspassword"],s:"!_0"},p:[92,5,2430]}]},{p:[96,5,2494],t:7,e:"td",f:[{p:[96,9,2498],t:7,e:"ui-button",a:{action:"PRG_downloadfile",params:['{"id": "',{t:2,r:"uid",p:[96,62,2551]},'"}']},f:["Download"]}]}]}],n:52,r:"data.servers",p:[85,4,2283]}]}]}]}," ",{p:[99,3,2612],t:7,e:"hr"}," ",{p:[100,3,2620],t:7,e:"ui-button",a:{action:"PRG_uploadmenu"},f:["Send file"]}]}],r:"data.error"}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],276:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={data:{chargingState:function(t){switch(t){case 2:return"good";case 1:return"average";default:return"bad"}},chargingMode:function(t){return 2==t?"Full":1==t?"Charging":"Draining"},channelState:function(t){return t>=2?"good":"bad"},channelPower:function(t){return t>=2?"On":"Off"},channelMode:function(t){return 1==t||3==t?"Auto":"Manual"}},computed:{graphData:function(){var t=this.get("data.history");return Object.keys(t).map(function(e){return t[e].map(function(t,e){return{x:e,y:t}})})}}}}(r),r.exports.template={v:3,t:[" "," ",{p:[43,1,1082],t:7,e:"ntosheader"}," ",{p:[45,1,1099],t:7,e:"ui-display",a:{title:"Network"},f:[{t:4,f:[{p:[47,5,1157],t:7,e:"ui-linegraph",a:{points:[{t:2,r:"graphData", ++},f:["Cargo"]}," ",{p:[167,4,5195],t:7,e:"td",f:[{t:4,f:[{p:[169,5,5237],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[169,64,5296]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[169,82,5314]}]},f:[{t:2,r:"display_name",p:[169,127,5359]}]}],n:52,r:"data.cargo_jobs",p:[168,6,5206]}]}]}," ",{p:[173,5,5430],t:7,e:"tr",f:[{p:[174,4,5439],t:7,e:"th",a:{style:"color: '#808080';"},f:["Civilian"]}," ",{p:[175,4,5487],t:7,e:"td",f:[{t:4,f:[{p:[177,5,5532],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[177,64,5591]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[177,82,5609]}]},f:[{t:2,r:"display_name",p:[177,127,5654]}]}],n:52,r:"data.civilian_jobs",p:[176,6,5498]}]}]}," ",{t:4,f:[{p:[182,4,5757],t:7,e:"tr",f:[{p:[183,6,5768],t:7,e:"th",a:{style:"color: '#A52A2A';"},f:["CentCom"]}," ",{p:[184,6,5817],t:7,e:"td",f:[{t:4,f:[{p:[186,7,5862],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[186,66,5921]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[186,84,5939]}]},f:[{t:2,r:"display_name",p:[186,129,5984]}]}],n:52,r:"data.centcom_jobs",p:[185,5,5827]}]}]}],n:50,r:"data.centcom_access",p:[181,5,5725]}]}]}],n:50,r:"data.assignments",p:[118,4,3518]}]}],r:"data.minor"}," ",{t:4,f:[{p:[198,4,6153],t:7,e:"div",a:{"class":"item"},f:[{p:[199,3,6175],t:7,e:"h2",f:["Central Command"]}]}," ",{p:[201,4,6215],t:7,e:"div",a:{"class":"item",style:"width: 100%"},f:[{t:4,f:[{p:[203,5,6296],t:7,e:"div",a:{"class":"itemContentWide"},f:[{p:[204,5,6331],t:7,e:"ui-button",a:{action:"PRG_access",params:['{"access_target" : "',{t:2,r:"ref",p:[204,64,6390]},'", "allowed" : "',{t:2,r:"allowed",p:[204,87,6413]},'"}'],state:[{t:2,x:{r:["allowed"],s:'_0?"toggle":null'},p:[204,109,6435]}]},f:[{t:2,r:"desc",p:[204,140,6466]}]}]}],n:52,r:"data.all_centcom_access",p:[202,3,6257]}]}],n:50,r:"data.centcom_access",p:[197,2,6121]},{t:4,n:51,f:[{p:[209,4,6538],t:7,e:"div",a:{"class":"item"},f:[{p:[210,3,6560],t:7,e:"h2",f:[{t:2,r:"data.station_name",p:[210,7,6564]}]}]}," ",{p:[212,4,6606],t:7,e:"div",a:{"class":"item",style:"width: 100%"},f:[{t:4,f:[{p:[214,5,6676],t:7,e:"div",a:{style:"float: left; width: 175px; min-height: 250px"},f:[{p:[215,4,6739],t:7,e:"div",a:{"class":"average"},f:[{p:[215,25,6760],t:7,e:"ui-button",a:{action:"PRG_regsel",state:[{t:2,x:{r:["selected"],s:'_0?"toggle":null'},p:[215,63,6798]}],params:['{"region" : "',{t:2,r:"regid",p:[215,116,6851]},'"}']},f:[{p:[215,129,6864],t:7,e:"b",f:[{t:2,r:"name",p:[215,132,6867]}]}]}]}," ",{p:[216,4,6902],t:7,e:"br"}," ",{t:4,f:[{p:[218,6,6938],t:7,e:"div",a:{"class":"itemContentWide"},f:[{p:[219,5,6973],t:7,e:"ui-button",a:{action:"PRG_access",params:['{"access_target" : "',{t:2,r:"ref",p:[219,64,7032]},'", "allowed" : "',{t:2,r:"allowed",p:[219,87,7055]},'"}'],state:[{t:2,x:{r:["allowed"],s:'_0?"toggle":null'},p:[219,109,7077]}]},f:[{t:2,r:"desc",p:[219,140,7108]}]}]}],n:52,r:"accesses",p:[217,6,6913]}]}],n:52,r:"data.regions",p:[213,3,6648]}]}],r:"data.centcom_access"}],n:50,r:"data.has_id",p:[67,3,2340]}],n:50,r:"data.authenticated",p:[66,1,2310]}]}],x:{r:["data.mmode"],s:"!_0"}}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],268:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={data:{chargeState:function(t){var e=this.get("data.battery.max");return t>e/2?"good":t>e/4?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" "," ",{p:[15,1,311],t:7,e:"ntosheader"}," ",{p:[17,1,328],t:7,e:"ui-display",f:[{p:[18,2,343],t:7,e:"i",f:["Welcome to computer configuration utility. Please consult your system administrator if you have any questions about your device."]},{p:[18,137,478],t:7,e:"hr"}," ",{p:[19,2,485],t:7,e:"ui-display",a:{title:"Power Supply"},f:[{p:[20,3,522],t:7,e:"ui-section",a:{label:"Power Usage"},f:[{t:2,r:"data.power_usage",p:[21,4,559]},"W"]}," ",{t:4,f:[{p:[25,4,630],t:7,e:"ui-section",a:{label:"Battery Status"},f:["Active"]}," ",{p:[28,4,701],t:7,e:"ui-section",a:{label:"Battery Rating"},f:[{t:2,r:"data.battery.max",p:[29,5,742]}]}," ",{p:[31,4,785],t:7,e:"ui-section",a:{label:"Battery Charge"},f:[{p:[32,5,826],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.battery.max",p:[32,26,847]}],value:[{t:2,r:"adata.battery.charge",p:[32,56,877]}],state:[{t:2,x:{r:["chargeState","adata.battery.charge"],s:"_0(_1)"},p:[32,89,910]}]},f:[{t:2,x:{r:["adata.battery.charge"],s:"Math.round(_0)"},p:[32,128,949]},"/",{t:2,r:"adata.battery.max",p:[32,165,986]}]}]}],n:50,r:"data.battery",p:[24,3,605]},{t:4,n:51,f:[{p:[35,4,1051],t:7,e:"ui-section",a:{label:"Battery Status"},f:["Not Available"]}],r:"data.battery"}]}," ",{p:[41,2,1156],t:7,e:"ui-display",a:{title:"File System"},f:[{p:[42,3,1192],t:7,e:"ui-section",a:{label:"Used Capacity"},f:[{p:[43,4,1231],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.disk_size",p:[43,25,1252]}],value:[{t:2,r:"adata.disk_used",p:[43,53,1280]}],state:"good"},f:[{t:2,x:{r:["adata.disk_used"],s:"Math.round(_0)"},p:[43,87,1314]},"GQ / ",{t:2,r:"adata.disk_size",p:[43,123,1350]},"GQ"]}]}]}," ",{p:[47,2,1419],t:7,e:"ui-display",a:{title:"Computer Components"},f:[{t:4,f:[{p:[49,4,1491],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"name",p:[49,26,1513]}]},f:[{p:[50,5,1529],t:7,e:"div",a:{style:"display: table-caption; margin-left: 3px"},f:[{t:2,r:"desc",p:[50,59,1583]}]}," ",{p:[52,5,1605],t:7,e:"ui-section",a:{label:"State"},f:[{p:[53,6,1638],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["critical"],s:'_0?"disabled":null'},p:[53,24,1656]}],action:"PC_toggle_component",params:['{"name": "',{t:2,r:"name",p:[53,105,1737]},'"}']},f:[{t:2,x:{r:["enabled"],s:'_0?"Enabled":"Disabled"'},p:[54,7,1757]}]}]}," ",{t:4,f:[{p:[59,6,1868],t:7,e:"ui-section",a:{label:"Power Usage"},f:[{t:2,r:"powerusage",p:[60,7,1908]},"W"]}],n:50,r:"powerusage",p:[58,5,1843]}]}," ",{p:[64,4,1985],t:7,e:"br"}],n:52,r:"data.hardware",p:[48,3,1463]}]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],269:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{p:[4,1,64],t:7,e:"ui-display",f:[{t:4,f:[{p:[7,3,103],t:7,e:"h2",f:["An error has occurred and this program can not continue."]}," Additional information: ",{t:2,r:"data.error",p:[8,27,196]},{p:[8,41,210],t:7,e:"br"}," ",{p:[9,3,218],t:7,e:"i",f:["Please try again. If the problem persists contact your system administrator for assistance."]}," ",{p:[10,3,320],t:7,e:"ui-button",a:{action:"PRG_closefile"},f:["Restart program"]}],n:50,r:"data.error",p:[6,2,81]},{t:4,n:51,f:[{t:4,f:[{p:[13,4,422],t:7,e:"h2",f:["Viewing file ",{t:2,r:"data.filename",p:[13,21,439]}]}," ",{p:[14,4,466],t:7,e:"div",a:{"class":"item"},f:[{p:[15,4,489],t:7,e:"ui-button",a:{action:"PRG_closefile"},f:["CLOSE"]}," ",{p:[16,4,545],t:7,e:"ui-button",a:{action:"PRG_edit"},f:["EDIT"]}," ",{p:[17,4,595],t:7,e:"ui-button",a:{action:"PRG_printfile"},f:["PRINT"]}," "]},{p:[18,10,657],t:7,e:"hr"}," ",{t:3,r:"data.filedata",p:[19,4,666]}],n:50,r:"data.filename",p:[12,3,396]},{t:4,n:51,f:[{p:[21,4,702],t:7,e:"h2",f:["Available files (local):"]}," ",{p:[22,4,740],t:7,e:"table",f:[{p:[23,5,753],t:7,e:"tr",f:[{p:[24,6,764],t:7,e:"th",f:["File name"]}," ",{p:[25,6,789],t:7,e:"th",f:["File type"]}," ",{p:[26,6,814],t:7,e:"th",f:["File size (GQ)"]}," ",{p:[27,6,844],t:7,e:"th",f:["Operations"]}]}," ",{t:4,f:[{p:[30,6,907],t:7,e:"tr",f:[{p:[31,7,919],t:7,e:"td",f:[{t:2,r:"name",p:[31,11,923]}]}," ",{p:[32,7,944],t:7,e:"td",f:[".",{t:2,r:"type",p:[32,12,949]}]}," ",{p:[33,7,970],t:7,e:"td",f:[{t:2,r:"size",p:[33,11,974]},"GQ"]}," ",{p:[34,7,997],t:7,e:"td",f:[{p:[35,8,1010],t:7,e:"ui-button",a:{action:"PRG_openfile",params:['{"name": "',{t:2,r:"name",p:[35,59,1061]},'"}']},f:["VIEW"]}," ",{p:[36,8,1098],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[36,26,1116]}],action:"PRG_deletefile",params:['{"name": "',{t:2,r:"name",p:[36,105,1195]},'"}']},f:["DELETE"]}," ",{p:[37,8,1234],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[37,26,1252]}],action:"PRG_rename",params:['{"name": "',{t:2,r:"name",p:[37,101,1327]},'"}']},f:["RENAME"]}," ",{p:[38,8,1366],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[38,26,1384]}],action:"PRG_clone",params:['{"name": "',{t:2,r:"name",p:[38,100,1458]},'"}']},f:["CLONE"]}," ",{t:4,f:[{p:[40,9,1531],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[40,27,1549]}],action:"PRG_copytousb",params:['{"name": "',{t:2,r:"name",p:[40,105,1627]},'"}']},f:["EXPORT"]}],n:50,r:"data.usbconnected",p:[39,8,1496]}]}]}],n:52,r:"data.files",p:[29,5,880]}]}," ",{t:4,f:[{p:[47,4,1761],t:7,e:"h2",f:["Available files (portable device):"]}," ",{p:[48,4,1809],t:7,e:"table",f:[{p:[49,5,1822],t:7,e:"tr",f:[{p:[50,6,1833],t:7,e:"th",f:["File name"]}," ",{p:[51,6,1858],t:7,e:"th",f:["File type"]}," ",{p:[52,6,1883],t:7,e:"th",f:["File size (GQ)"]}," ",{p:[53,6,1913],t:7,e:"th",f:["Operations"]}]}," ",{t:4,f:[{p:[56,6,1979],t:7,e:"tr",f:[{p:[57,7,1991],t:7,e:"td",f:[{t:2,r:"name",p:[57,11,1995]}]}," ",{p:[58,7,2016],t:7,e:"td",f:[".",{t:2,r:"type",p:[58,12,2021]}]}," ",{p:[59,7,2042],t:7,e:"td",f:[{t:2,r:"size",p:[59,11,2046]},"GQ"]}," ",{p:[60,7,2069],t:7,e:"td",f:[{p:[61,8,2082],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[61,26,2100]}],action:"PRG_usbdeletefile",params:['{"name": "',{t:2,r:"name",p:[61,108,2182]},'"}']},f:["DELETE"]}," ",{t:4,f:[{p:[63,9,2256],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[63,27,2274]}],action:"PRG_copyfromusb",params:['{"name": "',{t:2,r:"name",p:[63,107,2354]},'"}']},f:["IMPORT"]}],n:50,r:"data.usbconnected",p:[62,8,2221]}]}]}],n:52,r:"data.usbfiles",p:[55,5,1949]}]}],n:50,r:"data.usbconnected",p:[46,4,1731]}," ",{p:[70,4,2470],t:7,e:"ui-button",a:{action:"PRG_newtextfile"},f:["NEW DATA FILE"]}],r:"data.filename"}],r:"data.error"}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],270:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{p:[4,1,64],t:7,e:"ui-display",f:[{p:[5,2,79],t:7,e:"i",f:["No program loaded. Please select program from list below."]}," ",{p:[6,2,146],t:7,e:"table",f:[{t:4,f:[{p:[8,4,185],t:7,e:"tr",f:[{p:[8,8,189],t:7,e:"td",f:[{p:[8,12,193],t:7,e:"ui-button",a:{action:"PC_runprogram",params:['{"name": "',{t:2,r:"name",p:[8,64,245]},'"}']},f:[{t:2,r:"desc",p:[9,5,263]}]}]},{p:[11,4,293],t:7,e:"td",f:[{p:[11,8,297],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["running"],s:'_0?null:"disabled"'},p:[11,26,315]}],icon:"close",action:"PC_killprogram",params:['{"name": "',{t:2,r:"name",p:[11,114,403]},'"}']}}]}]}],n:52,r:"data.programs",p:[7,3,157]}]}," ",{p:[14,2,454],t:7,e:"br"},{p:[14,6,458],t:7,e:"br"}," ",{t:4,f:[{p:[16,3,491],t:7,e:"ui-button",a:{action:"PC_toggle_light",style:[{t:2,x:{r:["data.light_on"],s:'_0?"selected":null'},p:[16,46,534]}]},f:["Toggle Flashlight"]},{p:[16,114,602],t:7,e:"br"}," ",{p:[17,3,610],t:7,e:"ui-button",a:{action:"PC_light_color"},f:["Change Flashlight Color ",{p:[17,62,669],t:7,e:"span",a:{style:["border:1px solid #161616; background-color: ",{t:2,r:"data.comp_light_color",p:[17,119,726]},";"]},f:["   "]}]}],n:50,r:"data.has_light",p:[15,2,465]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],271:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{p:[4,1,64],t:7,e:"ui-display",f:[{t:4,f:[{p:[6,3,105],t:7,e:"h1",f:["ADMINISTRATIVE MODE"]}],n:50,r:"data.adminmode",p:[5,2,79]}," ",{t:4,f:[{p:[10,3,170],t:7,e:"div",a:{"class":"itemLabel"},f:["Current channel:"]}," ",{p:[13,3,229],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.title",p:[14,4,259]}]}," ",{p:[16,3,287],t:7,e:"div",a:{"class":"itemLabel"},f:["Operator access:"]}," ",{p:[19,3,346],t:7,e:"div",a:{"class":"itemContent"},f:[{t:4,f:[{p:[21,5,406],t:7,e:"b",f:["Enabled"]}],n:50,r:"data.is_operator",p:[20,4,376]},{t:4,n:51,f:[{p:[23,5,439],t:7,e:"b",f:["Disabled"]}],r:"data.is_operator"}]}," ",{p:[26,3,480],t:7,e:"div",a:{"class":"itemLabel"},f:["Controls:"]}," ",{p:[29,3,532],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[30,4,562],t:7,e:"table",f:[{p:[31,5,575],t:7,e:"tr",f:[{p:[31,9,579],t:7,e:"td",f:[{p:[31,13,583],t:7,e:"ui-button",a:{action:"PRG_speak"},f:["Send message"]}]}]},{p:[32,5,643],t:7,e:"tr",f:[{p:[32,9,647],t:7,e:"td",f:[{p:[32,13,651],t:7,e:"ui-button",a:{action:"PRG_changename"},f:["Change nickname"]}]}]},{p:[33,5,719],t:7,e:"tr",f:[{p:[33,9,723],t:7,e:"td",f:[{p:[33,13,727],t:7,e:"ui-button",a:{action:"PRG_toggleadmin"},f:["Toggle administration mode"]}]}]},{p:[34,5,807],t:7,e:"tr",f:[{p:[34,9,811],t:7,e:"td",f:[{p:[34,13,815],t:7,e:"ui-button",a:{action:"PRG_leavechannel"},f:["Leave channel"]}]}]},{p:[35,5,883],t:7,e:"tr",f:[{p:[35,9,887],t:7,e:"td",f:[{p:[35,13,891],t:7,e:"ui-button",a:{action:"PRG_savelog"},f:["Save log to local drive"]}," ",{t:4,f:[{p:[37,6,995],t:7,e:"tr",f:[{p:[37,10,999],t:7,e:"td",f:[{p:[37,14,1003],t:7,e:"ui-button",a:{action:"PRG_renamechannel"},f:["Rename channel"]}]}]},{p:[38,6,1074],t:7,e:"tr",f:[{p:[38,10,1078],t:7,e:"td",f:[{p:[38,14,1082],t:7,e:"ui-button",a:{action:"PRG_setpassword"},f:["Set password"]}]}]},{p:[39,6,1149],t:7,e:"tr",f:[{p:[39,10,1153],t:7,e:"td",f:[{p:[39,14,1157],t:7,e:"ui-button",a:{action:"PRG_deletechannel"},f:["Delete channel"]}]}]}],n:50,r:"data.is_operator",p:[36,5,964]}]}]}]}]}," ",{p:[43,3,1263],t:7,e:"b",f:["Chat Window"]}," ",{p:[44,4,1286],t:7,e:"div",a:{"class":"statusDisplay",style:"overflow: auto;"},f:[{p:[45,4,1342],t:7,e:"div",a:{"class":"item"},f:[{p:[46,5,1366],t:7,e:"div",a:{"class":"itemContent",style:"width: 100%;"},f:[{t:4,f:[{t:2,r:"msg",p:[48,7,1450]},{p:[48,14,1457],t:7,e:"br"}],n:52,r:"data.messages",p:[47,6,1419]}]}]}]}," ",{p:[53,3,1516],t:7,e:"b",f:["Connected Users"]},{p:[53,25,1538],t:7,e:"br"}," ",{t:4,f:[{t:2,r:"name",p:[55,4,1573]},{p:[55,12,1581],t:7,e:"br"}],n:52,r:"data.clients",p:[54,3,1546]}],n:50,r:"data.title",p:[9,2,148]},{t:4,n:51,f:[{p:[58,3,1613],t:7,e:"b",f:["Controls:"]}," ",{p:[59,3,1633],t:7,e:"table",f:[{p:[60,4,1645],t:7,e:"tr",f:[{p:[60,8,1649],t:7,e:"td",f:[{p:[60,12,1653],t:7,e:"ui-button",a:{action:"PRG_changename"},f:["Change nickname"]}]}]},{p:[61,4,1720],t:7,e:"tr",f:[{p:[61,8,1724],t:7,e:"td",f:[{p:[61,12,1728],t:7,e:"ui-button",a:{action:"PRG_newchannel"},f:["New Channel"]}]}]},{p:[62,4,1791],t:7,e:"tr",f:[{p:[62,8,1795],t:7,e:"td",f:[{p:[62,12,1799],t:7,e:"ui-button",a:{action:"PRG_toggleadmin"},f:["Toggle administration mode"]}]}]}]}," ",{p:[64,3,1889],t:7,e:"b",f:["Available channels:"]}," ",{p:[65,3,1919],t:7,e:"table",f:[{t:4,f:[{p:[67,4,1964],t:7,e:"tr",f:[{p:[67,8,1968],t:7,e:"td",f:[{p:[67,12,1972],t:7,e:"ui-button",a:{action:"PRG_joinchannel",params:['{"id": "',{t:2,r:"id",p:[67,64,2024]},'"}']},f:[{t:2,r:"chan",p:[67,74,2034]}]},{p:[67,94,2054],t:7,e:"br"}]}]}],n:52,r:"data.all_channels",p:[66,3,1930]}]}],r:"data.title"}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],272:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{p:[4,1,64],t:7,e:"ui-display",f:[{t:4,f:["##SYSTEM ERROR: ",{t:2,r:"data.error",p:[6,19,117]},{p:[6,33,131],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["RESET"]}],n:50,r:"data.error",p:[5,2,79]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.target"],s:"_0"},f:["##DoS traffic generator active. Tx: ",{t:2,r:"data.speed",p:[8,39,243]},"GQ/s",{p:[8,57,261],t:7,e:"br"}," ",{t:4,f:[{t:2,r:"nums",p:[10,4,300]},{p:[10,12,308],t:7,e:"br"}],n:52,r:"data.dos_strings",p:[9,3,269]}," ",{p:[12,3,329],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["ABORT"]}]},{t:4,n:50,x:{r:["data.target"],s:"!(_0)"},f:[" ##DoS traffic generator ready. Select target device.",{p:[14,55,443],t:7,e:"br"}," ",{t:4,f:["Targeted device ID: ",{t:2,r:"data.focus",p:[16,24,494]}],n:50,r:"data.focus",p:[15,3,451]},{t:4,n:51,f:["Targeted device ID: None"],r:"data.focus"}," ",{p:[20,3,564],t:7,e:"ui-button",a:{action:"PRG_execute"},f:["EXECUTE"]},{p:[20,54,615],t:7,e:"div",a:{style:"clear:both"}}," Detected devices on network:",{p:[21,31,677],t:7,e:"br"}," ",{t:4,f:[{p:[23,4,711],t:7,e:"ui-button",a:{action:"PRG_target_relay",params:['{"targid": "',{t:2,r:"id",p:[23,61,768]},'"}']},f:[{t:2,r:"id",p:[23,71,778]}]}],n:52,r:"data.relays",p:[22,3,685]}]}],r:"data.error"}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],273:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{p:[4,1,64],t:7,e:"ui-display",f:[{p:[5,2,79],t:7,e:"i",f:["Welcome to software download utility. Please select which software you wish to download."]},{p:[5,97,174],t:7,e:"hr"}," ",{t:4,f:[{p:[7,3,203],t:7,e:"ui-display",a:{title:"Download Error"},f:[{p:[8,4,243],t:7,e:"ui-section",a:{label:"Information"},f:[{t:2,r:"data.error",p:[9,5,281]}]}," ",{p:[11,4,318],t:7,e:"ui-section",a:{label:"Reset Program"},f:[{p:[12,5,358],t:7,e:"ui-button",a:{icon:"times",action:"PRG_reseterror"},f:["RESET"]}]}]}],n:50,r:"data.error",p:[6,2,181]},{t:4,n:51,f:[{t:4,f:[{p:[19,4,516],t:7,e:"ui-display",a:{title:"Download Running"},f:[{p:[20,5,559],t:7,e:"i",f:["Please wait..."]}," ",{p:[21,5,586],t:7,e:"ui-section",a:{label:"File name"},f:[{t:2,r:"data.downloadname",p:[22,6,623]}]}," ",{p:[24,5,669],t:7,e:"ui-section",a:{label:"File description"},f:[{t:2,r:"data.downloaddesc",p:[25,6,713]}]}," ",{p:[27,5,759],t:7,e:"ui-section",a:{label:"File size"},f:[{t:2,r:"data.downloadsize",p:[28,6,796]},"GQ"]}," ",{p:[30,5,844],t:7,e:"ui-section",a:{label:"Transfer Rate"},f:[{t:2,r:"data.downloadspeed",p:[31,6,885]}," GQ/s"]}," ",{p:[33,5,937],t:7,e:"ui-section",a:{label:"Download progress"},f:[{p:[34,6,982],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.downloadsize",p:[34,27,1003]}],value:[{t:2,r:"adata.downloadcompletion",p:[34,58,1034]}],state:"good"},f:[{t:2,x:{r:["adata.downloadcompletion"],s:"Math.round(_0)"},p:[34,101,1077]},"GQ / ",{t:2,r:"adata.downloadsize",p:[34,146,1122]},"GQ"]}]}]}],n:50,r:"data.downloadname",p:[18,3,486]}],r:"data.error"}," ",{t:4,f:[{t:4,f:[{p:[41,4,1270],t:7,e:"ui-display",a:{title:"File System"},f:[{p:[42,5,1308],t:7,e:"ui-section",a:{label:"Used Capacity"},f:[{p:[43,6,1349],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.disk_size",p:[43,27,1370]}],value:[{t:2,r:"adata.disk_used",p:[43,55,1398]}],state:"good"},f:[{t:2,x:{r:["adata.disk_used"],s:"Math.round(_0)"},p:[43,89,1432]},"GQ / ",{t:2,r:"adata.disk_size",p:[43,125,1468]},"GQ"]}]}]}," ",{p:[47,4,1545],t:7,e:"ui-display",a:{title:"Primary Software Repository"},f:[{t:4,f:[{p:[49,6,1642],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"filedesc",p:[49,28,1664]}]},f:[{p:[50,7,1686],t:7,e:"div",a:{style:"display: table-caption; margin-left: 3px"},f:[{t:2,r:"fileinfo",p:[50,61,1740]}]}," ",{p:[52,7,1774],t:7,e:"ui-section",a:{label:"File name"},f:[{t:2,r:"filename",p:[53,8,1813]}," (",{t:2,r:"size",p:[53,22,1827]}," GQ)"]}," ",{p:[55,7,1868],t:7,e:"ui-section",a:{label:"Compatibility"},f:[{t:2,r:"compatibility",p:[56,8,1911]}]}," ",{p:[58,7,1957],t:7,e:"ui-button",a:{icon:"signal",action:"PRG_downloadfile",params:['{"filename": "',{t:2,r:"filename",p:[58,80,2030]},'"}']},f:["DOWNLOAD"]}]}," ",{p:[62,6,2113],t:7,e:"br"}],n:52,r:"data.downloadable_programs",p:[48,5,1599]}]}," ",{t:4,f:[{p:[67,5,2194],t:7,e:"ui-display",a:{title:"UNKNOWN Software Repository"},f:[{p:[68,6,2249],t:7,e:"i",f:["Please note that Nanotrasen does not recommend download of software from non-official servers."]}," ",{t:4,f:[{p:[70,7,2395],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"filedesc",p:[70,29,2417]}]},f:[{p:[71,8,2440],t:7,e:"div",a:{style:"display: table-caption; margin-left: 3px"},f:[{t:2,r:"fileinfo",p:[71,62,2494]}]}," ",{p:[73,8,2530],t:7,e:"ui-section",a:{label:"File name"},f:[{t:2,r:"filename",p:[74,9,2570]}," (",{t:2,r:"size",p:[74,23,2584]}," GQ)"]}," ",{p:[76,8,2627],t:7,e:"ui-section",a:{label:"Compatibility"},f:[{t:2,r:"compatibility",p:[77,9,2671]}]}," ",{p:[79,8,2719],t:7,e:"ui-button",a:{icon:"signal",action:"PRG_downloadfile",params:['{"filename": "',{t:2,r:"filename",p:[79,81,2792]},'"}']},f:["DOWNLOAD"]}]}," ",{p:[83,7,2879],t:7,e:"br"}],n:52,r:"data.hacked_programs",p:[69,6,2357]}]}],n:50,r:"data.hackedavailable",p:[66,4,2160]}],n:50,x:{r:["data.error"],s:"!_0"},p:[40,3,1246]}],n:50,x:{r:["data.downloadname"],s:"!_0"},p:[39,2,1216]}," ",{p:[89,2,2954],t:7,e:"br"},{p:[89,6,2958],t:7,e:"br"},{p:[89,10,2962],t:7,e:"hr"},{p:[89,14,2966],t:7,e:"i",f:["NTOS v2.0.4b Copyright Nanotrasen 2557 - 2559"]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],274:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{p:[4,1,64],t:7,e:"ui-display",f:[{p:[6,2,81],t:7,e:"ui-display",a:{title:"WIRELESS CONNECTIVITY"},f:[{p:[8,3,129],t:7,e:"ui-section",a:{label:"Active NTNetRelays"},f:[{p:[9,4,173],t:7,e:"b",f:[{t:2,r:"data.ntnetrelays",p:[9,7,176]}]}]}," ",{t:4,f:[{p:[12,4,250],t:7,e:"ui-section",a:{label:"System status"},f:[{p:[13,6,291],t:7,e:"b",f:[{t:2,x:{r:["data.ntnetstatus"],s:'_0?"ENABLED":"DISABLED"'},p:[13,9,294]}]}]}," ",{p:[15,4,366],t:7,e:"ui-section",a:{label:"Control"},f:[{p:[17,4,401],t:7,e:"ui-button",a:{icon:"plus",action:"toggleWireless"},f:["TOGGLE"]}]}," ",{p:[21,4,500],t:7,e:"br"},{p:[21,8,504],t:7,e:"br"}," ",{p:[22,4,513],t:7,e:"i",f:["Caution - Disabling wireless transmitters when using wireless device may prevent you from re-enabling them again!"]}],n:50,r:"data.ntnetrelays",p:[11,3,221]},{t:4,n:51,f:[{p:[24,4,650],t:7,e:"br"},{p:[24,8,654],t:7,e:"p",f:["Wireless coverage unavailable, no relays are connected."]}],r:"data.ntnetrelays"}]}," ",{p:[29,2,750],t:7,e:"ui-display",a:{title:"FIREWALL CONFIGURATION"},f:[{p:[31,2,798],t:7,e:"table",f:[{p:[32,3,809],t:7,e:"tr",f:[{p:[33,4,818],t:7,e:"th",f:["PROTOCOL"]},{p:[34,4,835],t:7,e:"th",f:["STATUS"]},{p:[35,4,850],t:7,e:"th",f:["CONTROL"]}]},{p:[36,3,865],t:7,e:"tr",f:[" ",{p:[37,4,874],t:7,e:"td",f:["Software Downloads"]},{p:[38,4,901],t:7,e:"td",f:[{t:2,x:{r:["data.config_softwaredownload"],s:'_0?"ENABLED":"DISABLED"'},p:[38,8,905]}]},{p:[39,4,967],t:7,e:"td",f:[" ",{p:[39,9,972],t:7,e:"ui-button",a:{action:"toggle_function",params:'{"id": "1"}'},f:["TOGGLE"]}]}]},{p:[40,3,1051],t:7,e:"tr",f:[" ",{p:[41,4,1060],t:7,e:"td",f:["Peer to Peer Traffic"]},{p:[42,4,1089],t:7,e:"td",f:[{t:2,x:{r:["data.config_peertopeer"],s:'_0?"ENABLED":"DISABLED"'},p:[42,8,1093]}]},{p:[43,4,1149],t:7,e:"td",f:[{p:[43,8,1153],t:7,e:"ui-button",a:{action:"toggle_function",params:'{"id": "2"}'},f:["TOGGLE"]}]}]},{p:[44,3,1232],t:7,e:"tr",f:[" ",{p:[45,4,1241],t:7,e:"td",f:["Communication Systems"]},{p:[46,4,1271],t:7,e:"td",f:[{t:2,x:{r:["data.config_communication"],s:'_0?"ENABLED":"DISABLED"'},p:[46,8,1275]}]},{p:[47,4,1334],t:7,e:"td",f:[{p:[47,8,1338],t:7,e:"ui-button",a:{action:"toggle_function",params:'{"id": "3"}'},f:["TOGGLE"]}]}]},{p:[48,3,1417],t:7,e:"tr",f:[" ",{p:[49,4,1426],t:7,e:"td",f:["Remote System Control"]},{p:[50,4,1456],t:7,e:"td",f:[{t:2,x:{r:["data.config_systemcontrol"],s:'_0?"ENABLED":"DISABLED"'},p:[50,8,1460]}]},{p:[51,4,1519],t:7,e:"td",f:[{p:[51,8,1523],t:7,e:"ui-button",a:{action:"toggle_function",params:'{"id": "4"}'},f:["TOGGLE"]}]}]}]}]}," ",{p:[55,2,1630],t:7,e:"ui-display",a:{title:"SECURITY SYSTEMS"},f:[{t:4,f:[{p:[58,4,1699],t:7,e:"ui-notice",f:[{p:[59,5,1716],t:7,e:"h1",f:["NETWORK INCURSION DETECTED"]}]}," ",{p:[61,5,1774],t:7,e:"i",f:["An abnormal activity has been detected in the network. Please verify system logs for more information"]}],n:50,r:"data.idsalarm",p:[57,3,1673]}," ",{p:[64,3,1902],t:7,e:"ui-section",a:{label:"Intrusion Detection System"},f:[{p:[65,4,1954],t:7,e:"b",f:[{t:2,x:{r:["data.idsstatus"],s:'_0?"ENABLED":"DISABLED"'},p:[65,7,1957]}]}]}," ",{p:[68,3,2029],t:7,e:"ui-section",a:{label:"Maximal Log Count"},f:[{p:[69,4,2072],t:7,e:"b",f:[{t:2,r:"data.ntnetmaxlogs",p:[69,7,2075]}]}]}," ",{p:[72,3,2125],t:7,e:"ui-section",a:{label:"Controls"},f:[]}," ",{p:[74,4,2176],t:7,e:"table",f:[{p:[75,4,2188],t:7,e:"tr",f:[{p:[75,8,2192],t:7,e:"td",f:[{p:[75,12,2196],t:7,e:"ui-button",a:{action:"resetIDS"},f:["RESET IDS"]}]}]},{p:[76,4,2251],t:7,e:"tr",f:[{p:[76,8,2255],t:7,e:"td",f:[{p:[76,12,2259],t:7,e:"ui-button",a:{action:"toggleIDS"},f:["TOGGLE IDS"]}]}]},{p:[77,4,2316],t:7,e:"tr",f:[{p:[77,8,2320],t:7,e:"td",f:[{p:[77,12,2324],t:7,e:"ui-button",a:{action:"updatemaxlogs"},f:["SET LOG LIMIT"]}]}]},{p:[78,4,2388],t:7,e:"tr",f:[{p:[78,8,2392],t:7,e:"td",f:[{p:[78,12,2396],t:7,e:"ui-button",a:{action:"purgelogs"},f:["PURGE LOGS"]}]}]}]}," ",{p:[81,3,2467],t:7,e:"ui-subdisplay",a:{title:"System Logs"},f:[{p:[82,3,2506],t:7,e:"div",a:{"class":"statusDisplay",style:"overflow: auto;"},f:[{p:[83,3,2561],t:7,e:"div",a:{"class":"item"},f:[{p:[84,4,2584],t:7,e:"div",a:{"class":"itemContent",style:"width: 100%;"},f:[{t:4,f:[{t:2,r:"entry",p:[86,6,2667]},{p:[86,15,2676],t:7,e:"br"}],n:52,r:"data.ntnetlogs",p:[85,5,2636]}]}]}]}]}]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],275:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{p:[4,1,64],t:7,e:"ui-display",f:[{t:4,f:[{p:[7,2,102],t:7,e:"div",a:{"class":"item"},f:[{p:[8,3,124],t:7,e:"h2",f:["An error has occurred during operation..."]}," ",{p:[9,3,178],t:7,e:"b",f:["Additional information:"]},{t:2,r:"data.error",p:[9,34,209]},{p:[9,48,223],t:7,e:"br"}," ",{p:[10,3,231],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["Clear"]}]}],n:50,r:"data.error",p:[6,2,81]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.downloading"],s:"_0"},f:[{p:[13,3,321],t:7,e:"h2",f:["Download in progress..."]}," ",{p:[14,3,357],t:7,e:"div",a:{"class":"itemLabel"},f:["Downloaded file:"]}," ",{p:[17,3,416],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.download_name",p:[18,4,446]}]}," ",{p:[20,3,483],t:7,e:"div",a:{"class":"itemLabel"},f:["Download progress:"]}," ",{p:[23,3,544],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.download_progress",p:[24,4,574]}," / ",{t:2,r:"data.download_size",p:[24,33,603]}," GQ"]}," ",{p:[26,3,642],t:7,e:"div",a:{"class":"itemLabel"},f:["Transfer speed:"]}," ",{p:[29,3,700],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.download_netspeed",p:[30,4,730]},"GQ/s"]}," ",{p:[32,3,774],t:7,e:"div",a:{"class":"itemLabel"},f:["Controls:"]}," ",{p:[35,3,826],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[36,4,856],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["Abort download"]}]}]},{t:4,n:50,x:{r:["data.downloading","data.uploading"],s:"(!(_0))&&(_1)"},f:[" ",{p:[39,3,954],t:7,e:"h2",f:["Server enabled"]}," ",{p:[40,3,981],t:7,e:"div",a:{"class":"itemLabel"},f:["Connected clients:"]}," ",{p:[43,3,1042],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.upload_clients",p:[44,4,1072]}]}," ",{p:[46,3,1109],t:7,e:"div",a:{"class":"itemLabel"},f:["Provided file:"]}," ",{p:[49,3,1166],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.upload_filename",p:[50,4,1196]}]}," ",{p:[52,3,1234],t:7,e:"div",a:{"class":"itemLabel"},f:["Server password:"]}," ",{p:[55,3,1293],t:7,e:"div",a:{"class":"itemContent"},f:[{t:4,f:["ENABLED"],n:50,r:"data.upload_haspassword",p:[56,4,1323]},{t:4,n:51,f:["DISABLED"],r:"data.upload_haspassword"}]}," ",{p:[62,3,1420],t:7,e:"div",a:{"class":"itemLabel"},f:["Commands:"]}," ",{p:[65,3,1472],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[66,4,1502],t:7,e:"ui-button",a:{action:"PRG_setpassword"},f:["Set password"]}," ",{p:[67,4,1567],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["Exit server"]}]}]},{t:4,n:50,x:{r:["data.downloading","data.uploading","data.upload_filelist"],s:"(!(_0))&&((!(_1))&&(_2))"},f:[" ",{p:[70,3,1668],t:7,e:"h2",f:["File transfer server ready. Select file to upload:"]}," ",{p:[71,3,1732],t:7,e:"table",f:[{p:[72,3,1743],t:7,e:"tr",f:[{p:[72,7,1747],t:7,e:"th",f:["File name"]},{p:[72,20,1760],t:7,e:"th",f:["File size"]},{p:[72,33,1773],t:7,e:"th",f:["Controls ",{t:4,f:[{p:[74,4,1824],t:7,e:"tr",f:[{p:[74,8,1828],t:7,e:"td",f:[{t:2,r:"filename",p:[74,12,1832]}]},{p:[75,4,1849],t:7,e:"td",f:[{t:2,r:"size",p:[75,8,1853]},"GQ"]},{p:[76,4,1868],t:7,e:"td",f:[{p:[76,8,1872],t:7,e:"ui-button",a:{action:"PRG_uploadfile",params:['{"id": "',{t:2,r:"uid",p:[76,59,1923]},'"}']},f:["Select"]}]}]}],n:52,r:"data.upload_filelist",p:[73,3,1789]}]}]}]}," ",{p:[79,3,1981],t:7,e:"hr"}," ",{p:[80,3,1989],t:7,e:"ui-button",a:{action:"PRG_setpassword"},f:["Set password"]}," ",{p:[81,3,2053],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["Return"]}]},{t:4,n:50,x:{r:["data.downloading","data.uploading","data.upload_filelist"],s:"(!(_0))&&((!(_1))&&(!(_2)))"},f:[" ",{p:[83,3,2116],t:7,e:"h2",f:["Available files:"]}," ",{p:[84,3,2145],t:7,e:"table",a:{border:"1",style:"border-collapse: collapse"},f:[{p:[84,55,2197],t:7,e:"tr",f:[{p:[84,59,2201],t:7,e:"th",f:["Server UID"]},{p:[84,73,2215],t:7,e:"th",f:["File Name"]},{p:[84,86,2228],t:7,e:"th",f:["File Size"]},{p:[84,99,2241],t:7,e:"th",f:["Password Protection"]},{p:[84,122,2264],t:7,e:"th",f:["Operations ",{t:4,f:[{p:[86,5,2311],t:7,e:"tr",f:[{p:[86,9,2315],t:7,e:"td",f:[{t:2,r:"uid",p:[86,13,2319]}]},{p:[87,5,2332],t:7,e:"td",f:[{t:2,r:"filename",p:[87,9,2336]}]},{p:[88,5,2354],t:7,e:"td",f:[{t:2,r:"size",p:[88,9,2358]},"GQ ",{t:4,f:[{p:[90,6,2400],t:7,e:"td",f:["Enabled"]}],n:50,r:"haspassword",p:[89,5,2374]}," ",{t:4,f:[{p:[93,6,2457],t:7,e:"td",f:["Disabled"]}],n:50,x:{r:["haspassword"],s:"!_0"},p:[92,5,2430]}]},{p:[96,5,2494],t:7,e:"td",f:[{p:[96,9,2498],t:7,e:"ui-button",a:{action:"PRG_downloadfile",params:['{"id": "',{t:2,r:"uid",p:[96,62,2551]},'"}']},f:["Download"]}]}]}],n:52,r:"data.servers",p:[85,4,2283]}]}]}]}," ",{p:[99,3,2612],t:7,e:"hr"}," ",{p:[100,3,2620],t:7,e:"ui-button",a:{action:"PRG_uploadmenu"},f:["Send file"]}]}],r:"data.error"}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],276:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={data:{chargingState:function(t){switch(t){case 2:return"good";case 1:return"average";default:return"bad"}},chargingMode:function(t){return 2==t?"Full":1==t?"Charging":"Draining"},channelState:function(t){return t>=2?"good":"bad"},channelPower:function(t){return t>=2?"On":"Off"},channelMode:function(t){return 1==t||3==t?"Auto":"Manual"}},computed:{graphData:function(){var t=this.get("data.history");return Object.keys(t).map(function(e){return t[e].map(function(t,e){return{x:e,y:t}})})}}}}(r),r.exports.template={v:3,t:[" "," ",{p:[43,1,1082],t:7,e:"ntosheader"}," ",{p:[45,1,1099],t:7,e:"ui-display",a:{title:"Network"},f:[{t:4,f:[{p:[47,5,1157],t:7,e:"ui-linegraph",a:{points:[{t:2,r:"graphData", + p:[47,27,1179]}],height:"500",legend:'["Available", "Load"]',colors:'["rgb(0, 102, 0)", "rgb(153, 0, 0)"]',xunit:"seconds ago",xfactor:[{t:2,r:"data.interval",p:[49,38,1331]}],yunit:"W",yfactor:"1",xinc:[{t:2,x:{r:["data.stored"],s:"_0/10"},p:[50,15,1387]}],yinc:"9"}}],n:50,r:"config.fancy",p:[46,3,1131]},{t:4,n:51,f:[{p:[52,5,1437],t:7,e:"ui-section",a:{label:"Available"},f:[{p:[53,7,1475],t:7,e:"span",f:[{t:2,r:"data.supply",p:[53,13,1481]}," W"]}]}," ",{p:[55,5,1530],t:7,e:"ui-section",a:{label:"Load"},f:[{p:[56,9,1565],t:7,e:"span",f:[{t:2,r:"data.demand",p:[56,15,1571]}," W"]}]}],r:"config.fancy"}]}," ",{p:[60,1,1642],t:7,e:"ui-display",a:{title:"Areas"},f:[{p:[61,3,1672],t:7,e:"ui-section",a:{nowrap:0},f:[{p:[62,5,1697],t:7,e:"div",a:{"class":"content"},f:["Area"]}," ",{p:[63,5,1734],t:7,e:"div",a:{"class":"content"},f:["Charge"]}," ",{p:[64,5,1773],t:7,e:"div",a:{"class":"content"},f:["Load"]}," ",{p:[65,5,1810],t:7,e:"div",a:{"class":"content"},f:["Status"]}," ",{p:[66,5,1849],t:7,e:"div",a:{"class":"content"},f:["Equipment"]}," ",{p:[67,5,1891],t:7,e:"div",a:{"class":"content"},f:["Lighting"]}," ",{p:[68,5,1932],t:7,e:"div",a:{"class":"content"},f:["Environment"]}]}," ",{t:4,f:[{p:[71,5,2017],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[71,24,2036]}],nowrap:0},f:[{p:[72,7,2061],t:7,e:"div",a:{"class":"content"},f:[{t:2,x:{r:["@index","adata.areas"],s:"Math.round(_1[_0].charge)"},p:[72,28,2082]}," %"]}," ",{p:[73,7,2140],t:7,e:"div",a:{"class":"content"},f:[{t:2,x:{r:["@index","adata.areas"],s:"Math.round(_1[_0].load)"},p:[73,28,2161]}," W"]}," ",{p:[74,7,2217],t:7,e:"div",a:{"class":"content"},f:[{p:[74,28,2238],t:7,e:"span",a:{"class":[{t:2,x:{r:["chargingState","charging"],s:"_0(_1)"},p:[74,41,2251]}]},f:[{t:2,x:{r:["chargingMode","charging"],s:"_0(_1)"},p:[74,70,2280]}]}]}," ",{p:[75,7,2327],t:7,e:"div",a:{"class":"content"},f:[{p:[75,28,2348],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","eqp"],s:"_0(_1)"},p:[75,41,2361]}]},f:[{t:2,x:{r:["channelPower","eqp"],s:"_0(_1)"},p:[75,64,2384]}," [",{p:[75,87,2407],t:7,e:"span",f:[{t:2,x:{r:["channelMode","eqp"],s:"_0(_1)"},p:[75,93,2413]}]},"]"]}]}," ",{p:[76,7,2462],t:7,e:"div",a:{"class":"content"},f:[{p:[76,28,2483],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","lgt"],s:"_0(_1)"},p:[76,41,2496]}]},f:[{t:2,x:{r:["channelPower","lgt"],s:"_0(_1)"},p:[76,64,2519]}," [",{p:[76,87,2542],t:7,e:"span",f:[{t:2,x:{r:["channelMode","lgt"],s:"_0(_1)"},p:[76,93,2548]}]},"]"]}]}," ",{p:[77,7,2597],t:7,e:"div",a:{"class":"content"},f:[{p:[77,28,2618],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","env"],s:"_0(_1)"},p:[77,41,2631]}]},f:[{t:2,x:{r:["channelPower","env"],s:"_0(_1)"},p:[77,64,2654]}," [",{p:[77,87,2677],t:7,e:"span",f:[{t:2,x:{r:["channelMode","env"],s:"_0(_1)"},p:[77,93,2683]}]},"]"]}]}]}],n:52,r:"data.areas",p:[70,3,1991]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],277:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{p:[4,1,64],t:7,e:"ui-display",f:[{p:[5,2,79],t:7,e:"div",a:{"class":"item"},f:[{p:[6,3,101],t:7,e:"div",a:{"class":"itemLabel"},f:["Payload status:"]}," ",{p:[9,3,158],t:7,e:"div",a:{"class":"itemContent"},f:[{t:4,f:["ARMED"],n:50,r:"data.armed",p:[10,4,188]},{t:4,n:51,f:["DISARMED"],r:"data.armed"}]}," ",{p:[16,3,270],t:7,e:"div",a:{"class":"itemLabel"},f:["Controls:"]}," ",{p:[19,3,321],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[20,4,351],t:7,e:"table",f:[{p:[21,4,363],t:7,e:"tr",f:[{p:[21,8,367],t:7,e:"td",f:[{p:[21,12,371],t:7,e:"ui-button",a:{action:"PRG_obfuscate"},f:["OBFUSCATE PROGRAM NAME"]}]}]},{p:[22,4,444],t:7,e:"tr",f:[{p:[22,8,448],t:7,e:"td",f:[{p:[22,12,452],t:7,e:"ui-button",a:{action:"PRG_arm",state:[{t:2,x:{r:["data.armed"],s:'_0?"danger":null'},p:[22,47,487]}]},f:[{t:2,x:{r:["data.armed"],s:'_0?"DISARM":"ARM"'},p:[22,81,521]}]}," ",{p:[23,4,571],t:7,e:"ui-button",a:{icon:"radiation",state:[{t:2,x:{r:["data.armed"],s:'_0?null:"disabled"'},p:[23,39,606]}],action:"PRG_activate"},f:["ACTIVATE"]}]}]}]}]}]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],278:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{t:4,f:[{p:[5,3,95],t:7,e:"ui-display",a:{title:[{t:2,r:"class",p:[5,22,114]}," Alarms"]},f:[{p:[6,5,138],t:7,e:"ul",f:[{t:4,f:[{p:[8,9,171],t:7,e:"li",f:[{t:2,r:".",p:[8,13,175]}]}],n:52,r:".",p:[7,7,150]},{t:4,n:51,f:[{p:[10,9,211],t:7,e:"li",f:["System Nominal"]}],r:"."}]}]}],n:52,i:"class",r:"data.alarms",p:[4,1,64]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],279:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={data:{integState:function(t){var e=100;return t==e?"good":t>e/2?"average":"bad"},bigState:function(t,e,n){return charge>n?"bad":t>e?"average":"good"}}}}(r),r.exports.template={v:3,t:[" "," ",{p:[23,1,421],t:7,e:"ntosheader"}," ",{t:4,f:[{p:[27,2,462],t:7,e:"ui-button",a:{action:"PRG_clear"},f:["Back to Menu"]},{p:[27,56,516],t:7,e:"br"}," ",{p:[28,3,524],t:7,e:"ui-display",a:{title:"Supermatter Status:"},f:[{p:[29,3,568],t:7,e:"ui-section",a:{label:"Core Integrity"},f:[{p:[30,5,609],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"adata.SM_integrity",p:[30,38,642]}],state:[{t:2,x:{r:["integState","adata.SM_integrity"],s:"_0(_1)"},p:[30,69,673]}]},f:[{t:2,r:"data.SM_integrity",p:[30,105,709]},"%"]}]}," ",{p:[32,3,761],t:7,e:"ui-section",a:{label:"Relative EER"},f:[{p:[33,5,800],t:7,e:"span",a:{"class":[{t:2,x:{r:["bigState","data.SM_power"],s:"_0(_1,150,300)"},p:[33,18,813]}]},f:[{t:2,r:"data.SM_power",p:[33,55,850]}," MeV/cm3"]}]}," ",{p:[35,3,903],t:7,e:"ui-section",a:{label:"Temperature"},f:[{p:[36,5,941],t:7,e:"span",a:{"class":[{t:2,x:{r:["bigState","data.SM_ambienttemp"],s:"_0(_1,4000,5000)"},p:[36,18,954]}]},f:[{t:2,r:"data.SM_ambienttemp",p:[36,63,999]}," K"]}]}," ",{p:[38,3,1052],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[39,5,1087],t:7,e:"span",a:{"class":[{t:2,x:{r:["bigState","data.SM_ambientpressure"],s:"_0(_1,5000,10000)"},p:[39,18,1100]}]},f:[{t:2,r:"data.SM_ambientpressure",p:[39,68,1150]}," kPa"]}]}]}," ",{p:[42,3,1227],t:7,e:"hr"},{p:[42,7,1231],t:7,e:"br"}," ",{p:[43,3,1239],t:7,e:"ui-display",a:{title:"Gas Composition:"},f:[{t:4,f:[{p:[45,5,1307],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[45,24,1326]}]},f:[{t:2,r:"amount",p:[46,6,1343]}," %"]}],n:52,r:"data.gases",p:[44,4,1281]}]}],n:50,r:"data.active",p:[26,1,440]},{t:4,n:51,f:[{p:[51,2,1418],t:7,e:"ui-button",a:{action:"PRG_refresh"},f:["Refresh"]},{p:[51,53,1469],t:7,e:"br"}," ",{p:[52,2,1476],t:7,e:"ui-display",a:{title:"Detected Supermatters"},f:[{t:4,f:[{p:[54,3,1552],t:7,e:"ui-section",a:{label:"Area"},f:[{t:2,r:"area_name",p:[55,5,1583]}," - (#",{t:2,r:"uid",p:[55,23,1601]},")"]}," ",{p:[57,3,1630],t:7,e:"ui-section",a:{label:"Integrity"},f:[{t:2,r:"integrity",p:[58,5,1666]}," %"]}," ",{p:[60,3,1702],t:7,e:"ui-section",a:{label:"Options"},f:[{p:[61,5,1736],t:7,e:"ui-button",a:{action:"PRG_set",params:['{"target" : "',{t:2,r:"uid",p:[61,54,1785]},'"}']},f:["View Details"]}]}],n:52,r:"data.supermatters",p:[53,2,1521]}]}],r:"data.active"}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],280:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"div",a:{"class":"item",style:"float: left"},f:[{p:[2,2,41],t:7,e:"table",f:[{p:[2,9,48],t:7,e:"tr",f:[{t:4,f:[{p:[4,3,113],t:7,e:"td",f:[{p:[4,7,117],t:7,e:"img",a:{src:[{t:2,r:"data.PC_batteryicon",p:[4,17,127]}]}}]}],n:50,x:{r:["data.PC_batteryicon","data.PC_showbatteryicon"],s:"_0&&_1"},p:[3,2,55]}," ",{t:4,f:[{p:[7,3,226],t:7,e:"td",f:[{p:[7,7,230],t:7,e:"b",f:[{t:2,r:"data.PC_batterypercent",p:[7,10,233]}]}]}],n:50,x:{r:["data.PC_batterypercent","data.PC_showbatteryicon"],s:"_0&&_1"},p:[6,2,165]}," ",{t:4,f:[{p:[10,3,305],t:7,e:"td",f:[{p:[10,7,309],t:7,e:"img",a:{src:[{t:2,r:"data.PC_ntneticon",p:[10,17,319]}]}}]}],n:50,r:"data.PC_ntneticon",p:[9,2,276]}," ",{t:4,f:[{p:[13,3,386],t:7,e:"td",f:[{p:[13,7,390],t:7,e:"img",a:{src:[{t:2,r:"data.PC_apclinkicon",p:[13,17,400]}]}}]}],n:50,r:"data.PC_apclinkicon",p:[12,2,355]}," ",{t:4,f:[{p:[16,3,469],t:7,e:"td",f:[{p:[16,7,473],t:7,e:"b",f:[{t:2,r:"data.PC_stationtime",p:[16,10,476]}]}]}],n:50,r:"data.PC_stationtime",p:[15,2,438]}," ",{t:4,f:[{p:[19,3,552],t:7,e:"td",f:[{p:[19,7,556],t:7,e:"img",a:{src:[{t:2,r:"icon",p:[19,17,566]}]}}]}],n:52,r:"data.PC_programheaders",p:[18,2,516]}]}]}]}," ",{p:[23,1,609],t:7,e:"div",a:{style:"float: right; margin-top: 5px"},f:[{p:[24,2,655],t:7,e:"ui-button",a:{action:"PC_shutdown"},f:["Shutdown"]}," ",{t:4,f:[{p:[26,3,745],t:7,e:"ui-button",a:{action:"PC_exit"},f:["EXIT PROGRAM"]}," ",{p:[27,3,801],t:7,e:"ui-button",a:{action:"PC_minimize"},f:["Minimize Program"]}],n:50,r:"data.PC_showexitprogram",p:[25,2,710]}]}," ",{p:[30,1,881],t:7,e:"div",a:{style:"clear: both"}}]},e.exports=a.extend(r.exports)},{205:205}],281:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Auth. Disk:"},f:[{t:4,f:[{p:[3,7,69],t:7,e:"ui-button",a:{icon:"eject",style:"selected",action:"eject_disk"},f:["++++++++++"]}],n:50,r:"data.disk_present",p:[2,3,36]},{t:4,n:51,f:[{p:[5,7,172],t:7,e:"ui-button",a:{icon:"plus",action:"insert_disk"},f:["----------"]}],r:"data.disk_present"}]}," ",{p:[8,1,266],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[9,3,297],t:7,e:"span",f:[{t:2,r:"data.status1",p:[9,9,303]},"-",{t:2,r:"data.status2",p:[9,26,320]}]}]}," ",{p:[11,1,360],t:7,e:"ui-display",a:{title:"Timer"},f:[{p:[12,3,390],t:7,e:"ui-section",a:{label:"Time to Detonation"},f:[{p:[13,5,435],t:7,e:"span",f:[{t:2,x:{r:["data.timing","data.time_left","data.timer_set"],s:"_0?_1:_2"},p:[13,11,441]}]}]}," ",{t:4,f:[{p:[16,5,540],t:7,e:"ui-section",a:{label:"Adjust Timer"},f:[{p:[17,7,581],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.disk_present","data.code_approved","data.timer_is_not_default"],s:'_0&&_1&&_2?null:"disabled"'},p:[17,40,614]}],action:"timer",params:'{"change": "reset"}'},f:["Reset"]}," ",{p:[19,7,786],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.disk_present","data.code_approved","data.timer_is_not_min"],s:'_0&&_1&&_2?null:"disabled"'},p:[19,38,817]}],action:"timer",params:'{"change": "decrease"}'},f:["Decrease"]}," ",{p:[21,7,991],t:7,e:"ui-button",a:{icon:"pencil",state:[{t:2,x:{r:["data.disk_present","data.code_approved"],s:'_0&&_1?null:"disabled"'},p:[21,39,1023]}],action:"timer",params:'{"change": "input"}'},f:["Set"]}," ",{p:[22,7,1155],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.disk_present","data.code_approved","data.timer_is_not_max"],s:'_0&&_1&&_2?null:"disabled"'},p:[22,37,1185]}],action:"timer",params:'{"change": "increase"}'},f:["Increase"]}]}],n:51,r:"data.timing",p:[15,3,518]}," ",{p:[26,3,1394],t:7,e:"ui-section",a:{label:"Timer"},f:[{p:[27,5,1426],t:7,e:"ui-button",a:{icon:"clock-o",style:[{t:2,x:{r:["data.timing"],s:'_0?"danger":"caution"'},p:[27,38,1459]}],action:"toggle_timer",state:[{t:2,x:{r:["data.disk_present","data.code_approved","data.safety"],s:'_0&&_1&&!_2?null:"disabled"'},p:[29,14,1542]}]},f:[{t:2,x:{r:["data.timing"],s:'_0?"On":"Off"'},p:[30,7,1631]}]}]}]}," ",{p:[34,1,1713],t:7,e:"ui-display",a:{title:"Anchoring"},f:[{p:[35,3,1747],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.disk_present","data.code_approved"],s:'_0&&_1?null:"disabled"'},p:[36,12,1770]}],icon:[{t:2,x:{r:["data.anchored"],s:'_0?"lock":"unlock"'},p:[37,11,1846]}],style:[{t:2,x:{r:["data.anchored"],s:'_0?null:"caution"'},p:[38,12,1897]}],action:"anchor"},f:[{t:2,x:{r:["data.anchored"],s:'_0?"Engaged":"Off"'},p:[39,21,1956]}]}]}," ",{p:[41,1,2022],t:7,e:"ui-display",a:{title:"Safety"},f:[{p:[42,3,2053],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.disk_present","data.code_approved"],s:'_0&&_1?null:"disabled"'},p:[43,12,2076]}],icon:[{t:2,x:{r:["data.safety"],s:'_0?"lock":"unlock"'},p:[44,11,2152]}],action:"safety",style:[{t:2,x:{r:["data.safety"],s:'_0?"caution":"danger"'},p:[45,12,2217]}]},f:[{p:[46,7,2265],t:7,e:"span",f:[{t:2,x:{r:["data.safety"],s:'_0?"On":"Off"'},p:[46,13,2271]}]}]}]}," ",{p:[49,1,2341],t:7,e:"ui-display",a:{title:"Code"},f:[{p:[50,3,2370],t:7,e:"ui-section",a:{label:"Message"},f:[{t:2,r:"data.message",p:[50,31,2398]}]}," ",{p:[51,3,2431],t:7,e:"ui-section",a:{label:"Keypad"},f:[{p:[52,5,2464],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[52,39,2498]}],params:'{"digit":"1"}'},f:["1"]}," ",{p:[53,5,2583],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[53,39,2617]}],params:'{"digit":"2"}'},f:["2"]}," ",{p:[54,5,2702],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[54,39,2736]}],params:'{"digit":"3"}'},f:["3"]}," ",{p:[55,5,2821],t:7,e:"br"}," ",{p:[56,5,2831],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[56,39,2865]}],params:'{"digit":"4"}'},f:["4"]}," ",{p:[57,5,2950],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[57,39,2984]}],params:'{"digit":"5"}'},f:["5"]}," ",{p:[58,5,3069],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[58,39,3103]}],params:'{"digit":"6"}'},f:["6"]}," ",{p:[59,5,3188],t:7,e:"br"}," ",{p:[60,5,3198],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[60,39,3232]}],params:'{"digit":"7"}'},f:["7"]}," ",{p:[61,5,3317],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[61,39,3351]}],params:'{"digit":"8"}'},f:["8"]}," ",{p:[62,5,3436],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[62,39,3470]}],params:'{"digit":"9"}'},f:["9"]}," ",{p:[63,5,3555],t:7,e:"br"}," ",{p:[64,5,3565],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[64,39,3599]}],params:'{"digit":"R"}'},f:["R"]}," ",{p:[65,5,3684],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[65,39,3718]}],params:'{"digit":"0"}'},f:["0"]}," ",{p:[66,5,3803],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[66,39,3837]}],params:'{"digit":"E"}'},f:["E"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],282:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,2,15],t:7,e:"ui-section",f:["This machine only accepts ore. Gibtonite and Slag are not accepted."]}," ",{p:[5,2,117],t:7,e:"ui-section",f:["Current unclaimed points: ",{t:2,r:"data.unclaimedPoints",p:[6,29,159]}," ",{t:4,f:[{p:[8,4,220],t:7,e:"ui-button",a:{action:"Claim"},f:["Claim Points"]}],n:50,r:"data.unclaimedPoints",p:[7,3,187]}]}," ",{p:[13,2,311],t:7,e:"ui-section",f:[{t:4,f:[{p:[15,4,350],t:7,e:"ui-button",a:{action:"Eject"},f:["Eject ID"]}," You have ",{t:2,r:"data.claimedPoints",p:[18,13,421]}," mining points collected."],n:50,r:"data.hasID",p:[14,3,327]},{t:4,n:51,f:[{p:[20,4,485],t:7,e:"ui-button",a:{action:"Insert"},f:["Insert ID"]}],r:"data.hasID"}]}]}," ",{p:[26,1,588],t:7,e:"ui-display",f:[{t:4,f:[{p:[28,3,627],t:7,e:"ui-section",f:[{p:[29,4,644],t:7,e:"ui-button",a:{action:"diskEject",icon:"eject"},f:["Eject Disk"]}]}," ",{t:4,f:[{p:[34,4,772],t:7,e:"ui-section",a:{"class":"candystripe"},f:[{p:[35,5,808],t:7,e:"ui-button",a:{action:"diskUpload",state:[{t:2,x:{r:["canupload"],s:'(_0)?null:"disabled"'},p:[35,42,845]}],icon:"upload",align:"right",params:['{ "design" : "',{t:2,r:"index",p:[35,129,932]},'" }']},f:["Upload"]}," File ",{t:2,r:"index",p:[38,10,988]},": ",{t:2,r:"name",p:[38,21,999]}]}],n:52,r:"data.diskDesigns",p:[33,3,741]}],n:50,r:"data.hasDisk",p:[27,2,603]},{t:4,n:51,f:[{p:[42,3,1053],t:7,e:"ui-section",f:[{p:[43,4,1070],t:7,e:"ui-button",a:{action:"diskInsert",icon:"floppy-o"},f:["Insert Disk"]}]}],r:"data.hasDisk"}]}," ",{p:[49,1,1195],t:7,e:"div",a:{"class":"display tabular"},f:[{p:[50,2,1227],t:7,e:"section",a:{"class":"candystripe"},f:[{p:[51,4,1261],t:7,e:"section",a:{"class":"cell"},f:["Mineral"]}," ",{p:[54,4,1316],t:7,e:"section",a:{"class":"cell"},f:["Sheets"]}," ",{p:[57,4,1370],t:7,e:"section",a:{"class":"cell"},f:[]}," ",{p:[59,4,1412],t:7,e:"section",a:{"class":"cell"},f:[{p:[60,5,1440],t:7,e:"ui-button",a:{"class":"center mineral",grid:0,action:"Release",params:'{"id" : "all"}'},f:["Release All"]}]}," ",{p:[64,4,1576],t:7,e:"section",a:{"class":"cell"},f:["Ore Value"]}]}," ",{t:4,f:[{p:[69,3,1673],t:7,e:"section",a:{"class":"candystripe"},f:[{p:[70,4,1707],t:7,e:"section",a:{"class":"cell"},f:[{t:2,r:"name",p:[71,5,1735]}]}," ",{p:[73,4,1763],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{t:2,r:"amount",p:[74,5,1805]}]}," ",{p:[76,4,1835],t:7,e:"section",a:{"class":"cell"},f:[{p:[77,5,1863],t:7,e:"input",a:{value:[{t:2,r:"sheets",p:[77,18,1876]}],placeholder:"###","class":"number"}}]}," ",{p:[79,4,1941],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{p:[80,5,1983],t:7,e:"ui-button",a:{"class":"center",grid:0,action:"Release",state:[{t:2,x:{r:["amount"],s:'(_0>=1)?null:"disabled"'},p:[80,59,2037]}],params:['{ "id" : ',{t:2,r:"id",p:[80,114,2092]},', "sheets" : ',{t:2,r:"sheets",p:[80,133,2111]}," }"]},f:["Release"]}]}," ",{p:[84,4,2178],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{t:2,r:"value",p:[85,5,2220]}]}]}],n:52,r:"data.materials",p:[68,2,1645]}," ",{t:4,f:[{p:[90,3,2298],t:7,e:"section",a:{"class":"candystripe"},f:[{p:[91,4,2332],t:7,e:"section",a:{"class":"cell"},f:[{t:2,r:"name",p:[92,5,2360]}]}," ",{p:[94,4,2388],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{t:2,r:"amount",p:[95,5,2430]}]}," ",{p:[97,4,2460],t:7,e:"section",a:{"class":"cell"},f:[{p:[98,5,2488],t:7,e:"input",a:{value:[{t:2,r:"sheets",p:[98,18,2501]}],placeholder:"###","class":"number"}}]}," ",{p:[100,4,2566],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{p:[101,5,2608],t:7,e:"ui-button",a:{"class":"center",grid:0,action:"Smelt",state:[{t:2,x:{r:["amount"],s:'(_0>=1)?null:"disabled"'},p:[101,57,2660]}],params:['{ "id" : ',{t:2,r:"id",p:[101,113,2716]},', "sheets" : ',{t:2,r:"sheets",p:[101,132,2735]}," }"]},f:["Smelt"]}]}," ",{p:[105,4,2799],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{p:[106,5,2841],t:7,e:"ui-button",a:{"class":"center",grid:0,action:"SmeltAll",state:[{t:2,x:{r:["amount"],s:'(_0>=1)?null:"disabled"'},p:[106,60,2896]}],params:['{ "id" : ',{t:2,r:"id",p:[106,116,2952]}," }"]},f:["Smelt All"]}]}]}],n:52,r:"data.alloys",p:[89,2,2273]}]}]},e.exports=a.extend(r.exports)},{205:205}],283:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:{button:[{p:[3,3,60],t:7,e:"ui-button",a:{icon:"remove",state:[{t:2,x:{r:["data.has_beaker"],s:'_0?null:"disabled"'},p:[3,35,92]}],action:"empty_eject_beaker"},f:["Empty and eject"]}," ",{p:[6,3,201],t:7,e:"ui-button",a:{icon:"trash",state:[{t:2,x:{r:["data.has_beaker"],s:'_0?null:"disabled"'},p:[6,34,232]}],action:"empty_beaker"},f:["Empty"]}," ",{p:[9,3,325],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.has_beaker"],s:'_0?null:"disabled"'},p:[9,34,356]}],action:"eject_beaker"},f:["Eject"]}]},t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[" ",{t:4,f:[{p:[14,3,490],t:7,e:"ui-section",f:[{t:4,f:[{p:[16,5,538],t:7,e:"span",a:{"class":"bad"},f:["The beaker is empty!"]}],n:50,r:"data.beaker_empty",p:[15,4,507]},{t:4,n:51,f:[{p:[18,5,602],t:7,e:"ui-subdisplay",a:{title:"Blood"},f:[{t:4,f:[{p:[20,7,668],t:7,e:"ui-section",a:{label:"Blood DNA"},f:[{t:2,r:"data.blood.dna",p:[20,37,698]}]}," ",{p:[21,7,737],t:7,e:"ui-section",a:{label:"Blood type"},f:[{t:2,r:"data.blood.type",p:[21,38,768]}]}],n:50,r:"data.has_blood",p:[19,6,638]},{t:4,n:51,f:[{p:[23,7,823],t:7,e:"ui-section",f:[{p:[24,8,844],t:7,e:"span",a:{"class":"average"},f:["No blood sample detected."]}]}],r:"data.has_blood"}]}],r:"data.beaker_empty"}]}],n:50,r:"data.has_beaker",p:[13,2,463]},{t:4,n:51,f:[{p:[31,3,999],t:7,e:"ui-section",f:[{p:[32,4,1016],t:7,e:"span",a:{"class":"bad"},f:["No beaker loaded."]}]}],r:"data.has_beaker"}]}," ",{t:4,f:[{p:[37,2,1127],t:7,e:"ui-display",a:{title:"Diseases"},f:[{t:4,f:[{p:{button:[{t:4,f:[{p:[42,7,1277],t:7,e:"ui-button",a:{icon:"pencil",action:"rename_disease",state:[{t:2,x:{r:["can_rename"],s:'_0?"":"disabled"'},p:[42,63,1333]}],params:['{"index": ',{t:2,r:"index",p:[42,115,1385]},"}"]},f:["Name advanced disease"]}],n:50,r:"is_adv",p:[41,6,1255]}," ",{p:[46,6,1468],t:7,e:"ui-button",a:{icon:"flask",action:"create_culture_bottle",state:[{t:2,x:{r:["data.is_ready"],s:'_0?"":"disabled"'},p:[46,68,1530]}],params:['{"index": ',{t:2,r:"index",p:[46,123,1585]},"}"]},f:["Create virus culture bottle"]}]},t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[39,23,1206]}],button:0},f:[" ",{p:[50,5,1675],t:7,e:"ui-section",a:{label:"Disease agent"},f:[{t:2,r:"agent",p:[50,39,1709]}]}," ",{p:[51,5,1737],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"description",p:[51,37,1769]}]}," ",{p:[52,5,1803],t:7,e:"ui-section",a:{label:"Spread"},f:[{t:2,r:"spread",p:[52,32,1830]}]}," ",{p:[53,5,1859],t:7,e:"ui-section",a:{label:"Possible cure"},f:[{t:2,r:"cure",p:[53,39,1893]}]}," ",{t:4,f:[{p:[55,6,1942],t:7,e:"ui-section",a:{label:"Resistance"},f:[{t:2,r:"resistance",p:[55,37,1973]}]}," ",{p:[56,6,2007],t:7,e:"ui-section",a:{label:"Stealth"},f:[{t:2,r:"stealth",p:[56,34,2035]}]}," ",{p:[57,6,2066],t:7,e:"ui-section",a:{label:"Stage speed"},f:[{t:2,r:"stage_speed",p:[57,38,2098]}]}," ",{p:[58,6,2133],t:7,e:"ui-section",a:{label:"Symptoms"},f:[{t:4,f:[{p:[60,8,2197],t:7,e:"span",f:[{t:2,r:"name",p:[60,14,2203]}]},{p:[60,29,2218],t:7,e:"br"}],n:52,r:"symptoms",p:[59,7,2170]}]}],n:50,r:"is_adv",p:[54,5,1921]}]}],n:52,r:"data.viruses",p:[38,3,1160]},{t:4,n:51,f:[{p:[66,4,2309],t:7,e:"ui-section",f:[{p:[67,5,2327],t:7,e:"span",a:{"class":"average"},f:["No detectable virus in the blood sample."]}]}],r:"data.viruses"}]}," ",{p:[71,2,2446],t:7,e:"ui-display",a:{title:"Antibodies"},f:[{t:4,f:[{p:[73,4,2512],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[73,23,2531]}]},f:[{p:[74,6,2548],t:7,e:"ui-button",a:{icon:"eyedropper",state:[{t:2,x:{r:["data.is_ready"],s:'_0?"":"disabled"'},p:[74,42,2584]}],action:"create_vaccine_bottle",params:['{"index": ',{t:2,r:"id",p:[74,128,2670]},"}"]},f:["Create vaccine bottle"]}]}],n:52,r:"data.resistances",p:[72,3,2481]},{t:4,n:51,f:[{p:[79,4,2762],t:7,e:"ui-section",f:[{p:[80,5,2780],t:7,e:"span",a:{"class":"average"},f:["No antibodies detected in the blood sample."]}]}],r:"data.resistances"}]}],n:50,r:"data.has_blood",p:[36,1,1102]}]},e.exports=a.extend(r.exports)},{205:205}],284:[function(t,e,n){var a=t(205),r={exports:{}};!function(e){"use strict";var n=t(312);e.exports={data:{filter:"",tooltiptext:function(t,e,n){var a="";return t&&(a+="REQUIREMENTS: "+t+" "),e&&(a+="CATALYSTS: "+e+" "),n&&(a+="TOOLS: "+n),a}},oninit:function(){var t=this;this.on({hover:function(t){this.set("hovered",t.context.params)},unhover:function(t){this.set("hovered")}}),this.observe("filter",function(e,a,r){var i=null;i=t.get("data.display_compact")?t.findAll(".section"):t.findAll(".display:not(:first-child)"),(0,n.filterMulti)(i,t.get("filter").toLowerCase())},{init:!1})}}}(r),r.exports.template={v:3,t:[" ",{p:[48,1,1342],t:7,e:"ui-display",a:{title:[{t:2,r:"data.category",p:[48,20,1361]},{t:4,f:[" : ",{t:2,r:"data.subcategory",p:[48,64,1405]}],n:50,r:"data.subcategory",p:[48,37,1378]}]},f:[{t:4,f:[{p:[50,3,1459],t:7,e:"ui-section",f:["Crafting... ",{p:[51,16,1488],t:7,e:"i",a:{"class":"fa-spin fa fa-spinner"}}]}],n:50,r:"data.busy",p:[49,2,1438]},{t:4,n:51,f:[{p:[54,3,1557],t:7,e:"ui-section",f:[{p:[55,4,1574],t:7,e:"table",a:{style:"width:100%"},f:[{p:[56,5,1606],t:7,e:"tr",f:[{p:[57,6,1617],t:7,e:"td",a:{style:"width:150px!important"},f:[{p:[58,7,1659],t:7,e:"ui-button",a:{icon:"arrow-left",action:"backwardCat"},f:[{t:2,r:"data.prev_cat",p:[59,8,1718]}]}]}," ",{p:[62,6,1774],t:7,e:"td",a:{style:"width:150px!important"},f:[{p:[63,7,1816],t:7,e:"ui-button",a:{icon:"arrow-right",action:"forwardCat"},f:[{t:2,r:"data.next_cat",p:[64,7,1874]}]}]}," ",{p:[67,6,1930],t:7,e:"td",a:{style:"float:right!important"},f:[{t:4,f:[{p:[69,7,2014],t:7,e:"ui-button",a:{icon:"lock",action:"toggle_recipes"},f:["Showing Craftable Recipes"]}],n:50,r:"data.display_craftable_only",p:[68,6,1971]},{t:4,n:51,f:[{p:[73,7,2138],t:7,e:"ui-button",a:{icon:"unlock",action:"toggle_recipes"},f:["Showing All Recipes"]}],r:"data.display_craftable_only"}]}," ",{p:[78,6,2268],t:7,e:"td",a:{style:"float:right!important"},f:[{p:[79,7,2310],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.display_compact"],s:'_0?"check-square-o":"square-o"'},p:[79,24,2327]}],action:"toggle_compact"},f:["Compact"]}]}]}," ",{p:[84,5,2474],t:7,e:"tr",f:[{t:4,f:[{p:[86,6,2515],t:7,e:"td",a:{style:"width:150px!important"},f:[{p:[87,7,2557],t:7,e:"ui-button",a:{icon:"arrow-left",action:"backwardSubCat"},f:[{t:2,r:"data.prev_subcat",p:[88,8,2619]}]}]}," ",{p:[91,6,2678],t:7,e:"td",a:{style:"width:150px!important"},f:[{p:[92,7,2720],t:7,e:"ui-button",a:{icon:"arrow-right",action:"forwardSubCat"},f:[{t:2,r:"data.next_subcat",p:[93,8,2782]}]}]}],n:50,r:"data.subcategory",p:[85,5,2484]}]}]}," ",{t:4,f:[{t:4,f:[" ",{p:[101,6,2992],t:7,e:"ui-input",a:{value:[{t:2,r:"filter",p:[101,23,3009]}],placeholder:"Filter.."}}],n:51,r:"data.display_compact",p:[100,5,2902]}],n:50,r:"config.fancy",p:[99,4,2876]}]}," ",{t:4,f:[{p:[106,5,3144],t:7,e:"ui-display",f:[{t:4,f:[{p:[108,6,3193],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[108,25,3212]}]},f:[{p:[109,7,3230],t:7,e:"ui-button",a:{tooltip:[{t:2,x:{r:["tooltiptext","req_text","catalyst_text","tool_text"],s:"_0(_1,_2,_3)"},p:[109,27,3250]}],"tooltip-side":"right",action:"make",params:['{"recipe": "',{t:2,r:"ref",p:[109,135,3358]},'"}'],icon:"gears"},v:{hover:"hover",unhover:"unhover"},f:["Craft"]}]}],n:52,r:"data.can_craft",p:[107,5,3162]}," ",{t:4,f:[{t:4,f:[{p:[116,7,3567],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[116,26,3586]}]},f:[{p:[117,8,3605],t:7,e:"ui-button",a:{tooltip:[{t:2,x:{r:["tooltiptext","req_text","catalyst_text","tool_text"],s:"_0(_1,_2,_3)"},p:[117,28,3625]}],"tooltip-side":"right",state:"disabled",icon:"gears"},v:{hover:"hover",unhover:"unhover"},f:["Craft"]}]}],n:52,r:"data.cant_craft",p:[115,6,3534]}],n:51,r:"data.display_craftable_only",p:[114,5,3495]}]}],n:50,r:"data.display_compact",p:[105,4,3110]},{t:4,n:51,f:[{t:4,f:[{p:[126,6,3947],t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[126,25,3966]}]},f:[{t:4,f:[{p:[128,8,4009],t:7,e:"ui-section",a:{label:"Requirements"},f:[{t:2,r:"req_text",p:[129,9,4052]}]}],n:50,r:"req_text",p:[127,7,3984]}," ",{t:4,f:[{p:[133,8,4139],t:7,e:"ui-section",a:{label:"Catalysts"},f:[{t:2,r:"catalyst_text",p:[134,9,4179]}]}],n:50,r:"catalyst_text",p:[132,7,4109]}," ",{t:4,f:[{p:[138,8,4267],t:7,e:"ui-section",a:{label:"Tools"},f:[{t:2,r:"tool_text",p:[139,9,4303]}]}],n:50,r:"tool_text",p:[137,7,4241]}," ",{p:[142,7,4361],t:7,e:"ui-section",f:[{p:[143,8,4382],t:7,e:"ui-button",a:{icon:"gears",action:"make",params:['{"recipe": "',{t:2,r:"ref",p:[143,66,4440]},'"}']},f:["Craft"]}]}]}],n:52,r:"data.can_craft",p:[125,5,3916]}," ",{t:4,f:[{t:4,f:[{p:[151,7,4621],t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[151,26,4640]}]},f:[{t:4,f:[{p:[153,9,4685],t:7,e:"ui-section",a:{label:"Requirements"},f:[{t:2,r:"req_text",p:[154,10,4729]}]}],n:50,r:"req_text",p:[152,8,4659]}," ",{t:4,f:[{p:[158,9,4820],t:7,e:"ui-section",a:{label:"Catalysts"},f:[{t:2,r:"catalyst_text",p:[159,10,4861]}]}],n:50,r:"catalyst_text",p:[157,8,4789]}," ",{t:4,f:[{p:[163,9,4953],t:7,e:"ui-section",a:{label:"Tools"},f:[{t:2,r:"tool_text",p:[164,10,4990]}]}],n:50,r:"tool_text",p:[162,8,4926]}]}],n:52,r:"data.cant_craft",p:[150,6,4588]}],n:51,r:"data.display_craftable_only",p:[149,5,4549]}],r:"data.display_compact"}],r:"data.busy"}]}]},e.exports=a.extend(r.exports)},{205:205,312:312}],285:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-notice",f:[{p:[2,3,15],t:7,e:"span",f:["The regulator ",{t:2,x:{r:["data.holding"],s:'_0?"is":"is not"'},p:[2,23,35]}," connected to a tank."]}]}," ",{p:[4,1,113],t:7,e:"ui-display",a:{title:"Status",button:0},f:[{p:[5,3,151],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[6,5,186],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.round(_0)"},p:[6,11,192]}," kPa"]}]}," ",{p:[8,3,254],t:7,e:"ui-section",a:{label:"Port"},f:[{p:[9,5,285],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.connected"],s:'_0?"good":"average"'},p:[9,18,298]}]},f:[{t:2,x:{r:["data.connected"],s:'_0?"Connected":"Not Connected"'},p:[9,59,339]}]}]}]}," ",{p:[12,1,430],t:7,e:"ui-display",a:{title:"Pump"},f:[{p:[13,3,459],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[14,5,491],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[14,22,508]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":"null"'},p:[15,14,559]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[16,22,616]}]}]}," ",{p:[18,3,675],t:7,e:"ui-section",a:{label:"Direction"},f:[{p:[19,5,711],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.direction"],s:'_0=="out"?"sign-out":"sign-in"'},p:[19,22,728]}],action:"direction"},f:[{t:2,x:{r:["data.direction"],s:'_0=="out"?"Out":"In"'},p:[20,26,808]}]}]}," ",{p:[22,3,883],t:7,e:"ui-section",a:{label:"Target Pressure"},f:[{p:[23,5,925],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.min_pressure",p:[23,18,938]}],max:[{t:2,r:"data.max_pressure",p:[23,46,966]}],value:[{t:2,r:"data.target_pressure",p:[24,14,1003]}]},f:[{t:2,x:{r:["adata.target_pressure"],s:"Math.round(_0)"},p:[24,40,1029]}," kPa"]}]}," ",{p:[26,3,1100],t:7,e:"ui-section",a:{label:"Pressure Regulator"},f:[{p:[27,5,1145],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.target_pressure","data.default_pressure"],s:'_0!=_1?null:"disabled"'},p:[27,38,1178]}],action:"pressure",params:'{"pressure": "reset"}'},f:["Reset"]}," ",{p:[29,5,1328],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.target_pressure","data.min_pressure"],s:'_0>_1?null:"disabled"'},p:[29,36,1359]}],action:"pressure",params:'{"pressure": "min"}'},f:["Min"]}," ",{p:[31,5,1500],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[32,5,1595],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.target_pressure","data.max_pressure"],s:'_0<_1?null:"disabled"'},p:[32,35,1625]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}]}]}," ",{p:{button:[{t:4,f:[{p:[39,7,1891],t:7,e:"ui-button",a:{icon:"eject",style:[{t:2,x:{r:["data.on"],s:'_0?"danger":null'},p:[39,38,1922]}],action:"eject"},f:["Eject"]}],n:50,r:"data.holding",p:[38,5,1863]}]},t:7,e:"ui-display",a:{title:"Holding Tank",button:0},f:[" ",{t:4,f:[{p:[43,3,2042],t:7,e:"ui-section",a:{label:"Label"},f:[{t:2,r:"data.holding.name",p:[44,4,2073]}]}," ",{p:[46,3,2115],t:7,e:"ui-section",a:{label:"Pressure"},f:[{t:2,x:{r:["adata.holding.pressure"],s:"Math.round(_0)"},p:[47,4,2149]}," kPa"]}],n:50,r:"data.holding",p:[42,3,2018]},{t:4,n:51,f:[{p:[50,3,2223],t:7,e:"ui-section",f:[{p:[51,4,2240],t:7,e:"span",a:{"class":"average"},f:["No Holding Tank"]}]}],r:"data.holding"}]}]},e.exports=a.extend(r.exports)},{205:205}],286:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0], + t:7,e:"ui-notice",f:[{p:[2,3,15],t:7,e:"span",f:["The regulator ",{t:2,x:{r:["data.holding"],s:'_0?"is":"is not"'},p:[2,23,35]}," connected to a tank."]}]}," ",{p:[4,1,113],t:7,e:"ui-display",a:{title:"Status",button:0},f:[{p:[5,3,151],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[6,5,186],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.round(_0)"},p:[6,11,192]}," kPa"]}]}," ",{p:[8,3,254],t:7,e:"ui-section",a:{label:"Port"},f:[{p:[9,5,285],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.connected"],s:'_0?"good":"average"'},p:[9,18,298]}]},f:[{t:2,x:{r:["data.connected"],s:'_0?"Connected":"Not Connected"'},p:[9,59,339]}]}]}]}," ",{p:[12,1,430],t:7,e:"ui-display",a:{title:"Filter"},f:[{p:[13,3,461],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[14,5,493],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[14,22,510]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":"null"'},p:[15,14,561]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[16,22,618]}]}]}]}," ",{p:{button:[{t:4,f:[{p:[22,7,787],t:7,e:"ui-button",a:{icon:"eject",style:[{t:2,x:{r:["data.on"],s:'_0?"danger":null'},p:[22,38,818]}],action:"eject"},f:["Eject"]}],n:50,r:"data.holding",p:[21,5,759]}]},t:7,e:"ui-display",a:{title:"Holding Tank",button:0},f:[" ",{t:4,f:[{p:[26,3,938],t:7,e:"ui-section",a:{label:"Label"},f:[{t:2,r:"data.holding.name",p:[27,4,969]}]}," ",{p:[29,3,1011],t:7,e:"ui-section",a:{label:"Pressure"},f:[{t:2,x:{r:["adata.holding.pressure"],s:"Math.round(_0)"},p:[30,4,1045]}," kPa"]}],n:50,r:"data.holding",p:[25,3,914]},{t:4,n:51,f:[{p:[33,3,1119],t:7,e:"ui-section",f:[{p:[34,4,1136],t:7,e:"span",a:{"class":"average"},f:["No Holding Tank"]}]}],r:"data.holding"}]}]},e.exports=a.extend(r.exports)},{205:205}],287:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={data:{chargingState:function(t){switch(t){case 2:return"good";case 1:return"average";default:return"bad"}},chargingMode:function(t){return 2==t?"Full":1==t?"Charging":"Draining"},channelState:function(t){return t>=2?"good":"bad"},channelPower:function(t){return t>=2?"On":"Off"},channelMode:function(t){return 1==t||3==t?"Auto":"Manual"}},computed:{graphData:function(){var t=this.get("data.history");return Object.keys(t).map(function(e){return t[e].map(function(t,e){return{x:e,y:t}})})}}}}(r),r.exports.template={v:3,t:[" ",{p:[42,1,1035],t:7,e:"ui-display",a:{title:"Network"},f:[{t:4,f:[{p:[44,5,1093],t:7,e:"ui-linegraph",a:{points:[{t:2,r:"graphData",p:[44,27,1115]}],height:"500",legend:'["Available", "Load"]',colors:'["rgb(0, 102, 0)", "rgb(153, 0, 0)"]',xunit:"seconds ago",xfactor:[{t:2,r:"data.interval",p:[46,38,1267]}],yunit:"W",yfactor:"1",xinc:[{t:2,x:{r:["data.stored"],s:"_0/10"},p:[47,15,1323]}],yinc:"9"}}],n:50,r:"config.fancy",p:[43,3,1067]},{t:4,n:51,f:[{p:[49,5,1373],t:7,e:"ui-section",a:{label:"Available"},f:[{p:[50,7,1411],t:7,e:"span",f:[{t:2,r:"data.supply",p:[50,13,1417]}," W"]}]}," ",{p:[52,5,1466],t:7,e:"ui-section",a:{label:"Load"},f:[{p:[53,9,1501],t:7,e:"span",f:[{t:2,r:"data.demand",p:[53,15,1507]}," W"]}]}],r:"config.fancy"}]}," ",{p:[57,1,1578],t:7,e:"ui-display",a:{title:"Areas"},f:[{p:[58,3,1608],t:7,e:"ui-section",a:{nowrap:0},f:[{p:[59,5,1633],t:7,e:"div",a:{"class":"content"},f:["Area"]}," ",{p:[60,5,1670],t:7,e:"div",a:{"class":"content"},f:["Charge"]}," ",{p:[61,5,1709],t:7,e:"div",a:{"class":"content"},f:["Load"]}," ",{p:[62,5,1746],t:7,e:"div",a:{"class":"content"},f:["Status"]}," ",{p:[63,5,1785],t:7,e:"div",a:{"class":"content"},f:["Equipment"]}," ",{p:[64,5,1827],t:7,e:"div",a:{"class":"content"},f:["Lighting"]}," ",{p:[65,5,1868],t:7,e:"div",a:{"class":"content"},f:["Environment"]}]}," ",{t:4,f:[{p:[68,5,1953],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[68,24,1972]}],nowrap:0},f:[{p:[69,7,1997],t:7,e:"div",a:{"class":"content"},f:[{t:2,x:{r:["@index","adata.areas"],s:"Math.round(_1[_0].charge)"},p:[69,28,2018]}," %"]}," ",{p:[70,7,2076],t:7,e:"div",a:{"class":"content"},f:[{t:2,x:{r:["@index","adata.areas"],s:"Math.round(_1[_0].load)"},p:[70,28,2097]}," W"]}," ",{p:[71,7,2153],t:7,e:"div",a:{"class":"content"},f:[{p:[71,28,2174],t:7,e:"span",a:{"class":[{t:2,x:{r:["chargingState","charging"],s:"_0(_1)"},p:[71,41,2187]}]},f:[{t:2,x:{r:["chargingMode","charging"],s:"_0(_1)"},p:[71,70,2216]}]}]}," ",{p:[72,7,2263],t:7,e:"div",a:{"class":"content"},f:[{p:[72,28,2284],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","eqp"],s:"_0(_1)"},p:[72,41,2297]}]},f:[{t:2,x:{r:["channelPower","eqp"],s:"_0(_1)"},p:[72,64,2320]}," [",{p:[72,87,2343],t:7,e:"span",f:[{t:2,x:{r:["channelMode","eqp"],s:"_0(_1)"},p:[72,93,2349]}]},"]"]}]}," ",{p:[73,7,2398],t:7,e:"div",a:{"class":"content"},f:[{p:[73,28,2419],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","lgt"],s:"_0(_1)"},p:[73,41,2432]}]},f:[{t:2,x:{r:["channelPower","lgt"],s:"_0(_1)"},p:[73,64,2455]}," [",{p:[73,87,2478],t:7,e:"span",f:[{t:2,x:{r:["channelMode","lgt"],s:"_0(_1)"},p:[73,93,2484]}]},"]"]}]}," ",{p:[74,7,2533],t:7,e:"div",a:{"class":"content"},f:[{p:[74,28,2554],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","env"],s:"_0(_1)"},p:[74,41,2567]}]},f:[{t:2,x:{r:["channelPower","env"],s:"_0(_1)"},p:[74,64,2590]}," [",{p:[74,87,2613],t:7,e:"span",f:[{t:2,x:{r:["channelMode","env"],s:"_0(_1)"},p:[74,93,2619]}]},"]"]}]}]}],n:52,r:"data.areas",p:[67,3,1927]}]}]},e.exports=a.extend(r.exports)},{205:205}],288:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={computed:{readableFrequency:function(){return Math.round(this.get("adata.frequency"))/10}}}}(r),r.exports.template={v:3,t:[" ",{p:[11,1,177],t:7,e:"ui-display",a:{title:"Settings"},f:[{t:4,f:[{p:[13,5,236],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[14,7,270],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.listening"],s:'_0?"power-off":"close"'},p:[14,24,287]}],style:[{t:2,x:{r:["data.listening"],s:'_0?"selected":null'},p:[14,75,338]}],action:"listen"},f:[{t:2,x:{r:["data.listening"],s:'_0?"On":"Off"'},p:[16,9,413]}]}]}],n:50,r:"data.headset",p:[12,3,210]},{t:4,n:51,f:[{p:[19,5,494],t:7,e:"ui-section",a:{label:"Microphone"},f:[{p:[20,7,533],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.broadcasting"],s:'_0?"power-off":"close"'},p:[20,24,550]}],style:[{t:2,x:{r:["data.broadcasting"],s:'_0?"selected":null'},p:[20,78,604]}],action:"broadcast"},f:[{t:2,x:{r:["data.broadcasting"],s:'_0?"Engaged":"Disengaged"'},p:[22,9,685]}]}]}," ",{p:[24,5,769],t:7,e:"ui-section",a:{label:"Speaker"},f:[{p:[25,7,805],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.listening"],s:'_0?"power-off":"close"'},p:[25,24,822]}],style:[{t:2,x:{r:["data.listening"],s:'_0?"selected":null'},p:[25,75,873]}],action:"listen"},f:[{t:2,x:{r:["data.listening"],s:'_0?"Engaged":"Disengaged"'},p:[27,9,948]}]}]}],r:"data.headset"}," ",{t:4,f:[{p:[31,5,1064],t:7,e:"ui-section",a:{label:"High Volume"},f:[{p:[32,7,1104],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.useCommand"],s:'_0?"power-off":"close"'},p:[32,24,1121]}],style:[{t:2,x:{r:["data.useCommand"],s:'_0?"selected":null'},p:[32,76,1173]}],action:"command"},f:[{t:2,x:{r:["data.useCommand"],s:'_0?"On":"Off"'},p:[34,9,1250]}]}]}],n:50,r:"data.command",p:[30,3,1038]}]}," ",{p:[38,1,1342],t:7,e:"ui-display",a:{title:"Channel"},f:[{p:[39,3,1374],t:7,e:"ui-section",a:{label:"Frequency"},f:[{t:4,f:[{p:[41,7,1439],t:7,e:"span",f:[{t:2,r:"readableFrequency",p:[41,13,1445]}]}],n:50,r:"data.freqlock",p:[40,5,1410]},{t:4,n:51,f:[{p:[43,7,1495],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.frequency","data.minFrequency"],s:'_0==_1?"disabled":null'},p:[43,46,1534]}],action:"frequency",params:'{"adjust": -1}'}}," ",{p:[44,7,1646],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.frequency","data.minFrequency"],s:'_0==_1?"disabled":null'},p:[44,41,1680]}],action:"frequency",params:'{"adjust": -.2}'}}," ",{p:[45,7,1793],t:7,e:"ui-button",a:{icon:"pencil",action:"frequency",params:'{"tune": "input"}'},f:[{t:2,r:"readableFrequency",p:[45,78,1864]}]}," ",{p:[46,7,1905],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.frequency","data.maxFrequency"],s:'_0==_1?"disabled":null'},p:[46,40,1938]}],action:"frequency",params:'{"adjust": .2}'}}," ",{p:[47,7,2050],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.frequency","data.maxFrequency"],s:'_0==_1?"disabled":null'},p:[47,45,2088]}],action:"frequency",params:'{"adjust": 1}'}}],r:"data.freqlock"}]}," ",{t:4,f:[{p:[51,5,2262],t:7,e:"ui-section",a:{label:"Subspace Transmission"},f:[{p:[52,7,2312],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.subspace"],s:'_0?"power-off":"close"'},p:[52,24,2329]}],style:[{t:2,x:{r:["data.subspace"],s:'_0?"selected":null'},p:[52,74,2379]}],action:"subspace"},f:[{t:2,x:{r:["data.subspace"],s:'_0?"Active":"Inactive"'},p:[53,29,2447]}]}]}],n:50,r:"data.subspaceSwitchable",p:[50,3,2225]}," ",{t:4,f:[{p:[57,5,2578],t:7,e:"ui-section",a:{label:"Channels"},f:[{t:4,f:[{p:[59,9,2656],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["."],s:'_0?"check-square-o":"square-o"'},p:[59,26,2673]}],style:[{t:2,x:{r:["."],s:'_0?"selected":null'},p:[60,18,2730]}],action:"channel",params:['{"channel": "',{t:2,r:"channel",p:[61,49,2806]},'"}']},f:[{t:2,r:"channel",p:[62,11,2833]}]},{p:[62,34,2856],t:7,e:"br"}],n:52,i:"channel",r:"data.channels",p:[58,7,2615]}]}],n:50,x:{r:["data.subspace","data.channels"],s:"_0&&_1"},p:[56,3,2534]}]}]},e.exports=a.extend(r.exports)},{205:205}],289:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,23],t:7,e:"ui-notice",f:[{t:2,r:"data.notice",p:[3,5,40]}]}],n:50,r:"data.notice",p:[1,1,0]},{p:[6,1,82],t:7,e:"ui-display",a:{title:"Satellite Network Control",button:0},f:[{t:4,f:[{p:[8,4,168],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:[{p:[9,9,209],t:7,e:"div",a:{"class":"content"},f:["#",{t:2,r:"id",p:[9,31,231]}]}," ",{p:[10,9,253],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"mode",p:[10,30,274]}]}," ",{p:[11,9,298],t:7,e:"div",a:{"class":"content"},f:[{p:[12,11,331],t:7,e:"ui-button",a:{action:"toggle",params:['{"id": "',{t:2,r:"id",p:[12,54,374]},'"}']},f:[{t:2,x:{r:["active"],s:'_0?"Deactivate":"Activate"'},p:[12,64,384]}]}]}]}],n:52,r:"data.satellites",p:[7,2,138]}]}," ",{t:4,f:[{p:[18,1,528],t:7,e:"ui-display",a:{title:"Station Shield Coverage"},f:[{p:[19,3,576],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.meteor_shield_coverage_max",p:[19,24,597]}],value:[{t:2,r:"data.meteor_shield_coverage",p:[19,68,641]}]},f:[{t:2,x:{r:["data.meteor_shield_coverage","data.meteor_shield_coverage_max"],s:"100*_0/_1"},p:[19,101,674]}," %"]}," ",{p:[20,1,758],t:7,e:"ui-display",f:[]}]}],n:50,r:"data.meteor_shield",p:[17,1,500]}]},e.exports=a.extend(r.exports)},{205:205}],290:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" "," "," ",{p:[5,1,200],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"data.tabs",p:[5,16,215]}]},f:[{p:[6,2,233],t:7,e:"tab",a:{name:"Status"},f:[{p:[7,3,256],t:7,e:"status"}]}," ",{p:[9,2,277],t:7,e:"tab",a:{name:"Templates"},f:[{p:[10,3,303],t:7,e:"templates"}]}," ",{p:[12,2,327],t:7,e:"tab",a:{name:"Modification"},f:[{t:4,f:[{p:[14,3,381],t:7,e:"modification"}],n:50,r:"data.selected",p:[13,3,356]}," ",{t:4,f:[{p:[17,3,437],t:7,e:"span",a:{"class":"bad"},f:["No shuttle selected."]}],n:50,x:{r:["data.selected"],s:"!_0"},p:[16,3,411]}]}]}]},r.exports.components=r.exports.components||{};var i={modification:t(291),templates:t(293),status:t(292)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,291:291,292:292,293:293}],291:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:["Selected: ",{t:2,r:"data.selected.name",p:[1,30,29]}]},f:[{t:4,f:[{p:[3,5,96],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"data.selected.description",p:[3,37,128]}]}],n:50,r:"data.selected.description",p:[2,3,57]}," ",{t:4,f:[{p:[6,5,224],t:7,e:"ui-section",a:{label:"Admin Notes"},f:[{t:2,r:"data.selected.admin_notes",p:[6,37,256]}]}],n:50,r:"data.selected.admin_notes",p:[5,3,185]}]}," ",{t:4,f:[{p:[11,3,361],t:7,e:"ui-display",a:{title:["Existing Shuttle: ",{t:2,r:"data.existing_shuttle.name",p:[11,40,398]}]},f:["Status: ",{t:2,r:"data.existing_shuttle.status",p:[12,13,444]}," ",{t:4,f:["(",{t:2,r:"data.existing_shuttle.timeleft",p:[14,8,526]},")"],n:50,r:"data.existing_shuttle.timer",p:[13,5,482]}," ",{p:[16,5,580],t:7,e:"ui-button",a:{action:"jump_to",params:['{"type": "mobile", "id": "',{t:2,r:"data.existing_shuttle.id",p:[17,41,649]},'"}']},f:["Jump To"]}]}],n:50,r:"data.existing_shuttle",p:[10,1,328]},{t:4,f:[{p:[24,3,778],t:7,e:"ui-display",a:{title:"Existing Shuttle: None"}}],n:50,x:{r:["data.existing_shuttle"],s:"!_0"},p:[23,1,744]},{p:[27,1,847],t:7,e:"ui-button",a:{action:"preview",params:['{"shuttle_id": "',{t:2,r:"data.selected.shuttle_id",p:[28,27,902]},'"}']},f:["Preview"]}," ",{p:[31,1,961],t:7,e:"ui-button",a:{action:"load",params:['{"shuttle_id": "',{t:2,r:"data.selected.shuttle_id",p:[32,27,1013]},'"}'],style:"danger"},f:["Load"]}," ",{p:[37,1,1089],t:7,e:"ui-display",a:{title:"Status"},f:[]}]},e.exports=a.extend(r.exports)},{205:205}],292:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,27],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[2,22,46]}," (",{t:2,r:"id",p:[2,32,56]},")"]},f:[{t:2,r:"status",p:[3,5,71]}," ",{t:4,f:["(",{t:2,r:"timeleft",p:[5,8,109]},")"],n:50,r:"timer",p:[4,5,87]}," ",{p:[7,5,141],t:7,e:"ui-button",a:{action:"jump_to",params:['{"type": "mobile", "id": "',{t:2,r:"id",p:[7,67,203]},'"}']},f:["Jump To"]}," ",{p:[10,5,252],t:7,e:"ui-button",a:{action:"fast_travel",params:['{"id": "',{t:2,r:"id",p:[10,53,300]},'"}'],state:[{t:2,x:{r:["can_fast_travel"],s:'_0?null:"disabled"'},p:[10,70,317]}]},f:["Fast Travel"]}]}],n:52,r:"data.shuttles",p:[1,1,0]}]},e.exports=a.extend(r.exports)},{205:205}],293:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"data.templates_tabs",p:[1,16,15]}]},f:[{t:4,f:[{p:[3,5,74],t:7,e:"tab",a:{name:[{t:2,r:"port_id",p:[3,16,85]}]},f:[{t:4,f:[{p:[5,9,135],t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[5,28,154]}]},f:[{t:4,f:[{p:[7,13,209],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"description",p:[7,45,241]}]}],n:50,r:"description",p:[6,11,176]}," ",{t:4,f:[{p:[10,13,333],t:7,e:"ui-section",a:{label:"Admin Notes"},f:[{t:2,r:"admin_notes",p:[10,45,365]}]}],n:50,r:"admin_notes",p:[9,11,300]}," ",{p:[13,11,426],t:7,e:"ui-button",a:{action:"select_template",params:['{"shuttle_id": "',{t:2,r:"shuttle_id",p:[14,37,499]},'"}'],state:[{t:2,x:{r:["data.selected.shuttle_id","shuttle_id"],s:'_0==_1?"selected":null'},p:[15,20,537]}]},f:[{t:2,x:{r:["data.selected.shuttle_id","shuttle_id"],s:'_0==_1?"Selected":"Select"'},p:[17,13,630]}]}]}],n:52,r:"templates",p:[4,7,106]}]}],n:52,r:"data.templates",p:[2,3,44]}]}]},e.exports=a.extend(r.exports)},{205:205}],294:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={computed:{occupantStatState:function(){switch(this.get("data.occupant.stat")){case 0:return"good";case 1:return"average";default:return"bad"}}}}}(r),r.exports.template={v:3,t:[" ",{p:[15,1,280],t:7,e:"ui-display",a:{title:"Occupant"},f:[{p:[16,3,313],t:7,e:"ui-section",a:{label:"Occupant"},f:[{p:[17,3,346],t:7,e:"span",f:[{t:2,x:{r:["data.occupant.name"],s:'_0?_0:"No Occupant"'},p:[17,9,352]}]}]}," ",{t:4,f:[{p:[20,5,466],t:7,e:"ui-section",a:{label:"State"},f:[{p:[21,7,500],t:7,e:"span",a:{"class":[{t:2,r:"occupantStatState",p:[21,20,513]}]},f:[{t:2,x:{r:["data.occupant.stat"],s:'_0==0?"Conscious":_0==1?"Unconcious":"Dead"'},p:[21,43,536]}]}]}," ",{p:[23,5,658],t:7,e:"ui-section",a:{label:"Health"},f:[{p:[24,7,693],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.occupant.minHealth",p:[24,20,706]}],max:[{t:2,r:"data.occupant.maxHealth",p:[24,54,740]}],value:[{t:2,r:"data.occupant.health",p:[24,90,776]}],state:[{t:2,x:{r:["data.occupant.health"],s:'_0>=0?"good":"average"'},p:[25,16,818]}]},f:[{t:2,x:{r:["adata.occupant.health"],s:"Math.round(_0)"},p:[25,68,870]}]}]}," ",{t:4,f:[{p:[28,7,1107],t:7,e:"ui-section",a:{label:[{t:2,r:"label",p:[28,26,1126]}]},f:[{p:[29,9,1147],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.occupant.maxHealth",p:[29,30,1168]}],value:[{t:2,rx:{r:"data.occupant",m:[{t:30,n:"type"}]},p:[29,66,1204]}],state:"bad"},f:[{t:2,x:{r:["type","adata.occupant"],s:"Math.round(_1[_0])"},p:[29,103,1241]}]}]}],n:52,x:{r:[],s:'[{label:"Brute",type:"bruteLoss"},{label:"Respiratory",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Burn",type:"fireLoss"}]'},p:[27,5,941]}," ",{p:[32,5,1328],t:7,e:"ui-section",a:{label:"Cells"},f:[{p:[33,9,1364],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.occupant.cloneLoss"],s:'_0?"bad":"good"'},p:[33,22,1377]}]},f:[{t:2,x:{r:["data.occupant.cloneLoss"],s:'_0?"Damaged":"Healthy"'},p:[33,68,1423]}]}]}," ",{p:[35,5,1506],t:7,e:"ui-section",a:{label:"Brain"},f:[{p:[36,9,1542],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.occupant.brainLoss"],s:'_0?"bad":"good"'},p:[36,22,1555]}]},f:[{t:2,x:{r:["data.occupant.brainLoss"],s:'_0?"Abnormal":"Healthy"'},p:[36,68,1601]}]}]}," ",{p:[38,5,1685],t:7,e:"ui-section",a:{label:"Bloodstream"},f:[{t:4,f:[{p:[40,11,1772],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,1)"},p:[40,54,1815]}," units of ",{t:2,r:"name",p:[40,89,1850]}]},{p:[40,104,1865],t:7,e:"br"}],n:52,r:"adata.occupant.reagents",p:[39,9,1727]},{t:4,n:51,f:[{p:[42,11,1900],t:7,e:"span",a:{"class":"good"},f:["Pure"]}],r:"adata.occupant.reagents"}]}],n:50,r:"data.occupied",p:[19,3,439]}]}," ",{p:[47,1,1996],t:7,e:"ui-display",a:{title:"Controls"},f:[{p:[48,2,2028],t:7,e:"ui-section",a:{label:"Door"},f:[{p:[49,5,2059],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.open"],s:'_0?"unlock":"lock"'},p:[49,22,2076]}],action:"door"},f:[{t:2,x:{r:["data.open"],s:'_0?"Open":"Closed"'},p:[49,71,2125]}]}]}," ",{p:[51,3,2190],t:7,e:"ui-section",a:{label:"Inject"},f:[{t:4,f:[{p:[53,7,2251],t:7,e:"ui-button",a:{icon:"flask",state:[{t:2,x:{r:["data.occupied","allowed"],s:'_0&&_1?null:"disabled"'},p:[53,38,2282]}],action:"inject",params:['{"chem": "',{t:2,r:"id",p:[53,122,2366]},'"}']},f:[{t:2,r:"name",p:[53,132,2376]}]},{p:[53,152,2396],t:7,e:"br"}],n:52,r:"data.chems",p:[52,5,2223]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],295:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,25],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[2,22,44]}],labelcolor:[{t:2,r:"htmlcolor",p:[2,44,66]}],candystripe:0,right:0},f:[{p:[3,5,105],t:7,e:"ui-section",a:{label:"Status"},f:[{p:[3,32,132],t:7,e:"span",a:{"class":[{t:2,x:{r:["status"],s:'_0=="Dead"?"bad bold":_0=="Unconscious"?"average bold":"good"'},p:[3,45,145]}]},f:[{t:2,r:"status",p:[3,132,232]}]}]}," ",{p:[4,5,268],t:7,e:"ui-section",a:{label:"Jelly"},f:[{t:2,r:"exoticblood",p:[4,31,294]}]}," ",{p:[5,5,328],t:7,e:"ui-section",a:{label:"Location"},f:[{t:2,r:"area",p:[5,34,357]}]}," ",{p:[7,5,386],t:7,e:"ui-button",a:{state:[{t:2,r:"swap_button_state",p:[8,14,411]}],action:"swap",params:['{"ref": "',{t:2,r:"ref",p:[9,38,472]},'"}']},f:[{t:2,x:{r:["is_current"],s:'_0?"You Are Here":"Swap"'},p:[10,7,491]}]}]}],n:52,r:"data.bodies",p:[1,1,0]}]},e.exports=a.extend(r.exports)},{205:205}],296:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={computed:{capacityPercentState:function(){var t=this.get("data.capacityPercent");return t>50?"good":t>15?"average":"bad"},inputState:function(){return this.get("data.capacityPercent")>=100?"good":this.get("data.inputting")?"average":"bad"},outputState:function(){return this.get("data.outputting")?"good":this.get("data.charge")>0?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{p:[24,1,663],t:7,e:"ui-display",a:{title:"Storage"},f:[{p:[25,3,695],t:7,e:"ui-section",a:{label:"Stored Energy"},f:[{p:[26,5,735],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.capacityPercent",p:[26,38,768]}],state:[{t:2,r:"capacityPercentState",p:[26,71,801]}]},f:[{t:2,x:{r:["adata.capacityPercent"],s:"Math.fixed(_0)"},p:[26,97,827]},"%"]}]}]}," ",{p:[29,1,908],t:7,e:"ui-display",a:{title:"Input"},f:[{p:[30,3,938],t:7,e:"ui-section",a:{label:"Charge Mode"},f:[{p:[31,5,976],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.inputAttempt"],s:'_0?"refresh":"close"'},p:[31,22,993]}],style:[{t:2,x:{r:["data.inputAttempt"],s:'_0?"selected":null'},p:[31,74,1045]}],action:"tryinput"},f:[{t:2,x:{r:["data.inputAttempt"],s:'_0?"Auto":"Off"'},p:[32,25,1113]}]},"   [",{p:[34,6,1182],t:7,e:"span",a:{"class":[{t:2,r:"inputState",p:[34,19,1195]}]},f:[{t:2,x:{r:["data.capacityPercent","data.inputting"],s:'_0>=100?"Fully Charged":_1?"Charging":"Not Charging"'},p:[34,35,1211]}]},"]"]}," ",{p:[36,3,1335],t:7,e:"ui-section",a:{label:"Target Input"},f:[{p:[37,5,1374],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.inputLevelMax",p:[37,26,1395]}],value:[{t:2,r:"data.inputLevel",p:[37,57,1426]}]},f:[{t:2,x:{r:["adata.inputLevel"],s:"Math.round(_0)"},p:[37,78,1447]},"W"]}]}," ",{p:[39,3,1509],t:7,e:"ui-section",a:{label:"Adjust Input"},f:[{p:[40,5,1548],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.inputLevel"],s:'_0==0?"disabled":null'},p:[40,44,1587]}],action:"input",params:'{"target": "min"}'}}," ",{p:[41,5,1682],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.inputLevel"],s:'_0==0?"disabled":null'},p:[41,39,1716]}],action:"input",params:'{"adjust": -10000}'}}," ",{p:[42,5,1812],t:7,e:"ui-button",a:{icon:"pencil",action:"input",params:'{"target": "input"}'},f:["Set"]}," ",{p:[43,5,1902],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.inputLevel","data.inputLevelMax"],s:'_0==_1?"disabled":null'},p:[43,38,1935]}],action:"input",params:'{"adjust": 10000}'}}," ",{p:[44,5,2047],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.inputLevel","data.inputLevelMax"],s:'_0==_1?"disabled":null'},p:[44,43,2085]}],action:"input",params:'{"target": "max"}'}}]}," ",{p:[46,3,2212],t:7,e:"ui-section",a:{label:"Available"},f:[{p:[47,3,2246],t:7,e:"span",f:[{t:2,x:{r:["adata.inputAvailable"],s:"Math.round(_0)"},p:[47,9,2252]},"W"]}]}]}," ",{p:[50,1,2329],t:7,e:"ui-display",a:{title:"Output"},f:[{p:[51,3,2360],t:7,e:"ui-section",a:{label:"Output Mode"},f:[{p:[52,5,2398],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.outputAttempt"],s:'_0?"power-off":"close"'},p:[52,22,2415]}],style:[{t:2,x:{r:["data.outputAttempt"],s:'_0?"selected":null'},p:[52,77,2470]}],action:"tryoutput"},f:[{t:2,x:{r:["data.outputAttempt"],s:'_0?"On":"Off"'},p:[53,26,2540]}]},"   [",{p:[55,6,2608],t:7,e:"span",a:{"class":[{t:2,r:"outputState",p:[55,19,2621]}]},f:[{t:2,x:{r:["data.outputting","data.charge"],s:'_0?"Sending":_1>0?"Not Sending":"No Charge"'},p:[55,36,2638]}]},"]"]}," ",{p:[57,3,2745],t:7,e:"ui-section",a:{label:"Target Output"},f:[{p:[58,5,2785],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.outputLevelMax",p:[58,26,2806]}],value:[{t:2,r:"data.outputLevel",p:[58,58,2838]}]},f:[{t:2,x:{r:["adata.outputLevel"],s:"Math.round(_0)"},p:[58,80,2860]},"W"]}]}," ",{p:[60,3,2923],t:7,e:"ui-section",a:{label:"Adjust Output"},f:[{p:[61,5,2963],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.outputLevel"],s:'_0==0?"disabled":null'},p:[61,44,3002]}],action:"output",params:'{"target": "min"}'}}," ",{p:[62,5,3099],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.outputLevel"],s:'_0==0?"disabled":null'},p:[62,39,3133]}],action:"output",params:'{"adjust": -10000}'}}," ",{p:[63,5,3231],t:7,e:"ui-button",a:{icon:"pencil",action:"output",params:'{"target": "input"}'},f:["Set"]}," ",{p:[64,5,3322],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.outputLevel","data.outputLevelMax"],s:'_0==_1?"disabled":null'},p:[64,38,3355]}],action:"output",params:'{"adjust": 10000}'}}," ",{p:[65,5,3470],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.outputLevel","data.outputLevelMax"],s:'_0==_1?"disabled":null'},p:[65,43,3508]}],action:"output",params:'{"target": "max"}'}}]}," ",{p:[67,3,3638],t:7,e:"ui-section",a:{label:"Outputting"},f:[{p:[68,3,3673],t:7,e:"span",f:[{t:2,x:{r:["adata.outputUsed"],s:"Math.round(_0)"},p:[68,9,3679]},"W"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],297:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[2,3,31],t:7,e:"ui-section",a:{label:"Generated Power"},f:[{t:2,x:{r:["adata.generated"],s:"Math.round(_0)"},p:[3,5,73]},"W"]}," ",{p:[5,3,126],t:7,e:"ui-section",a:{label:"Orientation"},f:[{p:[6,5,164],t:7,e:"span",f:[{t:2,x:{r:["adata.angle"],s:"Math.round(_0)"},p:[6,11,170]},"° (",{t:2,r:"data.direction",p:[6,45,204]},")"]}]}," ",{p:[8,3,251],t:7,e:"ui-section",a:{label:"Adjust Angle"},f:[{p:[9,5,290],t:7,e:"ui-button",a:{icon:"step-backward",action:"angle",params:'{"adjust": -15}'},f:["15°"]}," ",{p:[10,5,387],t:7,e:"ui-button",a:{icon:"backward",action:"angle",params:'{"adjust": -5}'},f:["5°"]}," ",{p:[11,5,477],t:7,e:"ui-button",a:{icon:"forward",action:"angle",params:'{"adjust": 5}'},f:["5°"]}," ",{p:[12,5,565],t:7,e:"ui-button",a:{icon:"step-forward",action:"angle",params:'{"adjust": 15}'},f:["15°"]}]}]}," ",{p:[15,1,687],t:7,e:"ui-display",a:{title:"Tracking"},f:[{p:[16,3,720],t:7,e:"ui-section",a:{label:"Tracker Mode"},f:[{p:[17,5,759],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["data.tracking_state"],s:'_0==0?"selected":null'},p:[17,36,790]}],action:"tracking",params:'{"mode": 0}'},f:["Off"]}," ",{p:[19,5,907],t:7,e:"ui-button",a:{icon:"clock-o",state:[{t:2,x:{r:["data.tracking_state"],s:'_0==1?"selected":null'},p:[19,38,940]}],action:"tracking",params:'{"mode": 1}'},f:["Timed"]}," ",{p:[21,5,1059],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.connected_tracker","data.tracking_state"],s:'_0?_1==2?"selected":null:"disabled"'},p:[21,38,1092]}],action:"tracking",params:'{"mode": 2}'},f:["Auto"]}]}," ",{p:[24,3,1262],t:7,e:"ui-section",a:{label:"Tracking Rate"},f:[{p:[25,3,1300],t:7,e:"span",f:[{t:2,x:{r:["adata.tracking_rate"],s:"Math.round(_0)"},p:[25,9,1306]},"°/h (",{t:2,r:"data.rotating_way",p:[25,53,1350]},")"]}]}," ",{p:[27,3,1399],t:7,e:"ui-section",a:{label:"Adjust Rate"},f:[{p:[28,5,1437],t:7,e:"ui-button",a:{icon:"fast-backward",action:"rate",params:'{"adjust": -180}'},f:["180°"]}," ",{p:[29,5,1535],t:7,e:"ui-button",a:{icon:"step-backward",action:"rate",params:'{"adjust": -30}'},f:["30°"]}," ",{p:[30,5,1631],t:7,e:"ui-button",a:{icon:"backward",action:"rate",params:'{"adjust": -5}'},f:["5°"]}," ",{p:[31,5,1720],t:7,e:"ui-button",a:{icon:"forward",action:"rate",params:'{"adjust": 5}'},f:["5°"]}," ",{p:[32,5,1807],t:7,e:"ui-button",a:{icon:"step-forward",action:"rate",params:'{"adjust": 30}'},f:["30°"]}," ",{p:[33,5,1901],t:7,e:"ui-button",a:{icon:"fast-forward",action:"rate",params:'{"adjust": 180}'},f:["180°"]}]}]}," ",{p:{button:[{p:[38,5,2088],t:7,e:"ui-button",a:{icon:"refresh",action:"refresh"},f:["Refresh"]}]},t:7,e:"ui-display",a:{title:"Devices",button:0},f:[" ",{p:[40,2,2169],t:7,e:"ui-section",a:{label:"Solar Tracker"},f:[{p:[41,5,2209],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.connected_tracker"],s:'_0?"good":"bad"'},p:[41,18,2222]}]},f:[{t:2,x:{r:["data.connected_tracker"],s:'_0?"":"Not "'},p:[41,63,2267]},"Found"]}]}," ",{p:[43,2,2338],t:7,e:"ui-section",a:{label:"Solar Panels"},f:[{p:[44,3,2375],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.connected_panels"],s:'_0?"good":"bad"'},p:[44,16,2388]}]},f:[{t:2,x:{r:["adata.connected_panels"],s:"Math.round(_0)"},p:[44,60,2432]}," Panels Connected"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],298:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:{button:[{t:4,f:[{p:[4,7,87],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.hasPowercell"],s:'_0?null:"disabled"'},p:[4,38,118]}],action:"eject"},f:["Eject"]}],n:50,r:"data.open",p:[3,5,62]}]},t:7,e:"ui-display",a:{title:"Power",button:0},f:[" ",{p:[7,3,226],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[8,5,258],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[8,22,275]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[9,14,326]}],state:[{t:2,x:{r:["data.hasPowercell"],s:'_0?null:"disabled"'},p:[9,54,366]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[10,22,431]}]}]}," ",{p:[12,3,490],t:7,e:"ui-section",a:{label:"Cell"},f:[{t:4,f:[{p:[14,7,554],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.powerLevel",p:[14,40,587]}]},f:[{t:2,x:{r:["adata.powerLevel"],s:"Math.fixed(_0)"},p:[14,61,608]},"%"]}],n:50,r:"data.hasPowercell",p:[13,5,521]},{t:4,n:51,f:[{p:[16,4,667],t:7,e:"span",a:{"class":"bad"},f:["No Cell"]}],r:"data.hasPowercell"}]}]}," ",{p:[20,1,744],t:7,e:"ui-display",a:{title:"Thermostat"},f:[{p:[21,3,779],t:7,e:"ui-section",a:{label:"Current Temperature"},f:[{p:[22,3,823],t:7,e:"span",f:[{t:2,x:{r:["adata.currentTemp"],s:"Math.round(_0)"},p:[22,9,829]},"°C"]}]}," ",{p:[24,2,894],t:7,e:"ui-section",a:{label:"Target Temperature"},f:[{p:[25,3,937],t:7,e:"span",f:[{t:2,x:{r:["adata.targetTemp"],s:"Math.round(_0)"},p:[25,9,943]},"°C"]}]}," ",{t:4,f:[{p:[28,5,1031],t:7,e:"ui-section",a:{label:"Adjust Target"},f:[{p:[29,7,1073],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.targetTemp","data.minTemp"],s:'_0>_1?null:"disabled"'},p:[29,46,1112]}],action:"target",params:'{"adjust": -20}'}}," ",{p:[30,7,1218],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.targetTemp","data.minTemp"],s:'_0>_1?null:"disabled"'},p:[30,41,1252]}],action:"target",params:'{"adjust": -5}'}}," ",{p:[31,7,1357],t:7,e:"ui-button",a:{icon:"pencil",action:"target",params:'{"target": "input"}'},f:["Set"]}," ",{p:[32,7,1450],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.targetTemp","data.maxTemp"],s:'_0<_1?null:"disabled"'},p:[32,40,1483]}],action:"target",params:'{"adjust": 5}'}}," ",{p:[33,7,1587],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.targetTemp","data.maxTemp"],s:'_0<_1?null:"disabled"'},p:[33,45,1625]}],action:"target",params:'{"adjust": 20}'}}]}],n:50,r:"data.open",p:[27,3,1008]}," ",{p:[36,3,1754],t:7,e:"ui-section",a:{label:"Mode"},f:[{t:4,f:[{p:[38,7,1808],t:7,e:"ui-button",a:{icon:"long-arrow-up",state:[{t:2,x:{r:["data.mode"],s:'_0=="heat"?"selected":null'},p:[38,46,1847]}],action:"mode",params:'{"mode": "heat"}'},f:["Heat"]}," ",{p:[39,7,1956],t:7,e:"ui-button",a:{icon:"long-arrow-down",state:[{t:2,x:{r:["data.mode"],s:'_0=="cool"?"selected":null'},p:[39,48,1997]}],action:"mode",params:'{"mode": "cool"}'},f:["Cool"]}," ",{p:[40,7,2106],t:7,e:"ui-button",a:{icon:"arrows-v",state:[{t:2,x:{r:["data.mode"],s:'_0=="auto"?"selected":null'},p:[40,41,2140]}],action:"mode",params:'{"mode": "auto"}'},f:["Auto"]}],n:50,r:"data.open",p:[37,3,1783]},{t:4,n:51,f:[{p:[42,4,2258],t:7,e:"span",f:[{t:2,x:{r:["text","data.mode"],s:"_0.titleCase(_1)"},p:[42,10,2264]}]}],r:"data.open"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],299:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,31],t:7,e:"ui-display",a:{title:[{t:2,r:"class",p:[2,22,50]}," Alarms"]},f:[{p:[3,5,74],t:7,e:"ul",f:[{t:4,f:[{p:[5,9,107],t:7,e:"li",f:[{t:2,r:".",p:[5,13,111]}]}],n:52,r:".",p:[4,7,86]},{t:4,n:51,f:[{p:[7,9,147],t:7,e:"li",f:["System Nominal"]}],r:"."}]}]}],n:52,i:"class",r:"data.alarms",p:[1,1,0]}]},e.exports=a.extend(r.exports)},{205:205}],300:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,42],t:7,e:"ui-notice",f:[{p:[3,5,59],t:7,e:"span",f:["Biological entity detected in contents. Please remove."]}]}],n:50,x:{r:["data.occupied","data.safeties"],s:"_0&&_1"},p:[1,1,0]},{t:4,f:[{p:[7,3,179],t:7,e:"ui-notice",f:[{p:[8,5,196],t:7,e:"span",f:["Contents are being disinfected. Please wait."]}]}],n:50,r:"data.uv_active",p:[6,1,153]},{t:4,n:51,f:[{p:{button:[{t:4,f:[{p:[13,25,369],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.locked"],s:'_0?"unlock":"lock"'},p:[13,42,386] + }],action:"lock"},f:[{t:2,x:{r:["data.locked"],s:'_0?"Unlock":"Lock"'},p:[13,93,437]}]}],n:50,x:{r:["data.open"],s:"!_0"},p:[13,7,351]}," ",{t:4,f:[{p:[14,27,519],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.open"],s:'_0?"sign-out":"sign-in"'},p:[14,44,536]}],action:"door"},f:[{t:2,x:{r:["data.open"],s:'_0?"Close":"Open"'},p:[14,98,590]}]}],n:50,x:{r:["data.locked"],s:"!_0"},p:[14,7,499]}]},t:7,e:"ui-display",a:{title:"Storage",button:0},f:[" ",{t:4,f:[{p:[17,7,692],t:7,e:"ui-notice",f:[{p:[18,9,713],t:7,e:"span",f:["Unit Locked"]}]}],n:50,r:"data.locked",p:[16,5,665]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.open"],s:"_0"},f:[{p:[21,9,793],t:7,e:"ui-section",a:{label:"Helmet"},f:[{p:[22,11,832],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.helmet"],s:'_0?"square":"square-o"'},p:[22,28,849]}],state:[{t:2,x:{r:["data.helmet"],s:'_0?null:"disabled"'},p:[22,75,896]}],action:"dispense",params:'{"item": "helmet"}'},f:[{t:2,x:{r:["data.helmet"],s:'_0||"Empty"'},p:[23,59,992]}]}]}," ",{p:[25,9,1063],t:7,e:"ui-section",a:{label:"Suit"},f:[{p:[26,11,1100],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.suit"],s:'_0?"square":"square-o"'},p:[26,28,1117]}],state:[{t:2,x:{r:["data.suit"],s:'_0?null:"disabled"'},p:[26,74,1163]}],action:"dispense",params:'{"item": "suit"}'},f:[{t:2,x:{r:["data.suit"],s:'_0||"Empty"'},p:[27,57,1255]}]}]}," ",{p:[29,9,1324],t:7,e:"ui-section",a:{label:"Mask"},f:[{p:[30,11,1361],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.mask"],s:'_0?"square":"square-o"'},p:[30,28,1378]}],state:[{t:2,x:{r:["data.mask"],s:'_0?null:"disabled"'},p:[30,74,1424]}],action:"dispense",params:'{"item": "mask"}'},f:[{t:2,x:{r:["data.mask"],s:'_0||"Empty"'},p:[31,57,1516]}]}]}," ",{p:[33,9,1585],t:7,e:"ui-section",a:{label:"Storage"},f:[{p:[34,11,1625],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.storage"],s:'_0?"square":"square-o"'},p:[34,28,1642]}],state:[{t:2,x:{r:["data.storage"],s:'_0?null:"disabled"'},p:[34,77,1691]}],action:"dispense",params:'{"item": "storage"}'},f:[{t:2,x:{r:["data.storage"],s:'_0||"Empty"'},p:[35,60,1789]}]}]}]},{t:4,n:50,x:{r:["data.open"],s:"!(_0)"},f:[" ",{p:[38,7,1873],t:7,e:"ui-button",a:{icon:"recycle",state:[{t:2,x:{r:["data.occupied","data.safeties"],s:'_0&&_1?"disabled":null'},p:[38,40,1906]}],action:"uv"},f:["Disinfect"]}]}],r:"data.locked"}]}],r:"data.uv_active"}]},e.exports=a.extend(r.exports)},{205:205}],301:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,5,18],t:7,e:"ui-section",a:{label:"Dispense"},f:[{p:[3,9,57],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.plasma"],s:'_0?"square":"square-o"'},p:[3,26,74]}],state:[{t:2,x:{r:["data.plasma"],s:'_0?null:"disabled"'},p:[3,74,122]}],action:"plasma"},f:["Plasma (",{t:2,x:{r:["adata.plasma"],s:"Math.round(_0)"},p:[4,37,196]},")"]}," ",{p:[5,9,247],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.oxygen"],s:'_0?"square":"square-o"'},p:[5,26,264]}],state:[{t:2,x:{r:["data.oxygen"],s:'_0?null:"disabled"'},p:[5,74,312]}],action:"oxygen"},f:["Oxygen (",{t:2,x:{r:["adata.oxygen"],s:"Math.round(_0)"},p:[6,37,386]},")"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],302:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={computed:{tankPressureState:function(){var t=this.get("data.tankPressure");return t>=200?"good":t>=100?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{p:[14,1,295],t:7,e:"ui-notice",f:[{p:[15,3,310],t:7,e:"span",f:["The regulator ",{t:2,x:{r:["data.connected"],s:'_0?"is":"is not"'},p:[15,23,330]}," connected to a mask."]}]}," ",{p:[17,1,409],t:7,e:"ui-display",f:[{p:[18,3,425],t:7,e:"ui-section",a:{label:"Tank Pressure"},f:[{p:[19,7,467],t:7,e:"ui-bar",a:{min:"0",max:"1013",value:[{t:2,r:"data.tankPressure",p:[19,41,501]}],state:[{t:2,r:"tankPressureState",p:[20,16,540]}]},f:[{t:2,x:{r:["adata.tankPressure"],s:"Math.round(_0)"},p:[20,39,563]}," kPa"]}]}," ",{p:[22,3,631],t:7,e:"ui-section",a:{label:"Release Pressure"},f:[{p:[23,5,674],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.minReleasePressure",p:[23,18,687]}],max:[{t:2,r:"data.maxReleasePressure",p:[23,52,721]}],value:[{t:2,r:"data.releasePressure",p:[24,14,764]}]},f:[{t:2,x:{r:["adata.releasePressure"],s:"Math.round(_0)"},p:[24,40,790]}," kPa"]}]}," ",{p:[26,3,861],t:7,e:"ui-section",a:{label:"Pressure Regulator"},f:[{p:[27,5,906],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.releasePressure","data.defaultReleasePressure"],s:'_0!=_1?null:"disabled"'},p:[27,38,939]}],action:"pressure",params:'{"pressure": "reset"}'},f:["Reset"]}," ",{p:[29,5,1095],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.releasePressure","data.minReleasePressure"],s:'_0>_1?null:"disabled"'},p:[29,36,1126]}],action:"pressure",params:'{"pressure": "min"}'},f:["Min"]}," ",{p:[31,5,1273],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[32,5,1368],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.releasePressure","data.maxReleasePressure"],s:'_0<_1?null:"disabled"'},p:[32,35,1398]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],303:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[2,5,33],t:7,e:"ui-section",a:{label:"Temperature"},f:[{p:[3,9,75],t:7,e:"span",f:[{t:2,x:{r:["adata.temperature"],s:"Math.fixed(_0,2)"},p:[3,15,81]}," K"]}]}," ",{p:[5,5,151],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[6,9,190],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.fixed(_0,2)"},p:[6,15,196]}," kPa"]}]}]}," ",{p:[9,1,276],t:7,e:"ui-display",a:{title:"Controls"},f:[{p:[10,5,311],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[11,9,347],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[11,26,364]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[11,70,408]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[12,28,469]}]}]}," ",{p:[14,5,531],t:7,e:"ui-section",a:{label:"Target Temperature"},f:[{p:[15,9,580],t:7,e:"ui-button",a:{icon:"fast-backward",style:[{t:2,x:{r:["data.target","data.min"],s:'_0==_1?"disabled":null'},p:[15,48,619]}],action:"target",params:'{"adjust": -20}'}}," ",{p:[17,9,733],t:7,e:"ui-button",a:{icon:"backward",style:[{t:2,x:{r:["data.target","data.min"],s:'_0==_1?"disabled":null'},p:[17,43,767]}],action:"target",params:'{"adjust": -5}'}}," ",{p:[19,9,880],t:7,e:"ui-button",a:{icon:"pencil",action:"target",params:'{"target": "input"}'},f:[{t:2,x:{r:["adata.target"],s:"Math.fixed(_0,2)"},p:[19,79,950]}]}," ",{p:[20,9,1003],t:7,e:"ui-button",a:{icon:"forward",style:[{t:2,x:{r:["data.target","data.max"],s:'_0==_1?"disabled":null'},p:[20,42,1036]}],action:"target",params:'{"adjust": 5}'}}," ",{p:[22,9,1148],t:7,e:"ui-button",a:{icon:"fast-forward",style:[{t:2,x:{r:["data.target","data.max"],s:'_0==_1?"disabled":null'},p:[22,47,1186]}],action:"target",params:'{"adjust": 20}'}}]}]}]},e.exports=a.extend(r.exports)},{205:205}],304:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={data:{},oninit:function(){this.on({hover:function(t){var e=this.get("data.telecrystals");e>=t.context.params.cost&&this.set("hovered",t.context.params)},unhover:function(t){this.set("hovered")}})}}}(r),r.exports.template={v:3,t:[" ",{p:{button:[{t:4,f:[{p:[23,7,482],t:7,e:"ui-button",a:{icon:"lock",action:"lock"},f:["Lock"]}],n:50,r:"data.lockable",p:[22,5,453]}]},t:7,e:"ui-display",a:{title:"Uplink",button:0},f:[" ",{p:[26,3,568],t:7,e:"ui-section",a:{label:"Telecrystals",right:0},f:[{p:[27,5,613],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.telecrystals"],s:'_0>0?"good":"bad"'},p:[27,18,626]}]},f:[{t:2,r:"data.telecrystals",p:[27,62,670]}," TC"]}]}]}," ",{t:4,f:[{p:[31,3,764],t:7,e:"ui-display",f:[{p:[32,2,779],t:7,e:"ui-button",a:{action:"select",params:['{"category": "',{t:2,r:"name",p:[32,51,828]},'"}']},f:[{t:2,r:"name",p:[32,63,840]}]}," ",{t:4,f:[{p:[34,4,883],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[34,23,902]}],candystripe:0,right:0},f:[{p:[35,3,934],t:7,e:"ui-button",a:{tooltip:[{t:2,r:"name",p:[35,23,954]},": ",{t:2,r:"desc",p:[35,33,964]}],"tooltip-side":"left",state:[{t:2,x:{r:["data.telecrystals","hovered.cost","cost","hovered.item","name"],s:'_0<_2||(_0-_1<_2&&_3!=_4)?"disabled":null'},p:[36,12,1006]}],action:"buy",params:['{"category": "',{t:2,r:"category",p:[37,40,1165]},'", "item": ',{t:2,r:"name",p:[37,63,1188]},', "cost": ',{t:2,r:"cost",p:[37,81,1206]},"}"]},v:{hover:"hover",unhover:"unhover"},f:[{t:2,r:"cost",p:[38,43,1260]}," TC"]}]}],n:52,r:"items",p:[33,2,863]}]}],n:52,r:"data.categories",p:[30,1,735]}]},e.exports=a.extend(r.exports)},{205:205}],305:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={data:{healthState:function(t){var e=this.get("data.vr_avatar.maxhealth");return t>e/1.5?"good":t>e/3?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{p:[14,1,292],t:7,e:"ui-display",f:[{t:4,f:[{p:[16,3,333],t:7,e:"ui-display",a:{title:"Virtual Avatar"},f:[{p:[17,4,373],t:7,e:"ui-section",a:{label:"Name"},f:[{t:2,r:"data.vr_avatar.name",p:[18,5,404]}]}," ",{p:[20,4,450],t:7,e:"ui-section",a:{label:"Status"},f:[{t:2,r:"data.vr_avatar.status",p:[21,5,483]}]}," ",{p:[23,4,531],t:7,e:"ui-section",a:{label:"Health"},f:[{p:[24,5,564],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.vr_avatar.maxhealth",p:[24,26,585]}],value:[{t:2,r:"adata.vr_avatar.health",p:[24,64,623]}],state:[{t:2,x:{r:["healthState","adata.vr_avatar.health"],s:"_0(_1)"},p:[24,99,658]}]},f:[{t:2,x:{r:["adata.vr_avatar.health"],s:"Math.round(_0)"},p:[24,140,699]},"/",{t:2,r:"adata.vr_avatar.maxhealth",p:[24,179,738]}]}]}]}],n:50,r:"data.vr_avatar",p:[15,2,307]},{t:4,n:51,f:[{p:[28,3,826],t:7,e:"ui-display",a:{title:"Virtual Avatar"},f:["No Virtual Avatar detected"]}],r:"data.vr_avatar"}," ",{p:[32,2,922],t:7,e:"ui-display",a:{title:"VR Commands"},f:[{p:[33,3,958],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.toggle_open"],s:'_0?"times":"plus"'},p:[33,20,975]}],action:"toggle_open"},f:[{t:2,x:{r:["data.toggle_open"],s:'_0?"Close":"Open"'},p:[34,4,1042]}," the VR Sleeper"]}," ",{t:4,f:[{p:[37,4,1144],t:7,e:"ui-button",a:{icon:"signal",action:"vr_connect"},f:["Connect to VR"]}],n:50,r:"data.isoccupant",p:[36,3,1116]}," ",{t:4,f:[{p:[42,4,1267],t:7,e:"ui-button",a:{icon:"ban",action:"delete_avatar"},f:["Delete Virtual Avatar"]}],n:50,r:"data.vr_avatar",p:[41,3,1240]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],306:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{t:4,f:[{p:[3,5,42],t:7,e:"ui-section",a:{label:[{t:2,r:"color",p:[3,24,61]},{t:2,x:{r:["wire"],s:'_0?" ("+_0+")":""'},p:[3,33,70]}],labelcolor:[{t:2,r:"color",p:[3,80,117]}],candystripe:0,right:0},f:[{p:[4,7,154],t:7,e:"ui-button",a:{action:"cut",params:['{"wire":"',{t:2,r:"color",p:[4,48,195]},'"}']},f:[{t:2,x:{r:["cut"],s:'_0?"Mend":"Cut"'},p:[4,61,208]}]}," ",{p:[5,7,252],t:7,e:"ui-button",a:{action:"pulse",params:['{"wire":"',{t:2,r:"color",p:[5,50,295]},'"}']},f:["Pulse"]}," ",{p:[6,7,333],t:7,e:"ui-button",a:{action:"attach",params:['{"wire":"',{t:2,r:"color",p:[6,51,377]},'"}']},f:[{t:2,x:{r:["attached"],s:'_0?"Detach":"Attach"'},p:[6,64,390]}]}]}],n:52,r:"data.wires",p:[2,3,16]}]}," ",{t:4,f:[{p:[11,3,508],t:7,e:"ui-display",f:[{t:4,f:[{p:[13,7,555],t:7,e:"ui-section",f:[{t:2,r:".",p:[13,19,567]}]}],n:52,r:"data.status",p:[12,5,526]}]}],n:50,r:"data.status",p:[10,1,485]}]},e.exports=a.extend(r.exports)},{205:205}],307:[function(t,e,n){(function(e){"use strict";var n=t(205),a=e.interopRequireDefault(n);t(194),t(1),t(190),t(193);var r=t(308),i=e.interopRequireDefault(r),o=t(309),s=t(191),u=t(192),p=e.interopRequireDefault(u);a["default"].DEBUG=/minified/.test(function(){}),Object.assign(Math,t(313)),window.initialize=function(e){window.tgui||(window.tgui=new i["default"]({el:"#container",data:function(){var n=JSON.parse(e);return{constants:t(310),text:t(314),config:n.config,data:n.data,adata:n.data}}}))};var c=document.getElementById("data"),l=c.textContent,f=c.getAttribute("data-ref");"{}"!==l&&(window.initialize(l),c.remove()),(0,o.act)(f,"tgui:initialize"),(0,s.loadCSS)("font-awesome.min.css");var d=new p["default"]("FontAwesome");d.check("").then(function(){return document.body.classList.add("icons")})["catch"](function(){return document.body.classList.add("no-icons")})}).call(this,t("babel/external-helpers"))},{1:1,190:190,191:191,192:192,193:193,194:194,205:205,308:308,309:309,310:310,313:313,314:314,"babel/external-helpers":"babel/external-helpers"}],308:[function(t,e,n){var a=t(205),r={exports:{}};!function(e){"use strict";var n=t(309),a=t(311);e.exports={components:{"ui-bar":t(206),"ui-button":t(207),"ui-display":t(208),"ui-input":t(209),"ui-linegraph":t(210),"ui-notice":t(211),"ui-section":t(213),"ui-subdisplay":t(214),"ui-tabs":t(215)},events:{enter:t(203).enter,space:t(203).space},transitions:{fade:t(204)},onconfig:function(){var e=this.get("config.interface"),n={airalarm:t(219),"airalarm/back":t(220),"airalarm/modes":t(221),"airalarm/scrubbers":t(222),"airalarm/status":t(223),"airalarm/thresholds":t(224),"airalarm/vents":t(225),airlock_electronics:t(226),apc:t(227),atmos_alert:t(228),atmos_control:t(229),atmos_filter:t(230),atmos_mixer:t(231),atmos_pump:t(232),brig_timer:t(233),bsa:t(234),canister:t(235),cargo:t(236),cellular_emporium:t(237),chem_dispenser:t(238),chem_heater:t(239),chem_master:t(240),clockwork_slab:t(241),codex_gigas:t(242),computer_fabricator:t(243),crayon:t(244),cryo:t(245),disposal_unit:t(246),dna_vault:t(247),eightball:t(248),emergency_shuttle_console:t(249),engraved_message:t(250),error:t(251),firealarm:t(252),gps:t(253),gulag_console:t(254),gulag_item_reclaimer:t(255),holodeck:t(256),implantchair:t(257),intellicard:t(258),keycard_auth:t(259),labor_claim_console:t(260),language_menu:t(261),launchpad_remote:t(262),mech_bay_power_console:t(263),mulebot:t(264),ntnet_relay:t(265),ntos_ai_restorer:t(266),ntos_card:t(267),ntos_configuration:t(268),ntos_file_manager:t(269),ntos_main:t(270),ntos_net_chat:t(271),ntos_net_dos:t(272),ntos_net_downloader:t(273),ntos_net_monitor:t(274),ntos_net_transfer:t(275),ntos_power_monitor:t(276),ntos_revelation:t(277),ntos_station_alert:t(278),ntos_supermatter_monitor:t(279),ntosheader:t(280),nuclear_bomb:t(281),ore_redemption_machine:t(282),pandemic:t(283),personal_crafting:t(284),portable_pump:t(285),portable_scrubber:t(286),power_monitor:t(287),radio:t(288),sat_control:t(289),shuttle_manipulator:t(290),"shuttle_manipulator/modification":t(291),"shuttle_manipulator/status":t(292),"shuttle_manipulator/templates":t(293),sleeper:t(294),slime_swap_body:t(295),smes:t(296),solar_control:t(297),space_heater:t(298),station_alert:t(299),suit_storage_unit:t(300),tank_dispenser:t(301),tanks:t(302),thermomachine:t(303),uplink:t(304),vr_sleeper:t(305),wires:t(306)};e in n?this.components["interface"]=n[e]:this.components["interface"]=n.error},oninit:function(){this.observe("config.style",function(t,e,n){t&&document.body.classList.add(t),e&&document.body.classList.remove(e)})},oncomplete:function(){if(this.get("config.locked")){var t=(0,a.lock)(window.screenLeft,window.screenTop),e=t.x,r=t.y;(0,n.winset)(this.get("config.window"),"pos",e+","+r)}(0,n.winset)("mapwindow.map","focus",!0)}}}(r),r.exports.template={v:3,t:[" "," "," "," ",{p:[56,1,1874],t:7,e:"titlebar",f:[{t:3,r:"config.title",p:[56,11,1884]}]}," ",{p:[57,1,1915],t:7,e:"main",f:[{p:[58,3,1925],t:7,e:"warnings"}," ",{p:[59,3,1940],t:7,e:"interface"}]}," ",{t:4,f:[{p:[62,3,1990],t:7,e:"resize"}],n:50,r:"config.titlebar",p:[61,1,1963]}]},r.exports.components=r.exports.components||{};var i={warnings:t(218),titlebar:t(217),resize:t(212)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{203:203,204:204,205:205,206:206,207:207,208:208,209:209,210:210,211:211,212:212,213:213,214:214,215:215,217:217,218:218,219:219,220:220,221:221,222:222,223:223,224:224,225:225,226:226,227:227,228:228,229:229,230:230,231:231,232:232,233:233,234:234,235:235,236:236,237:237,238:238,239:239,240:240,241:241,242:242,243:243,244:244,245:245,246:246,247:247,248:248,249:249,250:250,251:251,252:252,253:253,254:254,255:255,256:256,257:257,258:258,259:259,260:260,261:261,262:262,263:263,264:264,265:265,266:266,267:267,268:268,269:269,270:270,271:271,272:272,273:273,274:274,275:275,276:276,277:277,278:278,279:279,280:280,281:281,282:282,283:283,284:284,285:285,286:286,287:287,288:288,289:289,290:290,291:291,292:292,293:293,294:294,295:295,296:296,297:297,298:298,299:299,300:300,301:301,302:302,303:303,304:304,305:305,306:306,309:309,311:311}],309:[function(t,e,n){"use strict";function a(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return"byond://"+e+"?"+Object.keys(t).map(function(e){return o(e)+"="+o(t[e])}).join("&")}function r(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};window.location.href=a(Object.assign({src:t,action:e},n))}function i(t,e,n){var r;window.location.href=a((r={},r[t+"."+e]=n,r),"winset")}n.__esModule=!0,n.href=a,n.act=r,n.winset=i;var o=encodeURIComponent},{}],310:[function(t,e,n){"use strict";n.__esModule=!0;n.UI_INTERACTIVE=2,n.UI_UPDATE=1,n.UI_DISABLED=0,n.UI_CLOSE=-1},{}],311:[function(t,e,n){"use strict";function a(t,e){return 0>t?t=0:t+window.innerWidth>window.screen.availWidth&&(t=window.screen.availWidth-window.innerWidth),0>e?e=0:e+window.innerHeight>window.screen.availHeight&&(e=window.screen.availHeight-window.innerHeight),{x:t,y:e}}function r(t){if(t.preventDefault(),this.get("drag")){if(this.get("x")){var e=t.screenX-this.get("x")+window.screenLeft,n=t.screenY-this.get("y")+window.screenTop;if(this.get("config.locked")){var r=a(e,n);e=r.x,n=r.y}(0,s.winset)(this.get("config.window"),"pos",e+","+n)}this.set({x:t.screenX,y:t.screenY})}}function i(t,e){return t=Math.clamp(100,window.screen.width,t),e=Math.clamp(100,window.screen.height,e),{x:t,y:e}}function o(t){if(t.preventDefault(),this.get("resize")){if(this.get("x")){var e=t.screenX-this.get("x")+window.innerWidth,n=t.screenY-this.get("y")+window.innerHeight,a=i(e,n);e=a.x,n=a.y,(0,s.winset)(this.get("config.window"),"size",e+","+n)}this.set({x:t.screenX,y:t.screenY})}}n.__esModule=!0,n.lock=a,n.drag=r,n.sane=i,n.resize=o;var s=t(309)},{309:309}],312:[function(t,e,n){"use strict";function a(t,e){for(var n=t,a=Array.isArray(n),i=0,n=a?n:n[Symbol.iterator]();;){var o;if(a){if(i>=n.length)break;o=n[i++]}else{if(i=n.next(),i.done)break;o=i.value}var s=o;s.textContent.toLowerCase().includes(e)?(s.style.display="",r(s,e)):s.style.display="none"}}function r(t,e){for(var n=t.queryAll("section"),a=t.query("header").textContent.toLowerCase().includes(e),r=n,i=Array.isArray(r),o=0,r=i?r:r[Symbol.iterator]();;){var s;if(i){if(o>=r.length)break;s=r[o++]}else{if(o=r.next(),o.done)break;s=o.value}var u=s;a||u.textContent.toLowerCase().includes(e)?u.style.display="":u.style.display="none"}}n.__esModule=!0,n.filterMulti=a,n.filter=r},{}],313:[function(t,e,n){"use strict";function a(t,e,n){return Math.max(t,Math.min(n,e))}function r(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return+(Math.round(t+"e"+e)+"e-"+e)}n.__esModule=!0,n.clamp=a,n.fixed=r},{}],314:[function(t,e,n){"use strict";function a(t){return t[0].toUpperCase()+t.slice(1).toLowerCase()}function r(t){return t.replace(/\w\S*/g,a)}function i(t,e){for(t=""+t;t.length1){for(var u=Array(o),p=0;o>p;p++)u[p]=arguments[p+3];n.children=u}return{$$typeof:t,type:e,key:void 0===a?null:""+a,ref:null,props:n,_owner:null}}}(),e.asyncIterator=function(t){if("function"==typeof Symbol){if(Symbol.asyncIterator){var e=t[Symbol.asyncIterator];if(null!=e)return e.call(t)}if(Symbol.iterator)return t[Symbol.iterator]()}throw new TypeError("Object is not async iterable")},e.asyncGenerator=function(){function t(t){this.value=t}function e(e){function n(t,e){return new Promise(function(n,r){var s={key:t,arg:e,resolve:n,reject:r,next:null};o?o=o.next=s:(i=o=s,a(t,e))})}function a(n,i){try{var o=e[n](i),s=o.value;s instanceof t?Promise.resolve(s.value).then(function(t){a("next",t)},function(t){a("throw",t)}):r(o.done?"return":"normal",o.value)}catch(u){r("throw",u)}}function r(t,e){switch(t){case"return":i.resolve({value:e,done:!0});break;case"throw":i.reject(e);break;default:i.resolve({value:e,done:!1})}i=i.next,i?a(i.key,i.arg):o=null}var i,o;this._invoke=n,"function"!=typeof e["return"]&&(this["return"]=void 0)}return"function"==typeof Symbol&&Symbol.asyncIterator&&(e.prototype[Symbol.asyncIterator]=function(){return this}),e.prototype.next=function(t){return this._invoke("next",t)},e.prototype["throw"]=function(t){return this._invoke("throw",t)},e.prototype["return"]=function(t){return this._invoke("return",t)},{wrap:function(t){return function(){return new e(t.apply(this,arguments))}},await:function(e){return new t(e)}}}(),e.asyncGeneratorDelegate=function(t,e){function n(n,a){return r=!0,a=new Promise(function(e){e(t[n](a))}),{done:!1,value:e(a)}}var a={},r=!1;return"function"==typeof Symbol&&Symbol.iterator&&(a[Symbol.iterator]=function(){return this}),a.next=function(t){return r?(r=!1,t):n("next",t)},"function"==typeof t["throw"]&&(a["throw"]=function(t){if(r)throw r=!1,t;return n("throw",t)}),"function"==typeof t["return"]&&(a["return"]=function(t){return n("return",t)}),a},e.asyncToGenerator=function(t){return function(){var e=t.apply(this,arguments);return new Promise(function(t,n){function a(r,i){try{var o=e[r](i),s=o.value}catch(u){return void n(u)}return o.done?void t(s):Promise.resolve(s).then(function(t){a("next",t)},function(t){a("throw",t)})}return a("next")})}},e.classCallCheck=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},e.createClass=function(){function t(t,e){for(var n=0;n=0||Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=t[a]);return n},e.possibleConstructorReturn=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e},e.selfGlobal=void 0===t?self:t,e.set=function a(t,e,n,r){var i=Object.getOwnPropertyDescriptor(t,e);if(void 0===i){var o=Object.getPrototypeOf(t);null!==o&&a(o,e,n,r)}else if("value"in i&&i.writable)i.value=n;else{var s=i.set;void 0!==s&&s.call(r,n)}return n},e.slicedToArray=function(){function t(t,e){var n=[],a=!0,r=!1,i=void 0;try{for(var o,s=t[Symbol.iterator]();!(a=(o=s.next()).done)&&(n.push(o.value),!e||n.length!==e);a=!0);}catch(u){r=!0,i=u}finally{try{!a&&s["return"]&&s["return"]()}finally{if(r)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),e.slicedToArrayLoose=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t)){for(var n,a=[],r=t[Symbol.iterator]();!(n=r.next()).done&&(a.push(n.value),!e||a.length!==e););return a}throw new TypeError("Invalid attempt to destructure non-iterable instance")},e.taggedTemplateLiteral=function(t,e){return Object.freeze(Object.defineProperties(t,{raw:{value:Object.freeze(e)}}))},e.taggedTemplateLiteralLoose=function(t,e){return t.raw=e,t},e.temporalRef=function(t,e,n){if(t===n)throw new ReferenceError(e+" is not defined - temporal dead zone");return t},e.temporalUndefined={},e.toArray=function(t){return Array.isArray(t)?t:Array.from(t)},e.toConsumableArray=function(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e {{Math.floor(adata.points)}} - + {{data.message}} {{#if data.loan && !data.requestonly}} @@ -29,7 +29,7 @@ state='{{data.away && data.docked ? null : "disabled"}}' action='loan'>Loan Shuttle {{else}} - Loaned to Centcom + Loaned to CentCom {{/if}} {{/if}} diff --git a/tgui/src/interfaces/ntos_card.ract b/tgui/src/interfaces/ntos_card.ract index 582737a8a6..3d7cbba9b2 100644 --- a/tgui/src/interfaces/ntos_card.ract +++ b/tgui/src/interfaces/ntos_card.ract @@ -180,7 +180,7 @@ {{#if data.centcom_access}} - Centcom + CentCom {{#each data.centcom_jobs}} {{display_name}} From 68bbda4b4dcb1b4ae26ede8a284b6b6256ac4013 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 8 Aug 2017 09:05:50 -0500 Subject: [PATCH 157/219] Mechs can no longer open cult doors if the person inside is not a cultist --- code/__DEFINES/access.dm | 7 ++++++- code/game/machinery/doors/airlock_types.dm | 19 ++++++++++--------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/code/__DEFINES/access.dm b/code/__DEFINES/access.dm index e557a55e7c..3498887edf 100644 --- a/code/__DEFINES/access.dm +++ b/code/__DEFINES/access.dm @@ -93,4 +93,9 @@ #define ACCESS_AWAY_GENERIC1 205//Away generic access #define ACCESS_AWAY_GENERIC2 206 #define ACCESS_AWAY_GENERIC3 207 -#define ACCESS_AWAY_GENERIC4 208 \ No newline at end of file +#define ACCESS_AWAY_GENERIC4 208 + + //Special, for anything that's basically internal +#define ACCESS_BLOODCULT 250 +#define ACCESS_CLOCKCULT 251 + diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm index 72840241b3..ef54783cd3 100644 --- a/code/game/machinery/doors/airlock_types.dm +++ b/code/game/machinery/doors/airlock_types.dm @@ -368,13 +368,14 @@ overlays_file = 'icons/obj/doors/airlocks/cult/runed/overlays.dmi' assemblytype = /obj/structure/door_assembly/door_assembly_cult hackProof = TRUE - aiControlDisabled = 1 + aiControlDisabled = TRUE + req_access = list(ACCESS_BLOODCULT) var/openingoverlaytype = /obj/effect/temp_visual/cult/door var/friendly = FALSE -/obj/machinery/door/airlock/cult/New() - ..() - new openingoverlaytype(src.loc) +/obj/machinery/door/airlock/cult/Initialize() + . = ..() + new openingoverlaytype(loc) /obj/machinery/door/airlock/cult/canAIControl(mob/user) return (iscultist(user) && !isAllPowerCut()) @@ -435,17 +436,17 @@ opacity = 1 hackProof = TRUE aiControlDisabled = TRUE + req_access = list(ACCESS_CLOCKCULT) use_power = FALSE resistance_flags = FIRE_PROOF | ACID_PROOF damage_deflection = 30 normal_integrity = 240 var/construction_state = GEAR_SECURE //Pinion airlocks have custom deconstruction -/obj/machinery/door/airlock/clockwork/New() - ..() - var/turf/T = get_turf(src) - new /obj/effect/temp_visual/ratvar/door(T) - new /obj/effect/temp_visual/ratvar/beam/door(T) +/obj/machinery/door/airlock/clockwork/Initialize() + . = ..() + new /obj/effect/temp_visual/ratvar/door(loc) + new /obj/effect/temp_visual/ratvar/beam/door(loc) change_construction_value(5) /obj/machinery/door/airlock/clockwork/Destroy() From fb86e035448445dafb20e3f86ba65189bd6dccf4 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 8 Aug 2017 09:05:54 -0500 Subject: [PATCH 158/219] Belligerent now has a visible indicator --- .../clock_scriptures/scripture_drivers.dm | 1 + .../objects/effects/temporary_visuals/clockcult.dm | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm index 7818f9fae8..fa61e3ca31 100644 --- a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm @@ -21,6 +21,7 @@ /datum/clockwork_scripture/channeled/belligerent/chant_effects(chant_number) for(var/mob/living/carbon/C in hearers(7, invoker)) C.apply_status_effect(STATUS_EFFECT_BELLIGERENT) + new /obj/effect/temp_visual/ratvar/belligerent(get_turf(invoker)) return TRUE diff --git a/code/game/objects/effects/temporary_visuals/clockcult.dm b/code/game/objects/effects/temporary_visuals/clockcult.dm index c3894b8300..b1068b0038 100644 --- a/code/game/objects/effects/temporary_visuals/clockcult.dm +++ b/code/game/objects/effects/temporary_visuals/clockcult.dm @@ -62,6 +62,17 @@ /obj/effect/temp_visual/ratvar/grille/broken icon_state = "ratvarbrokengrilleglow" +/obj/effect/temp_visual/ratvar/belligerent + layer = ABOVE_MOB_LAYER + icon = 'icons/obj/clockwork_objects.dmi' + icon_state = "belligerent_eye" + pixel_y = 20 + duration = 20 + +/obj/effect/temp_visual/ratvar/belligerent_cast/Initialize() + . = ..() + animate(src, alpha = 0, time = duration, easing = EASE_OUT) + /obj/effect/temp_visual/ratvar/mending_mantra layer = ABOVE_MOB_LAYER duration = 20 @@ -88,7 +99,7 @@ . = ..() pixel_x = rand(-8, 8) pixel_y = rand(-10, 10) - animate(src, alpha = 0, time = 3, easing = EASE_OUT) + animate(src, alpha = 0, time = duration, easing = EASE_OUT) /obj/effect/temp_visual/ratvar/prolonging_prism icon = 'icons/effects/64x64.dmi' From fcd1a2dc86ab4eac1c47488bbfc8d51fc1e5693e Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 8 Aug 2017 09:05:58 -0500 Subject: [PATCH 159/219] Oocky in icky descriptions --- code/game/objects/effects/contraband.dm | 2 +- code/modules/library/soapstone.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/effects/contraband.dm b/code/game/objects/effects/contraband.dm index 663fed74fc..5778f5f42e 100644 --- a/code/game/objects/effects/contraband.dm +++ b/code/game/objects/effects/contraband.dm @@ -350,7 +350,7 @@ /obj/structure/sign/poster/contraband/free_drone name = "Free Drone" - desc = "This poster commemorates the bravery of the rogue drone banned by CentComm." + desc = "This poster commemorates the bravery of the rogue drone; once exiled, and then ultimately destroyed by CentCom." icon_state = "poster35" /obj/structure/sign/poster/contraband/busty_backdoor_xeno_babes_6 diff --git a/code/modules/library/soapstone.dm b/code/modules/library/soapstone.dm index 26c88883df..cd069ec44d 100644 --- a/code/modules/library/soapstone.dm +++ b/code/modules/library/soapstone.dm @@ -1,6 +1,6 @@ /obj/item/soapstone name = "soapstone" - desc = "Leave informative messages for the crew, including the crew of future shifts!\nEven if out of uses, it can still be used to remove messages.\n(Not suitable for engraving on shuttles, off station or on cats. Side effects may include beatings, bannings and orbital bombardment.)" + desc = "Leave informative messages for the crew, including the crew of future shifts!\nEven if out of uses, it can still be used to remove messages.\n(Not suitable for engraving on shuttles, off station or on cats. Side effects may include prompt beatings, psychotic clown incursions, and/or orbital bombardment.)" icon = 'icons/obj/items.dmi' icon_state = "soapstone" throw_speed = 3 From 9e71a0bdb10612858b887c4cfccd7d325d632769 Mon Sep 17 00:00:00 2001 From: ktccd Date: Tue, 8 Aug 2017 17:41:27 +0200 Subject: [PATCH 160/219] Lots of genital changes Penile masturbation is fixed again. Masturbation cooldown set to 5 seconds once again, as intended. mob_masturbate is now mob_climax(forced_climax=FALSE). It can be used to masturbate alone, cum inside someone partially or completely and can be used to trigger a forced orgasm through all eligible genitals. Hexacrocin (Aphro PLUS) now increases your minimum arousal over time when overdosing, up to your maximum arousal level at which point you are constantly aroused. When fully aroused, hexacrocin overdose will force an orgasm. Hexacamhor (ANaphro PLUS) overdose now decreases minimum arousal over time, down to 0. Added to_chat feedback to the player when their libido changes permanently. Changed old "src <<" messages to use the new to_chat in citadel chems and citadel arousal, so text should display now. Changed names of genitals to be capitalized, to avoid the code automatically calling them "The X". Masturbation also has more helpful feedback messages when you lack the correct organs. The old force_orgasm proc is removed, use mob_climax(forced_climax=TRUE) instead. --- code/citadel/cit_arousal.dm | 160 ++++++++++++++++++++++++------ code/citadel/cit_reagents.dm | 30 +++--- code/citadel/organs/breasts.dm | 2 +- code/citadel/organs/eggsack.dm | 2 +- code/citadel/organs/ovipositor.dm | 2 +- code/citadel/organs/penis.dm | 2 +- code/citadel/organs/testicles.dm | 2 +- code/citadel/organs/vagina.dm | 2 +- code/citadel/organs/womb.dm | 4 +- 9 files changed, 155 insertions(+), 51 deletions(-) diff --git a/code/citadel/cit_arousal.dm b/code/citadel/cit_arousal.dm index 12245c05d5..cf47dab1da 100644 --- a/code/citadel/cit_arousal.dm +++ b/code/citadel/cit_arousal.dm @@ -6,7 +6,7 @@ var/arousal_rate = 1 //The base rate that arousal will increase in this mob. var/arousal_loss_rate = 1 //How easily arousal can be relieved for this mob. var/canbearoused = FALSE //Mob-level disabler for arousal. Starts off and can be enabled as features are added for different mob types. - var/mb_cd_length = 50 //5 second cooldown for masturbating because fuck spam + var/mb_cd_length = 100 //5 second cooldown for masturbating because fuck spam. var/mb_cd_timer = 0 //The timer itself /mob/living/carbon/human @@ -150,14 +150,14 @@ return 0 var/mob/living/M = usr if(M.canbearoused) - M.mob_masturbate() + M.mob_climax() return 1 else - M << "Arousal is disabled. Feature is unavailable." + to_chat(M, "Arousal is disabled. Feature is unavailable.") -/mob/living/proc/mob_masturbate()//This is just so I can test this shit without being forced to add actual content to get rid of arousal. Will be a very basic proc for a while. +/mob/living/proc/mob_climax()//This is just so I can test this shit without being forced to add actual content to get rid of arousal. Will be a very basic proc for a while. set name = "Masturbate" set category = "IC" if(canbearoused && !restrained() && !stat) @@ -179,45 +179,93 @@ PoolOrNew(/obj/effect/decal/cleanable/femcum, loc) */ else - src << "You aren't aroused enough for that." + to_chat(src, "You aren't aroused enough for that.") -/mob/living/carbon/human/mob_masturbate() +/mob/living/carbon/human/mob_climax(forced_climax=FALSE) //Forced is instead of the other proc, makes you cum if you have the tools for it, ignoring restraints if(mb_cd_timer > world.time) - src << "You need to wait [round((mb_cd_timer - world.time)/(20))] seconds before you can do that again!" + if(!forced_climax) //Don't spam the message to the victim if forced to come too fast + to_chat(src, "You need to wait [round((mb_cd_timer - world.time)/(20))] seconds before you can do that again!") return + mb_cd_timer = (world.time + mb_cd_length) var/list/genitals_list = list() var/obj/item/organ/genital/SG = null//originally selected_genital var/list/containers_list = list() var/obj/item/weapon/reagent_containers/SC = null var/datum/reagents/fluid_source = null var/into_container = 0 - var/arms = get_num_arms() - var/free_hands = arms + var/free_hands = get_num_arms() //arms was only used to know if we had ANY at all var/total_cum = 0 var/finished = 0 var/mb_time = 30 - mb_cd_timer = (world.time + mb_cd_length) if(canbearoused && has_dna()) - if(restrained()) - src << "You can't do that while restrained!" + if(stat==2) + to_chat(src, "You can't do that while dead!") return - if(stat) - src << "You must be conscious to do that!" + if(forced_climax) //Something forced us to cum, this is not a masturbation thing and does not progress to the other checks + for(var/obj/item/organ/genital/G in internal_organs) + if(G.can_masturbate_with) //All capable genitals will orgasm with this + var/unable_to_come = FALSE + switch(G.type) + if(/obj/item/organ/genital/penis) + var/obj/item/organ/genital/penis/P = G + if(!P.linked_balls) + unable_to_come = TRUE + else + fluid_source = P.linked_balls.reagents + + + if(/obj/item/organ/genital/vagina) + var/obj/item/organ/genital/vagina/V = G + if(!V.linked_womb) + unable_to_come = TRUE + else + fluid_source = V.linked_womb.reagents + else //Weird, undefined genitalia behaviour + unable_to_come = TRUE + + if(unable_to_come) + src.visible_message("[src] shudders, their [G.name] unable to cum.", \ + "Your [G.name] cannot cum, giving no relief.", \ + "Your [G.name] cannot cum, giving no relief.") + else + if(fluid_source) + total_cum = fluid_source.total_volume + src.visible_message("[src] looks like they're about to cum.", \ + "You feel yourself about to orgasm.", \ + "You feel yourself about to orgasm.") + if(do_after(src, mb_time, target = src)) + if(total_cum > 5) + fluid_source.reaction(src.loc, TOUCH, 1, 0) + fluid_source.clear_reagents() + fluid_source = null //cleanup so this can be used for the next genitalia + + src.visible_message("[src] orgasms, cumming[istype(src.loc, /turf/open/floor) ? " onto [src.loc]" : ""]!", \ + "You're forced to cum[istype(src.loc, /turf/open/floor) ? " onto [src.loc]" : ""] with your [G].", \ + "Your [G] have been forced to climax.") + finished = 1 + if(finished) + setArousalLoss(min_arousal) + return //Do not proceed to masturbating if all genitals have been forced to orgasm. + if(stat==1) //Sleeping people can be forced chemically or with electrical stimulants, for example. + to_chat(src, "You must be conscious to do that!") + return + if(restrained()) + to_chat(src, "You can't do that while restrained!") return if(getArousalLoss() < 33)//flat number instead of percentage - src << "You aren't aroused enough for that!" + to_chat(src, "You aren't aroused enough for that!") return if(!is_groin_exposed()) - src << "You need to undress, first!" + to_chat(src, "You need to undress, first!") return - if(!arms) - src << "You need at least one arm." + if(!free_hands) + to_chat(src, "You need at least one free arm.") return for(var/helditem in held_items)//how many hands are free if(isobj(helditem)) free_hands-- if(free_hands <= 0) - src << "You need at least one free hand." + to_chat(src, "You need at least one free hand.") return for(var/obj/item/organ/genital/G in internal_organs) if(G.can_masturbate_with)//filter out what you can't masturbate with @@ -240,12 +288,12 @@ if(/obj/item/organ/genital/penis) var/obj/item/organ/genital/penis/P = SG if(!P.linked_balls) - src << "Grow a pair!" + to_chat(src, "You need a pair of testicles to do this.") return fluid_source = P.linked_balls.reagents total_cum = fluid_source.total_volume if(into_container)//into a glass or beaker or whatever - src.visible_message("[src] starts [pick("jerking off","stroking")] their [SG] over [SC].", \ + src.visible_message("[src] starts [pick("jerking off","stroking")] their [SG.name] over [SC].", \ "You start jerking off over [SC.name].", \ "You start masturbating.") if(do_after(src, mb_time, target = src) && in_range(src, SC)) @@ -254,16 +302,71 @@ "You cum into [SC].", \ "You have relieved yourself.") finished = 1 - + else //Not in a container + if(src.pulling) + if(iscarbon(src.pulling)) + var/mob/living/carbon/C = src.pulling + if(!C.is_groin_exposed()) + to_chat(src, "You must undress someone to climax inside them.") + return + if(isliving(src.pulling)) //Gotta be alive to fuck it, don't wanna have to code fucking objects that ain't containers... + var/mob/living/partner = src.pulling + src.visible_message("[src] is about to climax inside [partner]!", \ + "You're about to climax inside [partner]!", \ + "You're preparing to climax inside someone!") + switch(grab_state) + if(GRAB_PASSIVE) + if(do_after(src, mb_time, target = src) && in_range(src, partner)) + var/spillage = 0.5 //Leaks a bit on passive grab + var/did_spill = FALSE + fluid_source.trans_to(partner, total_cum*(1-spillage)) + total_cum = total_cum*spillage + if(total_cum > 5) + fluid_source.reaction(partner.loc, TOUCH, 1, 0) + did_spill = TRUE + fluid_source.clear_reagents() + + src.visible_message("[src] ejaculates inside [partner][did_spill ? ", overflowing and spilling":""]!", \ + "You ejaculate inside [partner][did_spill ? ", spilling out of them":""].", \ + "You have climaxed inside someone[did_spill ? ", spilling out of them":""].") + finished = 1 + else //Aggressive or higher + if(do_after(src, mb_time, target = src) && in_range(src, partner)) + var/spillage = 0.0 //Leakproofing seals + fluid_source.trans_to(partner, total_cum*(1-spillage)) + total_cum = total_cum*spillage + if(total_cum > 5) + fluid_source.reaction(partner.loc, TOUCH, 1, 0) + fluid_source.clear_reagents() + + src.visible_message("[src] ejaculates inside [partner], spilling nothing!", \ + "You ejaculate inside [partner], spilling nothing.", \ + "You have climaxed inside someone, spilling nothing.") + finished = 1 + //Don't care, not coding you fucking a unanchored girder + else //No pulling, or pulling non-living things + src.visible_message("[src] starts [pick("jerking off","stroking")] their [SG].", \ + "You start masturbating.", \ + "You start masturbating.") + if(do_after(src, mb_time, target = src)) + if(total_cum > 5) + fluid_source.reaction(src.loc, TOUCH, 1, 0) + fluid_source.clear_reagents() + + src.visible_message("[src] orgasms, cumming[istype(src.loc, /turf/open/floor) ? " onto [src.loc]" : ""]!", \ + "You cum[istype(src.loc, /turf/open/floor) ? " onto [src.loc]" : ""].", \ + "You have relieved yourself.") + finished = 1 + if(/obj/item/organ/genital/vagina) var/obj/item/organ/genital/vagina/V = SG if(!V.linked_womb) - src << "No womb!" + to_chat(src, "You need a womb to do this.") return fluid_source = V.linked_womb.reagents total_cum = fluid_source.total_volume if(into_container)//into a glass or beaker or whatever - src.visible_message("[src] starts fingering their vagina over [SC].", \ + src.visible_message("[src] starts fingering their [SG.name] over [SC].", \ "You start fingering over [SC.name].", \ "You start masturbating.") if(do_after(src, mb_time, target = src) && in_range(src, SC)) @@ -272,7 +375,7 @@ "You cum into [SC].", \ "You have relieved yourself.") finished = 1 - + else//not into a container src.visible_message("[src] starts fingering their vagina.", \ "You start fingering your vagina.", \ @@ -297,10 +400,5 @@ setArousalLoss(min_arousal) else - src << "You have no genitals!" + to_chat(src, "You have no genitals!") return - -/mob/living/carbon/proc/force_orgasm(intensity) - if(canbearoused && has_dna() && (has_penis() || has_vagina())) - return 1 - return 0 diff --git a/code/citadel/cit_reagents.dm b/code/citadel/cit_reagents.dm index 2f421542ae..428729d30f 100644 --- a/code/citadel/cit_reagents.dm +++ b/code/citadel/cit_reagents.dm @@ -105,7 +105,7 @@ M.emote(pick("moan","blush")) if(prob(5)) var/aroused_message = pick("You feel frisky.", "You're having trouble suppressing your urges.", "You feel in the mood.") - M << "[aroused_message]" + to_chat(M, "[aroused_message]") ..() /datum/reagent/aphrodisiacplus @@ -128,15 +128,13 @@ else M.emote(pick("moan","blush")) if(prob(5)) + var/aroused_message if(M.getArousalLoss() > 90) - var/aroused_message = pick("You need to fuck someone!", "You're bursting with sexual tension!", "You can't get sex off your mind!") - M << "[aroused_message]" + aroused_message = pick("You need to fuck someone!", "You're bursting with sexual tension!", "You can't get sex off your mind!") else - var/aroused_message = pick("You feel a bit hot.", "You feel strong sexual urges.", "You feel in the mood.", "You're ready to go down on someone.") - M << "[aroused_message]" -// if(iscarbon(M) && has_dna(M)) -// M.force_ejaculation() - ..() + aroused_message = pick("You feel a bit hot.", "You feel strong sexual urges.", "You feel in the mood.", "You're ready to go down on someone.") + to_chat(M, "[aroused_message]") + /datum/reagent/aphrodisiacplus/addiction_act_stage2(mob/living/M) if(prob(30)) M.adjustBrainLoss(2) @@ -152,11 +150,17 @@ ..() /datum/reagent/aphrodisiacplus/overdose_process(mob/living/M) - if(prob(66)) + if(prob(33)) + if(M.getArousalLoss() >= 100 && ishuman(M) && M.has_dna()) + var/mob/living/carbon/human/H = M + to_chat(H, "Your libido is going haywire!") + H.mob_climax(forced_climax=TRUE) if(M.min_arousal < 50) M.min_arousal += 1 - if(M.max_arousal < 200) - M.max_arousal += 1 + to_chat(M, "You're having a hard time thinkin about things other than sex!") + if(M.min_arousal < M.max_arousal) + M.min_arousal += 1 + to_chat(M, "You feel your libido permanently increasing.") M.adjustArousalLoss(2) ..() @@ -193,8 +197,10 @@ if(prob(33)) if(M.min_arousal > 0) M.min_arousal -= 1 - if(M.max_arousal > 75) + to_chat(M, "You feel your libido returning to more normal levels.") + if(M.min_arousal > 50) M.min_arousal -= 1 + to_chat(M, "You feel like your overactive libido is calming down.") M.adjustArousalLoss(-2) ..() diff --git a/code/citadel/organs/breasts.dm b/code/citadel/organs/breasts.dm index 5e3f312199..ce45b88cfb 100644 --- a/code/citadel/organs/breasts.dm +++ b/code/citadel/organs/breasts.dm @@ -1,5 +1,5 @@ /obj/item/organ/genital/breasts - name = "breasts" + name = "Breasts" desc = "Female milk producing organs." icon_state = "breasts" icon = 'code/citadel/icons/breasts.dmi' diff --git a/code/citadel/organs/eggsack.dm b/code/citadel/organs/eggsack.dm index 1e53240e1a..718a353b87 100644 --- a/code/citadel/organs/eggsack.dm +++ b/code/citadel/organs/eggsack.dm @@ -1,5 +1,5 @@ /obj/item/organ/genital/eggsack - name = "egg sack" + name = "Egg sack" desc = "An egg producing reproductive organ." icon_state = "egg_sack" icon = 'code/citadel/icons/ovipositor.dmi' diff --git a/code/citadel/organs/ovipositor.dm b/code/citadel/organs/ovipositor.dm index 9e46cff91c..3d684ee387 100644 --- a/code/citadel/organs/ovipositor.dm +++ b/code/citadel/organs/ovipositor.dm @@ -1,5 +1,5 @@ /obj/item/organ/genital/ovipositor - name = "ovipositor" + name = "Ovipositor" desc = "An egg laying reproductive organ." icon_state = "ovi_knotted_2" icon = 'code/citadel/icons/ovipositor.dmi' diff --git a/code/citadel/organs/penis.dm b/code/citadel/organs/penis.dm index 3d99d6c939..d687b3e76a 100644 --- a/code/citadel/organs/penis.dm +++ b/code/citadel/organs/penis.dm @@ -1,5 +1,5 @@ /obj/item/organ/genital/penis - name = "penis" + name = "Penis" desc = "A male reproductive organ." icon_state = "penis" icon = 'code/citadel/icons/penis.dmi' diff --git a/code/citadel/organs/testicles.dm b/code/citadel/organs/testicles.dm index 71e591f930..a759aeab52 100644 --- a/code/citadel/organs/testicles.dm +++ b/code/citadel/organs/testicles.dm @@ -1,5 +1,5 @@ /obj/item/organ/genital/testicles - name = "testicles" + name = "Testicles" desc = "A male reproductive organ." icon_state = "testicles" icon = 'code/citadel/icons/penis.dmi' diff --git a/code/citadel/organs/vagina.dm b/code/citadel/organs/vagina.dm index c1924a3067..fa1f00bda2 100644 --- a/code/citadel/organs/vagina.dm +++ b/code/citadel/organs/vagina.dm @@ -1,5 +1,5 @@ /obj/item/organ/genital/vagina - name = "vagina" + name = "Vagina" desc = "A female reproductive organ." icon = 'code/citadel/icons/vagina.dmi' icon_state = "vagina" diff --git a/code/citadel/organs/womb.dm b/code/citadel/organs/womb.dm index e1ea02a230..3ebe5c2f98 100644 --- a/code/citadel/organs/womb.dm +++ b/code/citadel/organs/womb.dm @@ -1,5 +1,5 @@ /obj/item/organ/genital/womb - name = "womb" + name = "Womb" desc = "A female reproductive organ." icon = 'code/citadel/icons/vagina.dmi' icon_state = "womb" @@ -10,7 +10,7 @@ fluid_id = "femcum" producing = TRUE var/obj/item/organ/genital/vagina/linked_vag - + /obj/item/organ/genital/womb/Initialize() . = ..() reagents.add_reagent(fluid_id, fluid_max_volume) From c0cc42821671ac9caebb115863c2bd64b89fcbb5 Mon Sep 17 00:00:00 2001 From: ktccd Date: Tue, 8 Aug 2017 19:45:06 +0200 Subject: [PATCH 161/219] Makes mindtransfers respect arousal Clients arousal preferences are now taken into account when transferring minds. --- code/datums/mind.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 3515440499..7017149d53 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -120,6 +120,10 @@ transfer_martial_arts(new_character) if(active || force_key_move) new_character.key = key //now transfer the key to link the client to our new body + if(isliving(new_character)) //New humans and such are by default enabled arousal. Let's always use the new mind's prefs. + var/mob/living/L = new_character + L.canbearoused = L.client.prefs.arousable //Technically this should make taking over a character mean the body gain the new minds setting... + L.update_arousal_hud() //Removes the old icon /datum/mind/proc/store_memory(new_text) memory += "[new_text]
" From 5eadc197cf36529d616696de7680e3cc6cf7c82f Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 8 Aug 2017 14:59:10 -0500 Subject: [PATCH 162/219] Fix RCL loading --- code/game/objects/items/weapons/RCL.dm | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/code/game/objects/items/weapons/RCL.dm b/code/game/objects/items/weapons/RCL.dm index 623a1f9b78..495af046af 100644 --- a/code/game/objects/items/weapons/RCL.dm +++ b/code/game/objects/items/weapons/RCL.dm @@ -23,17 +23,20 @@ /obj/item/weapon/twohanded/rcl/attackby(obj/item/W, mob/user) if(istype(W, /obj/item/stack/cable_coil)) var/obj/item/stack/cable_coil/C = W - if(user.transferItemToLoc(W, src)) - loaded = W - loaded.max_amount = max_amount //We store a lot. - else - to_chat(user, "[src] is stuck to your hand!") - return + + if(!loaded) + if(!user.transferItemToLoc(W, src)) + to_chat(user, "[src] is stuck to your hand!") + return + else + loaded = W //W.loc is src at this point. + loaded.max_amount = max_amount //We store a lot. + return if(loaded.amount < max_amount) - var/amount = min(loaded.amount + C.amount, max_amount) - C.use(amount - loaded.amount) - loaded.amount = amount + var/transfer_amount = min(max_amount - loaded.amount, C.amount) + C.use(transfer_amount) + loaded.amount += transfer_amount else return update_icon() From 0a7a8fcf90746ceba3ba3ec61533e84ee03a3c6b Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 8 Aug 2017 15:04:21 -0500 Subject: [PATCH 163/219] Fixes repairing jumpsuits. --- code/modules/clothing/clothing.dm | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 013fbd8bc4..bd6ffe5f67 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -538,13 +538,15 @@ BLIND // can't see anything if(accessory_overlay) . += accessory_overlay -/obj/item/clothing/under/attackby(obj/item/W, mob/user, params) - if((has_sensor == BROKEN_SENSORS) && istype(W, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/C = W +/obj/item/clothing/under/attackby(obj/item/I, mob/user, params) + if((has_sensor == BROKEN_SENSORS) && istype(I, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/C = I C.use(1) has_sensor = HAS_SENSORS to_chat(user,"You repair the suit sensors on [src] with [C].") return 1 + if(!attach_accessory(I, user)) + return ..() /obj/item/clothing/under/update_clothes_damaged_state(damaging = TRUE) ..() @@ -591,10 +593,6 @@ BLIND // can't see anything ..() -/obj/item/clothing/under/attackby(obj/item/I, mob/user, params) - if(!attach_accessory(I, user)) - ..() - /obj/item/clothing/under/proc/attach_accessory(obj/item/I, mob/user, notifyAttach = 1) . = FALSE if(istype(I, /obj/item/clothing/accessory)) From 2004d399c9e6d92cfb4ddaa966666255ade622ea Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 8 Aug 2017 22:26:10 -0500 Subject: [PATCH 164/219] Makes dummy humans queue instead of harddel --- code/modules/mob/living/carbon/human/human.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 74bc902be5..4424e80ce8 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -9,11 +9,11 @@ real_name = "Test Dummy" status_flags = GODMODE|CANPUSH -/mob/living/carbon/human/dummy/New(loc) +INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy) + +/mob/living/carbon/human/dummy/Destroy() ..() - if(!initialized) - args[1] = FALSE - Initialize(arglist(args)) + return QDEL_HINT_QUEUE /mob/living/carbon/human/dummy/Life() return From 04fcf872a53be3c4f47a639ac1c509a78f30659a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 9 Aug 2017 02:19:26 -0500 Subject: [PATCH 165/219] Automatic changelog generation for PR #2298 [ci skip] --- html/changelogs/AutoChangeLog-pr-2298.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2298.yml diff --git a/html/changelogs/AutoChangeLog-pr-2298.yml b/html/changelogs/AutoChangeLog-pr-2298.yml new file mode 100644 index 0000000000..3d12cf9dee --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2298.yml @@ -0,0 +1,4 @@ +author: "ktccd" +delete-after: True +changes: + - bugfix: "Preys being digested now get their digestion message" From 33415e935b4ba5ada7de0d470917ef2cca6c4934 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 9 Aug 2017 02:19:38 -0500 Subject: [PATCH 166/219] Automatic changelog generation for PR #2299 [ci skip] --- html/changelogs/AutoChangeLog-pr-2299.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2299.yml diff --git a/html/changelogs/AutoChangeLog-pr-2299.yml b/html/changelogs/AutoChangeLog-pr-2299.yml new file mode 100644 index 0000000000..7f5e8730dc --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2299.yml @@ -0,0 +1,4 @@ +author: "JStheguy" +delete-after: True +changes: + - imageadd: "Laptops now have actual sprites for using the supermatter monitoring instead of defaulting to a generic one." From fbfd9c438399289910545ebea91936d33749d1e9 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 9 Aug 2017 02:19:57 -0500 Subject: [PATCH 167/219] Automatic changelog generation for PR #2301 [ci skip] --- html/changelogs/AutoChangeLog-pr-2301.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2301.yml diff --git a/html/changelogs/AutoChangeLog-pr-2301.yml b/html/changelogs/AutoChangeLog-pr-2301.yml new file mode 100644 index 0000000000..2924b5a5ad --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2301.yml @@ -0,0 +1,4 @@ +author: "LetterJay" +delete-after: True +changes: + - rscadd: "Adds bear ears and bear tails (Sprites courtesy of LizziePup)" From a353b16453f52b9fd245d20845f337b43faeb6b8 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 9 Aug 2017 02:20:53 -0500 Subject: [PATCH 168/219] Automatic changelog generation for PR #2305 [ci skip] --- html/changelogs/AutoChangeLog-pr-2305.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2305.yml diff --git a/html/changelogs/AutoChangeLog-pr-2305.yml b/html/changelogs/AutoChangeLog-pr-2305.yml new file mode 100644 index 0000000000..fbd7208358 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2305.yml @@ -0,0 +1,4 @@ +author: "Joan" +delete-after: True +changes: + - imageadd: "Belligerent now has a visible indicator over the caster." From defbaf18dab5e91e1878f9a4f147b93c073a4852 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 9 Aug 2017 02:21:49 -0500 Subject: [PATCH 169/219] Automatic changelog generation for PR #2308 [ci skip] --- html/changelogs/AutoChangeLog-pr-2308.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2308.yml diff --git a/html/changelogs/AutoChangeLog-pr-2308.yml b/html/changelogs/AutoChangeLog-pr-2308.yml new file mode 100644 index 0000000000..1d367c4d84 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2308.yml @@ -0,0 +1,7 @@ +author: "ktccd" +delete-after: True +changes: + - rscadd: "Penises can now climax inside someone instead of only be used for masturbating. Use passive grab to be able to spill on the floor, aggressive or higher grab to not spill a drop." + - rscadd: "Hexacrocin and hexacamphor now adjusts your arousal up respectively down when overdosed. Hexacrocin overdoses can force orgasms at high arousal." + - bugfix: "Penises can now be used for masturbation without containers again." + - bugfix: "Citadel chems now sends you feedback messages properly when in effect." From fdaea528d0bcf1fee70ef18b4abf551e3914b188 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 9 Aug 2017 02:22:04 -0500 Subject: [PATCH 170/219] Automatic changelog generation for PR #2309 [ci skip] --- html/changelogs/AutoChangeLog-pr-2309.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2309.yml diff --git a/html/changelogs/AutoChangeLog-pr-2309.yml b/html/changelogs/AutoChangeLog-pr-2309.yml new file mode 100644 index 0000000000..89ceed6223 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2309.yml @@ -0,0 +1,4 @@ +author: "ktccd" +delete-after: True +changes: + - bugfix: "Cloner and other mind-transfer things now respect client arousal settings." From 943599c5f1cb2bf83913e1afe566a135b5ee138a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 9 Aug 2017 03:05:47 -0500 Subject: [PATCH 171/219] Clock powerdrain now works on any device with a powercell --- .../clock_cult/clock_helpers/clock_powerdrain.dm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/code/game/gamemodes/clock_cult/clock_helpers/clock_powerdrain.dm b/code/game/gamemodes/clock_cult/clock_helpers/clock_powerdrain.dm index ef1099d3e0..9380e46487 100644 --- a/code/game/gamemodes/clock_cult/clock_helpers/clock_powerdrain.dm +++ b/code/game/gamemodes/clock_cult/clock_helpers/clock_powerdrain.dm @@ -1,5 +1,14 @@ //horrifying power drain proc made for clockcult's power drain in lieu of six istypes or six for(x in view) loops /atom/movable/proc/power_drain(clockcult_user) + var/obj/item/weapon/stock_parts/cell/cell = get_cell() + if(cell) + return cell.power_drain(clockcult_user) + return 0 + +/obj/item/weapon/melee/baton/power_drain(clockcult_user) //balance memes + return 0 + +/obj/item/weapon/gun/power_drain(clockcult_user) //balance memes return 0 /obj/machinery/power/apc/power_drain(clockcult_user) From 0b516b57590a5b8e32ca4a7b17bfd1351c7a957d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 9 Aug 2017 03:24:08 -0500 Subject: [PATCH 172/219] Makes [WIP] and [DNM] case insensitive for autotagging --- tools/github_webhook_processor.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/github_webhook_processor.php b/tools/github_webhook_processor.php index d73970f04b..4ccdafa3f3 100644 --- a/tools/github_webhook_processor.php +++ b/tools/github_webhook_processor.php @@ -162,10 +162,10 @@ function tag_pr($payload, $opened) { $tags[] = $tag; //only maintners should be able to remove these - if(strpos($title, '[DNM]') !== FALSE) + if(strpos($lowertitle, '[dnm]') !== FALSE) $tags[] = 'Do Not Merge'; - if(strpos($title, '[WIP]') !== FALSE) + if(strpos($lowertitle, '[wip]') !== FALSE) $tags[] = 'Work In Progress'; $url = $payload['pull_request']['base']['repo']['url'] . '/issues/' . $payload['pull_request']['number'] . '/labels'; From 83c546f1430f59c585ac9d818a047d52e0f29a29 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 9 Aug 2017 03:26:14 -0500 Subject: [PATCH 173/219] Fixes swarmer shells having no ghost notifications --- code/game/gamemodes/miniantags/bot_swarm/swarmer.dm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm index 502b02c7f7..68ed9abd35 100644 --- a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm +++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm @@ -29,6 +29,12 @@ 3. Biological resources will be harvested at a later date; do not harm them. "} +/obj/effect/mob_spawn/swarmer/Initialize() + . = ..() + var/area/A = get_area(src) + if(A) + notify_ghosts("A swarmer shell has been created in [A.name].", 'sound/effects/bin_close.ogg', source = src, action = NOTIFY_ATTACK, flashwindow = FALSE) + /obj/effect/mob_spawn/swarmer/attack_hand(mob/living/user) to_chat(user, "Picking up the swarmer may cause it to activate. You should be careful about this.") From 805aa06807fcf20efd2896ef9e97615a50eb3978 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Wed, 9 Aug 2017 11:23:09 -0500 Subject: [PATCH 174/219] adds bear tails/ears to humans as well --- .../new_player/sprite_accessories_Citadel.dm | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm b/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm index 8e724f1aa5..55572d8187 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm @@ -31,6 +31,16 @@ color_src = 0 icon = 'icons/mob/mam_bodyparts.dmi' +/datum/sprite_accessory/mam_tails/human/bear + name = "Bear" + icon_state = "bear" + icon = 'icons/mob/mam_bodyparts.dmi' + +/datum/sprite_accessory/mam_ears/human/bear + name = "Bear" + icon_state = "bear" + icon = 'icons/mob/mam_bodyparts.dmi' + /datum/sprite_accessory/tails/human/catbig name = "Cat, Big" icon_state = "catbig" @@ -234,16 +244,9 @@ extra = 1 extra_color_src = MUTCOLORS2 -/datum/sprite_accessory/mam_ears/catbig - name = "Cat, Big" - icon_state = "cat" - hasinner = 1 - icon = 'icons/mob/mutant_bodyparts.dmi' - /datum/sprite_accessory/mam_tails/bear name = "Bear" icon_state = "bear" - extra_color_src = MUTCOLORS2 icon = 'icons/mob/mam_bodyparts.dmi' /datum/sprite_accessory/mam_ears/bear @@ -251,6 +254,12 @@ icon_state = "bear" icon = 'icons/mob/mam_bodyparts.dmi' +/datum/sprite_accessory/mam_ears/catbig + name = "Cat, Big" + icon_state = "cat" + hasinner = 1 + icon = 'icons/mob/mutant_bodyparts.dmi' + /datum/sprite_accessory/mam_tails/catbig name = "Cat, Big" icon_state = "catbig" From 014487c808cefbac2164bcb450ac741333e20c65 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 9 Aug 2017 11:25:04 -0500 Subject: [PATCH 175/219] Automatic changelog generation for PR #2319 [ci skip] --- html/changelogs/AutoChangeLog-pr-2319.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2319.yml diff --git a/html/changelogs/AutoChangeLog-pr-2319.yml b/html/changelogs/AutoChangeLog-pr-2319.yml new file mode 100644 index 0000000000..4ca8998875 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2319.yml @@ -0,0 +1,4 @@ +author: "Xhuis" +delete-after: True +changes: + - bugfix: "Swarmer shells now have ghost notifications again." From cad81a26e25599ac296388bb73c4c6038e51b188 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 10 Aug 2017 06:13:49 -0500 Subject: [PATCH 176/219] Automatic changelog generation for PR #2320 [ci skip] --- html/changelogs/AutoChangeLog-pr-2320.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2320.yml diff --git a/html/changelogs/AutoChangeLog-pr-2320.yml b/html/changelogs/AutoChangeLog-pr-2320.yml new file mode 100644 index 0000000000..695f23e7de --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2320.yml @@ -0,0 +1,4 @@ +author: "LetterJay" +delete-after: True +changes: + - tweak: "Adds the option for bear ears and tails for humans as well." From f6da0f89c3f6d2288048f40f7c8f915d966a3098 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 10 Aug 2017 08:09:25 -0500 Subject: [PATCH 177/219] decapitalizes flyswatter in weaponry.dm --- code/game/objects/items/weapons/weaponry.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index ee6b2ea2c2..b49dc1c510 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -540,7 +540,7 @@ return 1 /obj/item/weapon/melee/flyswatter - name = "Flyswatter" + name = "flyswatter" desc = "Useful for killing insects of all sizes." icon = 'icons/obj/weapons.dmi' icon_state = "flyswatter" From bd8289b29f588948524b3745136620d099408bf2 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 10 Aug 2017 10:49:22 -0500 Subject: [PATCH 178/219] Massively improves downloading/viewing logs. --- code/modules/admin/verbs/getlogs.dm | 32 ++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/code/modules/admin/verbs/getlogs.dm b/code/modules/admin/verbs/getlogs.dm index fe3fe61b3f..9f08eb5e0e 100644 --- a/code/modules/admin/verbs/getlogs.dm +++ b/code/modules/admin/verbs/getlogs.dm @@ -13,7 +13,17 @@ return message_admins("[key_name_admin(src)] accessed file: [path]") - src << ftp(file(path)) + //this is copypasta because making it a proc would mean locking out adminproccalls, + // and that system is buggy enough with false positives that I don't want to risk locking admins out of legit calls. + switch(alert("View (in game), Open (in your system's text editor), or Download file [path]?", "Log File Opening", "View", "Open", "Download")) + if ("View") + src << browse("
[html_encode(file2text(file(path)))]
", list2params(list("window" = "viewfile.[path]"))) + if ("Open") + src << run(file(path)) + if ("Download") + src << ftp(file(path)) + else + return to_chat(src, "Attempting to send file, this may take a fair few minutes if the file is very large.") return @@ -27,7 +37,15 @@ set desc = "Shows server log for this round." if(fexists("[GLOB.world_game_log]")) - src << ftp(GLOB.world_game_log) + switch(alert("View (in game), Open (in your system's text editor), or Download file [GLOB.world_game_log]?", "Log File Opening", "View", "Open", "Download")) + if ("View") + src << browse("
[html_encode(file2text(GLOB.world_game_log))]
", list2params(list("window" = "viewfile.[GLOB.world_game_log]"))) + if ("Open") + src << run(GLOB.world_game_log) + if ("Download") + src << ftp(GLOB.world_game_log) + else + return else to_chat(src, "Server log not found, try using .getserverlog.") return @@ -41,7 +59,15 @@ set desc = "Shows server attack log for this round." if(fexists("[GLOB.world_attack_log]")) - src << ftp(GLOB.world_attack_log) + switch(alert("View (in game), Open (in your system's text editor), or Download file [GLOB.world_attack_log]?", "Log File Opening", "View", "Open", "Download")) + if ("View") + src << browse("
[html_encode(file2text(GLOB.world_attack_log))]
", list2params(list("window" = "viewfile.[GLOB.world_attack_log]"))) + if ("Open") + src << run(GLOB.world_attack_log) + if ("Download") + src << ftp(GLOB.world_attack_log) + else + return else to_chat(src, "Server attack log not found, try using .getserverlog.") return From 4686340d3caaed764abcc748fd2db8da7037d739 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 11 Aug 2017 02:47:05 -0500 Subject: [PATCH 179/219] Fixes help text for embedded objects --- code/_onclick/hud/alert.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index b944f32754..e1f1410837 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -205,7 +205,7 @@ or something covering your eyes." /obj/screen/alert/embeddedobject name = "Embedded Object" desc = "Something got lodged into your flesh and is causing major bleeding. It might fall out with time, but surgery is the safest way. \ -If you're feeling frisky, click yourself in help intent to pull the object out." +If you're feeling frisky, examine yourself and click the underlined item to pull the object out." icon_state = "embeddedobject" /obj/screen/alert/embeddedobject/Click() From fa19568a06d6260f91bdc49d7d50d1f9e440b2d9 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 11 Aug 2017 02:49:11 -0500 Subject: [PATCH 180/219] Ports weapons to Initialize() --- code/game/objects/weapons.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/weapons.dm b/code/game/objects/weapons.dm index 0598d88a59..69c6c89870 100644 --- a/code/game/objects/weapons.dm +++ b/code/game/objects/weapons.dm @@ -2,8 +2,8 @@ name = "weapon" icon = 'icons/obj/weapons.dmi' -/obj/item/weapon/New() - ..() +/obj/item/weapon/Initialize() + . = ..() if(!hitsound) if(damtype == "fire") hitsound = 'sound/items/welder.ogg' From dab46b002c030ea273c714ac69bd3095ffb4c967 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 11 Aug 2017 02:50:20 -0500 Subject: [PATCH 181/219] Ports weaponry to Initialize --- code/game/objects/items/weapons/weaponry.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index ee6b2ea2c2..10449b394e 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -77,8 +77,8 @@ var/notches = 0 //HOW MANY PEOPLE HAVE BEEN SLAIN WITH THIS BLADE var/obj/item/weapon/disk/nuclear/nuke_disk //OUR STORED NUKE DISK -/obj/item/weapon/claymore/highlander/New() - ..() +/obj/item/weapon/claymore/highlander/Initialize() + . = ..() START_PROCESSING(SSobj, src) /obj/item/weapon/claymore/highlander/Destroy() @@ -555,8 +555,8 @@ //Things in this list will be instantly splatted. Flyman weakness is handled in the flyman species weakness proc. var/list/strong_against -/obj/item/weapon/melee/flyswatter/New() - ..() +/obj/item/weapon/melee/flyswatter/Initialize() + . = ..() strong_against = typecacheof(list( /mob/living/simple_animal/hostile/poison/bees/, /mob/living/simple_animal/butterfly, From 6c6d8e5193d7abacfaa035044e1e66f4740b3733 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 11 Aug 2017 02:52:25 -0500 Subject: [PATCH 182/219] Fixes cable cuff inhand --- code/game/objects/items/weapons/handcuffs.dm | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm index 802c2d499a..40fa7d2520 100644 --- a/code/game/objects/items/weapons/handcuffs.dm +++ b/code/game/objects/items/weapons/handcuffs.dm @@ -90,8 +90,8 @@ desc = "Looks like some cables tied together. Could be used to tie something up." icon_state = "cuff_red" item_state = "coil_red" - lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' - righthand_file = 'icons/mob/inhands/items_righthand.dmi' + lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' materials = list(MAT_METAL=150, MAT_GLASS=75) origin_tech = "engineering=2" breakouttime = 300 //Deciseconds = 30s @@ -145,9 +145,7 @@ /obj/item/weapon/restraints/handcuffs/cable/white icon_state = "cuff_white" - item_state = "cuff_white" - lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' + item_state = "coil_white" /obj/item/weapon/restraints/handcuffs/alien icon_state = "handcuffAlien" @@ -212,7 +210,6 @@ name = "zipties" desc = "Plastic, disposable zipties that can be used to restrain temporarily but are destroyed after use." icon_state = "cuff_white" - item_state = "cuff_white" lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' materials = list() @@ -222,6 +219,7 @@ /obj/item/weapon/restraints/handcuffs/cable/zipties/used desc = "A pair of broken zipties." icon_state = "cuff_white_used" + item_state = "cuff_white" /obj/item/weapon/restraints/handcuffs/cable/zipties/used/attack() return From 62a7d4301f3bffdedffb2ca1eea0ef54ed8616e7 Mon Sep 17 00:00:00 2001 From: ktccd Date: Fri, 11 Aug 2017 20:13:01 +0200 Subject: [PATCH 183/219] Refactored flavortext. Flavortext is now stored in DNA features and can thus be stolen by changelings and restored by cloners/pods/etc. Also added genitals_use_skintone to the random features proc, 'cause it was missing (my bad, I was even newer at messing with DNA back then :S). --- code/__HELPERS/mobs.dm | 6 ++++-- code/datums/dna.dm | 2 ++ code/modules/client/preferences.dm | 20 ++++++++++---------- code/modules/client/preferences_savefile.dm | 15 ++++++++++----- 4 files changed, 26 insertions(+), 17 deletions(-) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 7c6746f477..924f8daf08 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -116,6 +116,7 @@ "xenohead" = "None", "xenotail" = "None", "exhibitionist" = FALSE, + "genitals_use_skintone" = FALSE, "has_cock" = FALSE, "cock_shape" = pick(GLOB.cock_shapes_list), "cock_length" = 6, @@ -158,8 +159,9 @@ "womb_cum_rate" = CUM_RATE, "womb_cum_mult" = CUM_RATE_MULT, "womb_efficiency" = CUM_EFFICIENCY, - "womb_fluid" = "femcum")) - + "womb_fluid" = "femcum", + "flavor_text" = "")) + /proc/random_hair_style(gender) switch(gender) if(MALE) diff --git a/code/datums/dna.dm b/code/datums/dna.dm index 550ea590bf..4bacf2d9e8 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -32,6 +32,7 @@ if(ishuman(destination)) var/mob/living/carbon/human/H = destination H.give_genitals(TRUE)//This gives the body the genitals of this DNA. Used for any transformations based on DNA + destination.flavor_text = destination.dna.features["flavor_text"] //Update the flavor_text to use new dna text /datum/dna/proc/copy_dna(datum/dna/new_dna) new_dna.unique_enzymes = unique_enzymes @@ -231,6 +232,7 @@ if(newfeatures) dna.features = newfeatures + flavor_text = dna.features["flavor_text"] //Update the flavor_text to use new dna text if(mrace) set_species(mrace, icon_update=0) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 1e07ee4ce0..4c23db3f86 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -130,7 +130,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) "womb_cum_rate" = CUM_RATE, "womb_cum_mult" = CUM_RATE_MULT, "womb_efficiency" = CUM_EFFICIENCY, - "womb_fluid" = "femcum" + "womb_fluid" = "femcum", + "flavor_text" = "" )//MAKE SURE TO UPDATE THE LIST IN MOBS.DM IF YOU'RE GOING TO ADD TO THIS LIST, OTHERWISE THINGS MIGHT GET FUCKEY var/list/custom_names = list("clown", "mime", "ai", "cyborg", "religion", "deity") @@ -175,7 +176,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) //citadel code var/arousable = TRUE //Allows players to disable arousal from the character creation menu - var/flavor_text = "" /datum/preferences/New(client/C) parent = C @@ -394,13 +394,13 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "
" dat += "

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

Body

" dat += "Gender: [gender == MALE ? "Male" : "Female"]
" @@ -916,11 +916,11 @@ GLOBAL_LIST_EMPTY(preferences_datums) age = max(min( round(text2num(new_age)), AGE_MAX),AGE_MIN) if("flavor_text") - var/msg = input(usr,"Set the flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!","Flavor Text",html_decode(flavor_text)) as message + var/msg = input(usr,"Set the flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!","Flavor Text",html_decode(features["flavor_text"])) as message if(msg != null) msg = copytext(msg, 1, MAX_MESSAGE_LEN) msg = html_encode(msg) - flavor_text = msg + features["flavor_text"] = msg if("metadata") var/new_metadata = input(user, "Enter any information you'd like others to see, such as Roleplay-preferences:", "Game Preference" , metadata) as message|null @@ -1628,7 +1628,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) character.backbag = backbag - character.dna.features = features.Copy() + character.dna.features = features.Copy() //Flavor text is now a DNA feature character.dna.real_name = character.real_name var/datum/species/chosen_species if(pref_species != /datum/species/human && config.mutant_races) @@ -1639,7 +1639,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) //citadel code character.give_genitals() - character.flavor_text = flavor_text + character.flavor_text = features["flavor_text"] //Let's update their flavor_text at least initially character.canbearoused = arousable if(icon_updates) diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index c52767f1d9..a4b57422c7 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -342,9 +342,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["job_engsec_med"] >> job_engsec_med S["job_engsec_low"] >> job_engsec_low - //Citadel code - S["flavor_text"] >> flavor_text S["feature_exhibitionist"] >> features["exhibitionist"] S["feature_mcolor2"] >> features["mcolor2"] S["feature_mcolor3"] >> features["mcolor3"] @@ -382,6 +380,13 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["feature_vag_color"] >> features["vag_color"] //womb features S["feature_has_womb"] >> features["has_womb"] + //flavor text + //Let's make our players NOT cry desperately as we wipe their savefiles of their special snowflake texts: + if((S["feature_flavor_text"] == "") && (S["flavor_text"] != "")) //If we got no new flavor_text data, but we have old + S["flavor_text"] >> features["flavor_text"] + else //Otherwise use new flavor_text data always + S["feature_flavor_text"] >> features["flavor_text"] + //try to fix any outdated data if necessary if(needs_update >= 0) @@ -441,7 +446,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car job_engsec_low = sanitize_integer(job_engsec_low, 0, 65535, initial(job_engsec_low)) //Citadel - flavor_text = sanitize_text(flavor_text, initial(flavor_text)) + features["flavor_text"] = sanitize_text(features["flavor_text"], initial(features["flavor_text"])) if(!features["mcolor2"] || features["mcolor"] == "#000") features["mcolor2"] = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F") if(!features["mcolor3"] || features["mcolor"] == "#000") @@ -510,7 +515,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["job_engsec_low"] << job_engsec_low //Citadel - S["flavor_text"] << flavor_text S["feature_exhibitionist"] << features["exhibitionist"] S["feature_mcolor2"] << features["mcolor2"] S["feature_mcolor3"] << features["mcolor3"] @@ -548,7 +552,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["feature_vag_color"] << features["vag_color"] //womb features S["feature_has_womb"] << features["has_womb"] - + //flavor text + S["feature_flavor_text"] << features["flavor_text"] return 1 #undef SAVEFILE_VERSION_MAX From 9ef1825ee01e28057dfc8a88c13f9b43e4416dcb Mon Sep 17 00:00:00 2001 From: ktccd Date: Fri, 11 Aug 2017 21:29:01 +0200 Subject: [PATCH 184/219] Adds Taur cocks (#2329) * Added flared taur penises FIRST STEP ONLY DO NOT PULL REQUEST THIS!!!! The files are still messy and the penis is just another shape to choose from right now for testing purposes! Flipped the order of GENITALS_BEHIND_LAYER and BODY_BEHIND_LAYER, as taurs need to be drawn on top of the genitalia, and I don't think anything else uses this that would need genitals drawn on top of them. * Adds More shapes Adds Tapered and Knotted shapes to the Taur cocks. * Fixes on-ground sprites The OLD bug barbed knotted cocks being invisible when not inside a body is fixed. This fix solves why taur cocks were invisible when cut off or gibbed the body. This also removes the lowershape() workaround that was being used. I'll get around a bigger refactor of other genitalia in another PR, as the scope of this was just to add taur cocks to begin with... --- code/__DEFINES/misc.dm | 4 +-- code/__HELPERS/global_lists.dm | 5 ++++ code/citadel/_cit_helpers.dm | 1 + code/citadel/icons/taur_penis_onmob.dmi | Bin 0 -> 704 bytes code/citadel/organs/genitals.dm | 2 ++ .../organs/genitals_sprite_accessories.dm | 27 ++++++++++++++++++ code/citadel/organs/penis.dm | 2 +- icons/mob/mam_taur.dmi | Bin 38211 -> 38242 bytes 8 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 code/citadel/icons/taur_penis_onmob.dmi diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index e0ab84f832..6a932ead4a 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -46,8 +46,8 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s //Human Overlays Indexes///////// //citadel code #define MUTATIONS_LAYER 30 //mutations. Tk headglows, cold resistance glow, etc -#define BODY_BEHIND_LAYER 29 //certain mutantrace features (tail when looking south) that must appear behind the body parts -#define GENITALS_BEHIND_LAYER 28 +#define GENITALS_BEHIND_LAYER 29 //Some genitalia needs to be behind everything, such as with taurs (Taurs use body_behind_layer +#define BODY_BEHIND_LAYER 28 //certain mutantrace features (tail when looking south) that must appear behind the body parts #define BODYPARTS_LAYER 27 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag #define BODY_ADJ_LAYER 26 //certain mutantrace features (snout, body markings) that must appear above the body parts #define GENITALS_ADJ_LAYER 25 diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index 92d5dcbd80..1af231f893 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -48,6 +48,11 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/xeno_dorsal, GLOB.xeno_dorsal_list) //genitals init_sprite_accessory_subtypes(/datum/sprite_accessory/penis, GLOB.cock_shapes_list) + + for(var/K in GLOB.cock_shapes_list) + var/datum/sprite_accessory/penis/value = GLOB.cock_shapes_list[K] + GLOB.cock_shapes_icons[K] = value.icon_state + init_sprite_accessory_subtypes(/datum/sprite_accessory/vagina, GLOB.vagina_shapes_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/breasts, GLOB.breasts_shapes_list) GLOB.breasts_size_list = list("a","b","c","d","e") //We need the list to choose from initialized, but it's no longer a sprite_accessory thing. diff --git a/code/citadel/_cit_helpers.dm b/code/citadel/_cit_helpers.dm index db0626fa9c..e6dca1e369 100644 --- a/code/citadel/_cit_helpers.dm +++ b/code/citadel/_cit_helpers.dm @@ -53,6 +53,7 @@ GLOBAL_LIST_EMPTY(xeno_dorsal_list) //Genitals and Arousal Lists GLOBAL_LIST_EMPTY(cock_shapes_list)//global_lists.dm for the list initializations //Now also _DATASTRUCTURES globals.dm +GLOBAL_LIST_EMPTY(cock_shapes_icons) //Associated list for names->icon_states for cockshapes. GLOBAL_LIST_EMPTY(breasts_size_list) GLOBAL_LIST_EMPTY(breasts_shapes_list) GLOBAL_LIST_EMPTY(vagina_shapes_list) diff --git a/code/citadel/icons/taur_penis_onmob.dmi b/code/citadel/icons/taur_penis_onmob.dmi new file mode 100644 index 0000000000000000000000000000000000000000..3debbd0047228c869a639a16566445d46fcbf113 GIT binary patch literal 704 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 T_dQyN4s%J@Q0LQmtKk0trQcyJ delta 22519 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 From 2102e0526a5e343a6ed19898733f337693d8c99d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 11 Aug 2017 14:29:03 -0500 Subject: [PATCH 185/219] Automatic changelog generation for PR #2329 [ci skip] --- html/changelogs/AutoChangeLog-pr-2329.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2329.yml diff --git a/html/changelogs/AutoChangeLog-pr-2329.yml b/html/changelogs/AutoChangeLog-pr-2329.yml new file mode 100644 index 0000000000..2950b70fbb --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2329.yml @@ -0,0 +1,6 @@ +author: "ktccd" +delete-after: True +changes: + - rscadd: "Adds flared, knotted or tapered dicks for Taur bodies." + - tweak: "Resized the cow-taur's over-extended belly to match the profile picture, no longer completely blocking the taur penises." + - bugfix: "Barbed, knotted penises and other such long-named cocks are now visible on the ground if dismembered." From 84076d7bb954f0b9d678676b8ef87a942fb7338d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 11 Aug 2017 14:29:51 -0500 Subject: [PATCH 186/219] intialize() supermatter sword (#2332) --- code/game/objects/items/weapons/melee/misc.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/weapons/melee/misc.dm b/code/game/objects/items/weapons/melee/misc.dm index 2ded74b536..5d32856bc9 100644 --- a/code/game/objects/items/weapons/melee/misc.dm +++ b/code/game/objects/items/weapons/melee/misc.dm @@ -209,8 +209,8 @@ origin_tech = "combat=7;materials=6" force_string = "INFINITE" -/obj/item/weapon/melee/supermatter_sword/New() - ..() +/obj/item/weapon/melee/supermatter_sword/Initialize() + . = ..() shard = new /obj/machinery/power/supermatter_shard(src) qdel(shard.countdown) shard.countdown = null From 12d4c7ade0017ce2728a42932245820407b882c5 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 11 Aug 2017 14:52:55 -0500 Subject: [PATCH 187/219] gorilla sprites --- icons/mob/animal.dmi | Bin 164136 -> 166678 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi index 3ed8c153d8cd046e583ac8837b83b4005a2309c7..42226c7d2bd70df6742d8ea912af4124c6c9b73a 100644 GIT binary patch delta 17611 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

4pkFLYEKk4U0xEi6)!HaJmU=ooex7CO35y2{ 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 C=~`(3 From d7ac827ea6fe8d00201dc8ead72cc11a871b9b02 Mon Sep 17 00:00:00 2001 From: ktccd Date: Fri, 11 Aug 2017 21:59:35 +0200 Subject: [PATCH 188/219] Testing Transition code, DO NOT MERGE YET!! As it says, do not merge until I confirm that it works. --- code/modules/client/preferences_savefile.dm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index a4b57422c7..1240fa7fe3 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -382,9 +382,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["feature_has_womb"] >> features["has_womb"] //flavor text //Let's make our players NOT cry desperately as we wipe their savefiles of their special snowflake texts: - if((S["feature_flavor_text"] == "") && (S["flavor_text"] != "")) //If we got no new flavor_text data, but we have old - S["flavor_text"] >> features["flavor_text"] - else //Otherwise use new flavor_text data always + if(S["flavor_text"] != "" || S["flavor_text"] != null) + S["flavor_text"] >> features["flavor_text"] //Load old flavortext as current dna-based flavortext + S["flavor_text"] >> S["feature_flavor_text"] //Save it in our new type of flavor-text + null >> S["flavor_text"] //Remove old flavortext, completing the cut-and-paste into the new format. + else //We have no old flavortext, default to new S["feature_flavor_text"] >> features["flavor_text"] From 582a106d8e936875efb6db628c419ce514976151 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 11 Aug 2017 15:09:24 -0500 Subject: [PATCH 189/219] His Grace now shows up on the orbit list --- code/game/objects/items/weapons/his_grace.dm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/weapons/his_grace.dm b/code/game/objects/items/weapons/his_grace.dm index c43e1600b6..5b57fab800 100644 --- a/code/game/objects/items/weapons/his_grace.dm +++ b/code/game/objects/items/weapons/his_grace.dm @@ -20,12 +20,14 @@ var/prev_bloodthirst = HIS_GRACE_SATIATED var/force_bonus = 0 -/obj/item/weapon/his_grace/New() - ..() +/obj/item/weapon/his_grace/Initialize() + . = ..() START_PROCESSING(SSprocessing, src) + GLOB.poi_list += src /obj/item/weapon/his_grace/Destroy() STOP_PROCESSING(SSprocessing, src) + GLOB.poi_list -= src for(var/mob/living/L in src) L.forceMove(get_turf(src)) return ..() From 1b2f2120ec26f66825393d14c9f0bc3ec1fbf72c Mon Sep 17 00:00:00 2001 From: ktccd Date: Fri, 11 Aug 2017 23:10:05 +0200 Subject: [PATCH 190/219] DO NOT MERGE - Fixes random resetting of file I did a bad with the direction of >> and <<. My bad. Fixed now, I will test FURTHER to confirm that old files are not deleted or ruined. --- code/modules/client/preferences_savefile.dm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 1240fa7fe3..60fd905df3 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -382,11 +382,15 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["feature_has_womb"] >> features["has_womb"] //flavor text //Let's make our players NOT cry desperately as we wipe their savefiles of their special snowflake texts: - if(S["flavor_text"] != "" || S["flavor_text"] != null) + if((S["flavor_text"] != "") && (S["flavor_text"] != null) && S["flavor_text"]) //If old text isn't null and isn't "" but still exists. + to_chat(world, "DEBUG: OLD TEXT FOUND, MOVING:[S["flavor_text"]]") S["flavor_text"] >> features["flavor_text"] //Load old flavortext as current dna-based flavortext - S["flavor_text"] >> S["feature_flavor_text"] //Save it in our new type of flavor-text - null >> S["flavor_text"] //Remove old flavortext, completing the cut-and-paste into the new format. + + S["feature_flavor_text"] << features["flavor_text"] //Save it in our new type of flavor-text + S["flavor_text"] << "" //Remove old flavortext, completing the cut-and-paste into the new format. + else //We have no old flavortext, default to new + to_chat(world, "DEBUG: No old text found.") S["feature_flavor_text"] >> features["flavor_text"] From 4188db53a5c081f496b539f0d20a6f1149d25020 Mon Sep 17 00:00:00 2001 From: ktccd Date: Fri, 11 Aug 2017 23:48:46 +0200 Subject: [PATCH 191/219] Flavortext transition finished Now properly moves OLD flavortext to the new format and then removes the old format. If no old format is found, it defaults to loading the new format. Flavortext is now stored in your DNA, and is loaded into your characters flavor_text variable upon creating the character or messing with the DNA. This allows cloners/pods/changelings to use the correct flavortext. --- code/modules/client/preferences_savefile.dm | 2 -- 1 file changed, 2 deletions(-) diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 60fd905df3..f846f52625 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -383,14 +383,12 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car //flavor text //Let's make our players NOT cry desperately as we wipe their savefiles of their special snowflake texts: if((S["flavor_text"] != "") && (S["flavor_text"] != null) && S["flavor_text"]) //If old text isn't null and isn't "" but still exists. - to_chat(world, "DEBUG: OLD TEXT FOUND, MOVING:[S["flavor_text"]]") S["flavor_text"] >> features["flavor_text"] //Load old flavortext as current dna-based flavortext S["feature_flavor_text"] << features["flavor_text"] //Save it in our new type of flavor-text S["flavor_text"] << "" //Remove old flavortext, completing the cut-and-paste into the new format. else //We have no old flavortext, default to new - to_chat(world, "DEBUG: No old text found.") S["feature_flavor_text"] >> features["flavor_text"] From 5a7126a0ddde8f0a7a10d5c3ea6cd4d2382edc96 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Sat, 12 Aug 2017 01:15:42 -0500 Subject: [PATCH 192/219] Panic Bunker for moderator/trialmin access --- code/modules/admin/admin_verbs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 68e5430a09..a839b35b3c 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -17,6 +17,7 @@ GLOBAL_LIST_INIT(admin_verbs_default, world.AVerbsDefault()) /client/proc/cmd_admin_pm_context, /*right-click adminPM interface*/ /client/proc/cmd_admin_pm_panel, /*admin-pm list*/ /client/proc/cmd_admin_ticket_panel, + /client/proc/panicbunker, /client/proc/stop_sounds ) GLOBAL_PROTECT(admin_verbs_admin) @@ -114,7 +115,6 @@ GLOBAL_LIST_INIT(admin_verbs_server, world.AVerbsServer()) /client/proc/toggle_random_events, /client/proc/forcerandomrotate, /client/proc/adminchangemap, - /client/proc/panicbunker, /client/proc/toggle_hub ) GLOBAL_PROTECT(admin_verbs_debug) From 7addb0207b63c6bfc5906afd79092cb56338c120 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 12 Aug 2017 04:42:44 -0500 Subject: [PATCH 193/219] Fix travis --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index c0a45df72d..ba11b40c97 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,6 @@ language: generic sudo: false +dist: precise env: global: From 73426d56ea6a5331fa75c26cbe20990e5911fb42 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 12 Aug 2017 06:31:50 -0500 Subject: [PATCH 194/219] file path fix --- .../modules/mob/dead/new_player/sprite_accessories_Citadel.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm b/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm index 55572d8187..9808923e33 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm @@ -31,12 +31,12 @@ color_src = 0 icon = 'icons/mob/mam_bodyparts.dmi' -/datum/sprite_accessory/mam_tails/human/bear +/datum/sprite_accessory/tails/human/bear name = "Bear" icon_state = "bear" icon = 'icons/mob/mam_bodyparts.dmi' -/datum/sprite_accessory/mam_ears/human/bear +/datum/sprite_accessory/ears/human/bear name = "Bear" icon_state = "bear" icon = 'icons/mob/mam_bodyparts.dmi' From 74636ffeb088c59a97e7afa0bcc5defc9fa2a3f7 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 12 Aug 2017 06:33:46 -0500 Subject: [PATCH 195/219] Automatic changelog generation for PR #2295 [ci skip] --- html/changelogs/AutoChangeLog-pr-2295.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2295.yml diff --git a/html/changelogs/AutoChangeLog-pr-2295.yml b/html/changelogs/AutoChangeLog-pr-2295.yml new file mode 100644 index 0000000000..c34d19ac6f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2295.yml @@ -0,0 +1,4 @@ +author: "More Robust Than You" +delete-after: True +changes: + - tweak: "Mulligan and non-continuous completion checks will not consider afk/logged out people to be \"living crew\"." From 4298f6539d88007e634baa384157a3b6f44d82cc Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 12 Aug 2017 06:35:46 -0500 Subject: [PATCH 196/219] Automatic changelog generation for PR #2335 [ci skip] --- html/changelogs/AutoChangeLog-pr-2335.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2335.yml diff --git a/html/changelogs/AutoChangeLog-pr-2335.yml b/html/changelogs/AutoChangeLog-pr-2335.yml new file mode 100644 index 0000000000..5681e3d5f9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2335.yml @@ -0,0 +1,4 @@ +author: "ktccd" +delete-after: True +changes: + - bugfix: "Flavortext is now in the DNA of mobs who has that, meaning changelings, cloners and such things use it properly." From 53b137740279725aad5958b219247db2cadf730c Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 12 Aug 2017 06:36:59 -0500 Subject: [PATCH 197/219] Automatic changelog generation for PR #2339 [ci skip] --- html/changelogs/AutoChangeLog-pr-2339.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2339.yml diff --git a/html/changelogs/AutoChangeLog-pr-2339.yml b/html/changelogs/AutoChangeLog-pr-2339.yml new file mode 100644 index 0000000000..c7f3d42698 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2339.yml @@ -0,0 +1,4 @@ +author: "More Robust Than You" +delete-after: True +changes: + - tweak: "His Grace now shows up on the orbit list" From 6cb9a0088f3cc0fa24f14dd412def741a4b40831 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 13 Aug 2017 01:26:39 -0500 Subject: [PATCH 198/219] Fixes admin mass deleting... not actually mass deleting... --- .../procedural_mapping/mapGeneratorModules/helpers.dm | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/code/modules/procedural_mapping/mapGeneratorModules/helpers.dm b/code/modules/procedural_mapping/mapGeneratorModules/helpers.dm index 24b75a3a9a..6fdcccd43f 100644 --- a/code/modules/procedural_mapping/mapGeneratorModules/helpers.dm +++ b/code/modules/procedural_mapping/mapGeneratorModules/helpers.dm @@ -37,16 +37,12 @@ /datum/mapGeneratorModule/bottomLayer/massdelete/leave_turfs deleteturfs = FALSE -/datum/mapGeneratorModule/bottomLayer/massdelete/leave_turfs/New() - ..() - ignore_typecache = typecacheof(list(/turf)) - /datum/mapGeneratorModule/bottomLayer/massdelete/regeneration_delete deleteturfs = FALSE /datum/mapGeneratorModule/bottomLayer/massdelete/regeneration_delete/New() ..() - ignore_typecache = typecacheof(list(/mob, /turf)) + ignore_typecache = typecacheof(list(/mob)) //Only places atoms/turfs on area borders /datum/mapGeneratorModule/border From 1b3ccfdfeb9343d8c17c37959add1d7c4810e329 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 13 Aug 2017 01:26:42 -0500 Subject: [PATCH 199/219] The wiki button now asks what page you want to be taken to --- interface/interface.dm | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/interface/interface.dm b/interface/interface.dm index 253738064b..64e39587ce 100644 --- a/interface/interface.dm +++ b/interface/interface.dm @@ -1,12 +1,14 @@ //Please use mob or src (not usr) in these procs. This way they can be called in the same fashion as procs. -/client/verb/wiki() +/client/verb/wiki(query as text | null) set name = "wiki" - set desc = "Visit the wiki." + set desc = "Type what you want to know about. This will open the wiki on your web browser. Type nothing to go to the main page." set hidden = 1 if(config.wikiurl) - if(alert("This will open the wiki in your browser. Are you sure?",,"Yes","No")=="No") - return - src << link(config.wikiurl) + if(query) + var/output = config.wikiurl + "/index.php?title=Special%3ASearch&profile=default&search=" + query + src << link(output) + else if (query != null) + src << link(config.wikiurl) else to_chat(src, "The wiki URL is not set in the server configuration.") return From e972a90ba98ee2bfa979674763f8d276d12ecb3b Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 13 Aug 2017 01:27:51 -0500 Subject: [PATCH 200/219] Adds callback select system --- code/datums/callback.dm | 54 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/code/datums/callback.dm b/code/datums/callback.dm index 1b5c25fe18..624fed58a6 100644 --- a/code/datums/callback.dm +++ b/code/datums/callback.dm @@ -100,3 +100,57 @@ if (object == GLOBAL_PROC) return call(delegate)(arglist(calling_arguments)) return call(object, delegate)(arglist(calling_arguments)) + + +/datum/callback_select + var/list/finished + var/pendingcount + var/total + +/datum/callback_select/New(count, savereturns) + total = count + if (savereturns) + finished = new(count) + + +/datum/callback_select/proc/invoke_callback(index, datum/callback/callback, list/callback_args, savereturn = TRUE) + set waitfor = FALSE + if (!callback || !istype(callback)) + //This check only exists because the alternative is callback_select would block forever if given invalid data + CRASH("invalid callback passed to invoke_callback") + if (!length(callback_args)) + callback_args = list() + pendingcount++ + var/rtn = callback.Invoke(arglist(callback_args)) + pendingcount-- + if (savereturn) + finished[index] = rtn + + + + +//runs a list of callbacks asynchronously, returning once all of them return. +//callbacks can be repeated. +//callbacks-args is a optional list of argument lists, in the same order as the callbacks, +// the inner lists will be sent to the callbacks when invoked() as additional args. +//can optionly save and return a list of return values, in the same order as the original list of callbacks +//resolution is the number of byond ticks between checks. +/proc/callback_select(list/callbacks, list/callback_args, savereturns = TRUE, resolution = 1) + if (!callbacks) + return + var/count = length(callbacks) + if (!count) + return + if (!callback_args) + callback_args = list() + + callback_args.len = count + + var/datum/callback_select/CS = new(count, savereturns) + for (var/i in 1 to count) + CS.invoke_callback(i, callbacks[i], callback_args[i], savereturns) + + while(CS.pendingcount) + sleep(resolution*world.tick_lag) + return CS.finished + From 3f562c113c967947d0e2abe9b4ac5f4966b13aa7 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 13 Aug 2017 01:27:54 -0500 Subject: [PATCH 201/219] get_head_slots() now returns wear_neck --- code/modules/mob/living/carbon/human/inventory.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index d9f1acf879..da99954f29 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -63,6 +63,7 @@ return list( head, wear_mask, + wear_neck, glasses, ears, ) @@ -171,7 +172,7 @@ dropItemToGround(belt) w_uniform = null update_suit_sensors() - if(!QDELETED(src)) + if(!QDELETED(src)) update_inv_w_uniform() else if(I == gloves) gloves = null From 714fc5ed4a0f82cf0c6165cb4efe5c46949cbb74 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 13 Aug 2017 01:27:58 -0500 Subject: [PATCH 202/219] Fixes minebots missing action icons --- code/modules/mining/minebot.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/mining/minebot.dm b/code/modules/mining/minebot.dm index 25aa9fb8e8..8029cc1416 100644 --- a/code/modules/mining/minebot.dm +++ b/code/modules/mining/minebot.dm @@ -170,6 +170,7 @@ /datum/action/innate/minedrone check_flags = AB_CHECK_CONSCIOUS + icon_icon = 'icons/mob/actions/actions_mecha.dmi' background_icon_state = "bg_default" /datum/action/innate/minedrone/toggle_light From 80f1fb8c58828d44f51def83c9c107272f94acea Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 13 Aug 2017 01:28:03 -0500 Subject: [PATCH 203/219] Fix fireaxe cabinets spawned with broken icons --- code/game/objects/structures/fireaxe.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/structures/fireaxe.dm b/code/game/objects/structures/fireaxe.dm index 24e70059af..bfd3dea037 100644 --- a/code/game/objects/structures/fireaxe.dm +++ b/code/game/objects/structures/fireaxe.dm @@ -12,8 +12,8 @@ max_integrity = 150 integrity_failure = 50 -/obj/structure/fireaxecabinet/New() - ..() +/obj/structure/fireaxecabinet/Initialize() + . = ..() update_icon() /obj/structure/fireaxecabinet/Destroy() From 1291b122731a7e2802b9463594b4905d2b2aa1ad Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 13 Aug 2017 01:28:11 -0500 Subject: [PATCH 204/219] Cleaned up stacked pipes --- _maps/map_files/BoxStation/BoxStation.dmm | 3 --- _maps/map_files/Deltastation/DeltaStation2.dmm | 3 --- _maps/map_files/OmegaStation/OmegaStation.dmm | 2 -- 3 files changed, 8 deletions(-) diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index bf4263ffe6..c89e4e0422 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -60788,9 +60788,6 @@ /turf/open/floor/plasteel, /area/science/robotics/lab) "cHY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 3e19f173a4..b0265ad94b 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -112682,9 +112682,6 @@ /turf/open/floor/plating, /area/engine/atmospherics_engine) "ept" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /obj/effect/turf_decal/stripes/line{ dir = 9 }, diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm index 60495dcf55..020a963662 100644 --- a/_maps/map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/map_files/OmegaStation/OmegaStation.dmm @@ -5039,7 +5039,6 @@ name = "Detective Privacy Blast door" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, /area/security/detectives_office) "aix" = ( @@ -32004,7 +32003,6 @@ "bcM" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/vault{ dir = 5 }, From dae3e121f2cde3130eba771f758284292905e939 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 13 Aug 2017 01:28:16 -0500 Subject: [PATCH 205/219] critical priority roleplay grammatical patch (*surrender emote fix) --- code/modules/mob/living/emote.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index 8bdcf30f66..ff37b85800 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -326,7 +326,7 @@ /datum/emote/living/surrender key = "surrender" key_third_person = "surrenders" - message = "puts their hands on their head and falls to the ground, they surrender%s!" + message = "puts their hands on their head and falls to the ground, they surrender!" emote_type = EMOTE_AUDIBLE /datum/emote/living/surrender/run_emote(mob/user, params) From 1e3ea07d8b5ddc40e993814b261cb7ac7f058493 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 13 Aug 2017 01:28:24 -0500 Subject: [PATCH 206/219] Adds icon_states to the unused and used Eldritch whetstones --- code/game/gamemodes/cult/cult_items.dm | 6 +++++- code/game/objects/items/weapons/sharpener.dm | 17 +++++++++-------- icons/obj/kitchen.dmi | Bin 23347 -> 25105 bytes 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm index 918398154c..d472bb7d5a 100644 --- a/code/game/gamemodes/cult/cult_items.dm +++ b/code/game/gamemodes/cult/cult_items.dm @@ -161,11 +161,15 @@ /obj/item/weapon/sharpener/cult name = "eldritch whetstone" desc = "A block, empowered by dark magic. Sharp weapons will be enhanced when used on the stone." + icon_state = "cult_sharpener" used = 0 increment = 5 max = 40 prefix = "darkened" +/obj/item/weapon/sharpener/cult/update_icon() + icon_state = "cult_sharpener[used ? "_used" : ""]" + /obj/item/clothing/suit/hooded/cultrobes/cult_shield name = "empowered cultist armor" desc = "Empowered garb which creates a powerful shield around the user." @@ -391,7 +395,7 @@ if(!iscultist(user)) to_chat(user, "That doesn't seem to do anything useful.") return - + if(istype(A, /obj/item)) var/list/cultists = list() diff --git a/code/game/objects/items/weapons/sharpener.dm b/code/game/objects/items/weapons/sharpener.dm index ace66060af..881832b5bb 100644 --- a/code/game/objects/items/weapons/sharpener.dm +++ b/code/game/objects/items/weapons/sharpener.dm @@ -12,31 +12,31 @@ /obj/item/weapon/sharpener/attackby(obj/item/I, mob/user, params) if(used) - to_chat(user, "The sharpening block is too worn to use again.") + to_chat(user, "The sharpening block is too worn to use again!") return if(I.force >= max || I.throwforce >= max)//no esword sharpening - to_chat(user, "[I] is much too powerful to sharpen further.") + to_chat(user, "[I] is much too powerful to sharpen further!") return if(requires_sharpness && !I.sharpness) - to_chat(user, "You can only sharpen items that are already sharp, such as knives.") + to_chat(user, "You can only sharpen items that are already sharp, such as knives!") return if(istype(I, /obj/item/weapon/melee/transforming/energy)) - to_chat(user, "You don't think \the [I] will be the thing getting modified if you use it on \the [src].") + to_chat(user, "You don't think \the [I] will be the thing getting modified if you use it on \the [src]!") return if(istype(I, /obj/item/weapon/twohanded))//some twohanded items should still be sharpenable, but handle force differently. therefore i need this stuff var/obj/item/weapon/twohanded/TH = I if(TH.force_wielded >= max) - to_chat(user, "[TH] is much too powerful to sharpen further.") + to_chat(user, "[TH] is much too powerful to sharpen further!") return if(TH.wielded) - to_chat(user, "[TH] must be unwielded before it can be sharpened.") + to_chat(user, "[TH] must be unwielded before it can be sharpened!") return if(TH.force_wielded > initial(TH.force_wielded)) - to_chat(user, "[TH] has already been refined before. It cannot be sharpened further.") + to_chat(user, "[TH] has already been refined before. It cannot be sharpened further!") return TH.force_wielded = Clamp(TH.force_wielded + increment, 0, max)//wieldforce is increased since normal force wont stay if(I.force > initial(I.force)) - to_chat(user, "[I] has already been refined before. It cannot be sharpened further.") + to_chat(user, "[I] has already been refined before. It cannot be sharpened further!") return user.visible_message("[user] sharpens [I] with [src]!", "You sharpen [I], making it much more deadly than before.") I.sharpness = IS_SHARP_ACCURATE @@ -46,6 +46,7 @@ name = "worn out [name]" desc = "[desc] At least, it used to." used = 1 + update_icon() /obj/item/weapon/sharpener/super name = "super whetstone" diff --git a/icons/obj/kitchen.dmi b/icons/obj/kitchen.dmi index a8f7708c46fa1d3d9b0d28c0a15686dfebd0f8ac..87b2b46a2bad9966f73883c7a09f3b4a22a3df52 100644 GIT binary patch literal 25105 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ʼn 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 SQlLZ{0Q9ts?v&hei2ffmmYbRY literal 23347 zcmZ5|1yCH(w(TInHMncg;4-*tfZ!pxTX1(62<{|70tDBP;1*M&hV$zTg61d&1GO)HF*zjTTcXEaKTX} zy+TR+zA03US9rrmU4EKhc#w1BIv^quV*6^S269K^GNY6xVc}?|_Ig1s8XiMt`$PF( z*E76<5|!5>eILy^H8U#>kcx2p-IsclrlJPEy~&Cm!*6BVsX*wAHrOP;w~@)L6eLgJ zL@#Oi_SN}Ng~>dn)kPzgJ;Z8Gjd62ex|!3~fbb`E+a0b^`i~9}*h4Ggan0@k5&m=0 zZXPx6u@qsBb>aF(X` zeuE#)xU4FY1`n(@23QM5714d^8AUIHOUQF(OGr$QKPb3<)a*V+n?bW$)S(kiECQ8w zI)?2^gZ^}UAubo?PPKk2R-tlLVY$*B(hBVRNShx#NaWIR?uU3*ekjAb`Q89en1iPh zqsAoAN)$C4u3g!dAst}w#;>cS!)$1$C(aB#=p&{#yBKi84`y#zNgUic|JO6#&NZhQ;>m3HGgz?BI8kT*&{n#8- zmPT6IRrtJq+II*`hbFB-?%8=wdxbxnf0lK?&etXlwTt%!>qH-gi}y1T6#nmV>0uGh zV`gT?lq-vlj_$Yn4)z5)2HSQ&${l5(!p?x!R3TD11X2;a+3_L5iXx9#sqmgO6H+vu z02c;5TD_6OKtJX(UOES%-2^gB8n@|2oxnxMp$eWq-S9nTSu0C*2CFrQv|nW;U-EKM zc?=@7Zgu;oT`0m1z^u49IFSkbZBD7i-l*3KNc3x!7C%I=!~DeOWg>BtY~+Dj`S_-9 zw}xIBwCO6UB8up+mVC0jrY{JyBs8;ng>H9WcnDX^%^oy9=;q=d`}M1 zmB%`7a!_m|%SZYaa0@XBv8RSn9o^!#8K2vYU-qn<&QiT5k38%`j?H?OXNY|T0xZgx z%kls6=(KXl<#ht-uf;*784<)vw{~h%+F8oa6nieUxD# z(B(5CwH14cF$f&ON2`X6q9O*E-x^-nJV#k@+8pu70xkLdIqr;YF~@xv_|buNI&)UH zNxdTjI^0JUc6mcQXPjN(zt|R(tu171Y}~pxF!1hh0gQWZ)EJy?U?6ZXU;P||hF;|u z=U9ZY6QpiRGs8vyTktqkoaoc2F)?IpF;%%}P$MwJ%cJP8=QEoaWn^UJ>ZR?sx)iP0 z3r#De$0b&)=<%TEIW1VWQvitg@z(dY&$|YOFO{9T;e;@=f1;la2`d|!FHjk2tEk{G zFf_y^CH-{0lBTW_u!RG4u%F_QWS806+6xdO@gL#6MXZ%AZsm$48wtM{je#a}p0pLa zXKxLtt`hKsJzXZK^iXdx5*Ium{uOdtuYM-P+?}tp18izvYW5lqG-~!7zLfi*uThnS zwO_s^!@sLTg$tIr~)61+5x!$wtIE zU?OAX|AJ9L>%77s5T5&ma7lAcdi*LH9b4+7H38gGs~^#4Buwsm+e0D&E3eq=mGE^U zGUe|$RIqM~7PF$XM~qk_=18bYU-p@`(<1>5&76UHhrSqynw$Ien>TMR-ObJO|6O); z%=euJ-yo!cmAm0Dqj@ld2h8m#`fVGahVckI))7I6{6qn*qL83bQH0rRO-7qFsx zo0j()UBvV7qjHuAiFsfAR%P=;M+B4&7w8-_svx^7ozT!R4+(!mvN}6ow zG@i;Z0|S>-J8s7sZq9a;+F;9~W#^`Q4|p}Ea#EpVV`?_Mq-E~kYn@DmF<_ZC=ltB&|Fi?Sv9IxzK{ZSHxrTE+hSyxtHw(8^M%!h)jlTl`>qLJsv`x|v5qxjxl zxo@ed2p}{xG&MCf2=J_-?>xv`TU(dh+fS+AzBw-kS-ttGX++uN-b3A$k*!N^cKqyM zLnW;Wj1ADcN#2(>6=PtJ2Yo2zy9}%-Up**gG%M&GoPV(rc>N$3)UKG_fPw;wj)}RN zsoN$hX>25J_Bxr#kf(H+C3;d0@=C(YI|xX-sB-zN0t>Hcr!DB zy$eD(lFtdoCLpF;Qvw5v&%0z$pi8HWMsnKxdX$4>>~YWnKlU_>Eui!hU&l(2s{=bI zK0f}~3K`+~U0?^qy;N9Sn=00bU?$WVt9v<+n#i@6mo!#0@{>+ad= zp){&+)O^bM9xL+Fc0!wYv8wE_Uv$(;*}bb9M8u$QnbD5BrTN~djjY?2K0FRH5$U`g z&~6}J`Y1~O1Y>1GUz5KawHXDl4klqYecRD!p`oF3nb@zF0BcMxcgF>QE~0?LokYdN zF*K+YIGz$G9EW6bh~rwV$gTK50_2f|NlK8R5zw~{z7Meqq-XAhe3ylMU% zXF9qun))=Q6HXK0#)N->fwme3#Yl> z7`E98;|QtTN|?aq_J&g&v~=T{Jzuw{IUIesU2dfWZmIlNZvhvbpaQO3y5X~D;Z}qC zIwqL zS;gs%UG-Ho>I_>wJ$1W}hIw0>hG) zkbv-pbV$d#KlR88J-z-v$GY3j$PXi9`HiuSkl*?>;Y~xkkZ9Jbq$F>@VbU1$VEqa4 zT8_cpb3yd4!|WSMD|+_RshlHIrJAL9jPLs~#E-s52zwo?^(9a>6c>N~kAfD&zv^O-1r>ONfB_iTrX)b)yzXqt* zq2NM@lh++B(Em`?ef%f%kKXl$c~Iw7o*SsPho9Z5Cxyc(wm1-6fM(o6tV*)*{GU^b zJj0QOdOl?e;Yhvvb%6qwKiI%d%94!s^z;O3YMwv6xrumJxXzYPFA*I+M4N}`<(mxm zJzB2+fvm7FK?Df2|1KlYZPS3EI33)SD|S zIy<+$C#dY~i6NC@M+jWmi<2Pf7Roq>!+gr(@KCK{eGYML%iKWn1S{jW9 zvunSl1()5v(_T&jLlj&OVs2Vrk?`a1A?CNpq6t%QkG`WT&a5zNq1WpfJL0WO!kNgQ zT)Q#JM`HSJh&TrN9~d__O8?@5)h>RLWjWd56?#i47av2>Ft0p5KJNJpMcH=bN_ma+ za4=YpW`(u2iGQ-Q+l$;aW#HtjR3%ZXh=z1;`;H4PvOJRj^RS#RD=Y_O0y~^_DKikb zFdZx#AJ5w*O;6C99E!P{nwcSe#Q*xAMG+Isl04w3+72USpvy_@cL71@YBV?x`X!q! zBTWvJyoZiHUT`lr@!6Hcoj4V;emlr0v+RPe?a8_jY*rJmA+`0>OoB2Y?6`S$a9D7H z#yq44yShsK`1i>co{Os&sg2P24N5$cO}{n!&zO|l`$w)i1*WRBlG3jxWdDM9_~#^jGAXe|@5H zP+uM zv~u;6wbnx;zNTgjDyEh?#b3%UZA){0K(>g1Ry`(Ez|bCxMdJR-eovd64ikL;{+7lb zH|HtXC^g{`93eWq(;bCZ{hh~JLq37hLx9K4%?(c&y_GU1dF<8bQbf$we6+ehUUoo}+ zm^F$s1_{Ip8XC^+?MGw2fA1~gCT?_(T8(XG7sD!b+=hRra2h3xkRHf@m5zFMIv9W& zJkIK32t}mh6;?C8WDSc5PvOSb0`PvU67H~NPV^}K%xzkt|^`3Kvjw79!=nF|Xa zfd}XdAsaj>7MZCC6*bsG?6tr7I3)7!A^RK;@CYR-Yd53;=VP2F-yH9J&!fLTlB?Og z_L)4!xHY);O_Na0n^LREr3%MwZSb@4<7w7cypf}ogk1bExBHuoALZ=6f7BT0zb9;* zs z5ZHfXTD$=VkRyG)_Kc0c-bZ$z6L$~Ohle{51bx3<^nZ)*%nbW`3ZO~koi}r> z3S0P(_}QmtuB@jKgZDGvYdA@u!4I+TVHPddtyHreu0rteke3#<;m=1u%j4aFb4$&U z)g{H=&%vajHrpGAiw8z?M6r95#W&3P0QMebG(}kcW}lA)+6!_|KsdsJ)C$q|RPN`+ zDcn`?w_X8+Efk<`%e^IpF|gfFL$>J{ZHXQ8UV&0b`9_9uFYE1TR2KH8JLB06moBd_ zUo3qkWuV)iw}G8@rU4GEvB=nzGNz_9PgfN|QF)_`atYKmukYqU z{fCAFP;b6voA5Tpm|DEGc@3w6jna-x*L+tpa)s0SJSSb_T6?QgJ0(|{)xSg zJ>`H*P@=_BTU(35))UneL!>DwDS3K*UF3PZXq#GMak|=3T~I*(v%DP3!^5M6>MMBJ z`!jdFikFuc6F%B6+|@YWd?eocIGtT0)Z*-@u2$3~+(h9fl@buh9T%r_MZ(2}3$#iK zapU4b8TlIwjL;^WgyowRp9Zqo*Lp73SD%Tm`@G5T_o(!0OgRIt4{oatREfjAkD4V= zH&pEZ`g#)FuT2g6RqFuQLiB?jJ~dcUfBkgk+`oMovjSeg<01>=G~bALAi*jz0q?lZ z&+L8dj5EshuM1QxEIBnboS#2`9@6xYR>dZfV}k(uQ&I@OPQU5t>A8J82^!s(KN?78 zMFEOhS{D8tJv_80G3kWNg9DV?Ua4e-STc)uXpYT1g7hv-*#FN5B zS;lU9gH|8Y8k_BcECO$uSN@9KAM%LSL`6rN)x`l`QTx&o1)Y3+=)1xYsob#)EHt!` zcZHo~PA!rS^RX|Ra=Y7PU%q~oe!h{zIvSLE zWQ1J_ZuDaJ-nn`0KC2e{NBiA$aymYkw7OqqYh7H^nql`QAn$D-c;U4n_9jGZ&&V$G zJN**R4*4XA_H)ZKXr6$aJXSqljz&OWE~}cb^w+QMWL6zD+nxR_a%^bA-*i4Zn=US1 zs&Zhit?o~k+1T0!>;0a|DF69WN=XTw-(lWD2p%nHgTUdQ15_8rvU-qf!>pBC?@Vxd zr3TPoG?4QP3BC+NC%UYc7P7B?rN0oOi|!M|xJJd?7=J8(uyWF0fU)8|Gd!E|UjIw9 zG{@Fzpa;(*%1V0Q1>7e--Udg|Y1ei_c1Kx-e~i5NFv8wqCW<3-y`{sF=#z2@&WEzK^l@P|0eZo7LCNy1pM}# z8YtkaCqd~Dj8F<1^2r20*Wd=+77-Z*h?6s}oOh-g2b3K|zReOMr@(AUlrO%2T9^Ho zZyYRi_kqbMU75re7Ac)<(xz%i&q3zO!ZPh|Z5|e_HQ5Zjx;5|$dV~MBdP{?AAvezs6H)?=S zIr>Ze9HSmA-!qDkPY8fI8B0qUfLXhP<&67r?zaw+LJx|a5q|uTNRdu z#zn=xH#w0paluV!@JRWVA1&abGjP#s`mx91s7?Uvmbd2MHp zzumRWZODfRPkK|5u0BBTs;6OQM{RVHMz>`@e}=Rg-I_~lXuOtHhO|tYVfUYbR-O9_ zRBl6WTAiSm7>fMf!j({EIAVNYdY#D;Qk=gZ$OwujB@jsfx0e&%HGg%VQ7BW9#H3FE5WQ zx->O~DB*Vz5fLF>s4Jxv_)_dwl?O75A(Lk`8|I8ggg8W#cu1w~0|X_bIbPhFXgpq;pV8ZWh(7#|;B zOO(Sx{V)q2H^CC;1m^J{&l~>!rkQR1PA(KwRJet89R&rH9jn(xvDRu5pyP9IDg}4* z35bTKrlmh&TiSwUMhfnqT9AN+Kv0C-gN=i$!5v+pq@$o@HN0+v>W!~|4 zLr)$TACDy?FJJRcKk%Zc^7|fwGpRm52gj%@EozilY)lOLBV{6AAslKzY&<#x4KP!& z1!N_Z!?E~8pH6=3H~d=q6&k8d488BV4wKb)_V6Gu$geP;f_!`Tri=(j{K1wLWMZK& ztXBR5d_S$@GoW`8GU1`XQDco@{H_f3dt+SmiPmRQawbR0ckkXE{@jW5NZ%+uJKM3? zxh11brQ2_BN0jxr(q%umM1bhlSg8a3_GDad|D98iH~3h^8Wpuny;SSgsuu(BXWr`7 zqWE1O;wm3J++8@kxz*e{srG7aY`__e1&YWIvW*#o~oK4+UnGtm0PfuG<2M6Od5_Z@iu&}U% zRGnN)Sc|#&`r*^lP!0)w7k|DRrQI%I41Xj-4NJQchs=aFmTzEyva+(6*x8G$(@6`U zd3o?apO=)BNC0U0$j`JOrZ>cC9U({8s>fo=H$;hsj71&^Ebnzd?FEH$fl8T?#03!A zlj!6z22bU(LvSzPAd!(M2F;$BxVX6d)>7P5QOluI_@BjN#ljic*1lhKc6MHhVYVqL zh+rtFaNUMY$3({8j(iRcB^LPf#@(qW4^EM7?v1Z-!B=0X>3w;E8Y}>=hT=tUeY-d+u6W@h^IFGBQRSBC({ z%My@1v_5@eDZAV>Mb(|vGXzFpeqJwe%^T#vH8eOFGYtdOuI}a&D68QK1E)SBD>HM) z-NlX%u8{XBH4+AK`(Qmi<@+qZW5M_8f7n~66Pre@_ktDn-K%l3| z{fr@^K;27666LIb{6Q+DW1i1$7e$Gi5*3xshBt?oR1Kdm>m~y6_3LXH*IT1-xyc$V zi+0Fa;@=U)9gVzM8pGOFj5wsJWY+f3zzsN%iuw)+VWC--3cczk zTQ#7p*&^8)0|`GtUUNzis2f&|%EjSZr-vCP1y`r{J2iaByy%G4ivIeEYl7ox>NVCh{2=H!Awyct1Ke@Vlf$jdWzAiJ}IX^?x?&S%>{9_dSg=r_Kn& z6=G7%l0R<6oeK+Opvs%k`IyQId5Iz0E}M3oFsWSdusmY>6u-`c=_hpc2O1yFh(y3d zupKX2nAB+6&|Zdtgd;RPowWXr_Z=XQYJ=Ch%AKN1HH$U6{Y6AXD$Qht7%s_Hb}*U5 z#j~Ni8|&-ewkODn>b8*Zn{TDhsb`*eF4gsdD8XgrW<8T+Lq#hs2W%MVq*0s|E|D=Y zJboC;gdH#2cs-$b+CsI}j|kmtwu2eA?ggilE~=gPubicrNFqXfK34@lgj^6LMH)Wf z`aOeBd}B0y-Cztn1zIent2xvlh}o(H;vTf7@aIpoPfM%L$=ceP`W@njux)DfL_j`w zIHXJc-&}z7jEr23Qs?#VC^3>p90hz%hk4$uvyDF8C5VfQ%fQ2fe`r{kE=3&hEYof2 z*hlMqr{ycc8R!ESROF6-fP;i8MaVrC89-?6x)39ZnB&@102)ia_06VL~lL&)HO8V z%fU1k+cB}Rh`)A2HcV$55V>+AhW+EI#7CIXR`KlI@7SOG>zsH3o1MeX=VlCxzA(Y9 z#oAoW=u}>BB~khy1F`rckinI$oE7T8cP|p zw6kHOZO6x`ERd!;Yt!gzYAn$`m=BF*caO)|JAhU+H2MrnQUCx<<=bqgmqQsZ!z(NEzuX zvzI;HW8N4m0W=q3ym^g{0)=k^XtKpzB>UI1e}kdLZYp+3!Sb3 zFTwtPn=BLIl*Sy21M78H-YTmw8SqxtE4+z- zKc!7D9#xZ)lG;xYk(uAOt?yyZ0ez6aEsbFUEF|xLL2j^KlbPqr=@V@vAl4KL7$_^g zOXLBB%1_s7MkiLnroct!EXGnBhi`}Wcyy*TnDBkUVt@8nSy*=O029^9rZ0UB;vyZ? zM>ECTME&qF@46?Rc(}Alh71x;Hk_0fi0v=^lHuTroSglZZp{wx2sw~bX=qxF>inSm8N z)TnI9$;oP^S^$B>wYaB`=Cr?;VW&M`n({Yi>-y7@$Owev3MeCUi>(EerPt{?xf`Af z_?k@BBZr7!w-===Wf+kL76b$YF9fu?Ss0S#fgPZot?2B`3A7q9XfoY^cT>uu9ucg) zWB$?NU>Fw88TaCrwqPYHZGZLgH+6i*Z0@N90>#oV1Hm&C4ckMi&$`v}#x?w6+!>s7zW>F-rRY0jHJk&m61>M+ko1 zm!^8j$Z5Rc=33by`!{aQQWhI*J9bPjAfLzF+?-i|I6_TNFB+KGnc_i|0NQUaGA5|3 z3;jBZk+%8{rLD8=x|9-&-&Gqy2=2u8Jt`ptA+;XTx9FB)E-$JgxwhWmW50&W>_{~n*=3uXBzkK`FtwfOw1Y`gAXiXe&_+YZ9 z2pQWlt-5;CEqiz|S`2m1tq%1WoBqVNv`2u)op9%xf^%XTnae@LZk8RCds!Is^%YBU zG`GlH0X8W^Q4`H-zLGN6fA8if5ZjqK4Pbt#d1cjrIOKCJ^){d?;km0^b(eLPiWOn~ zbs*PdH0~2>u4?`05P}H|f<8{Gulzq{UM`J+%f(}mOE@Be49-mic7Oc2^v6yto{Ui4 z0-uud<3{f?4i)JT9mzcoPnMtu5(41FPl52?N1U&s%o+!1yk>{@R++__#;5Z3qoaiA zc-HqEjQ+&>3ww8K&1P`_ymjxO?lJE8e(!Du$PoeH(9AdpDC+jk>7s-Aa2h2uv3(W)g>+mpdzSl29&4 zd5yg^Mh?g3gR;^!A5zZ|!e&Z)KAH40w9cioUQH5UqW(!1-4bb>9ZhnybgYEXp zi+t%nNGU+n(T(-2j2Ugk@fdQs!^L)lzICLj6UW$C%Eyo!yL(+a%4soi;(R}4EoHw< z3k+dZOtwFv_%G9J5K> z;vhwR#$Y{d%$w{3fbrw~c^?YJhB>#xE-_VT{8AYkj9P2z~fP+db#E`rDWd7^7wtv2 z%$sK>nh!WYiG>FIupabG>@UdrH#%d%sCQV;fR6;%Hj!;T;vUKrh;wMm8(%US4*l@3 z*?eniXVe|a5io-+SE!*5xC|)m?uO`5YJsAk-kcyC0@pTC(+U-=U$Am|){nsW2ETWr zg6+bEi^?gFbf4_=cSf-*Maq}vgC@7-X}?K+eP-&v+i^V%8)H;$fBSe|!xrc~&am=l zGq`={%KDg@nn%_CN>El}v#8-Csz~(Uhu>Y4J#1a-oT8$lxsieJ`*}-NL2(4*st}BY z!9}cD^o~p@SK4-01hn)>+`dQEd@jGy^6;UpNMjAb$ti!HUbUiBE5tBJW`$V!!nDju z8&~!PJkYa=O7CPp`}gwJIja>>$Qeq=@qco>fZ@M!%rej5pj; zCUU*iMv8$m_A#UMS5;Mwaqyp8#IO(!XYBkCP!Fah3gAC|EXSpa{J~g$(v}u-aMjm~ z5!UoHM_MHqFhcXa6r7}(6nO$8s)r#0F+|n)KPhA3vNReeWr*wHc{|aRoAbxA^n*SOW_NvM)c{o8MDM({GB@V7&u*HGkn*ejh7xu&Qx$?q$Zmln(KKq)e2ZpWA@ zU~hdBWdV<7GvDNYaA33n>Yk(*Rf=a?L1t_pfa-#K{}A(=BUc)jgY{6|#f<-fi+bpP zph#wAyDva+qQai4`)6+nKwGIfgTw9MS=Y90}CE z5H}!GF)2fI8KKd23#|^|3PAMog?@n404)oMQ5pPk4SOwwhO6IJ@intW_Byr0Wy<(u zbMVVxvBstQIh^i?8Q1*^uX9UKNgD%IVsgrpEKB&6nE+T>vus+8313vN>x<8joUMPx zIPB`66!0m`J3~=Hkew_)tgZ-bWYD+d zY)xG>+F;AF$9KWlX&-^bpXrcd~JVQ;m1j%`qk9H%_ zzJH+~Nz?)Z#YAVk3=A?S41Bw4{bvvY?zU3#0r3}{p|Z2K1_$~GD2)|F-(TE#&kejo zQ;C^lKH^PNPw)H2RmAbW~I; z9a^sE7@?sU9rq_r?E~PIo_LA{5XcF7_W}FjUzK^rKi+QtpJip7!dqbapI?+C=^l~8 z^UI_$Q-g7BoS5J&#&eqV)>yDZzJA3+3Lil}E$lhM`6&KsaCCI^2fsu5`R&=pFAPA( zd;dK@Ql?%wjZ4=Q?9XLh^ahJ{=4W+wKUZ0> zr4AlhckO>lOfHGcs3!u`^-57uF2>a8-@nW}I(_OSRiKZ7c+cKlM@L5!I=iY`!0Wrn zLhQ7*GgRx5%v=WLG-^7qIA}SK+U{y}Bt!lUxq!sM&Vwty81(bm;ssA>rg1#&)tPlt zT8WI+wh<^NpOiseeH_$;*{4NHGqkhx##GDg009JfH;Lr*hYZx7A0+m zGQC_l?eyuO9Rwx`mOPQlZ<@;WGT)GRUbov=`ph3 z`_nlckHdU9GsbZ7@48ph+FO|ka9r6>j*n^{ZDCndn+NeT^~fO^057vH4z#gx%-`|z zZOpAX2wr7yKkDaxhbw{!!4u-$BIdM*o7dJ^TNfn%p+aEuc44p-E7C(V7FIyNC5vv$ zzW<~mtKe_ueWCN=!~SE2@4M-YE3o~X1d#c*;D3Rz)I;O9C+~m%d)dqG@-7D$x5lRH z23s?*I|X$kuq#a`jna(yx|AP22wSZ{7_qWtlRN%WJ%-4U@Z{{}BIRfsw+ahw-_ ze0<4IDy=>j4EB69MQ4dH68$SWz{pwRz7^+mL5}qWC$9CXz8qp6Bx|_VrX0IBM3zTK zze9R(y8Z39;AA`gEup8+A2?r-#Md`**TS8iULxdF`P`@MeuF!9WN$394NH{|ngTcE zQAz~;A-Catj*iUlV1^eezt6NX^=XOPl2ZThA^c|95BsF$B7SK&f;yX*AYF6bc$$%L zsMD0JLEiD9#(ES8;{`v}5}M;C2wqgluB6?mmFbuxf_l=p+OtH}jGGXP?l={*#IlpI zh|)YH>MLOj8vpuNyQV@5jHS0XV*%UxKlkPQI>kSpoiVv;==>l>#nQ-jk=m@DAcL4s z1%YjUK=i?CFKixG15a%vwkMDIn``49Hg3^-_DxRWowVL$8Bzt2(E`Q+xvOQyCd;>= z)AKz*$**L8*XlEIE`LIpawH zL`_38zW7tFw4`x30}igewfB9k?Qw2RA?5VVv<=5fLQy@|qTS)9N*B4xk)c|HM^0fY zIv*Rp;TkkI z-FIp!vVE!Y9XojHt^^Kau?9H_8LQuU74r8IkO96`RABr2*Y;HdX((c1VkKo|U8Tm{ zwmjUtxi!`oyFS*V+qq3mq!-(4IjIrAMh@h$3~eW~9$^yf?yO^R_yqC##f8Z~sw~?5 zs%@cF<*l#n`eQ84WMGlA`FU)yKyp&lF+W)d{ugHC6hgr2k;9aKBy+3P4vdQ7`V-C| zxU{qs|IZofW-kZF&UHyz+1Y8K6Y&{SZ)`AZqVPB`g=7OR^6s{?uMas8Zr;oP(?Pk3 z=YU40Xhwt|pX`gVXXfG{NY)w-7I}X`T*RFrN~Wm)+Oa62*47(un75Qet`F9VccW0( zLKh}BY5MBcOqhN;R`dQvn2IPZ_dy6b4Xqy3UvQ?vm_rX)J6)5pQeTJU_n(2M*|F1Y z3xdHEqx2g7%Rv0r2)Q%u8j?oEY$7qS3X?qY#8oJAUdBr?&y3S$fPR1 zFA)fH4gmcL#IzD$A%$ryGz7)1JZuZ%6BxpQ>{p)n^77>Y^%2)&0elk~0*`=jRS$Mr zhL=<+ftDgnd;BIAd`r$&rvnGl{>eY}j~UI@;Y3DS2|4`UFYm+e0FvseLW<#|Yd%S_ zRSSs%Vk8ii_rXoiefm4u;x$&c@WZ8MqOXjq$7k0ry1FD#KJN;d$Q#$8y{>lW#(lTe zvlZV1wtqmP;$@y_d2d&$SQKPVPBFM!{W36e^3vp;h>Lhx*)vpc{?{C~Ne}M5gIQ(O;^eXE*O{R#C1|c#2yWy;R`X=XBtVThU!IEpl zB%<%iQWGP8EPxMwo7?aX?L|i~prDe30AH6aF*~Xsr;(JUh<%3}P44dQfJn`TyZOaG zzMpfjfbZeGA6oYSKQMCU`+N6GCg1eCZghzRTLvJRgGEcni)fbq!bQY44o+9IxXW5J z@#U8NpRT%wOD3O|TYR(}D8kOG2bnmUW5?F2Zug#{#gljU{V%U~rOY7vUZ^-WH0f0g zr&@@`%U5twFOiL8QdV8ueW(TM`Eh>(h)xdy{)v7XcKEqn=FDcKs2lQ{1@V!ENowR1 z?;=CpUFpe@wg)2-&4f1p>Hu?~%+Awuz^R067Jb)<@C`ZM-ll>8IlvoEaBZvkfGA>= zSbxI3YXME-8*h1-b`qx|Ku1`1ds<6i?zr_wy9tF#dXhz7zc!!*9{qaB`Zv%pyMp~U z>p$JdFD|C_g`SqOrOB+&14QnHo4wq9>ggh@F`@BrQ%aTetrmZoy&T2Yh2x#lvy`PJ z8<7Z$?_ObQVq&7nw6!s{sHkDee||cRoz%5qz3xl|nBcp2deL8!5;_)o2tK2=Ndwdi zY3QC%1v#tZbPe4Zyv_}!fn8nGfJ%s2SXelY)ZlmH2>3?%Q0TJFJ-Au~$iYw* zIYSi9t{_v#NW0HY&4`f!0`I)tQ?B~g*`-cwDVKi3=H96HIHdb=hldWtTkFy3^@P01 zmU%4(Vd|iPL2VFsuC1LUBtsZ@3=Qwp!UTguh(Y^jWb7i09WED7&ms^t@cNU{NFOFW zKhpiXB__6H;8SS5XjI|HXTh6zDcEk{h>gI7Ocns-#rP%y{LhnFB#qQ9Un51kJg?u~ z^_=j9|FPW3y%9A8`mV$29N<*yYisi^OG}H3Lq&1X(IG(og2x4eIHoiYH@Ejf+mu$I zkSlUi+|J=vPg-*h@q$q!8pgWa!L>9uHL7T5=MxJ8gbU1K3EExPP9H)YvaQZ6Ac_W} z=^8*#-p1ZuW_?KyKLMpLjmx~m1?-rMMuE}+%0!*zmkT&ug#!{b*G^8bflW0dj_$t! z)r{f$_QfndhRafe_bQ@(gv@R`K)mQ9+1?iY#=-1VTFoa$Eu|$85z&KuGupocNle{W zFRw1_Q#uI}VFB$XC!H89l*$Ep9Fdx-W{0arGETXQ-~J^XtBC1boabNkw!p}Xr<9Gr zK6P3_0YvbB1xiE3Md59^j`a=;z5hbRk_Ss)QBd?ND@ep2yGhC;V-*#dNy;O=H#EX1 zfJf)%=G?g<&1`KU9_(@}Wdl3*PrSyXfTDb=gG+9E^i24HZrCv5NDvtG(F+>!^b8dp zafB%`%Bq2!btab*C$i{X&)wgGZE6kU!x3TEW4}wF6~%)LnEH#0i#S&+RJs1cWVe>P zY9jL=BYd@mrTm+m`v&o}G=-av>*)@MT--4(U+tfCu`Vh(HQL)LsHh~L={}e_&dz)A z7#f^L$szP_eN0RWRwg3K6m~%YaiY$zwEt^HUjtF$CA79=Dr!zg(;YG9s)fEwlH z^J~hn9=kegFW?3!87?C{c1rszsb#Re+!!J^*NVmRuE!BkC$71h%21G$N zaRb(4Cf?rOIh8rhU`V2baVxJqCi8xqc&Bw6Y23>1e~5R_zvTShBf!Hg=B2N?QAuo2 z-(r;Xcx30ELUm&@&+x|n+4_w_fMk~WssLe-1eY^45Qh4-{6SlrU@9)|(i2F7*Uio+ z;v*$-m*uQz6p&z#cn*2hKQz=0Hzb>$d~aOw-ymjDLR^zO2R` zEYOCm^>n@PO@tlm5oYJ)>w1O&xmo-p7xevZ6Z>F9bMm$H_=-x#mE#2*VR0-cDaqO2 z2}N8jn;f1+149tRR_r#R8)t|_R7Nd;CPADl8%c%dgIHT6tPFli(~V(cc!wxgax(Vm z{Fu=QXdK7Oaz6unOF|RfFLG_IhfocrzqV^ND}N7Jt_kvxn4h$#4X7|?f?G$ z>GN#-l99n$HdQCC3Fg1v4NGEEz9{|m6JGzqbo*X5PL7a(;7!@+XkVr_X~9r`2+&a< zk4}QSDn!Czt$tPY^(0@pxyP!SFpD)b;~XQpr{$!W2ZZ@r@h0$`qMLD9t##!A6NpHfMDid~TGg=@jENff?fryV^{x3j9nUc7& z5(a@56=+_V+1m$GLOKACSA|XOAeyn9{XH>#gM$I55{k#e_as%>tAKy~v8^8`s8Hsi z=qEu{L>26c9aqV-l@3mT-T()2@T*znvEek6^Ex0R+{`~drf6xR4>OWqT8uvb>F0f! zR7I$Q0xCCZjV3#3K?050@Cu0faB6W&OiD_&IIXX5m6R!8 z&b#2hpw{(u8jz6*k!Pshf~5fnE4AUxaAxG~SL*vaSTym`2@PwYM3oePc~E{}g!?{BU+tx!mYuS6FeFvDjdoRY8g zZs`ZO%T^kniTiDM6z?zs`yMH&V{W$2&d+r#@l>fE@1|)QV>ISO6T$#bFRz@+N^IkG@Y#LW$DEwFv$L}x;Y!)qIMbxI!m+5d zR0#xgvSU0=IbV9nO+dJ16xFBVKX` zV`H|QTne(p#IKy3TyY`L=&~B>@qC@m*+F~`zFOW|o=C=n*xX+a-k%;u)DYpJ$?zVX zjWfD=c~CV`bjZxmfwsqxvU=)4;H!4{ z3g?B~+=*7<=?B@hZg!hhHS4D%%{K)64rn#|!yPxuy%xbecjiGmW&u81=o=bz#Bzod z7| zi`3I?y~Xeg&;Y?fUdLT^?HX9JntRdR@D-rXym0BIo!P2fj1?DKEX~=S>K{NGU=<`I zPKS+|=tl*)i%b0Yu`Fdvl0kuI%WDJ%X+Dem5ZB~f3(u}UL*sI&7Hw!K!vD~enRDc- zpyOO`rrBAO*}w+Nqfv+B<9rOe^lQbY(IOXS=M*<4>|5f`TcM%^w&(p?!?7eX2ZX@nRK06Eca2n4cR z<;3gj`p5_r1W4EUHUy6w8dCcVmu2F0cp6{sS1_Y*Nw_JIJ?gb;;{4LxYt@i7VCPcwzoekbCb`*?W_4XHP(c>G31{|`)v=e6pE=uFb5vW z0Qv;{@8qINOl8g9{(a?Hh8*R2X@b{rvBHb&dyih4Z%MX>6PqnqQp26Z^ zFuIP+9g;n^XTn$n4!NVFGYSQo8XC{l)d?4c^7wv(HuX?kd}RT3t2a6p@*ido9>J%q z$KF$VmR`Qy?@$4+=`Qn!&&joeZ)MyfyhyK*tuvlXcr@AH0bwZK@L>o$JNgnFJ3Fvt zH@Eook=5QGCvR9+09%jps+{geH+c@bonM02Za_8V70NjY`UUiNuBp1S+{Wpr*cG zVw*28-53S^0vCJwigjGCwi&~5hINnSDYAsIHd#%}P1>YtFqMB!_(lz6E5yTMn*TM8c=AYLP+g?6r;e=T9hh>s^>mGN>u9>wbQ1&03Ye|hm6xe+X27KUZ z$BO5+iTX!A4TpzUzNt*f@KD$ImR(&l3WD{Gl~Z)6<3YC)xM)wm_ZiSIxQCSR(O&dtvsBTs4ST>pWzqQ-|agIMZL#PR;s4`5VwwE_ZoV#Wj|Gx!|JS8HfW zE903uT8SlQ>7&CRS5$cG!z|rMQ$07(uky(Kb#6hUtRBA6iTmZH^(hGa#m86Y#Sd1@ z5e;0U5}w{WUDm44NUwZ3KjR6mss*1u%^BE|1NAK&0grn@Lj#fy@%pS@Ne9wL82#0| zx>T`hb!CLsgf$JPkpM-iI=Fz^iCfRAIC;hU5k;vj+g=zV-)#FvdHF!Cy;D1!DR$j* zuk3r?kJs1#-W^OD@DNVW5@!p;qh7adD9u>|{N=6tDYKc9K2~5X4-K$VB2u!nWF=A# zUsJJqBt%Qd@#)uG0FYf+2vJf}I`uKcWmx-QF3(CT(bMa0fgk_iIAUt>H7qSExkd!Z zrw1H534r5R9)>u&JgLyrWobS=NdTbo=4<>Mj`YrDI7&Vy8*(690~3IzY8t9OMGugE z?O|%j{>Gyf4Xq{1*1;|u)`(+77^FhgLf|-$x9qU*d825yJKa`ezyE6>7=w4@=4K>8 zCGt{_5%~4%7m0*t;pE2J_IA|jsztM%Wqj^iB_%8a1B2y*pMiIMddELNm?Tu9t%1#o z?NTwXU0zhw%Em@PpsNx+YjQJ{@lub$i8Ke>oPn;Zi2M`f4oRN{%e@ z^XG3y8JtEuOEEQwyHOXdGLfK|*N(TJ#$TVb3Iqze z?y&LOrHbs=G|wSQg8eLJi2uANqZK=*e@7={b8r2&W9W2T4*L>V!$rT1sf2(udqprX z_n$m9{0+mPfaNcjK9o!mi@J{NG=YICIpCGnhoX0g)$T$LeKSM4PbViuQ_E&U4Dpye z)KN}+R;$E@IC)O(I(1J*)3+DLPZkd`s~0rD|mY%}g_;h%lU zgWgDzsEZ=TpDa~YR#p?f#UaR^23bElr17efye(PYq_!sl=mIPNBnuX^_5N04X3kqP zbly^V6s1IBZ~udS;63ENP4N%)3fE|R9ZGkJ+Xt!oU- zD_@IXIxO93-a4^<{%bTW_IG%Pj7$(0zGVv~e1Il=Yf3!c>udETNuRo&mez-RN*p^o zPNmIoZsX!iYq0En#up#B{lWM3Pt~`;Y;<8E2My3rW((NDjxoRqRBRzjEUZSla`|e8 zv`s!@IgvmGoiL`<^g->$%#XKiXP_i`W2 zc|wea*+m2s84c|(4i-7Mxu5CiJa`^MJIT5alK-|gsH`&om#LM<%#a9zK3A68Khy<) zEGkhqM@OD7iHQoioKwcX1TU6o=WK4E-?v_xX(z9Dp>I`+qlk7tlbwfMGLCk46oWxd zBK(|BFS)ItH9>`WmE^`#Jo{BRpD=Ukj$R zNf7kmEx4`KhMNr@r@V)N?@Qk-9#$uiT*gHaqi{Az^+rmQy%{D`0qmvP0e1A%2DCI{u1E7 zwA=MdY(ZWnqT#k7D}EP-;loK610V{McTJ}^f&&Y()B8?KEev4Jl9`r3Nokh@&>JBe zaxemr@u8NJ+TU!scFg7>+9+tiikWAu&iFopKnB- zo#fo*V*C1s(%eGK<@lsqKl`n$>kfUtM94OU!cRsFCThMv{H>EpnUmP^{^||G=$*@9 zfaRRnp%|)};1hF59RtP}=DCm6c8}DOA6Lw&yw>I{S}jqfHBq$Cp(?UY|50VPw7xD_ z#5WM_wXOH1(C)i>BuoB&lM-%`qM`_4b=q`t7q(!^7qksc;MwO(%Nrb7|CI$dpO(tQ zk&NM^L)M(ln}rkqpa@UIMG)ff_)?$s{jpnyMA+^~>uO&GHZmaXmcGCQnGrWTM$9L3 zclE{>XW|xzXf-LC%JYId_~lm$Vsp;ZDtlvP<%pdm?cwuE#5LtST+9t!r&#->+E0p6 zEK{S?`>!k-?kMdmt>);M&wn=04}23A8$EE;T{1%uq8XE0n@pl3FS9Ic)`Nz~;A_1> zk=^-`N4_5YB)MagF{Gj?1mT0_d zlZZ~Vg5P#Cu{Z45^smAv-X2a&|)S$GL0s zX2!~&av^SMcwl*x6+Sn&Sn~5HFZ*hzvJ7Qh*@3n7^V2-tfGcTdA&DS7Kuwi#D~(~E zz-Y4ET=H?#(gR!Gi+#j`#z-|En{Wz|@`ktj&p$z09@~Y(3q<_XXveK&wTxy|!6VD{ zxR~Uy@-E}x{!gZEe=RvH|4RKs8;TCsRQL+=5HKN^F1`FV^|8 zHx!^V1)J18&3dUp&_wibGtBqpL**10=cp-qG(UGk%F2CzTxp*cdGj&LzAwll)qN?O zPsG{A(9e;?#J#LO5~ZL|;FK zcSj=fca^sTIUe5~3ac#njPIB_vLB}0sNU|9F{e0us+{GTA#&jSB+9P#ELwoTZ=;e+ zW^X_|JY*h-#sF-->Mqm3+7U8`qWiSS!%MvZ9@oG?{F*?%b+v#R8IzEZb~O4bQ4iuK zIRDe`&1@&8d1KRv^BUQrn*O%|K%3||D}6+VFb6L!X)O5=09BCw=vR?h$Fz>By4*bW zYi_tbxlIiAx(nB7x4AW!Vv!hOyTAE1iyG#$nKy0b&f=kCX<;Q%2;>CtgDWd!ch}IS zUQ6*s095g>rT2sfVsWs{Hs8_mZ9rEcAqil167(@XAZbu`5J#b*y><$<9uHRDfYoQg zsbFTI?TJoKs>h?m$umWCzFkJ0JJ|M_xO-`hzkaCAEe!brHt%^{v}l5lxSda>rrTue zA@g@_bmiu*#}__E8-lw_lTl0^x;Z#GKq_ntrPb@-oJnB@dkm@``-&Xu?mz3lD>^AS z?)8!F=-;q0Mrn$Ot_{pq#_j3gFkNb%ml;CQL-@P2%Gn2^`M1)h=VJtF0+_byiMn); z5bZeB#*x|E>ArMXoKbPerkhHdZ)9-C1iQC+l)}fa9M}u$Y%x_)iQixuE^vFG=yDSW zZgOWK`LFC?Y4idLitghBOURR+Um{qRxu zw3xnH@YLb1y2RFM9vb!jFLiK~GD^adG-_4E( zT`Fx|AN*bs3ug*H8lIs)53oJ(31sW(5eMZ|o~-ZwP$nh#LgMd0`!s$tXR2%1hICsOdAVR2Ors{7ADMbCQ@~l#dBv zUqBwSSS)zn!dkn-Y*Px5`LrlgPm`8J8X)x`y!Yjq5toz2e+z{-UUhEVtL+v zPLR-<_bMRS!9}DD>-eyNwwe|4ur&d4Kkb6=%40J#g~jA~-k9HnUjr; zjX~&L^z6R(q#${t(H#O){x4&HF?DHasV(SMad0Sp<#W3Ax|>Wd({CHBFce^Xoa50f zKrc^n85NH)a6VN6Ru~HC|7S`O@f4$XmB6ZqdIOY*LSu`Y0Px0^mUka)i$U{~tCb@akI4CsYP#`KV$y1B%GFg?! z$jGk#8(+FNDP~SMvs_Uw`Q-$sF{8?YZo>@;SWWcm)KF8~(JD)v{hL|aQg%ov$=8+Z zt1B|f|0-zFd)xk{a^F^a$wS@D$S>N~o)wt#jy#xXT##5+9i1>e{V&YV1Ec}% Date: Sun, 13 Aug 2017 09:49:43 -0500 Subject: [PATCH 207/219] Automatic changelog generation for PR #2346 [ci skip] --- html/changelogs/AutoChangeLog-pr-2346.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2346.yml diff --git a/html/changelogs/AutoChangeLog-pr-2346.yml b/html/changelogs/AutoChangeLog-pr-2346.yml new file mode 100644 index 0000000000..c42300a173 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2346.yml @@ -0,0 +1,4 @@ +author: "More Robust Than You" +delete-after: True +changes: + - tweak: "The wiki button now asks what page you want to be taken to" From be46c419e263d8e1167f279540b6ef43440e6a24 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 13 Aug 2017 09:51:47 -0500 Subject: [PATCH 208/219] Automatic changelog generation for PR #2350 [ci skip] --- html/changelogs/AutoChangeLog-pr-2350.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2350.yml diff --git a/html/changelogs/AutoChangeLog-pr-2350.yml b/html/changelogs/AutoChangeLog-pr-2350.yml new file mode 100644 index 0000000000..07e0f51b62 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2350.yml @@ -0,0 +1,4 @@ +author: "Xhuis" +delete-after: True +changes: + - bugfix: "Minebots no longer lack icons for their action buttons." From 6d72705ff593034e0b79db42b82b3504591f10f1 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 13 Aug 2017 09:53:12 -0500 Subject: [PATCH 209/219] Automatic changelog generation for PR #2356 [ci skip] --- html/changelogs/AutoChangeLog-pr-2356.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2356.yml diff --git a/html/changelogs/AutoChangeLog-pr-2356.yml b/html/changelogs/AutoChangeLog-pr-2356.yml new file mode 100644 index 0000000000..218da24865 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2356.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - imageadd: "Adds icon_states to the unused and used Eldritch whetstones. Sprites by Fury McFlurry." From 0e7b9a008e560c106df44d117b6d8baae4282d81 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 13 Aug 2017 17:54:27 -0500 Subject: [PATCH 210/219] Ports a slightly edited version of Eris APC sprites --- apc_repair.dmi | Bin 0 -> 627 bytes code/modules/power/apc.dm | 4 ++-- icons/obj/power.dmi | Bin 35764 -> 36328 bytes icons/obj/wallframe.dmi | Bin 979 -> 1059 bytes power.dmi | Bin 0 -> 1782 bytes 5 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 apc_repair.dmi create mode 100644 power.dmi diff --git a/apc_repair.dmi b/apc_repair.dmi new file mode 100644 index 0000000000000000000000000000000000000000..6e861eef61bfd13f6194a65b44410560672ced2d GIT binary patch literal 627 zcmV-(0*w8MP)W=qlarZKQ&SHQ4=*k*R##RR7Z)QVBPb{+LPA1gV`FO= z7O5s9z`(#;NDpmN3fW0U7CmbtPpKQON3H+>00DGTPE!Ct=GbNc0047(R9JLGWpiV4 zX>fFDZ*Bkpc$`yKaB_9`^iy#0_2eo`Eh^5;&r`5fFwryM;w;ZhDainGjE%TBGg33t zGfE(w;*!LYR3K9+u^`z%iHkEOv#1!zHRR$$p}NoJ^{cH6O_)f6U<~2K=bxUlL$Eel1ct*hW2ibGZ-n*6F>S@Q^13?1*F)Z|?1)TFzPm-tXD?LyCJ?H#CNCJBP7X_vH zUlf$)e~B>vN5al^yTHsSH#2GkQr^O5l(M!?@ENup3F20ppp8@~u;cNzI)RNCCGYp` zf+br8Vg7%)@>O#)2;BVtc3&@5bJMebZbEz#D-MkU9;g>oeYTt&f**u=9A4~N-h%)D N002ovPDHLkV1k1O4M+e0 literal 0 HcmV?d00001 diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index e36c639eb9..aec4bb82ea 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -120,8 +120,8 @@ if(auto_name) name = "\improper [get_area(src)] APC" - pixel_x = (src.tdir & 3)? 0 : (src.tdir == 4 ? 24 : -24) - pixel_y = (src.tdir & 3)? (src.tdir ==1 ? 24 : -24) : 0 + pixel_x = (src.tdir & 3)? 0 : (src.tdir == 4 ? 24 : -25) + pixel_y = (src.tdir & 3)? (src.tdir ==1 ? 23 : -24) : 0 if (building) area = get_area(src) opened = 1 diff --git a/icons/obj/power.dmi b/icons/obj/power.dmi index f3b2233283db7530bc69bff95f26986dd5ff4dfa..6b2ae5535153f3404d30a653b05a81f6027872f7 100644 GIT binary patch literal 36328 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 V<(D5j#Q7P3z|+;wWt~$(696vg+pz!u literal 35764 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 diff --git a/icons/obj/wallframe.dmi b/icons/obj/wallframe.dmi index 0e416cac77708215cfd415d4a064d24e04dafba4..70149901e33acdf8a077fe7f7b4b2850bc183d0c 100644 GIT binary patch delta 960 zcmV;x13&!J2crm(B!AdYOjJd{z`!v)MNumAb# z^yShgCoIajrQ*=M|N8Lx=+V=-0C=2@&$|wTFbsv^ zIev-=_NuqFO9iSJ;2qN75)U|4YzmLxs7T!^x}9J8mQ&hmeQP>fwGF&52}QOSd*1EA z%+zbhaXNwtNJG#yM4e)ug?st}OixL29l(D)k{fZ|Uvr;SBX2TXlz5m(0;WyOIE#0p ze^BDAd>ntl($-z|IsXRZk4q9)8Qs_b00LV{L_t(oh3%DVcbY&Dh6A`LD3MZItwpJ; zCXH!MTrq0#5^Zh!|Nl{Exkb$Yg+f2{@ZfR%AoHAeW?8PT{u_i#@)n3vwKJkf7>O<0uJ&ObM#0T372FMM)B5OQ2S(a--3Z8=9unFhNMh1a)6<-E3k4 ziM)_4K_JkZZ!|<88bJW>N8WStkG@bD4Ctj` z7|@GP5Fs!OE*OnQlyU)*U^w2|BfkLzB#a*%ujq;Z0000w6q=`9+9mo15;B|k=H7J;yC!{00001bW%=J06^y0W&i*Hp?XwU zbVOxyV{&P5bZKvH004NLjgY+#f-n?D=k_TYSc#$F;NoH+hC$w;!j;~Emh@i4$G84O zC!*VTl5>_XRfqc6w5mEa@(O{_JGEEaO)kZPJ=+LnA%z7TEWd!*FvOXdsY|5jF;FCb zEyX365#HN+rpZ4Fy~~O+)8FhoGkdpIel)l-x?x7L5Pr%I7U~S~A1bZ+%I=Wa_=LoZPN;E12H?9i^&f0EMeoMr zhH#bO#`^@#;7EV~!I-v>zoY`UqoDj!p5Sv=L3I=R;so6VlLCq0wsFWOyX{cBXGSRn^a{}V8aP8LR|3h z`1J711?R^R7hI6wJA72+37(n~aKU{}li-EYAjn|}1OmST7FbO1VtXERT$h4pfj|fv z=Jlz;7A0sLvQ#iCFpTD-Sah3z${5sWyvTISa<3U}1s7rRUtYd-2ppr1dO=T5k8Tc6 z6`Jbf3M~d&|L|z4!w}H=uN-R7BzP@=1mP))1tE!I5++GP7<5fq8zh1#j^gl*kQsxJ zx4CLTyoeX!oXmbOW@N5B0jP002ovPDHLk FV1kyuoWKA8 diff --git a/power.dmi b/power.dmi new file mode 100644 index 0000000000000000000000000000000000000000..d0066b96de9d090771f9ec0a7338144bbdb839cd GIT binary patch literal 1782 zcmYk52{aqn8po5?J_u6FP^F_vZEeTW7EQ@m$~N}pv2lB(Sht!hgUaw1wPUNS97BzZB*nRm~*_xpYS@0{=c?>+aH1^9bws2QpO z000f2s~$n}$U2-VN9C)npz)PF^acD4?kOuOI`8T|JUmui-EjJheNbo|2n51l^6f&f z`uh52W@fOw(U8J%C=}XEnTxzJnOi>vfd*mi?Ch|C4aCsC-^PaiPu z-?~&5;!+;wL5jxomF_d5WHQVQ}l7O>Qf@hDT)&2xzcdU}@= zTTjckX?1pXmNz?VXBQe4YH4X19UYyJkdPFl_Rhy^jc^+43xcyxoxy3IJEnrQ25go5 zxmjICKZR2n*>16QKiDdb&-c{-V$&HhAuTo16iSEdgI}IOKUrBo4lXORpc3d^-3`uPoKm&cT)@MvLaEs0dt#|}T5Z5EGu_#dEE46T zq;?#JQc_bOZb$W(dq{PC@lDRxWjXZ9|;=S1gB%AZA#BgZ;T@A zM|>g{%(Db@=Jc7x%=a=`L^Vxo%yjwf`rqAF@x<;Hm{uRkY>A4WQ;}aXz^t=uOSP*q zC;jOR0jRfsm#(`h#G4ne#KmFaO0=(oSq2lke$M9NF?R#6Pe-a&^o}QJGEzI#Zm}1A*2h>i5Z`~{O1gJ2A;g1TRlQ12D)xeLs=EiRcIO%NXA=!{GH!ZKA8|dn zxD=P>LjK^A^O(na7xR_1Lng-AQTLu$&^qWA4EgyHtiM1*nlL!}5>^A-!W%HG8l56b zlAHNHNZxTP@_#<<{Dm`z2>RVN0HCh3gPZA!pXH*kpMQsK3EJExSDvh(QF^GGQBDM- z{9s6LQ^zB9A#q@+ciLnyNO7CBB}Dq>d@oy&jBw&_G?&!A$;8;A`(JLPyl;eciI+C8 ze#X9cXCHemY8pyL9Wj#klbanu&(YvF2)62}cDhc4GC4n5c`016qp!bwf!|fLJ1<@4 zpOwQ&a{5Q1;L@V^g&zKT?ub-C;=AwQZhxMuAL3Yv$|dnGoD!yxn8-U3=s?SN!VZk^ zk_VBETI}O{ifPReQf8;$Ss(!W9U=Ca>;U!pNL(-Z_}U5b3nS&NTT4rvZkZ68gHMFe2pzl=58dc%vGVf&K(rQ0XA`OK--vZ)j2oh5<0<{J5J8aZ{5&`=@UQRW@e`kR2+z`57Dq0My zq>NKIlr=y%#1cna56KZAI2GZ)aKTiug=~)Gjx02tKdp(Neuz4d7rI2{s_g|C#*|-` zq4{bd;F#UqK}05|!BID72%4>wG~g=JiN Date: Sun, 13 Aug 2017 18:00:36 -0500 Subject: [PATCH 211/219] Fixes turf slipping --- code/game/turfs/open.dm | 1 + code/game/turfs/simulated/chasm.dm | 1 + code/game/turfs/space/transit.dm | 1 + code/game/turfs/turf.dm | 1 + 4 files changed, 4 insertions(+) diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index 82ff907a04..a990530056 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -18,6 +18,7 @@ var/sound /turf/open/indestructible/sound/Entered(var/mob/AM) + ..() if(istype(AM)) playsound(src,sound,50,1) diff --git a/code/game/turfs/simulated/chasm.dm b/code/game/turfs/simulated/chasm.dm index 968e782984..a51240c969 100644 --- a/code/game/turfs/simulated/chasm.dm +++ b/code/game/turfs/simulated/chasm.dm @@ -22,6 +22,7 @@ return /turf/open/chasm/Entered(atom/movable/AM) + ..() START_PROCESSING(SSobj, src) drop_stuff(AM) diff --git a/code/game/turfs/space/transit.dm b/code/game/turfs/space/transit.dm index c7e6973c4d..b877fa9eac 100644 --- a/code/game/turfs/space/transit.dm +++ b/code/game/turfs/space/transit.dm @@ -25,6 +25,7 @@ dir = EAST /turf/open/space/transit/Entered(atom/movable/AM, atom/OldLoc) + ..() if(!locate(/obj/structure/lattice) in src) throw_atom(AM) diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index b204406d05..4342d12714 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -160,6 +160,7 @@ return TRUE //Nothing found to block so return success! /turf/Entered(atom/movable/AM) + ..() if(explosion_level && AM.ex_check(explosion_id)) AM.ex_act(explosion_level) From 726ffe1fdd8698d01e960979a269c582be869bde Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Aug 2017 01:25:02 -0500 Subject: [PATCH 212/219] Tweaks atmos canister lights. --- .../atmospherics/machinery/portable/canister.dm | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm index d733dfc3fb..a45536430a 100644 --- a/code/modules/atmospherics/machinery/portable/canister.dm +++ b/code/modules/atmospherics/machinery/portable/canister.dm @@ -189,8 +189,9 @@ #define CONNECTED 2 #define EMPTY 4 #define LOW 8 -#define FULL 16 -#define DANGER 32 +#define MEDIUM 16 +#define FULL 32 +#define DANGER 64 /obj/machinery/portable_atmospherics/canister/update_icon() if(stat & BROKEN) cut_overlays() @@ -207,9 +208,11 @@ var/pressure = air_contents.return_pressure() if(pressure < 10) update |= EMPTY - else if(pressure < ONE_ATMOSPHERE) + else if(pressure < 5 * ONE_ATMOSPHERE) update |= LOW - else if(pressure < 15 * ONE_ATMOSPHERE) + else if(pressure < 10 * ONE_ATMOSPHERE) + update |= MEDIUM + else if(pressure < 40 * ONE_ATMOSPHERE) update |= FULL else update |= DANGER @@ -222,9 +225,9 @@ add_overlay("can-open") if(update & CONNECTED) add_overlay("can-connector") - if(update & EMPTY) + if(update & LOW) add_overlay("can-o0") - else if(update & LOW) + else if(update & MEDIUM) add_overlay("can-o1") else if(update & FULL) add_overlay("can-o2") @@ -234,6 +237,7 @@ #undef CONNECTED #undef EMPTY #undef LOW +#undef MEDIUM #undef FULL #undef DANGER From e986657b164fc3024ee57158b47cf22a8e7ea6c9 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Aug 2017 06:25:03 -0500 Subject: [PATCH 213/219] Makes mulligan antag check for gamemode required players --- code/game/gamemodes/game_mode.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 2a0cd230d5..790319e362 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -120,7 +120,7 @@ var/list/datum/game_mode/runnable_modes = config.get_runnable_midround_modes(living_crew.len) var/list/datum/game_mode/usable_modes = list() for(var/datum/game_mode/G in runnable_modes) - if(G.reroll_friendly) + if(G.reroll_friendly && living_crew >= G.required_players) usable_modes += G else qdel(G) From 2476d59be6b0972a058e222d3d75ca4dbbe7657b Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Aug 2017 06:54:44 -0500 Subject: [PATCH 214/219] Makes the ahelp topic give the permissions warning --- code/modules/admin/topic.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 818b0d6f09..81925756fb 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -6,7 +6,7 @@ log_admin("[key_name(usr)] tried to use the admin panel without authorization.") return if(href_list["ahelp"]) - if(!check_rights(R_ADMIN)) + if(!check_rights(R_ADMIN, TRUE)) return var/ahelp_ref = href_list["ahelp"] From c73e58d5874cf06809a9ad5bc506388c983746e7 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 14 Aug 2017 08:19:27 -0500 Subject: [PATCH 215/219] Revert "[MIRROR] The wiki button now asks what page you want to be taken to" --- interface/interface.dm | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/interface/interface.dm b/interface/interface.dm index 64e39587ce..253738064b 100644 --- a/interface/interface.dm +++ b/interface/interface.dm @@ -1,14 +1,12 @@ //Please use mob or src (not usr) in these procs. This way they can be called in the same fashion as procs. -/client/verb/wiki(query as text | null) +/client/verb/wiki() set name = "wiki" - set desc = "Type what you want to know about. This will open the wiki on your web browser. Type nothing to go to the main page." + set desc = "Visit the wiki." set hidden = 1 if(config.wikiurl) - if(query) - var/output = config.wikiurl + "/index.php?title=Special%3ASearch&profile=default&search=" + query - src << link(output) - else if (query != null) - src << link(config.wikiurl) + if(alert("This will open the wiki in your browser. Are you sure?",,"Yes","No")=="No") + return + src << link(config.wikiurl) else to_chat(src, "The wiki URL is not set in the server configuration.") return From b2f93c506b2927d6b999e5f5210c034c5a872559 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Aug 2017 08:20:10 -0500 Subject: [PATCH 216/219] Automatic changelog generation for PR #2359 [ci skip] --- html/changelogs/AutoChangeLog-pr-2359.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2359.yml diff --git a/html/changelogs/AutoChangeLog-pr-2359.yml b/html/changelogs/AutoChangeLog-pr-2359.yml new file mode 100644 index 0000000000..8455963dc6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2359.yml @@ -0,0 +1,4 @@ +author: "Joan" +delete-after: True +changes: + - imageadd: "Ported CEV-Eris's APC sprites." From 77ce8f8031254ebda3150763634582d44fcf7df6 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Aug 2017 08:20:58 -0500 Subject: [PATCH 217/219] Automatic changelog generation for PR #2363 [ci skip] --- html/changelogs/AutoChangeLog-pr-2363.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2363.yml diff --git a/html/changelogs/AutoChangeLog-pr-2363.yml b/html/changelogs/AutoChangeLog-pr-2363.yml new file mode 100644 index 0000000000..e8f5b574ae --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2363.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - tweak: "Canisters don't flash red lights anymore when empty." From d58b2f7af36f2fe2441986106f5ee474ba9e4b35 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Aug 2017 08:56:20 -0500 Subject: [PATCH 218/219] Automatic changelog generation for PR #2231 [ci skip] --- html/changelogs/AutoChangeLog-pr-2231.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2231.yml diff --git a/html/changelogs/AutoChangeLog-pr-2231.yml b/html/changelogs/AutoChangeLog-pr-2231.yml new file mode 100644 index 0000000000..c25b4b2b49 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2231.yml @@ -0,0 +1,4 @@ +author: "Xhuis" +delete-after: True +changes: + - tweak: "Spell action buttons now have their description in a tooltip." From 7faec4505367e3fd73c8ac78fa9ed9547c6a127d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Aug 2017 09:07:03 -0500 Subject: [PATCH 219/219] Tiny bit better splitting on add_details --- code/controllers/subsystem/blackbox.dm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/code/controllers/subsystem/blackbox.dm b/code/controllers/subsystem/blackbox.dm index afa77b0207..3344afcaaa 100644 --- a/code/controllers/subsystem/blackbox.dm +++ b/code/controllers/subsystem/blackbox.dm @@ -250,7 +250,7 @@ SUBSYSTEM_DEF(blackbox) return 0 return value -/datum/feedback_variable/proc/get_variable() +/datum/feedback_variable/proc/get_variable() return variable /datum/feedback_variable/proc/set_details(text) @@ -260,12 +260,12 @@ SUBSYSTEM_DEF(blackbox) /datum/feedback_variable/proc/add_details(text) if (istext(text)) if (!details) - details = text + details = "\"[text]\"" else - details += " [text]" + details += " | \"[text]\"" -/datum/feedback_variable/proc/get_details() +/datum/feedback_variable/proc/get_details() return details /datum/feedback_variable/proc/get_parsed() - return list(variable,value,details) + return list(variable,value,details) \ No newline at end of file