diff --git a/code/__defines/chat.dm b/code/__defines/chat.dm index 1a9ac03914..3fb1d2e2dd 100644 --- a/code/__defines/chat.dm +++ b/code/__defines/chat.dm @@ -34,3 +34,6 @@ #define MESSAGE_TYPE_ADMINLOG "adminlog" #define MESSAGE_TYPE_ATTACKLOG "attacklog" #define MESSAGE_TYPE_DEBUG "debug" + +/// Adds a generic box around whatever message you're sending in chat. Really makes things stand out. +#define examine_block(str) ("
" + str + "
") diff --git a/code/__defines/faction.dm b/code/__defines/faction.dm new file mode 100644 index 0000000000..0d46529297 --- /dev/null +++ b/code/__defines/faction.dm @@ -0,0 +1,115 @@ +#define FACTION_BAR "bar" +#define FACTION_CLOWN "clown" +#define FACTION_NONE "None" +#define FACTION_STATION "Station" + +#define FACTION_AEROSTAT_INSIDE "aerostat_inside" +#define FACTION_AEROSTAT_SURFACE "aerostat_surface" +#define FACTION_ASTEROID_BELT "asteroid_belt" +#define FACTION_BEACH_OUT "beach_out" +#define FACTION_BEACH_CAVE "beach_cave" +#define FACTION_DERELICT "derelict" +#define FACTION_OVERMAP "overmap" +#define FACTION_ROGUEMINES "roguemines" +#define FACTION_SPACE_ROCK "space_rock" +#define FACTION_SPOOKYLAND "spookyland" +#define FACTION_THEATRE "theatre" +#define FACTION_UNDERDARK "underdark" + +#define FACTION_VIRGO2 "virgo2" +#define FACTION_VIRGO3B "virgo3b" + +#define FACTION_ALTEVIAN "altevian" +#define FACTION_CULT "cult" +#define FACTION_PIRATE "pirate" +#define FACTION_SHADEKIN "shadekin" +#define FACTION_SPACE_GHOST "space ghost" +#define FACTION_SYNDICATE "syndicate" +#define FACTION_TECHNOMANCER "technomancer" +#define FACTION_VAMPIRE "vampire" + +#define FACTION_CORRUPT "corrupt" +#define FACTION_HIVEBOT "hivebot" +#define FACTION_MALF_DRONE "malf_drone" +#define FACTION_VAGRANT "vagrant" +#define FACTION_WARDS "wards" + +#define FACTION_ANIMAL "animal" +#define FACTION_BEE "bee" +#define FACTION_BLOB "blob" +#define FACTION_CARP "carp" +#define FACTION_CATGIRL "catgirl" +#define FACTION_CATSLUG "catslug" +#define FACTION_COOKIEGIRL "cookiegirl" +#define FACTION_CRABS "crabs" +#define FACTION_CREATURE "creature" +#define FACTION_DEATHCLAW "deathclaw" +#define FACTION_DEMON "demon" +#define FACTION_DEVIL "devil" +#define FACTION_DIYAAB "diyaab" +#define FACTION_DOG "dog" +#define FACTION_DRAGON "dragon" +#define FACTION_DUCK "duck" +#define FACTION_FAITHLESS "faithless" +#define FACTION_FENNEC "fennec" +#define FACTION_FOX "fox" +#define FACTION_GEESE "geese" +#define FACTION_GNAT "gnat" +#define FACTION_GOAT "goat" +#define FACTION_GOLEM "golem" +#define FACTION_GRAFADREKA "grafadreka" +#define FACTION_GRUBS "grubs" +#define FACTION_HORSE "horse" +#define FACTION_INSECTS "insects" +#define FACTION_JELLYFISH "jellyfish" +#define FACTION_KURUAK "kururak" +#define FACTION_LAMIA "lamia" +#define FACTION_LEECH "leech" +#define FACTION_MACROBACTERIA "macrobacteria" +#define FACTION_MEOWL "meowl" +#define FACTION_MIMIC "mimic" +#define FACTION_MOUSE "mouse" +#define FACTION_NANOMACHINES "nanomachines" +#define FACTION_NEUTRAL "neutral" +#define FACTION_OTIE "otie" +#define FACTION_PAKKUN "pakkun" +#define FACTION_PANTHER "panther" +#define FACTION_PEASANT "peasant" +#define FACTION_POLAR "polar" +#define FACTION_RABBIT "rabbit" +#define FACTION_RAPTOR "raptor" +#define FACTION_RAY "ray" +#define FACTION_REDPANDA "redpanda" +#define FACTION_RUSSIAN "russian" +#define FACTION_SAKIMM "sakimm" +#define FACTION_SAVIK "savik" +#define FACTION_SCARYBAT "scarybat" +#define FACTION_SCEL "scel" +#define FACTION_SCRUBBLE "scrubble" +#define FACTION_SEAGULL "seagull" +#define FACTION_SHANTAK "shantak" +#define FACTION_SHEEP "sheep" +#define FACTION_SIF "sif" +#define FACTION_SIFFET "siffet" +#define FACTION_SLIME "slime" +#define FACTION_SNAKE "snake" +#define FACTION_SONADILE "sonadile" +#define FACTION_SPACESHARK "spaceshark" +#define FACTION_SPACE_MOUSE "space mouse" +#define FACTION_SPACE_SKELETON "space skeleton" +#define FACTION_SPACE_TURTLE "space turtle" +#define FACTION_SPIDERS "spiders" +#define FACTION_STALKER "stalker" +#define FACTION_SUCCUBUS "succubus" +#define FACTION_SWARMER "swarmer" +#define FACTION_TEPPI "teppi" +#define FACTION_TUNNELCLOWN "tunnelclown" +#define FACTION_WILD_ANIMAL "wild animal" +#define FACTION_WOLFGIRL "wolfgirl" +#define FACTION_WOLFTAUR "wolftaur" +#define FACTION_WORM "worm" +#define FACTION_XENO "xeno" + +#define FACTION_PLANTS "plants" + +#define FACTION_MATH "MATH" diff --git a/code/__defines/jobs.dm b/code/__defines/jobs.dm new file mode 100644 index 0000000000..40916e9ed4 --- /dev/null +++ b/code/__defines/jobs.dm @@ -0,0 +1,419 @@ +// Station Command jobs +#define JOB_SITE_MANAGER "Site Manager" + // Site Manager alt titles + #define JOB_ALT_OVERSEER "Overseer" + #define JOB_ALT_FACILITY_DIRECTOR "Facility Director" + #define JOB_ALT_CHIEF_SUPERVISOR "Chief Supervisor" + #define JOB_ALT_CAPTAIN "Captain" + +#define JOB_HEAD_OF_PERSONNEL "Head of Personnel" + // Head of Personnel alt titles + #define JOB_ALT_CREW_RESOURCE_OFFICER "Crew Resources Officer" + #define JOB_ALT_DEPUTY_MANAGER "Deputy Manager" + #define JOB_ALT_STAFF_MANAGER "Staff Manager" + #define JOB_ALT_FACILITY_STEWARD "Facility Steward" + #define JOB_ALT_FIRST_MATE "First Mate" + +#define JOB_COMMAND_SECRETARY "Command Secretary" + // Command Secretary alt titles + #define JOB_ALT_COMMAND_LIAISON "Command Liaison" + #define JOB_ALT_COMMAND_ASSISTANT "Command Assistant" + #define JOB_ALT_COMMAND_INTERN "Command Intern" + #define JOB_ALT_BRIDGE_SECRETARY "Bridge Secretary" + #define JOB_ALT_BRIDGE_ASSISTANT "Bridge Assistant" + +#define JOB_HEAD_OF_SECURITY "Head of Security" + // Head of Security alt titles + #define JOB_ALT_SECURITY_COMMANDER "Security Commander" + #define JOB_ALT_CHIEF_OF_SECURITY "Chief of Security" + #define JOB_ALT_SECURITY_MANAGER "Security Manager" + +#define JOB_CHIEF_ENGINEER "Chief Engineer" + // Cheif Engineer alt titles + #define JOB_ALT_HEAD_ENGINEER "Head Engineer" + #define JOB_ALT_FOREMAN "Foreman" + #define JOB_ALT_MAINTENANCE_MANAGER "Maintenance Manager" + +#define JOB_RESEARCH_DIRECTOR "Research Director" + // Research Director alt titles + #define JOB_ALT_RESEARCH_SUPERVISOR "Research Supervisor" + #define JOB_ALT_RESEARCH_MANAGER "Research Manager" + #define JOB_ALT_HEAD_OF_DEVELOPMENT "Head of Development" + #define JOB_ALT_HEAD_SCIENTIST "Head Scientist" + +#define JOB_CHIEF_MEDICAL_OFFICER "Chief Medical Officer" + // Chief Medical Officer alt titles + #define JOB_ALT_CHIEF_PHYSICIAN "Chief Physician" + #define JOB_ALT_MEDICAL_DIRECTOR "Medical Director" + #define JOB_ALT_HEALTHCARE_MANAGER "Healthcare Manager" + +#define JOB_QUARTERMASTER "Quartermaster" + // Quartermaster alt titles + #define JOB_ALT_SUPPLY_CHIEF "Supply Chief" + #define JOB_ALT_LOGISTICS_MANAGER "Logistics Manager" + #define JOB_ALT_CARGO_SUPERVISOR "Cargo Supervisor" + +#define JOB_PATHFINDER "Away Team Leader" // was Pathfinder + // Pathfinder alt titles + #define JOB_ALT_EXPEDITION_LEAD "Expedition Lead" + #define JOB_ALT_EXPLORATION_MANAGER "Exploration Manager" +//___________________________________________________________ + + +// Station Assistant jobs +#define JOB_INTERN "Intern" + // Intern alt titles + #define JOB_ALT_APPRENTICE_ENGINEER "Apprentice Engineer" + #define JOB_ALT_RESEARCH_INTERN "Research Intern" + #define JOB_ALT_SECURITY_CADET "Security Cadet" + #define JOB_ALT_JR_CARGO_TECH "Jr. Cargo Tech" + #define JOB_ALT_SERVER "Server" + #define JOB_ALT_ASSISTANT "Assistant" + //Assistant/Visitor/Whatever + #define JOB_ALT_TECHNICAL_ASSISTANT "Technical Assistant" + #define JOB_ALT_MEDICAL_INTERN "Medical Intern" + #define JOB_ALT_RESEARCH_ASSISTANT "Research Assistant" + #define JOB_ALT_VISITOR "Visitor" + #define JOB_ALT_RESIDENT "Resident" +//___________________________________________________________ + + +// Station Civilian jobs +#define JOB_BARTENDER "Bartender" + // Bartender alt titles + #define JOB_ALT_BARKEEPR "Barkeeper" + #define JOB_ALT_BARMAID "Barmaid" + #define JOB_ALT_BARISTA "Barista" + #define JOB_ALT_MIXOLOGIST "Mixologist" + +#define JOB_CHEF "Chef" + // Chef alt titles + #define JOB_ALT_SOUSCHEF "Sous-chef" + #define JOB_ALT_COOK "Cook" + #define JOB_ALT_KITCHEN_WORKER "Kitchen Worker" + +#define JOB_BOTANIST "Botanist" + // Botanist alt titles + #define JOB_ALT_HYDROPONICIST "Hydroponicist" + #define JOB_ALT_GARDENER "Gardener" + #define JOB_ALT_CULTIVATOR "Cultivator" + #define JOB_ALT_FARMER "Farmer" + #define JOB_ALT_FLORIST "Florist" + #define JOB_ALT_RANCHER "Rancher" + +#define JOB_CARGO_TECHNICIAN "Cargo Technician" + // Cargo Technician alt titles + #define JOB_ALT_CARGO_LOADER "Cargo Loader" + #define JOB_ALT_CARGO_HANDLER "Cargo Handler" + #define JOB_ALT_SUPPLY_COURIER "Supply Courier" + #define JOB_ALT_DISPOSALS_SORTER "Disposals Sorter" + +#define JOB_SHAFT_MINER "Shaft Miner" + // Shaft Miner alt titles + #define JOB_ALT_DEEP_SPACE_MINER "Deep Space Miner" + #define JOB_ALT_DRILL_TECHNICIAN "Drill Technician" + #define JOB_ALT_PROSPECTOR "Prospector" + #define JOB_ALT_EXCAVATOR "Excavator" + +#define JOB_JANITOR "Janitor" + // Janitor alt titles + #define JOB_ALT_CUSTODIAN "Custodian" + #define JOB_ALT_SANITATION_TECHNICIAN "Sanitation Technician" + #define JOB_ALT_MAID "Maid" + #define JOB_ALT_GARBAGE_COLLECTOR "Garbage Collector" + +#define JOB_LIBRARIAN "Librarian" + // Librarian alt titles + #define JOB_ALT_JOURNALIST "Journalist" + #define JOB_ALT_REPORTER "Reporter" + #define JOB_ALT_WRITER "Writer" + #define JOB_ALT_HISTORIAN "Historian" + #define JOB_ALT_ARCHIVIST "Archivist" + #define JOB_ALT_PROFESSOR "Professor" + #define JOB_ALT_ACADEMIC "Academic" + #define JOB_ALT_PHILOSOPHER "Philosopher" + #define JOB_ALT_CURATOR "Curator" + +#define JOB_INTERNAL_AFFAIRS_AGENT "Internal Affairs Agent" + // Internal Affairs Agent alt titles + #define JOB_ALT_INTERNAL_AFFAIRS_LIAISON "Internal Affairs Liaison" + #define JOB_ALT_INTERNAL_AFFAIRS_DELEGATE "Internal Affairs Delegate" + #define JOB_ALT_INTERNAL_AFFAIRS_INVESTIGATOR "Internal Affairs Investigator" + +#define JOB_CHAPLAIN "Chaplain" + // Chaplain alt titles + #define JOB_ALT_MISSIONARY "Missionary" + #define JOB_ALT_PREACHER "Preacher" + #define JOB_ALT_PRIEST "Priest" + #define JOB_ALT_NUN "Nun" + #define JOB_ALT_MONK "Monk" + #define JOB_ALT_COUNSELOR "Counselor" + #define JOB_ALT_GURU "Guru" + +#define JOB_PILOT "Pilot" + // Pilot alt titles + #define JOB_ALT_COPILOT "Co-Pilot" + #define JOB_ALT_NAVIGATOR "Navigator" + #define JOB_ALT_HELMSMAN "Helmsman" + +#define JOB_ENTERTAINER "Entertainer" + // Entertainer alt titles + #define JOB_ALT_PERFORMER "Performer" + #define JOB_ALT_MUSICIAN "Musician" + #define JOB_ALT_STAGEHAND "Stagehand" + #define JOB_ALT_ACTOR "Actor" + #define JOB_ALT_DANCER "Dancer" + #define JOB_ALT_SINGER "Singer" + #define JOB_ALT_MAGICIAN "Magician" + #define JOB_ALT_COMEDIAN "Comedian" + #define JOB_ALT_TRAGEDIAN "Tragedian" + #define JOB_ALT_ARTIST "Artist" + #define JOB_ALT_GAME_MASTER "Game Master" + +#define JOB_ENTREPRENEUR "Entrepreneur" + // Entrepreneur alt titles + #define JOB_ALT_LAWYER "Lawyer" + #define JOB_ALT_PRIVATE_EYE "Private Eye" + #define JOB_ALT_BODYGUARD "Bodyguard" + #define JOB_ALT_PERSONAL_PHYSICIAN "Personal Physician" + #define JOB_ALT_DENTIST "Dentist" + #define JOB_ALT_FITNESS_INSTRUCTOR "Fitness Instructor" + #define JOB_ALT_YOGA_TEACHER "Yoga Teacher" + #define JOB_ALT_MASSEUSE "Masseuse" + #define JOB_ALT_TRADESPERSON "Tradesperson" + #define JOB_ALT_STREAMER "Streamer" + #define JOB_ALT_INFLUENCER "Influencer" + #define JOB_ALT_PARANORMAL_INVESTIGATOR "Paranormal Investigator" + #define JOB_ALT_PERSONAL_SECRETARY "Personal Secretary" + #define JOB_ALT_STYLIST "Stylist" + #define JOB_ALT_FISHER "Fisher" + #define JOB_ALT_FORTUNE_TELLER "Fortune Teller" + #define JOB_ALT_SPIRIT_HEALER "Spirit Healer" +//___________________________________________________________ + + +// Station Engineering jobs +#define JOB_ENGINEER "Engineer" + // Engineer alt titles + #define JOB_ALT_MAINTENANCE_TECHNICIAN "Maintenance Technician" + #define JOB_ALT_ENGINE_TECHNICIAN "Engine Technician" + #define JOB_ALT_ELECTRICIAN "Electrician" + #define JOB_ALT_CONSTRUCTION_ENGINEER "Construction Engineer" + #define JOB_ALT_ENGINEERING_CONTRACTOR "Engineering Contractor" + +#define JOB_ATMOSPHERIC_TECHNICIAN "Atmospheric Technician" + // Atmospheric Technician alt titles + #define JOB_ALT_ATMOSPHERIC_ENGINEER "Atmospheric Engineer" + #define JOB_ALT_ATMOSPHERIC_MAINTAINER "Atmospheric Maintainer" + #define JOB_ALT_DISPOSALS_TECHNICIAN "Disposals Technician" + #define JOB_ALT_FUEL_TECHNICIAN "Fuel Technician" +//___________________________________________________________ + + +// Station Away Team / Explorer jobs +#define JOB_EXPLORER "Away Team" // was Explorer + // Explorer alt titles + #define JOB_ALT_SURVEYOR "Surveyor" + #define JOB_ALT_OFFSITE_SCOUT "Offsite Scout" + #define JOB_ALT_EXPLORER_MEDIC "Explorer Medic" // Unused + #define JOB_ALT_EXPLORERE_TECHNICIAN "Explorer Technician" // Unused + +#define JOB_FIELD_MEDIC "Away Team Medic" // was Field Medic + // Field Medic alt titles + #define JOB_ALT_EXPEDITION_MEDIC "Expedition Medic" + #define JOB_ALT_OFFSITE_MEDIC "Offsite Medic" +//___________________________________________________________ + + +// Station Medical jobs +#define JOB_MEDICAL_DOCTOR "Medical Doctor" + // Medical Doctor alt titles + #define JOB_ALT_PHYSICIAN "Physician" + #define JOB_ALT_MEDICAL_PRACTITIONER "Medical Practitioner" + #define JOB_ALT_SURGEON "Surgeon" + #define JOB_ALT_EMERGENCY_PHYSICIAN "Emergency Physician" + #define JOB_ALT_NURSE "Nurse" + #define JOB_ALT_ORDERLY "Orderly" + #define JOB_ALT_VIROLOGIST "Virologist" + #define JOB_ALT_MEDICAL_CONTRACTOR "Medical Contractor" + +#define JOB_CHEMIST "Chemist" + // Chemist alt titles + #define JOB_ALT_PHARMACIST "Pharmacist" + #define JOB_ALT_PHARMACOLOGIST "Pharmacologist" + +#define JOB_PSYCHIATRIST "Psychiatrist" + // Psychiatrist alt titles + #define JOB_ALT_PSYCHOLOGIST "Psychologist" + #define JOB_ALT_PSYCHOANALYST "Psychoanalyst" + #define JOB_ALT_PSYCHOTHERAPIST "Psychotherapist" + +#define JOB_PARAMEDIC "Paramedic" + // Paramedic alt titles + #define JOB_ALT_EMERGENCY_MEDICAL_TECHNICIAN "Emergency Medical Technician" + #define JOB_ALT_MEDICAL_RESPONDER "Medical Responder" + #define JOB_ALT_SEARCH_AND_RESCUE "Search and Rescue" + +#define JOB_GENETICIST "Geneticist" //Disabled atm +//___________________________________________________________ + + +// Station Offduty jobs +#define JOB_OFFDUTY_OFFICER "Off-duty Officer" +#define JOB_OFFDUTY_ENGINEER "Off-duty Engineer" +#define JOB_OFFDUTY_MEDIC "Off-duty Medic" +#define JOB_OFFDUTY_SCIENTIST "Off-duty Scientist" +#define JOB_OFFDUTY_CARGO "Off-duty Cargo" +#define JOB_OFFDUTY_EXPLORER "Off-duty Explorer" +#define JOB_OFFDUTY_WORKER "Off-duty Worker" +//___________________________________________________________ + + +// Station Science jobs +#define JOB_SCIENTIST "Scientist" + // Scientist alt titles + #define JOB_ALT_RESEARCHER "Researcher" + #define JOB_ALT_LAB_ASSISTANT "Lab Assistant" + #define JOB_ALT_XENOARCHAEOLOGIST "Xenoarchaeologist" + #define JOB_ALT_XENOPALEONTOLOGIST "Xenopaleontologist" + #define JOB_ALT_ANOMALIST "Anomalist" + #define JOB_ALT_PHORON_RESEARCHER "Phoron Researcher" + #define JOB_ALT_GAS_PHYSICIST "Gas Physicist" + #define JOB_ALT_CIRCUIT_DESIGNER "Circuit Designer" + #define JOB_ALT_CIRCUIT_PROGRAMMER "Circuit Programmer" + +#define JOB_XENOBIOLOGIST "Xenobiologist" + // Xenobiologist alt titles + #define JOB_ALT_XENOZOOLOGIST "Xenozoologist" + #define JOB_ALT_XENOANTHROPOLOGIST "Xenoanthropologist" + +#define JOB_ROBOTICIST "Roboticist" + // Roboticist alt titles + #define JOB_ALT_ASSEMBLY_TECHNICIAN "Assembly Technician" + #define JOB_ALT_BIOMECHANICAL_ENGINEER "Biomechanical Engineer" + #define JOB_ALT_MECHATRONIC_ENGINEER "Mechatronic Engineer" + +#define JOB_XENOBOTANIST "Xenobotanist" + // Xenobotanist alt titles + #define JOB_ALT_XENOHYDROPONICIST "Xenohydroponicist" + #define JOB_ALT_XENOFLORIST "Xenoflorist" +//___________________________________________________________ + + +// Station Security jobs +#define JOB_WARDEN "Warden" + // Warden alt titles + #define JOB_ALT_BRIG_SENTRY "Brig Sentry" + #define JOB_ALT_ARMORY_SUPERINTENDENT "Armory Superintendent" + #define JOB_ALT_MASTERATARMS "Master-at-Arms" + +#define JOB_DETECTIVE "Detective" + // Detective alt titles + #define JOB_ALT_INVESTIGATOR "Investigator" + #define JOB_ALT_SECURITY_INSPECTOR "Security Inspector" + #define JOB_ALT_FORENSIC_TECHNICIAN "Forensic Technician" + +#define JOB_SECURITY_OFFICER "Security Officer" + // Security Officer alt titles + #define JOB_ALT_PATROL_OFFICER "Patrol Officer" + #define JOB_ALT_SECURITY_GUARD "Security Guard" + #define JOB_ALT_SECURITY_DEPUTY "Security Deputy" + #define JOB_ALT_JUNIOR_OFFICER "Junior Officer" + #define JOB_ALT_SECURITY_CONTRACTOR "Security Contractor" +//___________________________________________________________ + + +// Station Robot jobs +#define JOB_AI "AI" + +#define JOB_CYBORG "Cyborg" + // Cyborg alt titles + #define JOB_ALT_ROBOT "Robot" + #define JOB_ALT_DRONE "Drone" +//___________________________________________________________ + + +// Station Sepcial jobs +#define JOB_CLOWN "Clown" + // Clown alt titles + #define JOB_ALT_JESTER "Jester" + #define JOB_ALT_FOOL "Fool" + +#define JOB_MIME "Mime" + // Mime alt titles + #define JOB_ALT_PASEUR "Poseur" +//___________________________________________________________ + + +// Talom jobs +#define JOB_TALON_CAPTAIN "Talon Captain" + // Talon Captain alt titles + #define JOB_ALT_TALON_COMMANDER "Talon Commander" + +#define JOB_TALON_DOCTOR "Talon Doctor" + // Talon Doctor alt titles + #define JOB_ALT_TALON_MEDIC "Talon Medic" + +#define JOB_TALON_ENGINEER "Talon Engineer" + // Talon Engineer alt titles + #define JOB_ALT_TALON_TECHNICIAN "Talon Technician" + +#define JOB_TALON_GUARD "Talon Guard" + // Talon Guard alt titles + #define JOB_ALT_TALON_SECURITY "Talon Security" + +#define JOB_TALON_PILOT "Talon Pilot" + // Talon Pilot alt titles + #define JOB_ALT_TALON_HELMSMAN "Talon Helmsman" + +#define JOB_TALON_MINER "Talon Miner" + // Talon Miner alt titles + #define JOB_ALT_TALON_EXCAVATOR "Talon Excavator" +//___________________________________________________________ + + +// Mind jobs +#define JOB_SLIME "slime" +#define JOB_LARVA "Larva" +#define JOB_MONKEY "Monkey" +#define JOB_ANIMAL "Animal" +#define JOB_SIMPLE_MOB "Simple Mob" +#define JOB_CORGI "Corgi" +#define JOB_SHADE "Shade" +#define JOB_ARTIFICER "Artificer" +#define JOB_WRAITH "Wraith" +#define JOB_JUGGERNAUT "Juggernaut" +#define JOB_MODE = "MODE" +#define JOB_DISEMBODIED_VOICE "Disembodied Voice" +#define JOB_ALIEN "Alien" +#define JOB_GOLEM "Golem" +#define JOB_CORTICAL_BORER "Cortical Borer" + +#define JOB_SYNTHETIC_BRAIN "Synthetic Brain" +#define JOB_ROBOTIC_INTELLIGENCE "Robotic Intelligence" +#define JOB_POSITRONIC_BRAIN "Positronic Brain" +#define JOB_CARBON_BASED "Carbon-based" +#define JOB_SILICON_BASED "Silicon-based" +#define JOB_PAI "pAI" +#define JOB_PROMETHEAN "Promethean" + +#define JOB_LIVING "Living" +#define JOB_NEW_PLAYER "New player" +#define JOB_GHOST "Ghost" +#define JOB_GHOSTROLES "GhostRoles" +#define JOB_GRAFFITI "Graffiti" +#define JOB_RECORDS "Records" +#define JOB_DIONAEA "Dionaea" +#define JOB_CUSTOM_LOADOUT "Custom loadout" + +// Speical Mind / Antag / Event jobs +#define JOB_CULTIST "Cultist" +#define JOB_MEME "Meme" +#define JOB_APPRENTICE "apprentice" +#define JOB_WIZARD "Wizard" +#define JOB_ANTAGHUD "AntagHUD" +#define JOB_CHANGELING "Changeling" +#define JOB_SYNDICATE "Syndicate" +#define JOB_XENOMORPH "Xenomorph" +#define JOB_BORER "Borer" +#define JOB_EMERGENCY_RESPONSE_TEAM "Emergency Response Team" diff --git a/code/__defines/misc_vr.dm b/code/__defines/misc_vr.dm index 114448b916..1efab42616 100644 --- a/code/__defines/misc_vr.dm +++ b/code/__defines/misc_vr.dm @@ -42,9 +42,6 @@ #define BLUE_SHIELDED 2 // Shield from bluespace teleportation (telescience) -//Assistant/Visitor/Whatever -#define USELESS_JOB "Visitor" - //Herm Gender #define HERM "herm" diff --git a/code/__defines/radio.dm b/code/__defines/radio.dm new file mode 100644 index 0000000000..b39e6a90cc --- /dev/null +++ b/code/__defines/radio.dm @@ -0,0 +1,28 @@ +// Station Radio Channel +#define CHANNEL_COMMON "Common" +#define CHANNEL_AI_PRIVATE "AI Private" +#define CHANNEL_ENTERTAINMENT "Entertainment" + +// Departments +#define CHANNEL_COMMAND "Command" +#define CHANNEL_SECURITY "Security" +#define CHANNEL_SECURITY_1 "Security(I)" +#define CHANNEL_SUPPLY "Supply" +#define CHANNEL_SERVICE "Service" +#define CHANNEL_ENGINEERING "Engineering" +#define CHANNEL_SCIENCE "Science" +#define CHANNEL_MEDICAL "Medical" +#define CHANNEL_MEDICAL_1 "Medical(I)" +#define CHANNEL_EXPLORATION "Away Team" // was Explorer + +// Special Channels +#define CHANNEL_RESPONSE_TEAM "Response Team" +#define CHANNEL_SPECIAL_OPS "Special Ops" + +// Antag Channels +#define CHANNEL_RAIDER "Raider" +#define CHANNEL_MERCENARY "Mercenary" + +// Other Channels +#define CHANNEL_TALON "Talon" +#define CHANNEL_CASINO "Casino" diff --git a/code/_helpers/global_lists.dm b/code/_helpers/global_lists.dm index c3fa259d92..72bed469c9 100644 --- a/code/_helpers/global_lists.dm +++ b/code/_helpers/global_lists.dm @@ -293,7 +293,7 @@ GLOBAL_LIST_EMPTY(mannequins) // Custom species icon bases var/list/blacklisted_icons = list(SPECIES_CUSTOM,SPECIES_PROMETHEAN) //VOREStation Edit - var/list/whitelisted_icons = list(SPECIES_FENNEC,SPECIES_XENOHYBRID,SPECIES_TESHARI,SPECIES_VOX) //VOREStation Edit + var/list/whitelisted_icons = list(SPECIES_FENNEC,SPECIES_XENOHYBRID,SPECIES_VOX) //VOREStation Edit for(var/species_name in GLOB.playable_species) if(species_name in blacklisted_icons) continue diff --git a/code/_helpers/global_lists_vr.dm b/code/_helpers/global_lists_vr.dm index 338822eec5..adb7c5cdf8 100644 --- a/code/_helpers/global_lists_vr.dm +++ b/code/_helpers/global_lists_vr.dm @@ -511,15 +511,15 @@ var/global/list/remainless_species = list(SPECIES_PROMETHEAN, SPECIES_SHADEKIN) //Shadefluffers just poof away /var/global/list/alt_titles_with_icons = list( - "Virologist", - "Apprentice Engineer", - "Medical Intern", - "Research Intern", - "Security Cadet", - "Jr. Cargo Tech", - "Server", - "Electrician", - "Barista") + JOB_ALT_VIROLOGIST, + JOB_ALT_APPRENTICE_ENGINEER, + JOB_ALT_MEDICAL_INTERN, + JOB_ALT_RESEARCH_INTERN, + JOB_ALT_SECURITY_CADET, + JOB_ALT_JR_CARGO_TECH, + JOB_ALT_SERVER, + JOB_ALT_ELECTRICIAN, + JOB_ALT_BARISTA) /var/global/list/existing_solargrubs = list() diff --git a/code/_helpers/type2type.dm b/code/_helpers/type2type.dm index 18960c5595..908618128c 100644 --- a/code/_helpers/type2type.dm +++ b/code/_helpers/type2type.dm @@ -566,5 +566,11 @@ var/path = key if(!ispath(path)) path = text2path(key) + if(!isnull(L[path])) + .[path] = L[path] + continue + if(!isnull(L[key])) + .[path] = L[key] + continue if(!isnull(path)) . += path diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 7515e47dac..5a7edb6a33 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -350,7 +350,7 @@ Recharging stations are available in robotics, the dormitory bathrooms, and the /obj/screen/alert/locked name = "Locked Down" - desc = "Unit has been remotely locked down. Usage of a Robotics Control Console like the one in the Research Director's \ + desc = "Unit has been remotely locked down. Usage of a Robotics Control Console like the one in the " + JOB_RESEARCH_DIRECTOR + "'s \ office by your AI master or any qualified human may resolve this matter. Robotics may provide further assistance if necessary." icon_state = "locked" no_underlay = TRUE diff --git a/code/controllers/communications.dm b/code/controllers/communications.dm index bbdccb8fc0..e8d76099c7 100644 --- a/code/controllers/communications.dm +++ b/code/controllers/communications.dm @@ -129,25 +129,25 @@ var/const/TALON_FREQ = 1363 //VOREStation Add var/const/CSN_FREQ = 1365 //VOREStation Add var/list/radiochannels = list( - "Common" = PUB_FREQ, - "Science" = SCI_FREQ, - "Command" = COMM_FREQ, - "Medical" = MED_FREQ, - "Engineering" = ENG_FREQ, - "Security" = SEC_FREQ, - "Response Team" = ERT_FREQ, - "Special Ops" = DTH_FREQ, - "Mercenary" = SYND_FREQ, - "Raider" = RAID_FREQ, - "Supply" = SUP_FREQ, - "Service" = SRV_FREQ, - "Away Team" = EXP_FREQ, - "AI Private" = AI_FREQ, - "Entertainment" = ENT_FREQ, - "Medical(I)" = MED_I_FREQ, - "Security(I)" = SEC_I_FREQ, - "Talon" = TALON_FREQ, //VOREStation Add - "Casino" = CSN_FREQ, + CHANNEL_COMMON = PUB_FREQ, + CHANNEL_SCIENCE = SCI_FREQ, + CHANNEL_COMMAND = COMM_FREQ, + CHANNEL_MEDICAL = MED_FREQ, + CHANNEL_ENGINEERING = ENG_FREQ, + CHANNEL_SECURITY = SEC_FREQ, + CHANNEL_RESPONSE_TEAM = ERT_FREQ, + CHANNEL_SPECIAL_OPS = DTH_FREQ, + CHANNEL_MERCENARY = SYND_FREQ, + CHANNEL_RAIDER = RAID_FREQ, + CHANNEL_SUPPLY = SUP_FREQ, + CHANNEL_SERVICE = SRV_FREQ, + CHANNEL_EXPLORATION = EXP_FREQ, + CHANNEL_AI_PRIVATE = AI_FREQ, + CHANNEL_ENTERTAINMENT = ENT_FREQ, + CHANNEL_MEDICAL_1 = MED_I_FREQ, + CHANNEL_SECURITY_1 = SEC_I_FREQ, + CHANNEL_TALON = TALON_FREQ, //VOREStation Add + CHANNEL_CASINO = CSN_FREQ, ) // Hey, if anyone ever needs to update tgui/packages/tgui/constants.js with new radio channels diff --git a/code/controllers/subsystems/job.dm b/code/controllers/subsystems/job.dm index c137582c7c..f117284275 100644 --- a/code/controllers/subsystems/job.dm +++ b/code/controllers/subsystems/job.dm @@ -18,7 +18,7 @@ SUBSYSTEM_DEF(job) setup_occupations() return ..() -/datum/controller/subsystem/job/proc/setup_occupations(faction = "Station") +/datum/controller/subsystem/job/proc/setup_occupations(faction = FACTION_STATION) occupations = list() var/list/all_jobs = subtypesof(/datum/job) if(!all_jobs.len) diff --git a/code/controllers/subsystems/ticker.dm b/code/controllers/subsystems/ticker.dm index 09e1f424cc..b26bd701a6 100644 --- a/code/controllers/subsystems/ticker.dm +++ b/code/controllers/subsystems/ticker.dm @@ -433,7 +433,7 @@ var/global/datum/controller/subsystem/ticker/ticker var/captainless=1 for(var/mob/living/carbon/human/player in player_list) if(player && player.mind && player.mind.assigned_role) - if(player.mind.assigned_role == "Site Manager") + if(player.mind.assigned_role == JOB_SITE_MANAGER) captainless=0 if(!player_is_antag(player.mind, only_offstation_roles = 1)) job_master.EquipRank(player, player.mind.assigned_role, 0) diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index 7c37c10f52..23e358730b 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -218,7 +218,7 @@ var/global/list/PDA_Manifest = list() heads[++heads.len] = list("name" = name, "rank" = rank, "active" = isactive) department = 1 depthead = 1 - if(rank=="Site Manager" && heads.len != 1) + if(rank==JOB_SITE_MANAGER && heads.len != 1) heads.Swap(1,heads.len) if(SSjob.is_job_in_department(real_rank, DEPARTMENT_SECURITY)) diff --git a/code/datums/ghost_query.dm b/code/datums/ghost_query.dm index 5d01b4b880..64f208c850 100644 --- a/code/datums/ghost_query.dm +++ b/code/datums/ghost_query.dm @@ -53,7 +53,7 @@ /// Send async alerts and ask for responses. Expects you to have tested D for client and type already /datum/ghost_query/proc/ask_question(var/mob/observer/dead/D) //VOREStation Add Start Check the ban status before we ask - if(jobban_isbanned(D, "GhostRoles")) + if(jobban_isbanned(D, JOB_GHOSTROLES)) return //VOREStation Add End @@ -112,7 +112,7 @@ question = "Someone has activated a Positronic Brain. Would you like to play as one?" query_sound = 'sound/machines/boobeebeep.ogg' be_special_flag = BE_AI - check_bans = list("AI", "Cyborg") + check_bans = list(JOB_AI, JOB_CYBORG) cutoff_number = 1 /datum/ghost_query/drone_brain @@ -120,7 +120,7 @@ question = "Someone has activated a Drone AI Chipset. Would you like to play as one?" query_sound = 'sound/machines/boobeebeep.ogg' be_special_flag = BE_AI - check_bans = list("AI", "Cyborg") + check_bans = list(JOB_AI, JOB_CYBORG) cutoff_number = 1 // Antags. @@ -128,7 +128,7 @@ role_name = "Technomancer Apprentice" question = "A Technomancer is requesting an Apprentice to help them on their adventure to the facility. Would you like to play as the Apprentice?" be_special_flag = BE_WIZARD - check_bans = list("Syndicate", "wizard") + check_bans = list(JOB_SYNDICATE, JOB_WIZARD) cutoff_number = 1 /datum/ghost_query/xeno @@ -141,7 +141,7 @@ role_name = "Xenomorph Larva" question = "A xenomorph larva is ready to hatch from their egg. Would you like to join the hive?" be_special_flag = BE_ALIEN - check_bans = list("Xenomorph") + check_bans = list(JOB_XENOMORPH) cutoff_number = 1 @@ -156,14 +156,14 @@ role_name = "Mercenary Drone" question = "A team of dubious mercenaries have purchased a powerful drone, and they are attempting to activate it. Would you like to play as the drone?" be_special_flag = BE_AI - check_bans = list("AI", "Cyborg", "Syndicate") + check_bans = list(JOB_AI, JOB_CYBORG, JOB_SYNDICATE) cutoff_number = 1 /datum/ghost_query/borer role_name = "Cortical Borer" question = "A cortical borer has just been created on the facility. Would you like to play as them?" be_special_flag = BE_ALIEN - check_bans = list("Syndicate", "Borer") + check_bans = list(JOB_SYNDICATE, JOB_BORER) cutoff_number = 1 // Surface stuff. @@ -171,14 +171,14 @@ role_name = "Lost Drone" question = "A lost drone onboard has been discovered by a crewmember and they are attempting to reactivate it. Would you like to play as the drone?" be_special_flag = BE_LOSTDRONE //VOREStation Edit - check_bans = list("AI", "Cyborg") + check_bans = list(JOB_AI, JOB_CYBORG) cutoff_number = 1 /datum/ghost_query/gravekeeper_drone role_name = "Gravekeeper Drone" question = "A gravekeeper drone is about to reactivate and tend to its gravesite. Would you like to play as the drone?" be_special_flag = BE_AI - check_bans = list("AI", "Cyborg") + check_bans = list(JOB_AI, JOB_CYBORG) cutoff_number = 1 /datum/ghost_query/lost_passenger diff --git a/code/datums/mind.dm b/code/datums/mind.dm index f40445830b..868e8d9699 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -522,58 +522,58 @@ /mob/living/carbon/human/mind_initialize() . = ..() if(!mind.assigned_role) - mind.assigned_role = USELESS_JOB //defualt //VOREStation Edit - Visitor not Assistant + mind.assigned_role = JOB_ALT_VISITOR //defualt //VOREStation Edit - Visitor not Assistant //slime /mob/living/simple_mob/slime/mind_initialize() . = ..() - mind.assigned_role = "slime" + mind.assigned_role = JOB_SLIME /mob/living/carbon/alien/larva/mind_initialize() . = ..() - mind.special_role = "Larva" + mind.special_role = JOB_LARVA //AI /mob/living/silicon/ai/mind_initialize() . = ..() - mind.assigned_role = "AI" + mind.assigned_role = JOB_AI //BORG /mob/living/silicon/robot/mind_initialize() . = ..() - mind.assigned_role = "Cyborg" + mind.assigned_role = JOB_CYBORG //PAI /mob/living/silicon/pai/mind_initialize() . = ..() - mind.assigned_role = "pAI" + mind.assigned_role = JOB_PAI mind.special_role = "" //Animals /mob/living/simple_mob/mind_initialize() . = ..() - mind.assigned_role = "Simple Mob" + mind.assigned_role = JOB_SIMPLE_MOB /mob/living/simple_mob/animal/passive/dog/corgi/mind_initialize() . = ..() - mind.assigned_role = "Corgi" + mind.assigned_role = JOB_CORGI /mob/living/simple_mob/construct/shade/mind_initialize() . = ..() - mind.assigned_role = "Shade" - mind.special_role = "Cultist" + mind.assigned_role = JOB_SHADE + mind.special_role = JOB_CULTIST /mob/living/simple_mob/construct/artificer/mind_initialize() . = ..() - mind.assigned_role = "Artificer" - mind.special_role = "Cultist" + mind.assigned_role = JOB_ARTIFICER + mind.special_role = JOB_CULTIST /mob/living/simple_mob/construct/wraith/mind_initialize() . = ..() - mind.assigned_role = "Wraith" - mind.special_role = "Cultist" + mind.assigned_role = JOB_WRAITH + mind.special_role = JOB_CULTIST /mob/living/simple_mob/construct/juggernaut/mind_initialize() . = ..() - mind.assigned_role = "Juggernaut" - mind.special_role = "Cultist" + mind.assigned_role = JOB_JUGGERNAUT + mind.special_role = JOB_CULTIST diff --git a/code/datums/outfits/jobs/civilian.dm b/code/datums/outfits/jobs/civilian.dm index 71c51b94d1..1a5817f718 100644 --- a/code/datums/outfits/jobs/civilian.dm +++ b/code/datums/outfits/jobs/civilian.dm @@ -1,21 +1,21 @@ /decl/hierarchy/outfit/job/assistant - name = OUTFIT_JOB_NAME(USELESS_JOB) //VOREStation Edit - Visitor not Assistant - id_type = /obj/item/card/id/generic //VOREStation Edit + name = OUTFIT_JOB_NAME(JOB_ALT_VISITOR) //VOREStation Edit - Visitor not Assistant + id_type = /obj/item/weapon/card/id/generic //VOREStation Edit /decl/hierarchy/outfit/job/assistant/visitor - name = OUTFIT_JOB_NAME("Visitor") - id_pda_assignment = "Visitor" + name = OUTFIT_JOB_NAME(JOB_ALT_VISITOR) + id_pda_assignment = JOB_ALT_VISITOR uniform = /obj/item/clothing/under/assistantformal //VOREStation Add - Interns /decl/hierarchy/outfit/job/assistant/intern - name = OUTFIT_JOB_NAME("Intern") - id_type = /obj/item/card/id/civilian + name = OUTFIT_JOB_NAME(JOB_INTERN) + id_type = /obj/item/weapon/card/id/civilian //VOREStation Add End - Interns /decl/hierarchy/outfit/job/assistant/resident - name = OUTFIT_JOB_NAME("Resident") - id_pda_assignment = "Resident" + name = OUTFIT_JOB_NAME(JOB_ALT_RESIDENT) + id_pda_assignment = JOB_ALT_RESIDENT uniform = /obj/item/clothing/under/color/white /decl/hierarchy/outfit/job/service @@ -23,7 +23,7 @@ hierarchy_type = /decl/hierarchy/outfit/job/service /decl/hierarchy/outfit/job/service/bartender - name = OUTFIT_JOB_NAME("Bartender") + name = OUTFIT_JOB_NAME(JOB_BARTENDER) uniform = /obj/item/clothing/under/rank/bartender id_type = /obj/item/card/id/civilian/service/bartender //VOREStation Edit pda_type = /obj/item/pda/bar @@ -36,12 +36,12 @@ permit.set_name(H.real_name) /decl/hierarchy/outfit/job/service/bartender/barista - name = OUTFIT_JOB_NAME("Barista") - id_pda_assignment = "Barista" + name = OUTFIT_JOB_NAME(JOB_ALT_BARISTA) + id_pda_assignment = JOB_ALT_BARISTA backpack_contents = null /decl/hierarchy/outfit/job/service/chef - name = OUTFIT_JOB_NAME("Chef") + name = OUTFIT_JOB_NAME(JOB_CHEF) uniform = /obj/item/clothing/under/rank/chef suit = /obj/item/clothing/suit/chef head = /obj/item/clothing/head/chefhat @@ -49,19 +49,19 @@ pda_type = /obj/item/pda/chef /decl/hierarchy/outfit/job/service/chef/cook - name = OUTFIT_JOB_NAME("Cook") - id_pda_assignment = "Cook" + name = OUTFIT_JOB_NAME(JOB_ALT_COOK) + id_pda_assignment = JOB_ALT_COOK // Rykka adds Server Outfit /decl/hierarchy/outfit/job/service/server - name = OUTFIT_JOB_NAME("Server") + name = OUTFIT_JOB_NAME(JOB_ALT_SERVER) uniform = /obj/item/clothing/under/waiter // End Outfit addition /decl/hierarchy/outfit/job/service/gardener - name = OUTFIT_JOB_NAME("Gardener") + name = OUTFIT_JOB_NAME(JOB_ALT_GARDENER) uniform = /obj/item/clothing/under/rank/hydroponics suit = /obj/item/clothing/suit/storage/apron gloves = /obj/item/clothing/gloves/botanic_leather @@ -74,13 +74,13 @@ pda_type = /obj/item/pda/botanist /decl/hierarchy/outfit/job/service/janitor - name = OUTFIT_JOB_NAME("Janitor") + name = OUTFIT_JOB_NAME(JOB_JANITOR) uniform = /obj/item/clothing/under/rank/janitor id_type = /obj/item/card/id/civilian/service/janitor //VOREStation Edit pda_type = /obj/item/pda/janitor /decl/hierarchy/outfit/job/librarian - name = OUTFIT_JOB_NAME("Librarian") + name = OUTFIT_JOB_NAME(JOB_LIBRARIAN) uniform = /obj/item/clothing/under/suit_jacket/red l_hand = /obj/item/barcodescanner id_type = /obj/item/card/id/civilian @@ -101,14 +101,14 @@ pda_type = /obj/item/pda/lawyer /decl/hierarchy/outfit/job/chaplain - name = OUTFIT_JOB_NAME("Chaplain") + name = OUTFIT_JOB_NAME(JOB_CHAPLAIN) uniform = /obj/item/clothing/under/rank/chaplain l_hand = /obj/item/storage/bible id_type = /obj/item/card/id/civilian/chaplain pda_type = /obj/item/pda/chaplain /decl/hierarchy/outfit/job/explorer - name = OUTFIT_JOB_NAME("Explorer") + name = OUTFIT_JOB_NAME(JOB_EXPLORER) shoes = /obj/item/clothing/shoes/boots/winter/explorer uniform = /obj/item/clothing/under/explorer mask = /obj/item/clothing/mask/gas/explorer @@ -118,6 +118,6 @@ id_slot = slot_wear_id id_type = /obj/item/card/id/exploration //VOREStation Edit pda_slot = slot_belt - pda_type = /obj/item/pda/cargo // Brown looks more rugged - r_pocket = /obj/item/gps/explorer - id_pda_assignment = "Explorer" + pda_type = /obj/item/device/pda/cargo // Brown looks more rugged + r_pocket = /obj/item/device/gps/explorer + id_pda_assignment = JOB_EXPLORER diff --git a/code/datums/outfits/jobs/command.dm b/code/datums/outfits/jobs/command.dm index e0a170d405..7d3679d805 100644 --- a/code/datums/outfits/jobs/command.dm +++ b/code/datums/outfits/jobs/command.dm @@ -1,5 +1,5 @@ /decl/hierarchy/outfit/job/captain - name = OUTFIT_JOB_NAME("Captain") + name = OUTFIT_JOB_NAME(JOB_ALT_CAPTAIN) // Keep Captain for now, not JOB_SITE_MANAGER glasses = /obj/item/clothing/glasses/sunglasses uniform = /obj/item/clothing/under/rank/captain l_ear = /obj/item/radio/headset/heads/captain @@ -24,7 +24,7 @@ qdel(medal) /decl/hierarchy/outfit/job/hop - name = OUTFIT_JOB_NAME("Head of Personnel") + name = OUTFIT_JOB_NAME(JOB_HEAD_OF_PERSONNEL) uniform = /obj/item/clothing/under/rank/head_of_personnel l_ear = /obj/item/radio/headset/heads/hop shoes = /obj/item/clothing/shoes/brown @@ -32,8 +32,8 @@ pda_type = /obj/item/pda/heads/hop /decl/hierarchy/outfit/job/secretary - name = OUTFIT_JOB_NAME("Command Secretary") - l_ear = /obj/item/radio/headset/headset_com + name = OUTFIT_JOB_NAME(JOB_COMMAND_SECRETARY) + l_ear = /obj/item/device/radio/headset/headset_com shoes = /obj/item/clothing/shoes/brown id_type = /obj/item/card/id/silver/secretary pda_type = /obj/item/pda/heads @@ -44,4 +44,4 @@ if(H.gender == FEMALE) uniform = /obj/item/clothing/under/suit_jacket/female/skirt else - uniform = /obj/item/clothing/under/suit_jacket/charcoal \ No newline at end of file + uniform = /obj/item/clothing/under/suit_jacket/charcoal diff --git a/code/datums/outfits/jobs/engineering.dm b/code/datums/outfits/jobs/engineering.dm index 43257723ed..16de1539c3 100644 --- a/code/datums/outfits/jobs/engineering.dm +++ b/code/datums/outfits/jobs/engineering.dm @@ -11,7 +11,7 @@ flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL /decl/hierarchy/outfit/job/engineering/chief_engineer - name = OUTFIT_JOB_NAME("Chief engineer") + name = OUTFIT_JOB_NAME(JOB_CHIEF_ENGINEER) head = /obj/item/clothing/head/hardhat/white uniform = /obj/item/clothing/under/rank/chief_engineer l_ear = /obj/item/radio/headset/heads/ce @@ -20,14 +20,14 @@ pda_type = /obj/item/pda/heads/ce /decl/hierarchy/outfit/job/engineering/engineer - name = OUTFIT_JOB_NAME("Engineer") + name = OUTFIT_JOB_NAME(JOB_ENGINEER) head = /obj/item/clothing/head/hardhat uniform = /obj/item/clothing/under/rank/engineer id_type = /obj/item/card/id/engineering pda_type = /obj/item/pda/engineering /decl/hierarchy/outfit/job/engineering/atmos - name = OUTFIT_JOB_NAME("Atmospheric technician") + name = OUTFIT_JOB_NAME(JOB_ATMOSPHERIC_TECHNICIAN) uniform = /obj/item/clothing/under/rank/atmospheric_technician belt = /obj/item/storage/belt/utility/atmostech id_type = /obj/item/card/id/engineering/atmos diff --git a/code/datums/outfits/jobs/medical.dm b/code/datums/outfits/jobs/medical.dm index 1579730c0c..09a88871ab 100644 --- a/code/datums/outfits/jobs/medical.dm +++ b/code/datums/outfits/jobs/medical.dm @@ -9,8 +9,8 @@ messenger_bag = /obj/item/storage/backpack/messenger/med /decl/hierarchy/outfit/job/medical/cmo - name = OUTFIT_JOB_NAME("Chief Medical Officer") - l_ear =/obj/item/radio/headset/heads/cmo + name = OUTFIT_JOB_NAME(JOB_CHIEF_MEDICAL_OFFICER) + l_ear =/obj/item/device/radio/headset/heads/cmo uniform = /obj/item/clothing/under/rank/chief_medical_officer suit = /obj/item/clothing/suit/storage/toggle/labcoat/cmo shoes = /obj/item/clothing/shoes/brown @@ -20,7 +20,7 @@ pda_type = /obj/item/pda/heads/cmo /decl/hierarchy/outfit/job/medical/doctor - name = OUTFIT_JOB_NAME("Medical Doctor") + name = OUTFIT_JOB_NAME(JOB_MEDICAL_DOCTOR) uniform = /obj/item/clothing/under/rank/medical suit = /obj/item/clothing/suit/storage/toggle/labcoat l_hand = /obj/item/storage/firstaid/regular @@ -28,16 +28,16 @@ id_type = /obj/item/card/id/medical /decl/hierarchy/outfit/job/medical/doctor/emergency_physician - name = OUTFIT_JOB_NAME("Emergency Physician") + name = OUTFIT_JOB_NAME(JOB_ALT_EMERGENCY_PHYSICIAN) suit = /obj/item/clothing/suit/storage/toggle/fr_jacket /decl/hierarchy/outfit/job/medical/doctor/surgeon - name = OUTFIT_JOB_NAME("Surgeon") + name = OUTFIT_JOB_NAME(JOB_ALT_SURGEON) uniform = /obj/item/clothing/under/rank/medical/scrubs head = /obj/item/clothing/head/surgery/blue /decl/hierarchy/outfit/job/medical/doctor/virologist - name = OUTFIT_JOB_NAME("Virologist") + name = OUTFIT_JOB_NAME(JOB_ALT_VIROLOGIST) uniform = /obj/item/clothing/under/rank/virologist suit = /obj/item/clothing/suit/storage/toggle/labcoat/virologist mask = /obj/item/clothing/mask/surgical @@ -45,7 +45,7 @@ satchel_one = /obj/item/storage/backpack/satchel/vir /decl/hierarchy/outfit/job/medical/doctor/nurse - name = OUTFIT_JOB_NAME("Nurse") + name = OUTFIT_JOB_NAME(JOB_ALT_NURSE) suit = null /decl/hierarchy/outfit/job/medical/doctor/nurse/pre_equip(mob/living/carbon/human/H) @@ -60,7 +60,7 @@ ..() /decl/hierarchy/outfit/job/medical/chemist - name = OUTFIT_JOB_NAME("Chemist") + name = OUTFIT_JOB_NAME(JOB_CHEMIST) uniform = /obj/item/clothing/under/rank/chemist suit = /obj/item/clothing/suit/storage/toggle/labcoat/chemist backpack = /obj/item/storage/backpack/chemistry @@ -70,7 +70,7 @@ pda_type = /obj/item/pda/chemist /decl/hierarchy/outfit/job/medical/geneticist - name = OUTFIT_JOB_NAME("Geneticist") + name = OUTFIT_JOB_NAME(JOB_GENETICIST) uniform = /obj/item/clothing/under/rank/geneticist suit = /obj/item/clothing/suit/storage/toggle/labcoat/genetics backpack = /obj/item/storage/backpack/genetics @@ -80,18 +80,18 @@ pda_type = /obj/item/pda/geneticist /decl/hierarchy/outfit/job/medical/psychiatrist - name = OUTFIT_JOB_NAME("Psychiatrist") + name = OUTFIT_JOB_NAME(JOB_PSYCHIATRIST) uniform = /obj/item/clothing/under/rank/psych suit = /obj/item/clothing/suit/storage/toggle/labcoat shoes = /obj/item/clothing/shoes/laceup id_type = /obj/item/card/id/medical/psych /decl/hierarchy/outfit/job/medical/psychiatrist/psychologist - name = OUTFIT_JOB_NAME("Psychologist") + name = OUTFIT_JOB_NAME(JOB_ALT_PSYCHOLOGIST) uniform = /obj/item/clothing/under/rank/psych/turtleneck /decl/hierarchy/outfit/job/medical/paramedic - name = OUTFIT_JOB_NAME("Paramedic") + name = OUTFIT_JOB_NAME(JOB_PARAMEDIC) uniform = /obj/item/clothing/under/rank/medical/paramedic suit = /obj/item/clothing/suit/storage/toggle/fr_jacket shoes = /obj/item/clothing/shoes/boots/jackboots @@ -102,6 +102,6 @@ flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL /decl/hierarchy/outfit/job/medical/paramedic/emt - name = OUTFIT_JOB_NAME("Emergency Medical Technician") + name = OUTFIT_JOB_NAME(JOB_ALT_EMERGENCY_MEDICAL_TECHNICIAN) uniform = /obj/item/clothing/under/rank/medical/paramedic_alt suit = /obj/item/clothing/suit/storage/toggle/labcoat/emt diff --git a/code/datums/outfits/jobs/misc.dm b/code/datums/outfits/jobs/misc.dm index 43bbd919f8..28cfa9e236 100644 --- a/code/datums/outfits/jobs/misc.dm +++ b/code/datums/outfits/jobs/misc.dm @@ -3,9 +3,9 @@ hierarchy_type = /decl/hierarchy/outfit/job/silicon /decl/hierarchy/outfit/job/silicon/ai - name = OUTFIT_JOB_NAME("AI") + name = OUTFIT_JOB_NAME(JOB_AI) suit = /obj/item/clothing/suit/straight_jacket /decl/hierarchy/outfit/job/silicon/cyborg - name = OUTFIT_JOB_NAME("Cyborg") + name = OUTFIT_JOB_NAME(JOB_CYBORG) suit = /obj/item/clothing/suit/cardborg diff --git a/code/datums/outfits/jobs/science.dm b/code/datums/outfits/jobs/science.dm index 6b4b8a99cb..a9fe8a4437 100644 --- a/code/datums/outfits/jobs/science.dm +++ b/code/datums/outfits/jobs/science.dm @@ -19,19 +19,19 @@ pda_type = /obj/item/pda/heads/rd /decl/hierarchy/outfit/job/science/scientist - name = OUTFIT_JOB_NAME("Scientist") + name = OUTFIT_JOB_NAME(JOB_SCIENTIST) uniform = /obj/item/clothing/under/rank/scientist id_type = /obj/item/card/id/science suit = /obj/item/clothing/suit/storage/toggle/labcoat/science /decl/hierarchy/outfit/job/science/xenobiologist - name = OUTFIT_JOB_NAME("Xenobiologist") + name = OUTFIT_JOB_NAME(JOB_XENOBIOLOGIST) uniform = /obj/item/clothing/under/rank/scientist id_type = /obj/item/card/id/science suit = /obj/item/clothing/suit/storage/toggle/labcoat/science /decl/hierarchy/outfit/job/science/roboticist - name = OUTFIT_JOB_NAME("Roboticist") + name = OUTFIT_JOB_NAME(JOB_ROBOTICIST) uniform = /obj/item/clothing/under/rank/roboticist shoes = /obj/item/clothing/shoes/black belt = /obj/item/storage/belt/utility/full/multitool @@ -40,4 +40,4 @@ pda_type = /obj/item/pda/roboticist backpack = /obj/item/storage/backpack satchel_one = /obj/item/storage/backpack/satchel/norm - suit = /obj/item/clothing/suit/storage/toggle/labcoat/roboticist \ No newline at end of file + suit = /obj/item/clothing/suit/storage/toggle/labcoat/roboticist diff --git a/code/datums/outfits/jobs/science_vr.dm b/code/datums/outfits/jobs/science_vr.dm index a99f7dc796..74242d7b1d 100644 --- a/code/datums/outfits/jobs/science_vr.dm +++ b/code/datums/outfits/jobs/science_vr.dm @@ -2,7 +2,7 @@ id_type = /obj/item/card/id/science/xenobiologist /decl/hierarchy/outfit/job/science/xenobotanist - name = OUTFIT_JOB_NAME("Xenobotanist") + name = OUTFIT_JOB_NAME(JOB_XENOBOTANIST) uniform = /obj/item/clothing/under/rank/scientist id_type = /obj/item/card/id/science/xenobotanist - suit = /obj/item/clothing/suit/storage/toggle/labcoat/science \ No newline at end of file + suit = /obj/item/clothing/suit/storage/toggle/labcoat/science diff --git a/code/datums/outfits/jobs/security.dm b/code/datums/outfits/jobs/security.dm index b4cf53069a..9ebae00208 100644 --- a/code/datums/outfits/jobs/security.dm +++ b/code/datums/outfits/jobs/security.dm @@ -11,21 +11,21 @@ sports_bag = /obj/item/storage/backpack/sport/sec /decl/hierarchy/outfit/job/security/hos - name = OUTFIT_JOB_NAME("Head of security") - l_ear = /obj/item/radio/headset/heads/hos + name = OUTFIT_JOB_NAME(JOB_HEAD_OF_SECURITY) + l_ear = /obj/item/device/radio/headset/heads/hos uniform = /obj/item/clothing/under/rank/head_of_security id_type = /obj/item/card/id/security/head pda_type = /obj/item/pda/heads/hos /decl/hierarchy/outfit/job/security/warden - name = OUTFIT_JOB_NAME("Warden") + name = OUTFIT_JOB_NAME(JOB_WARDEN) uniform = /obj/item/clothing/under/rank/warden l_pocket = /obj/item/flash id_type = /obj/item/card/id/security/warden pda_type = /obj/item/pda/warden /decl/hierarchy/outfit/job/security/detective - name = OUTFIT_JOB_NAME("Detective") + name = OUTFIT_JOB_NAME(JOB_DETECTIVE) head = /obj/item/clothing/head/det uniform = /obj/item/clothing/under/det suit = /obj/item/clothing/suit/storage/det_trench @@ -47,7 +47,7 @@ //VOREStation Edit End /decl/hierarchy/outfit/job/security/officer - name = OUTFIT_JOB_NAME("Security Officer") + name = OUTFIT_JOB_NAME(JOB_SECURITY_OFFICER) uniform = /obj/item/clothing/under/rank/security l_pocket = /obj/item/flash id_type = /obj/item/card/id/security diff --git a/code/datums/outfits/jobs/special_vr.dm b/code/datums/outfits/jobs/special_vr.dm index 880a40dfb4..bc88232d13 100644 --- a/code/datums/outfits/jobs/special_vr.dm +++ b/code/datums/outfits/jobs/special_vr.dm @@ -27,7 +27,7 @@ ert.add_antagonist(H.mind) /decl/hierarchy/outfit/job/clown - name = OUTFIT_JOB_NAME("Clown") + name = OUTFIT_JOB_NAME(JOB_CLOWN) uniform = /obj/item/clothing/under/rank/clown back = /obj/item/storage/backpack/clown shoes = /obj/item/clothing/shoes/clown_shoes @@ -38,7 +38,7 @@ flags = 0 /decl/hierarchy/outfit/job/mime - name = OUTFIT_JOB_NAME("Mime") + name = OUTFIT_JOB_NAME(JOB_MIME) uniform = /obj/item/clothing/under/mime shoes = /obj/item/clothing/shoes/mime head = /obj/item/clothing/head/soft/mime diff --git a/code/datums/outfits/outfit_vr.dm b/code/datums/outfits/outfit_vr.dm index 552911dd57..9a468d4277 100644 --- a/code/datums/outfits/outfit_vr.dm +++ b/code/datums/outfits/outfit_vr.dm @@ -109,22 +109,22 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go /decl/hierarchy/outfit/job/explorer2 - name = OUTFIT_JOB_NAME("Explorer") + name = OUTFIT_JOB_NAME(JOB_EXPLORER) shoes = /obj/item/clothing/shoes/boots/winter/explorer uniform = /obj/item/clothing/under/explorer l_ear = /obj/item/radio/headset/explorer id_slot = slot_wear_id pda_slot = slot_l_store - pda_type = /obj/item/pda/explorer - id_type = /obj/item/card/id/exploration - id_pda_assignment = "Explorer" - backpack = /obj/item/storage/backpack/explorer - satchel_one = /obj/item/storage/backpack/satchel/explorer - messenger_bag = /obj/item/storage/backpack/messenger/explorer + pda_type = /obj/item/device/pda/explorer + id_type = /obj/item/weapon/card/id/exploration + id_pda_assignment = JOB_EXPLORER + backpack = /obj/item/weapon/storage/backpack/explorer + satchel_one = /obj/item/weapon/storage/backpack/satchel/explorer + messenger_bag = /obj/item/weapon/storage/backpack/messenger/explorer flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL /decl/hierarchy/outfit/job/pilot - name = OUTFIT_JOB_NAME("Pilot") + name = OUTFIT_JOB_NAME(JOB_PILOT) shoes = /obj/item/clothing/shoes/black uniform = /obj/item/clothing/under/rank/pilot1/no_webbing suit = /obj/item/clothing/suit/storage/toggle/bomber/pilot @@ -134,13 +134,13 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go uniform_accessories = list(/obj/item/clothing/accessory/storage/webbing/pilot1 = 1) id_slot = slot_wear_id pda_slot = slot_belt - pda_type = /obj/item/pda/pilot - id_type = /obj/item/card/id/civilian/pilot - id_pda_assignment = "Pilot" + pda_type = /obj/item/device/pda/pilot + id_type = /obj/item/weapon/card/id/civilian/pilot + id_pda_assignment = JOB_PILOT flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL /decl/hierarchy/outfit/job/medical/sar - name = OUTFIT_JOB_NAME("Field Medic") + name = OUTFIT_JOB_NAME(JOB_FIELD_MEDIC) uniform = /obj/item/clothing/under/utility/blue //suit = /obj/item/clothing/suit/storage/hooded/wintercoat/medical/sar shoes = /obj/item/clothing/shoes/boots/winter/explorer @@ -148,24 +148,24 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go l_hand = /obj/item/storage/firstaid/regular belt = /obj/item/storage/belt/medical/emt pda_slot = slot_l_store - pda_type = /obj/item/pda/sar - id_type = /obj/item/card/id/exploration/fm - id_pda_assignment = "Field Medic" - backpack = /obj/item/storage/backpack/explorer - satchel_one = /obj/item/storage/backpack/satchel/explorer - messenger_bag = /obj/item/storage/backpack/messenger/explorer + pda_type = /obj/item/device/pda/sar + id_type = /obj/item/weapon/card/id/exploration/fm + id_pda_assignment = JOB_FIELD_MEDIC + backpack = /obj/item/weapon/storage/backpack/explorer + satchel_one = /obj/item/weapon/storage/backpack/satchel/explorer + messenger_bag = /obj/item/weapon/storage/backpack/messenger/explorer flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL|OUTFIT_COMPREHENSIVE_SURVIVAL /decl/hierarchy/outfit/job/pathfinder - name = OUTFIT_JOB_NAME("Pathfinder") + name = OUTFIT_JOB_NAME(JOB_PATHFINDER) shoes = /obj/item/clothing/shoes/boots/winter/explorer uniform = /obj/item/clothing/under/explorer //TODO: Uniforms. l_ear = /obj/item/radio/headset/pathfinder id_slot = slot_wear_id pda_slot = slot_l_store - pda_type = /obj/item/pda/pathfinder - id_type = /obj/item/card/id/exploration/head - id_pda_assignment = "Pathfinder" + pda_type = /obj/item/device/pda/pathfinder + id_type = /obj/item/weapon/card/id/exploration/head + id_pda_assignment = JOB_PATHFINDER flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL|OUTFIT_COMPREHENSIVE_SURVIVAL /decl/hierarchy/outfit/job/assistant/explorer diff --git a/code/datums/supplypacks/medical.dm b/code/datums/supplypacks/medical.dm index 2fd4741662..5621c37d02 100644 --- a/code/datums/supplypacks/medical.dm +++ b/code/datums/supplypacks/medical.dm @@ -145,7 +145,7 @@ access = access_cmo /datum/supply_pack/med/doctorgear - name = "Medical Doctor equipment" + name = JOB_MEDICAL_DOCTOR + " equipment" contains = list( /obj/item/storage/belt/medical, /obj/item/radio/headset/headset_med, @@ -164,11 +164,11 @@ ) cost = 20 containertype = /obj/structure/closet/crate/secure/nanomed - containername = "Medical Doctor equipment" + containername = JOB_MEDICAL_DOCTOR + " equipment" access = access_medical_equip /datum/supply_pack/med/chemistgear - name = "Chemist equipment" + name = JOB_CHEMIST + " equipment" contains = list( /obj/item/storage/box/beakers, /obj/item/radio/headset/headset_med, @@ -187,11 +187,11 @@ ) cost = 20 containertype = /obj/structure/closet/crate/secure/nanomed - containername = "Chemist equipment" + containername = JOB_CHEMIST + " equipment" access = access_chemistry /datum/supply_pack/med/paramedicgear - name = "Paramedic equipment" + name = JOB_PARAMEDIC + " equipment" contains = list( /obj/item/storage/belt/medical/emt, /obj/item/radio/headset/headset_med, @@ -215,11 +215,11 @@ ) cost = 20 containertype = /obj/structure/closet/crate/secure/nanomed - containername = "Paramedic equipment" + containername = JOB_PARAMEDIC + " equipment" access = access_medical_equip /datum/supply_pack/med/psychiatristgear - name = "Psychiatrist equipment" + name = JOB_PSYCHIATRIST + " equipment" contains = list( /obj/item/clothing/under/rank/psych, /obj/item/radio/headset/headset_med, @@ -234,7 +234,7 @@ ) cost = 20 containertype = /obj/structure/closet/crate/secure/nanomed - containername = "Psychiatrist equipment" + containername = JOB_PSYCHIATRIST + " equipment" access = access_psychiatrist /datum/supply_pack/med/medicalscrubs diff --git a/code/datums/supplypacks/misc.dm b/code/datums/supplypacks/misc.dm index 1fe4efd9e1..d03ab2b620 100644 --- a/code/datums/supplypacks/misc.dm +++ b/code/datums/supplypacks/misc.dm @@ -101,7 +101,7 @@ containername = "EFTPOS crate" /datum/supply_pack/misc/chaplaingear - name = "Chaplain equipment" + name = JOB_CHAPLAIN + " equipment" contains = list( /obj/item/clothing/under/rank/chaplain, /obj/item/clothing/shoes/black, @@ -116,7 +116,7 @@ ) cost = 10 containertype = /obj/structure/closet/crate/gilthari - containername = "Chaplain equipment crate" + containername = JOB_CHAPLAIN + " equipment crate" /datum/supply_pack/misc/hoverpod name = "Hoverpod Shipment" @@ -233,7 +233,7 @@ one_access = TRUE /datum/supply_pack/randomised/misc/explorer_shield - name = "Away Team shield" + name = JOB_EXPLORER + " shield" num_contained = 2 contains = list( /obj/item/shield/riot/explorer, diff --git a/code/datums/supplypacks/security.dm b/code/datums/supplypacks/security.dm index 2dc9597e32..1404b06e42 100644 --- a/code/datums/supplypacks/security.dm +++ b/code/datums/supplypacks/security.dm @@ -546,7 +546,7 @@ access = access_brig /datum/supply_pack/security/wardengear - name = "Gear - Warden equipment" + name = "Gear - " + JOB_WARDEN + " equipment" contains = list( /obj/item/clothing/suit/storage/vest/warden, /obj/item/clothing/under/rank/warden, @@ -571,11 +571,11 @@ ) cost = 20 containertype = /obj/structure/closet/crate/secure/nanotrasen - containername = "Warden equipment" + containername = JOB_WARDEN + " equipment" access = access_armory /datum/supply_pack/security/headofsecgear - name = "Gear - Head of security equipment" + name = "Gear - " + JOB_HEAD_OF_SECURITY + " equipment" contains = list( /obj/item/clothing/head/helmet/HoS, /obj/item/clothing/suit/storage/vest/hos, @@ -598,7 +598,7 @@ ) cost = 50 containertype = /obj/structure/closet/crate/secure/nanotrasen - containername = "Head of security equipment" + containername = JOB_HEAD_OF_SECURITY + " equipment" access = access_hos /datum/supply_pack/security/securityclothing diff --git a/code/datums/supplypacks/supply.dm b/code/datums/supplypacks/supply.dm index 1d233074b6..0629a55d8e 100644 --- a/code/datums/supplypacks/supply.dm +++ b/code/datums/supplypacks/supply.dm @@ -157,7 +157,7 @@ cost = 15 /datum/supply_pack/explorergear - name="Away Team gear" + name= JOB_EXPLORER + " gear" contains = list ( /obj/item/cataloguer, /obj/item/geiger, @@ -179,11 +179,11 @@ ) cost=25 containertype = /obj/structure/closet/crate/secure/xion - containername = "Away Team equipment" + containername = JOB_EXPLORER + " equipment" access = list(access_eva, access_explorer) /datum/supply_pack/pilotgear - name= "Pilot gear" + name= JOB_PILOT + " gear" contains = list ( /obj/item/storage/backpack/parachute, /obj/item/radio/headset/pilot, @@ -204,7 +204,7 @@ ) cost=20 containertype = /obj/structure/closet/crate/secure/xion - containername = "Pilot equipment" + containername = JOB_PILOT + " equipment" access = access_pilot /datum/supply_pack/supply/foodcubes @@ -216,7 +216,7 @@ containername = "food cubes" /datum/supply_pack/pathfindergear - name="Away Team Leader gear" + name= JOB_PATHFINDER + " gear" contains = list ( /obj/item/cataloguer/compact/pathfinder, /obj/item/geiger, @@ -240,5 +240,5 @@ ) cost = 75 containertype = /obj/structure/closet/crate/secure/xion - containername = "Away Team Leader equipment" + containername = JOB_PATHFINDER + " equipment" access = list(access_explorer) diff --git a/code/datums/supplypacks/voidsuits.dm b/code/datums/supplypacks/voidsuits.dm index f2d8d9e960..d61272fc60 100644 --- a/code/datums/supplypacks/voidsuits.dm +++ b/code/datums/supplypacks/voidsuits.dm @@ -237,7 +237,7 @@ access = null /datum/supply_pack/voidsuits/explorer - name = "Away Team voidsuits" + name = JOB_EXPLORER + " voidsuits" contains = list( /obj/item/clothing/suit/space/void/exploration = 2, /obj/item/clothing/head/helmet/space/void/exploration = 2, @@ -247,11 +247,11 @@ ) cost = 45 containertype = /obj/structure/closet/crate/secure - containername = "Away Team voidsuit crate" + containername = JOB_EXPLORER + "voidsuit crate" access = list(access_eva, access_explorer) /datum/supply_pack/voidsuits/explorer_medic - name = "Away Team Medic voidsuits" + name = JOB_FIELD_MEDIC + " voidsuits" contains = list( /obj/item/clothing/suit/space/void/exploration = 2, /obj/item/clothing/head/helmet/space/void/exploration = 2, @@ -261,11 +261,11 @@ ) cost = 45 containertype = /obj/structure/closet/crate/secure - containername = "Away Team Medic voidsuit crate" + containername = JOB_FIELD_MEDIC + " voidsuit crate" access = access_medical /datum/supply_pack/voidsuits/pilot - name = "Pilot voidsuits" + name = JOB_PILOT + " voidsuits" contains = list( /obj/item/clothing/suit/space/void/pilot = 1, /obj/item/clothing/head/helmet/space/void/pilot = 1, @@ -275,7 +275,7 @@ ) cost = 20 containertype = /obj/structure/closet/crate/secure - containername = "Pilot voidsuit crate" + containername = JOB_PILOT + " voidsuit crate" access = access_pilot // Surplus! diff --git a/code/game/antagonist/antagonist.dm b/code/game/antagonist/antagonist.dm index 2e57344587..bc1374c807 100644 --- a/code/game/antagonist/antagonist.dm +++ b/code/game/antagonist/antagonist.dm @@ -48,7 +48,7 @@ var/landmark_id // Spawn point identifier. var/mob_path = /mob/living/carbon/human // Mobtype this antag will use if none is provided. var/feedback_tag = "traitor_objective" // End of round - var/bantype = "Syndicate" // Ban to check when spawning this antag. + var/bantype = JOB_SYNDICATE // Ban to check when spawning this antag. var/minimum_player_age = 7 // Players need to be at least minimum_player_age days old before they are eligable for auto-spawning var/suspicion_chance = 50 // Prob of being on the initial Command report var/flags = 0 // Various runtime options. diff --git a/code/game/antagonist/mutiny/mutineer.dm b/code/game/antagonist/mutiny/mutineer.dm index 85aecd71ea..b679c3c0f4 100644 --- a/code/game/antagonist/mutiny/mutineer.dm +++ b/code/game/antagonist/mutiny/mutineer.dm @@ -6,7 +6,7 @@ var/datum/antagonist/mutineer/mutineers role_text_plural = "Mutineers" id = MODE_MUTINEER antag_indicator = "mutineer" - restricted_jobs = list("Site Manager") + restricted_jobs = list(JOB_SITE_MANAGER) /datum/antagonist/mutineer/New(var/no_reference) ..() @@ -39,7 +39,7 @@ var/datum/antagonist/mutineer/mutineers proc/get_head_loyalist_candidates() var/list/candidates[0] for(var/mob/loyalist in player_list) - if(loyalist.mind && loyalist.mind.assigned_role == "Site Manager") + if(loyalist.mind && loyalist.mind.assigned_role == JOB_SITE_MANAGER) candidates.Add(loyalist.mind) return candidates @@ -47,7 +47,7 @@ var/datum/antagonist/mutineer/mutineers var/list/candidates[0] for(var/mob/mutineer in player_list) if(mutineer.client.prefs.be_special & BE_MUTINEER) - for(var/job in command_positions - "Site Manager") + for(var/job in command_positions - JOB_SITE_MANAGER) if(mutineer.mind && mutineer.mind.assigned_role == job) candidates.Add(mutineer.mind) return candidates diff --git a/code/game/antagonist/outsider/ert.dm b/code/game/antagonist/outsider/ert.dm index a6bf49163f..9c8884caed 100644 --- a/code/game/antagonist/outsider/ert.dm +++ b/code/game/antagonist/outsider/ert.dm @@ -2,7 +2,7 @@ var/datum/antagonist/ert/ert /datum/antagonist/ert id = MODE_ERT - bantype = "Emergency Response Team" + bantype = JOB_EMERGENCY_RESPONSE_TEAM role_type = BE_OPERATIVE role_text = "Emergency Responder" role_text_plural = "Emergency Responders" @@ -14,7 +14,7 @@ var/datum/antagonist/ert/ert and before taking extreme actions, please try to also contact the administration! \ Think through your actions and make the roleplay immersive! Please remember all \ rules aside from those without explicit exceptions apply to the ERT." - leader_welcome_text = "As leader of the Emergency Response Team, you answer only to the Company, and have authority to override the Site Manager where it is necessary to achieve your mission goals. It is recommended that you attempt to cooperate with the Site Manager where possible, however." + leader_welcome_text = "As leader of the Emergency Response Team, you answer only to the Company, and have authority to override the " + JOB_SITE_MANAGER + " where it is necessary to achieve your mission goals. It is recommended that you attempt to cooperate with the " + JOB_SITE_MANAGER + " where possible, however." landmark_id = "Response Team" id_type = /obj/item/card/id/centcom/ERT diff --git a/code/game/antagonist/outsider/ninja.dm b/code/game/antagonist/outsider/ninja.dm index 15a2d64904..261c798cbd 100644 --- a/code/game/antagonist/outsider/ninja.dm +++ b/code/game/antagonist/outsider/ninja.dm @@ -161,7 +161,7 @@ var/datum/antagonist/ninja/ninjas var/xenorace = pick(SPECIES_UNATHI, SPECIES_TAJ, SPECIES_SKRELL) directive += "A group of [xenorace] radicals have been loyal supporters of the Spider Clan. Favor [xenorace] crew whenever possible." if(15) - directive += "The Spider Clan has recently been accused of religious insensitivity. Attempt to speak with the Chaplain and prove these accusations false." + directive += "The Spider Clan has recently been accused of religious insensitivity. Attempt to speak with the " + JOB_CHAPLAIN + " and prove these accusations false." if(16) directive += "The Spider Clan has been bargaining with a competing prosthetics manufacturer. Try to shine [using_map.company_name] prosthetics in a bad light." if(17) diff --git a/code/game/antagonist/outsider/raider.dm b/code/game/antagonist/outsider/raider.dm index 7868420b14..9fec96f0aa 100644 --- a/code/game/antagonist/outsider/raider.dm +++ b/code/game/antagonist/outsider/raider.dm @@ -227,10 +227,10 @@ var/datum/antagonist/raider/raiders player.equip_to_slot_or_del(new new_suit(player),slot_wear_suit) equip_weapons(player) - var/obj/item/card/id/id = create_id("Visitor", player, equip = 0) + var/obj/item/weapon/card/id/id = create_id(JOB_ALT_VISITOR, player, equip = 0) id.name = "[player.real_name]'s Passport" - id.assignment = "Visitor" - var/obj/item/storage/wallet/W = new(player) + id.assignment = JOB_ALT_VISITOR + var/obj/item/weapon/storage/wallet/W = new(player) W.handle_item_insertion(id) player.equip_to_slot_or_del(W, slot_wear_id) spawn_money(rand(50,150)*10,W) diff --git a/code/game/antagonist/outsider/technomancer.dm b/code/game/antagonist/outsider/technomancer.dm index 60e813bcdd..dc6e5567a5 100644 --- a/code/game/antagonist/outsider/technomancer.dm +++ b/code/game/antagonist/outsider/technomancer.dm @@ -5,8 +5,8 @@ var/datum/antagonist/technomancer/technomancers role_type = BE_WIZARD role_text = "Technomancer" role_text_plural = "Technomancers" - bantype = "wizard" - landmark_id = "wizard" + bantype = JOB_WIZARD + landmark_id = JOB_WIZARD welcome_text = "You will need to purchase functions and perhaps some equipment from the various machines around your \ base. Choose your technological arsenal carefully. Remember that without the core on your back, your functions are \ powerless, and therefore you will be as well.
\ diff --git a/code/game/antagonist/outsider/wizard.dm b/code/game/antagonist/outsider/wizard.dm index 554206d6eb..76022fc554 100644 --- a/code/game/antagonist/outsider/wizard.dm +++ b/code/game/antagonist/outsider/wizard.dm @@ -5,8 +5,8 @@ var/datum/antagonist/wizard/wizards role_type = BE_WIZARD role_text = "Space Wizard" role_text_plural = "Space Wizards" - bantype = "wizard" - landmark_id = "wizard" + bantype = JOB_WIZARD + landmark_id = JOB_WIZARD welcome_text = "You will find a list of available spells in your spell book. Choose your magic arsenal carefully.
In your pockets you will find a teleport scroll. Use it as needed." flags = ANTAG_OVERRIDE_JOB | ANTAG_CLEAR_EQUIPMENT | ANTAG_CHOOSE_NAME | ANTAG_VOTABLE | ANTAG_SET_APPEARANCE antaghud_indicator = "hudwizard" diff --git a/code/game/antagonist/station/changeling.dm b/code/game/antagonist/station/changeling.dm index 2c1cb77f26..e82fac7c8e 100644 --- a/code/game/antagonist/station/changeling.dm +++ b/code/game/antagonist/station/changeling.dm @@ -6,7 +6,7 @@ bantype = "changeling" feedback_tag = "changeling_objective" avoid_silicons = TRUE - protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Site Manager") + protected_jobs = list(JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_DETECTIVE, JOB_HEAD_OF_SECURITY, JOB_SITE_MANAGER) welcome_text = "Use say \"#g message\" to communicate with your fellow changelings. Remember: you get all of their absorbed DNA if you absorb them." antag_sound = 'sound/effects/antag_notice/ling_alert.ogg' flags = ANTAG_SUSPICIOUS | ANTAG_RANDSPAWN | ANTAG_VOTABLE diff --git a/code/game/antagonist/station/cultist.dm b/code/game/antagonist/station/cultist.dm index 972bfa00b6..90987e1107 100644 --- a/code/game/antagonist/station/cultist.dm +++ b/code/game/antagonist/station/cultist.dm @@ -11,10 +11,10 @@ var/datum/antagonist/cultist/cult role_text = "Cultist" role_text_plural = "Cultists" bantype = "cultist" - restricted_jobs = list("Chaplain") + restricted_jobs = list(JOB_CHAPLAIN) avoid_silicons = TRUE - protected_jobs = list("Security Officer", "Warden", "Detective", "Internal Affairs Agent", "Head of Security", "Site Manager") - roundstart_restricted = list("Internal Affairs Agent", "Head of Security", "Site Manager") + protected_jobs = list(JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_DETECTIVE, JOB_INTERNAL_AFFAIRS_AGENT, JOB_HEAD_OF_SECURITY, JOB_SITE_MANAGER) + roundstart_restricted = list(JOB_INTERNAL_AFFAIRS_AGENT, JOB_HEAD_OF_SECURITY, JOB_SITE_MANAGER) role_type = BE_CULTIST feedback_tag = "cult_objective" antag_indicator = "cult" diff --git a/code/game/antagonist/station/infiltrator.dm b/code/game/antagonist/station/infiltrator.dm index 36e3717e14..3cceac3a80 100644 --- a/code/game/antagonist/station/infiltrator.dm +++ b/code/game/antagonist/station/infiltrator.dm @@ -11,7 +11,7 @@ var/datum/antagonist/traitor/infiltrator/infiltrators role_text = "Infiltrator" role_text_plural = "Infiltrators" welcome_text = "To speak on your team's private channel, use :t." - protected_jobs = list("Security Officer", "Warden", "Detective", "Internal Affairs Agent", "Head of Security", "Site Manager") + protected_jobs = list(JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_DETECTIVE, JOB_INTERNAL_AFFAIRS_AGENT, JOB_HEAD_OF_SECURITY, JOB_SITE_MANAGER) flags = ANTAG_SUSPICIOUS | ANTAG_RANDSPAWN | ANTAG_VOTABLE can_speak_aooc = TRUE diff --git a/code/game/antagonist/station/revolutionary.dm b/code/game/antagonist/station/revolutionary.dm index 8f6a7c79e9..6fb563ef21 100644 --- a/code/game/antagonist/station/revolutionary.dm +++ b/code/game/antagonist/station/revolutionary.dm @@ -30,8 +30,8 @@ var/datum/antagonist/revolutionary/revs faction_invisible = 1 avoid_silicons = TRUE - protected_jobs = list("Security Officer", "Warden", "Detective", "Internal Affairs Agent", "Site Manager", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer") - roundstart_restricted = list("Internal Affairs Agent", "Site Manager", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer") + protected_jobs = list(JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_DETECTIVE, JOB_INTERNAL_AFFAIRS_AGENT, JOB_SITE_MANAGER, JOB_HEAD_OF_PERSONNEL, JOB_HEAD_OF_SECURITY, JOB_CHIEF_ENGINEER, JOB_RESEARCH_DIRECTOR, JOB_CHIEF_MEDICAL_OFFICER) + roundstart_restricted = list(JOB_INTERNAL_AFFAIRS_AGENT, JOB_SITE_MANAGER, JOB_HEAD_OF_PERSONNEL, JOB_HEAD_OF_SECURITY, JOB_CHIEF_ENGINEER, JOB_RESEARCH_DIRECTOR, JOB_CHIEF_MEDICAL_OFFICER) /datum/antagonist/revolutionary/New() ..() diff --git a/code/game/antagonist/station/rogue_ai.dm b/code/game/antagonist/station/rogue_ai.dm index fd3ee867f9..0ed5644a25 100644 --- a/code/game/antagonist/station/rogue_ai.dm +++ b/code/game/antagonist/station/rogue_ai.dm @@ -26,7 +26,7 @@ var/datum/antagonist/rogue_ai/malf /datum/antagonist/rogue_ai/get_candidates() ..() for(var/datum/mind/player in candidates) - if(player.assigned_role && player.assigned_role != "AI") + if(player.assigned_role && player.assigned_role != JOB_AI) candidates -= player if(!candidates.len) return list() @@ -101,4 +101,3 @@ var/datum/antagonist/rogue_ai/malf if (newname) player.SetName(newname) if(player.mind) player.mind.name = player.name - diff --git a/code/game/antagonist/station/traitor.dm b/code/game/antagonist/station/traitor.dm index ffdc851812..026337fc6d 100644 --- a/code/game/antagonist/station/traitor.dm +++ b/code/game/antagonist/station/traitor.dm @@ -4,7 +4,7 @@ var/datum/antagonist/traitor/traitors /datum/antagonist/traitor id = MODE_TRAITOR antag_sound = 'sound/effects/antag_notice/traitor_alert.ogg' - protected_jobs = list("Security Officer", "Warden", "Detective", "Internal Affairs Agent", "Head of Security", "Site Manager") + protected_jobs = list(JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_DETECTIVE, JOB_INTERNAL_AFFAIRS_AGENT, JOB_HEAD_OF_SECURITY, JOB_SITE_MANAGER) flags = ANTAG_SUSPICIOUS | ANTAG_RANDSPAWN | ANTAG_VOTABLE can_speak_aooc = FALSE // If they want to plot and plan as this sort of traitor, they'll need to do it ICly. diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index b573d46fdc..50aec80c32 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -166,7 +166,7 @@ var/list/sacrificed = list() if(!waiting_for_input[target]) //so we don't spam them with dialogs if they hesitate waiting_for_input[target] = 1 - if(!cult.can_become_antag(target.mind) || jobban_isbanned(target, "cultist"))//putting jobban check here because is_convertable uses mind as argument + if(!cult.can_become_antag(target.mind) || jobban_isbanned(target, JOB_CULTIST))//putting jobban check here because is_convertable uses mind as argument //waiting_for_input ensures this is only shown once, so they basically auto-resist from here on out. They still need to find a way to get off the freaking rune if they don't want to burn to death, though. to_chat(target, "Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible truth. The veil of reality has been ripped away and in the festering wound left behind something sinister takes root.") to_chat(target, "And you were able to force it out of your mind. You now know the truth, there's something horrible out there, stop it and its minions at all costs.") @@ -351,7 +351,7 @@ var/list/sacrificed = list() to_chat(usr, "The sacrifical corpse is not dead. You must free it from this world of illusions before it may be used.") return fizzle() - if(!cult.can_become_antag(corpse_to_raise.mind) || jobban_isbanned(corpse_to_raise, "cultist")) + if(!cult.can_become_antag(corpse_to_raise.mind) || jobban_isbanned(corpse_to_raise, JOB_CULTIST)) to_chat(usr, "The Geometer of Blood refuses to touch this one.") return fizzle() else if(!corpse_to_raise.client && corpse_to_raise.mind) //Don't force the dead person to come back if they don't want to. @@ -459,7 +459,7 @@ var/list/sacrificed = list() break if(!ghost) return this_rune.fizzle() - if(jobban_isbanned(ghost, "cultist")) + if(jobban_isbanned(ghost, JOB_CULTIST)) return this_rune.fizzle() usr.say("Gal'h'rfikk harfrandid mud[pick("'","`")]gib!") diff --git a/code/game/gamemodes/cult/soulstone.dm b/code/game/gamemodes/cult/soulstone.dm index 1f5b11c3a5..53ab92731c 100644 --- a/code/game/gamemodes/cult/soulstone.dm +++ b/code/game/gamemodes/cult/soulstone.dm @@ -24,7 +24,7 @@ return ..() if(istype(M, /mob/living/carbon/human/dummy)) return..() - if(jobban_isbanned(M, "cultist")) + if(jobban_isbanned(M, JOB_CULTIST)) to_chat(user, "This person's soul is too corrupt and cannot be captured!") return..() diff --git a/code/game/gamemodes/epidemic/epidemic.dm b/code/game/gamemodes/epidemic/epidemic.dm index 0417b0c535..adf4525959 100644 --- a/code/game/gamemodes/epidemic/epidemic.dm +++ b/code/game/gamemodes/epidemic/epidemic.dm @@ -17,7 +17,7 @@ /datum/game_mode/epidemic/pre_setup() doctors = 0 for(var/mob/new_player/player in world) - if(player.mind.assigned_role in list("Chief Medical Officer","Medical Doctor")) + if(player.mind.assigned_role in list(JOB_CHIEF_MEDICAL_OFFICER ,JOB_MEDICAL_DOCTOR)) doctors++ break diff --git a/code/game/gamemodes/malfunction/malfunction.dm b/code/game/gamemodes/malfunction/malfunction.dm index 26e0c4572e..fbcc26cf5d 100644 --- a/code/game/gamemodes/malfunction/malfunction.dm +++ b/code/game/gamemodes/malfunction/malfunction.dm @@ -9,5 +9,5 @@ end_on_antag_death = 0 auto_recall_shuttle = 0 antag_tags = list(MODE_MALFUNCTION) - disabled_jobs = list("AI") + disabled_jobs = list(JOB_AI) votable = 0 diff --git a/code/game/gamemodes/meme/meme.dm b/code/game/gamemodes/meme/meme.dm index 191e447813..d9ac36085a 100644 --- a/code/game/gamemodes/meme/meme.dm +++ b/code/game/gamemodes/meme/meme.dm @@ -7,7 +7,7 @@ config_tag = "meme" required_players = 3 required_players_secret = 10 - restricted_jobs = list("AI", "Cyborg") + restricted_jobs = list(JOB_AI, JOB_CYBORG) recommended_enemies = 2 // need at least a meme and a host votable = 0 // temporarily disable this mode for voting end_on_antag_death = 1 @@ -66,8 +66,8 @@ // so that we can later know which host belongs to which meme assigned_hosts[meme.key] = first_host - meme.assigned_role = "MODE" //So they aren't chosen for other jobs. - meme.special_role = "Meme" + meme.assigned_role = JOB_MODE //So they aren't chosen for other jobs. + meme.special_role = JOB_MEME return 1 diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index 8783d948b1..d563959fe5 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -150,7 +150,7 @@ var/global/list/all_objectives = list() if(!istype(I)) return 1 - if(I.assignment == USELESS_JOB) //VOREStation Edit - Visitor not Assistant + if(I.assignment == JOB_ALT_VISITOR) //VOREStation Edit - Visitor not Assistant return 1 else return 0 @@ -638,7 +638,7 @@ var/global/list/all_objectives = list() return /datum/objective/heist/kidnap/choose_target() - var/list/roles = list("Chief Engineer","Research Director","Roboticist","Chemist","Engineer") + var/list/roles = list(JOB_CHIEF_ENGINEER,JOB_RESEARCH_DIRECTOR,JOB_ROBOTICIST,JOB_CHEMIST,JOB_ENGINEER) var/list/possible_targets = list() var/list/priority_targets = list() @@ -903,4 +903,3 @@ var/global/list/all_objectives = list() rval = 2 return 0 return rval - diff --git a/code/game/gamemodes/technomancer/spells/summon/summon_creature.dm b/code/game/gamemodes/technomancer/spells/summon/summon_creature.dm index 720a4883a7..d26a35f78a 100644 --- a/code/game/gamemodes/technomancer/spells/summon/summon_creature.dm +++ b/code/game/gamemodes/technomancer/spells/summon/summon_creature.dm @@ -39,7 +39,7 @@ /obj/item/spell/summon/summon_creature/on_summon(var/mob/living/simple_mob/summoned) if(check_for_scepter()) -// summoned.faction = "technomancer" +// summoned.faction = FACTION_TECHNOMANCER summoned.friends += owner // Makes their new pal big and strong, if they have spell power. diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm index e3dc3dccd0..b162a691d6 100644 --- a/code/game/gamemodes/wizard/wizard.dm +++ b/code/game/gamemodes/wizard/wizard.dm @@ -1,8 +1,8 @@ /datum/game_mode/wizard - name = "Wizard" + name = JOB_WIZARD round_description = "There is a SPACE WIZARD on the station. You can't let the magician achieve their objectives!" extended_round_description = "A powerful entity capable of manipulating the elements around him, most commonly referred to as a 'wizard', has infiltrated the station. They have a wide variety of powers and spells available to them that makes your own simple moral self tremble with fear and excitement. Ultimately, their purpose is unknown. However, it is up to you and your crew to decide if their powers can be used for good or if their arrival foreshadows the destruction of the entire station." - config_tag = "wizard" + config_tag = JOB_WIZARD votable = 0 required_players = 1 required_players_secret = 3 diff --git a/code/game/jobs/access_datum.dm b/code/game/jobs/access_datum.dm index 530e450270..32773362a0 100644 --- a/code/game/jobs/access_datum.dm +++ b/code/game/jobs/access_datum.dm @@ -127,7 +127,7 @@ /var/const/access_captain = 20 /datum/access/captain id = access_captain - desc = "Site Manager" + desc = JOB_SITE_MANAGER region = ACCESS_REGION_COMMAND /var/const/access_all_personal_lockers = 21 @@ -187,7 +187,7 @@ /var/const/access_rd = 30 /datum/access/rd id = access_rd - desc = "Research Director" + desc = JOB_RESEARCH_DIRECTOR region = ACCESS_REGION_RESEARCH /var/const/access_cargo = 31 @@ -247,13 +247,13 @@ /var/const/access_cmo = 40 /datum/access/cmo id = access_cmo - desc = "Chief Medical Officer" + desc = JOB_CHIEF_MEDICAL_OFFICER region = ACCESS_REGION_COMMAND /var/const/access_qm = 41 /datum/access/qm id = access_qm - desc = "Quartermaster" + desc = JOB_QUARTERMASTER region = ACCESS_REGION_SUPPLY /var/const/access_network = 42 @@ -265,13 +265,13 @@ var/const/access_explorer = 43 /datum/access/explorer id = access_explorer - desc = "Away Team" + desc = JOB_EXPLORER region = ACCESS_REGION_GENERAL /* /var/const/access_pathfinder = 44 /datum/access/pathfinder id = access_pathfinder - desc = "Pathfinder" + desc = JOB_PATHFINDER region = ACCESS_REGION_GENERAL */ @@ -331,19 +331,19 @@ var/const/access_explorer = 43 /var/const/access_ce = 56 /datum/access/ce id = access_ce - desc = "Chief Engineer" + desc = JOB_CHIEF_ENGINEER region = ACCESS_REGION_ENGINEERING /var/const/access_hop = 57 /datum/access/hop id = access_hop - desc = "Head of Personnel" + desc = JOB_HEAD_OF_PERSONNEL region = ACCESS_REGION_COMMAND /var/const/access_hos = 58 /datum/access/hos id = access_hos - desc = "Head of Security" + desc = JOB_HEAD_OF_SECURITY region = ACCESS_REGION_SECURITY /var/const/access_RC_announce = 59 //Request console announcements @@ -379,7 +379,7 @@ var/const/access_explorer = 43 /var/const/access_psychiatrist = 64 // Psychiatrist's office /datum/access/psychiatrist id = access_psychiatrist - desc = "Psychiatrist's Office" + desc = JOB_PSYCHIATRIST + "'s Office" region = ACCESS_REGION_MEDBAY /var/const/access_xenoarch = 65 @@ -397,7 +397,7 @@ var/const/access_explorer = 43 var/const/access_pilot = 67 /datum/access/pilot id = access_pilot - desc = "Pilot" + desc = JOB_PILOT region = ACCESS_REGION_GENERAL /var/const/access_entertainment = 72 @@ -430,7 +430,7 @@ var/const/access_pilot = 67 /var/const/access_cent_specops = 103//Special Ops. /datum/access/cent_specops id = access_cent_specops - desc = "Emergency Response Team Prep" + desc = JOB_EMERGENCY_RESPONSE_TEAM + " Prep" access_type = ACCESS_TYPE_CENTCOM /var/const/access_cent_medical = 104//Medical/Research @@ -460,7 +460,7 @@ var/const/access_pilot = 67 /var/const/access_cent_creed = 108//Creed's office. /datum/access/cent_creed id = access_cent_creed - desc = "Emergency Response Team Administration" + desc = JOB_EMERGENCY_RESPONSE_TEAM + " Administration" access_type = ACCESS_TYPE_CENTCOM /var/const/access_cent_captain = 109//Captain's office/ID comp/AI. @@ -472,7 +472,7 @@ var/const/access_pilot = 67 /var/const/access_clown = 136 /datum/access/clown id = access_clown - desc = "Clown Office" + desc = JOB_CLOWN + " Office" region = ACCESS_REGION_GENERAL /var/const/access_tomfoolery = 137 @@ -484,7 +484,7 @@ var/const/access_pilot = 67 /var/const/access_mime = 138 /datum/access/mime id = access_mime - desc = "Mime Office" + desc = JOB_MIME + " Office" region = ACCESS_REGION_GENERAL /*************** diff --git a/code/game/jobs/job/assistant.dm b/code/game/jobs/job/assistant.dm index 0cf6a8c086..9b2f4ef277 100644 --- a/code/game/jobs/job/assistant.dm +++ b/code/game/jobs/job/assistant.dm @@ -2,12 +2,12 @@ // Assistant ////////////////////////////////// /datum/job/assistant - title = "Assistant" + title = JOB_ALT_ASSISTANT flag = ASSISTANT departments = list(DEPARTMENT_CIVILIAN) sorting_order = -1 department_flag = CIVILIAN - faction = "Station" + faction = FACTION_STATION total_positions = -1 spawn_positions = -1 supervisors = "absolutely everyone" @@ -18,9 +18,9 @@ outfit_type = /decl/hierarchy/outfit/job/assistant job_description = "An Assistant does whatever is requested of them. Though they are part of the crew, they have no real authority." -/* alt_titles = list("Technical Assistant" = /datum/alt_title/tech_assist, - "Medical Intern"= /datum/alt_title/med_intern, "Research Assistant" = /datum/alt_title/research_assist, - "Visitor" = /datum/alt_title/visitor) +/* alt_titles = list(JOB_ALT_TECHNICAL_ASSISTANT = /datum/alt_title/tech_assist, + JOB_ALT_MEDICAL_INTERN= /datum/alt_title/med_intern, JOB_ALT_RESEARCH_ASSISTANT = /datum/alt_title/research_assist, + JOB_ALT_VISITOR = /datum/alt_title/visitor) ) */ //VOREStation Removal: no alt-titles for visitors /datum/job/assistant/get_access() @@ -31,29 +31,29 @@ // Assistant Alt Titles /datum/alt_title/tech_assist - title = "Technical Assistant" - title_blurb = "A Technical Assistant attempts to provide whatever the Engineering department needs. They are not proper Engineers, and are \ - often in training to become an Engineer. A Technical Assistant has no real authority." + title = JOB_ALT_TECHNICAL_ASSISTANT + title_blurb = "A " + JOB_ALT_TECHNICAL_ASSISTANT + " attempts to provide whatever the Engineering department needs. They are not proper Engineers, and are \ + often in training to become an " + JOB_ENGINEER + ". A " + JOB_ALT_TECHNICAL_ASSISTANT + " has no real authority." /datum/alt_title/med_intern - title = "Medical Intern" - title_blurb = "A Medical Intern attempts to provide whatever the Medical department needs. They are frequently asked to pay attention to \ - the suit sensors console. A Medical Intern has no real authority." + title = JOB_ALT_MEDICAL_INTERN + title_blurb = "A " + JOB_ALT_MEDICAL_INTERN + " attempts to provide whatever the Medical department needs. They are frequently asked to pay attention to \ + the suit sensors console. A " + JOB_ALT_MEDICAL_INTERN + " has no real authority." /datum/alt_title/research_assist - title = "Research Assistant" - title_blurb = "A Research Assistant attempts to assist anyone working in the Research department. They are expected to follow the instruction \ - of proper Research staff, as it is frequently a matter of safety. A Research Assistant has no real authority." + title = JOB_ALT_RESEARCH_ASSISTANT + title_blurb = "A " + JOB_ALT_RESEARCH_ASSISTANT + " attempts to assist anyone working in the Research department. They are expected to follow the instruction \ + of proper Research staff, as it is frequently a matter of safety. A " + JOB_ALT_RESEARCH_ASSISTANT + " has no real authority." /datum/alt_title/visitor - title = "Visitor" - title_blurb = "A Visitor is anyone who has arrived on the station but does not have a specific job to do. Many off-duty crewmembers \ + title = JOB_ALT_VISITOR + title_blurb = "A " + JOB_ALT_VISITOR + " is anyone who has arrived on the station but does not have a specific job to do. Many off-duty crewmembers \ who care to make use of the station's facilities arrive as Visitors. Properly registered Vistors are considered \ to be part of the crew for most if not all purposes, but they have no real authority." title_outfit = /decl/hierarchy/outfit/job/assistant/visitor /datum/alt_title/resident // Just in case it makes a comeback - title = "Resident" - title_blurb = "A Resident is an individual who resides on the station, frequently in a different part of the station than what is seen. \ + title = JOB_ALT_RESIDENT + title_blurb = "A " + JOB_ALT_RESIDENT + " is an individual who resides on the station, frequently in a different part of the station than what is seen. \ They are considered to be part of the crew for most purposes, but have no real authority." title_outfit = /decl/hierarchy/outfit/job/assistant/resident diff --git a/code/game/jobs/job/assistant_vr.dm b/code/game/jobs/job/assistant_vr.dm index fa3b3bad9a..b52c28e635 100644 --- a/code/game/jobs/job/assistant_vr.dm +++ b/code/game/jobs/job/assistant_vr.dm @@ -3,11 +3,11 @@ ////////////////////////////////// /datum/job/intern - title = "Intern" + title = JOB_INTERN flag = INTERN departments = list(DEPARTMENT_CIVILIAN) department_flag = ENGSEC // Ran out of bits - faction = "Station" + faction = FACTION_STATION total_positions = -1 spawn_positions = -1 supervisors = "the staff from the department you're interning in" @@ -16,62 +16,62 @@ access = list() //See /datum/job/intern/get_access() minimal_access = list() //See /datum/job/intern/get_access() outfit_type = /decl/hierarchy/outfit/job/assistant/intern - alt_titles = list("Apprentice Engineer" = /datum/alt_title/intern_eng, - "Medical Intern" = /datum/alt_title/intern_med, - "Research Intern" = /datum/alt_title/intern_sci, - "Security Cadet" = /datum/alt_title/intern_sec, - "Jr. Cargo Tech" = /datum/alt_title/intern_crg, - "Server" = /datum/alt_title/server, - "Assistant" = /datum/alt_title/assistant) - job_description = "An Intern does whatever is requested of them, often doing so in process of learning \ + alt_titles = list(JOB_ALT_APPRENTICE_ENGINEER = /datum/alt_title/intern_eng, + JOB_ALT_MEDICAL_INTERN = /datum/alt_title/intern_med, + JOB_ALT_RESEARCH_INTERN = /datum/alt_title/intern_sci, + JOB_ALT_SECURITY_CADET = /datum/alt_title/intern_sec, + JOB_ALT_JR_CARGO_TECH = /datum/alt_title/intern_crg, + JOB_ALT_SERVER = /datum/alt_title/server, + JOB_ALT_ASSISTANT = /datum/alt_title/assistant) + job_description = "An " + JOB_INTERN + " does whatever is requested of them, often doing so in process of learning \ another job. Though they are part of the crew, they have no real authority." timeoff_factor = 0 // Interns, noh requestable = FALSE /datum/alt_title/intern_eng - title = "Apprentice Engineer" - title_blurb = "An Apprentice Engineer attempts to provide whatever the Engineering department needs. They are not proper Engineers, and are \ - often in training to become an Engineer. An Apprentice Engineer has no real authority." + title = JOB_ALT_APPRENTICE_ENGINEER + title_blurb = "An " + JOB_ALT_APPRENTICE_ENGINEER + " attempts to provide whatever the Engineering department needs. They are not proper Engineers, and are \ + often in training to become an Engineer. An " + JOB_ALT_APPRENTICE_ENGINEER + " has no real authority." title_outfit = /decl/hierarchy/outfit/job/assistant/engineer /datum/alt_title/intern_med - title = "Medical Intern" - title_blurb = "A Medical Intern attempts to provide whatever the Medical department needs. They are not proper Doctors, and are \ - often in training to become a Doctor. A Medical Intern has no real authority." + title = JOB_ALT_MEDICAL_INTERN + title_blurb = "A " + JOB_ALT_MEDICAL_INTERN + " attempts to provide whatever the Medical department needs. They are not proper Doctors, and are \ + often in training to become a Doctor. A " + JOB_ALT_MEDICAL_INTERN + " has no real authority." title_outfit = /decl/hierarchy/outfit/job/assistant/medic /datum/alt_title/intern_sci - title = "Research Intern" - title_blurb = "A Research Intern attempts to provide whatever the Research department needs. They are not proper Scientists, and are \ - often in training to become a Scientist. A Research Intern has no real authority." + title = JOB_ALT_RESEARCH_INTERN + title_blurb = "A " + JOB_ALT_RESEARCH_INTERN + " attempts to provide whatever the Research department needs. They are not proper " + JOB_SCIENTIST + "s, and are \ + often in training to become a " + JOB_SCIENTIST + ". A " + JOB_ALT_RESEARCH_INTERN + " has no real authority." title_outfit = /decl/hierarchy/outfit/job/assistant/scientist /datum/alt_title/intern_sec - title = "Security Cadet" - title_blurb = "A Security Cadet attempts to provide whatever the Security department needs. They are not proper Officers, and are \ - often in training to become an Officer. A Security Cadet has no real authority." + title = JOB_ALT_SECURITY_CADET + title_blurb = "A " + JOB_ALT_SECURITY_CADET + " attempts to provide whatever the Security department needs. They are not proper Officers, and are \ + often in training to become an Officer. A " + JOB_ALT_SECURITY_CADET + " has no real authority." title_outfit = /decl/hierarchy/outfit/job/assistant/officer /datum/alt_title/intern_crg - title = "Jr. Cargo Tech" - title_blurb = "A Jr. Cargo Tech attempts to provide whatever the Cargo department needs. They are not proper Cargo Technicians, and are \ - often in training to become a Cargo Technician. A Jr. Cargo Tech has no real authority." + title = JOB_ALT_JR_CARGO_TECH + title_blurb = "A " + JOB_ALT_JR_CARGO_TECH + " attempts to provide whatever the Cargo department needs. They are not proper Cargo Technicians, and are \ + often in training to become a " + JOB_CARGO_TECHNICIAN + ". A " + JOB_ALT_JR_CARGO_TECH + " has no real authority." title_outfit = /decl/hierarchy/outfit/job/assistant/cargo /* /datum/alt_title/intern_exp - title = "Jr. Explorer" - title_blurb = "A Jr. Explorer attempts to provide whatever the Exploration department needs. They are not proper Explorers, and are \ - often in training to become an Explorer. A Jr. Explorer has no real authority." + title = "Jr. " + JOB_EXPLORER + "" + title_blurb = "A Jr. " + JOB_EXPLORER + " attempts to provide whatever the Exploration department needs. They are not proper " + JOB_EXPLORER + "s, and are \ + often in training to become an " + JOB_EXPLORER + ". A Jr. " + JOB_EXPLORER + " has no real authority." title_outfit = /decl/hierarchy/outfit/job/assistant/explorer */ /datum/alt_title/server - title = "Server" - title_blurb = "A Server helps out kitchen and diner staff with various tasks, primarily food delivery. A Server has no real authority." + title = JOB_ALT_SERVER + title_blurb = "A " + JOB_ALT_SERVER + " helps out kitchen and diner staff with various tasks, primarily food delivery. A " + JOB_ALT_SERVER + " has no real authority." title_outfit = /decl/hierarchy/outfit/job/service/server /datum/alt_title/assistant - title = "Assistant" - title_blurb = "An assistant helps out wherever they might be needed. They have no authority, but can volunteer to help if help is needed." + title = JOB_ALT_ASSISTANT + title_blurb = "An " + JOB_ALT_ASSISTANT + " helps out wherever they might be needed. They have no authority, but can volunteer to help if help is needed." title_outfit = /decl/hierarchy/outfit/job/service/server /datum/job/intern/New() @@ -92,9 +92,9 @@ ////////////////////////////////// /datum/job/assistant // Visitor - title = USELESS_JOB + title = JOB_ALT_VISITOR supervisors = "nobody! You don't work here" - job_description = "A Visitor is just there to visit the place. They have no real authority or responsibility." + job_description = "A " + JOB_ALT_VISITOR + " is just there to visit the place. They have no real authority or responsibility." timeoff_factor = 0 requestable = FALSE alt_titles = list("Guest" = /datum/alt_title/guest, "Traveler" = /datum/alt_title/traveler) diff --git a/code/game/jobs/job/captain.dm b/code/game/jobs/job/captain.dm index 2138298e6d..6c16ac4376 100644 --- a/code/game/jobs/job/captain.dm +++ b/code/game/jobs/job/captain.dm @@ -5,13 +5,13 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1) ////////////////////////////////// /datum/job/captain - title = "Site Manager" + title = JOB_SITE_MANAGER flag = CAPTAIN departments = list(DEPARTMENT_COMMAND) sorting_order = 3 // Above everyone. departments_managed = list(DEPARTMENT_COMMAND) department_flag = ENGSEC - faction = "Station" + faction = FACTION_STATION total_positions = 1 spawn_positions = 1 supervisors = "company officials and Corporate Regulations" @@ -25,14 +25,14 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1) minimum_character_age = 25 min_age_by_species = list(SPECIES_HUMAN_VATBORN = 14) ideal_character_age = 70 // Old geezer captains ftw - ideal_age_by_species = list(SPECIES_HUMAN_VATBORN = 55) /// Vatborn live shorter, no other race eligible for captain besides human/skrell + ideal_age_by_species = list(SPECIES_HUMAN_VATBORN = 55) /// Vatborn live shorter, no other race eligible for captain besides human/skrell banned_job_species = list(SPECIES_UNATHI, SPECIES_TAJ, SPECIES_DIONA, SPECIES_PROMETHEAN, SPECIES_ZADDAT, "mechanical", "digital") outfit_type = /decl/hierarchy/outfit/job/captain - job_description = "The Site Manager manages the other Command Staff, and through them the rest of the station. Though they have access to everything, \ - they do not understand everything, and are expected to delegate tasks to the appropriate crew member. The Site Manager is expected to \ + job_description = "The " + JOB_SITE_MANAGER + " manages the other Command Staff, and through them the rest of the station. Though they have access to everything, \ + they do not understand everything, and are expected to delegate tasks to the appropriate crew member. The " + JOB_SITE_MANAGER + " is expected to \ have an understanding of Standard Operating Procedure, and is subject to it, and legal action, in the same way as every other crew member." - alt_titles = list("Overseer"= /datum/alt_title/overseer) + alt_titles = list(JOB_ALT_OVERSEER= /datum/alt_title/overseer) /* @@ -48,22 +48,22 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1) // Captain Alt Titles /datum/alt_title/overseer - title = "Overseer" + title = JOB_ALT_OVERSEER ////////////////////////////////// // Head of Personnel ////////////////////////////////// /datum/job/hop - title = "Head of Personnel" + title = JOB_HEAD_OF_PERSONNEL flag = HOP departments = list(DEPARTMENT_COMMAND, DEPARTMENT_CIVILIAN, DEPARTMENT_CARGO) sorting_order = 2 // Above the QM, below captain. departments_managed = list(DEPARTMENT_CIVILIAN, DEPARTMENT_CARGO) department_flag = CIVILIAN - faction = "Station" + faction = FACTION_STATION total_positions = 1 spawn_positions = 1 - supervisors = "the Site Manager" + supervisors = "the " + JOB_SITE_MANAGER selection_color = "#1D1D4F" req_admin_notify = 1 minimal_player_age = 10 @@ -76,10 +76,10 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1) banned_job_species = list(SPECIES_PROMETHEAN, SPECIES_ZADDAT, "digital", SPECIES_DIONA) outfit_type = /decl/hierarchy/outfit/job/hop - job_description = "The Head of Personnel manages the Service department, the Exploration team, and most other civilians. They also \ - manage the Supply department, through the Quartermaster. In addition, the Head of Personnel oversees the personal accounts \ - of the crew, including their money and access. If necessary, the Head of Personnel is first in line to assume Acting Command." - alt_titles = list("Crew Resources Officer" = /datum/alt_title/cro) + job_description = "The " + JOB_HEAD_OF_PERSONNEL + " manages the Service department, the Exploration team, and most other civilians. They also \ + manage the Supply department, through the " + JOB_QUARTERMASTER + ". In addition, the " + JOB_HEAD_OF_PERSONNEL + " oversees the personal accounts \ + of the crew, including their money and access. If necessary, the " + JOB_HEAD_OF_PERSONNEL + " is first in line to assume Acting Command." + alt_titles = list(JOB_ALT_CREW_RESOURCE_OFFICER = /datum/alt_title/cro) access = list(access_security, access_sec_doors, access_brig, access_forensics_lockers, access_medical, access_engine, access_change_ids, access_ai_upload, access_eva, access_heads, @@ -96,19 +96,19 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1) // HOP Alt Titles /datum/alt_title/cro - title = "Crew Resources Officer" + title = JOB_ALT_CREW_RESOURCE_OFFICER ////////////////////////////////// // Command Secretary ////////////////////////////////// /datum/job/secretary - title = "Command Secretary" + title = JOB_COMMAND_SECRETARY flag = BRIDGE departments = list(DEPARTMENT_COMMAND) department_accounts = list(DEPARTMENT_COMMAND) department_flag = CIVILIAN - faction = "Station" + faction = FACTION_STATION total_positions = 2 spawn_positions = 2 supervisors = "command staff" @@ -120,6 +120,5 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1) minimal_access = list(access_heads, access_keycard_auth) outfit_type = /decl/hierarchy/outfit/job/secretary - job_description = "A Command Secretary handles paperwork duty for the Heads of Staff, so they can better focus on managing their departments. \ + job_description = "A " + JOB_COMMAND_SECRETARY + " handles paperwork duty for the Heads of Staff, so they can better focus on managing their departments. \ They are not Heads of Staff, and have no real authority." - diff --git a/code/game/jobs/job/captain_vr.dm b/code/game/jobs/job/captain_vr.dm index 3e2541bdec..c127d8dfd4 100644 --- a/code/game/jobs/job/captain_vr.dm +++ b/code/game/jobs/job/captain_vr.dm @@ -2,17 +2,17 @@ disallow_jobhop = TRUE pto_type = PTO_CIVILIAN dept_time_required = 80 //Pending something more complicated - alt_titles = list("Overseer"= /datum/alt_title/overseer, "Facility Director" = /datum/alt_title/facility_director, "Chief Supervisor" = /datum/alt_title/chief_supervisor, - "Captain" = /datum/alt_title/captain) + alt_titles = list(JOB_ALT_OVERSEER= /datum/alt_title/overseer, JOB_ALT_FACILITY_DIRECTOR = /datum/alt_title/facility_director, JOB_ALT_CHIEF_SUPERVISOR = /datum/alt_title/chief_supervisor, + JOB_ALT_CAPTAIN = /datum/alt_title/captain) /datum/alt_title/facility_director - title = "Facility Director" + title = JOB_ALT_FACILITY_DIRECTOR /datum/alt_title/chief_supervisor - title = "Chief Supervisor" + title = JOB_ALT_CHIEF_SUPERVISOR /datum/alt_title/captain - title = "Captain" + title = JOB_ALT_CAPTAIN /datum/job/captain/get_request_reasons() return list("Training crew", "Assembling expedition team") @@ -24,8 +24,8 @@ departments_managed = list(DEPARTMENT_CIVILIAN, DEPARTMENT_CARGO, DEPARTMENT_PLANET) dept_time_required = 60 - alt_titles = list("Crew Resources Officer" = /datum/alt_title/cro, "Deputy Manager" = /datum/alt_title/deputy_manager, "Staff Manager" = /datum/alt_title/staff_manager, - "Facility Steward" = /datum/alt_title/facility_steward, "First Mate" = /datum/alt_title/first_mate) + alt_titles = list(JOB_ALT_CREW_RESOURCE_OFFICER = /datum/alt_title/cro, JOB_ALT_DEPUTY_MANAGER = /datum/alt_title/deputy_manager, JOB_ALT_STAFF_MANAGER = /datum/alt_title/staff_manager, + JOB_ALT_FACILITY_STEWARD = /datum/alt_title/facility_steward, JOB_ALT_FIRST_MATE = /datum/alt_title/first_mate) access = list(access_security, access_sec_doors, access_brig, access_forensics_lockers, access_medical, access_engine, access_change_ids, access_ai_upload, access_eva, access_heads, @@ -41,16 +41,16 @@ access_hop, access_RC_announce, access_clown, access_tomfoolery, access_mime, access_keycard_auth, access_gateway, access_entertainment) /datum/alt_title/deputy_manager - title = "Deputy Manager" + title = JOB_ALT_DEPUTY_MANAGER /datum/alt_title/staff_manager - title = "Staff Manager" + title = JOB_ALT_STAFF_MANAGER /datum/alt_title/facility_steward - title = "Facility Steward" + title = JOB_ALT_FACILITY_STEWARD /datum/alt_title/first_mate - title = "First Mate" + title = JOB_ALT_FIRST_MATE /datum/job/hop/get_request_reasons() return list("ID modification", "Training crew", "Assembling expedition team") @@ -59,20 +59,20 @@ /datum/job/secretary disallow_jobhop = TRUE pto_type = PTO_CIVILIAN - alt_titles = list("Command Liaison" = /datum/alt_title/command_liaison, "Command Assistant" = /datum/alt_title/command_assistant, "Command Intern" = /datum/alt_title/command_intern, - "Bridge Secretary" = /datum/alt_title/bridge_secretary, "Bridge Assistant" = /datum/alt_title/bridge_assistant) + alt_titles = list(JOB_ALT_COMMAND_LIAISON = /datum/alt_title/command_liaison, JOB_ALT_COMMAND_ASSISTANT = /datum/alt_title/command_assistant, JOB_ALT_COMMAND_INTERN = /datum/alt_title/command_intern, + JOB_ALT_BRIDGE_SECRETARY = /datum/alt_title/bridge_secretary, JOB_ALT_BRIDGE_ASSISTANT = /datum/alt_title/bridge_assistant) /datum/alt_title/command_liaison - title = "Command Liaison" + title = JOB_ALT_COMMAND_LIAISON /datum/alt_title/command_assistant - title = "Command Assistant" + title = JOB_ALT_COMMAND_ASSISTANT /datum/alt_title/command_intern - title = "Command Intern" + title = JOB_ALT_COMMAND_INTERN /datum/alt_title/bridge_secretary - title = "Bridge Secretary" + title = JOB_ALT_BRIDGE_SECRETARY /datum/alt_title/bridge_assistant - title = "Bridge Assistant" + title = JOB_ALT_BRIDGE_ASSISTANT diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index f06c7dc083..663edab0a4 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -5,26 +5,26 @@ ////////////////////////////////// /datum/job/bartender - title = "Bartender" + title = JOB_BARTENDER flag = BARTENDER departments = list(DEPARTMENT_CIVILIAN) department_flag = CIVILIAN - faction = "Station" + faction = FACTION_STATION total_positions = 2 spawn_positions = 2 - supervisors = "the Head of Personnel" + supervisors = "the " + JOB_HEAD_OF_PERSONNEL selection_color = "#515151" access = list(access_hydroponics, access_bar, access_kitchen) minimal_access = list(access_bar) outfit_type = /decl/hierarchy/outfit/job/service/bartender - job_description = "A Bartender mixes drinks for the crew. They generally have permission to charge for drinks or deny service to unruly patrons." - alt_titles = list("Barista" = /datum/alt_title/barista) + job_description = "A " + JOB_BARTENDER + " mixes drinks for the crew. They generally have permission to charge for drinks or deny service to unruly patrons." + alt_titles = list(JOB_ALT_BARISTA = /datum/alt_title/barista) // Bartender Alt Titles /datum/alt_title/barista - title = "Barista" - title_blurb = "A barista mans the Cafe, serving primarily non-alcoholic drinks to the crew. They generally have permission to charge for drinks \ + title = JOB_ALT_BARISTA + title_blurb = "A " + JOB_ALT_BARISTA + " mans the Cafe, serving primarily non-alcoholic drinks to the crew. They generally have permission to charge for drinks \ or deny service to unruly patrons." title_outfit = /decl/hierarchy/outfit/job/service/bartender/barista @@ -33,68 +33,68 @@ ////////////////////////////////// /datum/job/chef - title = "Chef" + title = JOB_CHEF flag = CHEF departments = list(DEPARTMENT_CIVILIAN) department_flag = CIVILIAN - faction = "Station" + faction = FACTION_STATION total_positions = 2 spawn_positions = 2 - supervisors = "the Head of Personnel" + supervisors = "the "+ JOB_HEAD_OF_PERSONNEL selection_color = "#515151" access = list(access_hydroponics, access_bar, access_kitchen) minimal_access = list(access_kitchen) outfit_type = /decl/hierarchy/outfit/job/service/chef - job_description = "A Chef cooks food for the crew. They generally have permission to charge for food or deny service to unruly diners." - alt_titles = list("Cook" = /datum/alt_title/cook) + job_description = "A " + JOB_CHEF + " cooks food for the crew. They generally have permission to charge for food or deny service to unruly diners." + alt_titles = list(JOB_ALT_COOK = /datum/alt_title/cook) // Chef Alt Titles /datum/alt_title/cook - title = "Cook" - title_blurb = "A Cook has the same duties, though they may be less experienced." + title = JOB_ALT_COOK + title_blurb = "A " + JOB_ALT_COOK + " has the same duties, though they may be less experienced." ////////////////////////////////// // Botanist ////////////////////////////////// /datum/job/hydro - title = "Botanist" + title = JOB_BOTANIST flag = BOTANIST departments = list(DEPARTMENT_CIVILIAN) department_flag = CIVILIAN - faction = "Station" + faction = FACTION_STATION total_positions = 2 spawn_positions = 2 - supervisors = "the Head of Personnel" + supervisors = "the " + JOB_HEAD_OF_PERSONNEL selection_color = "#515151" access = list(access_hydroponics, access_bar, access_kitchen) minimal_access = list(access_hydroponics) outfit_type = /decl/hierarchy/outfit/job/service/gardener - job_description = "A Botanist grows plants for the Chef and Bartender." - alt_titles = list("Gardener" = /datum/alt_title/gardener) + job_description = "A " + JOB_BOTANIST+ " grows plants for the " + JOB_CHEF + " and " + JOB_BARTENDER + "." + alt_titles = list(JOB_ALT_GARDENER = /datum/alt_title/gardener) //Botanist Alt Titles /datum/alt_title/gardener - title = "Gardener" - title_blurb = "A Gardener may be less professional than their counterparts, and are more likely to tend to the public gardens if they aren't needed elsewhere." + title = JOB_ALT_GARDENER + title_blurb = "A " + JOB_ALT_GARDENER + " may be less professional than their counterparts, and are more likely to tend to the public gardens if they aren't needed elsewhere." //Cargo ////////////////////////////////// // Quartermaster ////////////////////////////////// /datum/job/qm - title = "Quartermaster" + title = JOB_QUARTERMASTER flag = QUARTERMASTER departments = list(DEPARTMENT_CARGO) sorting_order = 1 // QM is above the cargo techs, but below the HoP. departments_managed = list(DEPARTMENT_CARGO) department_flag = CIVILIAN - faction = "Station" + faction = FACTION_STATION total_positions = 1 spawn_positions = 1 - supervisors = "the Head of Personnel" + supervisors = "the " + JOB_HEAD_OF_PERSONNEL selection_color = "#9b633e" economic_modifier = 5 access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station, access_RC_announce) @@ -104,31 +104,31 @@ ideal_character_age = 40 outfit_type = /decl/hierarchy/outfit/job/cargo/qm - job_description = "The Quartermaster manages the Supply department, checking cargo orders and ensuring supplies get to where they are needed." - alt_titles = list("Supply Chief" = /datum/alt_title/supply_chief) + job_description = "The " + JOB_QUARTERMASTER + " manages the Supply department, checking cargo orders and ensuring supplies get to where they are needed." + alt_titles = list(JOB_ALT_SUPPLY_CHIEF = /datum/alt_title/supply_chief) // Quartermaster Alt Titles /datum/alt_title/supply_chief - title = "Supply Chief" + title = JOB_ALT_SUPPLY_CHIEF ////////////////////////////////// // Cargo Tech ////////////////////////////////// /datum/job/cargo_tech - title = "Cargo Technician" + title = JOB_CARGO_TECHNICIAN flag = CARGOTECH departments = list(DEPARTMENT_CARGO) department_flag = CIVILIAN - faction = "Station" + faction = FACTION_STATION total_positions = 2 spawn_positions = 2 - supervisors = "the Quartermaster and the Head of Personnel" + supervisors = "the " + JOB_QUARTERMASTER + " and the " + JOB_HEAD_OF_PERSONNEL selection_color = "#7a4f33" access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_mining, access_mining_station) minimal_access = list(access_maint_tunnels, access_cargo, access_cargo_bot, access_mailsorting) outfit_type = /decl/hierarchy/outfit/job/cargo/cargo_tech - job_description = "A Cargo Technician fills and delivers cargo orders. They are encouraged to return delivered crates to the Cargo Shuttle, \ + job_description = "A " + JOB_CARGO_TECHNICIAN + " fills and delivers cargo orders. They are encouraged to return delivered crates to the Cargo Shuttle, \ because Central Command gives a partial refund." ////////////////////////////////// @@ -136,82 +136,82 @@ ////////////////////////////////// /datum/job/mining - title = "Shaft Miner" + title = JOB_SHAFT_MINER flag = MINER departments = list(DEPARTMENT_CARGO) department_flag = CIVILIAN - faction = "Station" + faction = FACTION_STATION total_positions = 3 spawn_positions = 3 - supervisors = "the Quartermaster and the Head of Personnel" + supervisors = "the " + JOB_QUARTERMASTER + " and the " + JOB_HEAD_OF_PERSONNEL selection_color = "#7a4f33" economic_modifier = 5 access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_mining, access_mining_station) minimal_access = list(access_mining, access_mining_station, access_mailsorting) outfit_type = /decl/hierarchy/outfit/job/cargo/mining - job_description = "A Shaft Miner mines and processes minerals to be delivered to departments that need them." - alt_titles = list("Drill Technician" = /datum/alt_title/drill_tech) + job_description = "A " + JOB_SHAFT_MINER + " mines and processes minerals to be delivered to departments that need them." + alt_titles = list(JOB_ALT_DRILL_TECHNICIAN = /datum/alt_title/drill_tech) /datum/alt_title/drill_tech - title = "Drill Technician" - title_blurb = "A Drill Technician specializes in operating and maintaining the machinery needed to extract ore from veins deep below the surface." + title = JOB_ALT_DRILL_TECHNICIAN + title_blurb = "A " + JOB_ALT_DRILL_TECHNICIAN + " specializes in operating and maintaining the machinery needed to extract ore from veins deep below the surface." //Service ////////////////////////////////// // Janitor ////////////////////////////////// /datum/job/janitor - title = "Janitor" + title = JOB_JANITOR flag = JANITOR departments = list(DEPARTMENT_CIVILIAN) department_flag = CIVILIAN - faction = "Station" + faction = FACTION_STATION total_positions = 2 spawn_positions = 2 - supervisors = "the Head of Personnel" + supervisors = "the " + JOB_HEAD_OF_PERSONNEL selection_color = "#515151" access = list(access_janitor, access_maint_tunnels) minimal_access = list(access_janitor, access_maint_tunnels) outfit_type = /decl/hierarchy/outfit/job/service/janitor - job_description = "A Janitor keeps the station clean, as long as it doesn't interfere with active crime scenes." - alt_titles = list("Custodian" = /datum/alt_title/custodian) + job_description = "A " + JOB_JANITOR + " keeps the station clean, as long as it doesn't interfere with active crime scenes." + alt_titles = list(JOB_ALT_CUSTODIAN = /datum/alt_title/custodian) // Janitor Alt Titles /datum/alt_title/custodian - title = "Custodian" + title = JOB_ALT_CUSTODIAN //More or less assistants ////////////////////////////////// // Librarian ////////////////////////////////// /datum/job/librarian - title = "Librarian" + title = JOB_LIBRARIAN flag = LIBRARIAN departments = list(DEPARTMENT_CIVILIAN) department_flag = CIVILIAN - faction = "Station" + faction = FACTION_STATION total_positions = 1 spawn_positions = 1 - supervisors = "the Head of Personnel" + supervisors = "the " + JOB_HEAD_OF_PERSONNEL selection_color = "#515151" access = list(access_library, access_maint_tunnels) minimal_access = list(access_library) outfit_type = /decl/hierarchy/outfit/job/librarian - job_description = "The Librarian curates the book selection in the Library, so the crew might enjoy it." - alt_titles = list("Journalist" = /datum/alt_title/journalist, "Writer" = /datum/alt_title/writer) + job_description = "The " + JOB_LIBRARIAN + " curates the book selection in the Library, so the crew might enjoy it." + alt_titles = list(JOB_ALT_JOURNALIST = /datum/alt_title/journalist, JOB_ALT_WRITER = /datum/alt_title/writer) // Librarian Alt Titles /datum/alt_title/journalist - title = "Journalist" + title = JOB_ALT_JOURNALIST title_outfit = /decl/hierarchy/outfit/job/librarian/journalist - title_blurb = "The Journalist uses the Library as a base of operations, from which they can report the news and goings-on on the station with their camera." + title_blurb = "The " + JOB_ALT_JOURNALIST + " uses the Library as a base of operations, from which they can report the news and goings-on on the station with their camera." /datum/alt_title/writer - title = "Writer" - title_blurb = "The Writer uses the Library as a quiet place to write whatever it is they choose to write." + title = JOB_ALT_WRITER + title_blurb = "The " + JOB_ALT_WRITER + " uses the Library as a quiet place to write whatever it is they choose to write." ////////////////////////////////// // Internal Affairs Agent @@ -219,11 +219,11 @@ //var/global/lawyer = 0//Checks for another lawyer //This changed clothes on 2nd lawyer, both IA get the same dreds. /datum/job/lawyer - title = "Internal Affairs Agent" + title = JOB_INTERNAL_AFFAIRS_AGENT flag = LAWYER departments = list(DEPARTMENT_CIVILIAN) department_flag = CIVILIAN - faction = "Station" + faction = FACTION_STATION total_positions = 2 spawn_positions = 2 supervisors = "company officials and Corporate Regulations" @@ -235,7 +235,7 @@ banned_job_species = list(SPECIES_PROMETHEAN, SPECIES_UNATHI, SPECIES_DIONA, SPECIES_TESHARI, SPECIES_ZADDAT, "digital") outfit_type = /decl/hierarchy/outfit/job/internal_affairs_agent - job_description = "An Internal Affairs Agent makes sure that the crew is following Standard Operating Procedure. They also \ + job_description = "An " + JOB_INTERNAL_AFFAIRS_AGENT + " makes sure that the crew is following Standard Operating Procedure. They also \ handle complaints against crew members, and can have issues brought to the attention of Central Command, \ assuming their paperwork is in order." diff --git a/code/game/jobs/job/civilian_chaplain.dm b/code/game/jobs/job/civilian_chaplain.dm index 34e84772c8..1220e3ee88 100644 --- a/code/game/jobs/job/civilian_chaplain.dm +++ b/code/game/jobs/job/civilian_chaplain.dm @@ -1,25 +1,25 @@ //Due to how large this one is it gets its own file /datum/job/chaplain - title = "Chaplain" + title = JOB_CHAPLAIN flag = CHAPLAIN departments = list(DEPARTMENT_CIVILIAN) department_flag = CIVILIAN - faction = "Station" + faction = FACTION_STATION total_positions = 1 spawn_positions = 1 - supervisors = "the Head of Personnel" + supervisors = "the " + JOB_HEAD_OF_PERSONNEL selection_color = "#515151" access = list(access_morgue, access_chapel_office, access_crematorium, access_maint_tunnels) minimal_access = list(access_chapel_office, access_crematorium) outfit_type = /decl/hierarchy/outfit/job/chaplain - job_description = "The Chaplain ministers to the spiritual needs of the crew." - alt_titles = list("Counselor" = /datum/alt_title/counselor) + job_description = "The " + JOB_CHAPLAIN + " ministers to the spiritual needs of the crew." + alt_titles = list(JOB_ALT_COUNSELOR = /datum/alt_title/counselor) // Chaplain Alt Titles /datum/alt_title/counselor - title = "Counselor" - title_blurb = "The Counselor attends to the emotional needs of the crew, without a specific medicinal or spiritual focus." + title = JOB_ALT_COUNSELOR + title_blurb = "The " + JOB_ALT_COUNSELOR + " attends to the emotional needs of the crew, without a specific medicinal or spiritual focus." /datum/job/chaplain/equip(var/mob/living/carbon/human/H, var/alt_title, var/ask_questions = TRUE) . = ..() @@ -111,7 +111,7 @@ var/bible_name = "Bible" var/bible_icon_state = "bible" var/bible_item_state = "bible" - var/title = "Chaplain" + var/title = JOB_CHAPLAIN var/configured = FALSE /datum/religion/New(var/r, var/d, var/bn, var/bis, var/bits, var/t) diff --git a/code/game/jobs/job/civilian_vr.dm b/code/game/jobs/job/civilian_vr.dm index 9934d9dea9..c7e2a2c785 100644 --- a/code/game/jobs/job/civilian_vr.dm +++ b/code/game/jobs/job/civilian_vr.dm @@ -1,65 +1,65 @@ /datum/job/bartender pto_type = PTO_CIVILIAN - alt_titles = list("Barkeeper" = /datum/alt_title/barkeeper, "Barmaid" = /datum/alt_title/barmaid, "Barista" = /datum/alt_title/barista, "Mixologist" = /datum/alt_title/mixologist) + alt_titles = list(JOB_ALT_BARKEEPR = /datum/alt_title/barkeeper, JOB_ALT_BARMAID = /datum/alt_title/barmaid, JOB_ALT_BARISTA = /datum/alt_title/barista, JOB_ALT_MIXOLOGIST = /datum/alt_title/mixologist) /datum/alt_title/barkeeper - title = "Barkeeper" + title = JOB_ALT_BARKEEPR /datum/alt_title/barmaid - title = "Barmaid" + title = JOB_ALT_BARMAID /datum/alt_title/mixologist - title = "Mixologist" + title = JOB_ALT_MIXOLOGIST /datum/job/chef total_positions = 2 //IT TAKES A LOT TO MAKE A STEW spawn_positions = 2 //A PINCH OF SALT AND LAUGHTER, TOO pto_type = PTO_CIVILIAN - alt_titles = list("Sous-chef" = /datum/alt_title/souschef,"Cook" = /datum/alt_title/cook, "Kitchen Worker" = /datum/alt_title/kitchen_worker) + alt_titles = list(JOB_ALT_SOUSCHEF = /datum/alt_title/souschef, JOB_ALT_COOK = /datum/alt_title/cook, JOB_ALT_KITCHEN_WORKER = /datum/alt_title/kitchen_worker) /datum/alt_title/souschef - title = "Sous-chef" + title = JOB_ALT_SOUSCHEF /datum/alt_title/kitchen_worker - title = "Kitchen Worker" - title_blurb = "A Kitchen Worker has the same duties, though they may be less experienced." + title = JOB_ALT_KITCHEN_WORKER + title_blurb = "A " + JOB_ALT_KITCHEN_WORKER + " has the same duties, though they may be less experienced." /datum/job/hydro spawn_positions = 2 pto_type = PTO_CIVILIAN - alt_titles = list("Hydroponicist" = /datum/alt_title/hydroponicist, "Cultivator" = /datum/alt_title/cultivator, "Farmer" = /datum/alt_title/farmer, - "Gardener" = /datum/alt_title/gardener, "Florist" = /datum/alt_title/florsit, "Rancher" = /datum/alt_title/rancher) + alt_titles = list(JOB_ALT_HYDROPONICIST = /datum/alt_title/hydroponicist, JOB_ALT_CULTIVATOR = /datum/alt_title/cultivator, JOB_ALT_FARMER = /datum/alt_title/farmer, + JOB_ALT_GARDENER = /datum/alt_title/gardener, JOB_ALT_FLORIST = /datum/alt_title/florsit, JOB_ALT_RANCHER = /datum/alt_title/rancher) /datum/alt_title/hydroponicist - title = "Hydroponicist" + title = JOB_ALT_HYDROPONICIST /datum/alt_title/cultivator - title = "Cultivator" + title = JOB_ALT_CULTIVATOR /datum/alt_title/farmer - title = "Farmer" + title = JOB_ALT_FARMER /datum/alt_title/florsit - title = "Florist" - title_blurb = "A Florist may be less professional than their counterparts, and are more likely to tend to the public gardens if they aren't needed elsewhere." + title = JOB_ALT_FLORIST + title_blurb = "A " + JOB_ALT_FLORIST + " may be less professional than their counterparts, and are more likely to tend to the public gardens if they aren't needed elsewhere." /datum/alt_title/rancher - title = "Rancher" - title_blurb = "A Rancher is tasked with the care, feeding, raising, and harvesting of livestock." + title = JOB_ALT_RANCHER + title_blurb = "A " + JOB_ALT_RANCHER + " is tasked with the care, feeding, raising, and harvesting of livestock." /datum/job/qm pto_type = PTO_CARGO dept_time_required = 20 - alt_titles = list("Supply Chief" = /datum/alt_title/supply_chief, "Logistics Manager" = /datum/alt_title/logistics_manager, "Cargo Supervisor" = /datum/alt_title/cargo_supervisor) + alt_titles = list(JOB_ALT_SUPPLY_CHIEF = /datum/alt_title/supply_chief, JOB_ALT_LOGISTICS_MANAGER = /datum/alt_title/logistics_manager, JOB_ALT_CARGO_SUPERVISOR = /datum/alt_title/cargo_supervisor) /datum/alt_title/logistics_manager - title = "Logistics Manager" + title = JOB_ALT_LOGISTICS_MANAGER /datum/alt_title/cargo_supervisor - title = "Cargo Supervisor" + title = JOB_ALT_CARGO_SUPERVISOR /datum/job/qm/get_request_reasons() return list("Training crew") @@ -69,42 +69,42 @@ total_positions = 3 spawn_positions = 3 pto_type = PTO_CARGO - alt_titles = list("Cargo Loader" = /datum/alt_title/cargo_loader, "Cargo Handler" = /datum/alt_title/cargo_handler, "Supply Courier" = /datum/alt_title/supply_courier, - "Disposals Sorter" = /datum/alt_title/disposal_sorter) + alt_titles = list(JOB_ALT_CARGO_LOADER = /datum/alt_title/cargo_loader, JOB_ALT_CARGO_HANDLER = /datum/alt_title/cargo_handler, JOB_ALT_SUPPLY_COURIER = /datum/alt_title/supply_courier, + JOB_ALT_DISPOSALS_SORTER = /datum/alt_title/disposal_sorter) /datum/alt_title/supply_courier - title = "Supply Courier" - title_blurb = "A Supply Courier is usually tasked with devlivering packages or cargo directly to whoever requires it." + title = JOB_ALT_SUPPLY_COURIER + title_blurb = "A " + JOB_ALT_SUPPLY_COURIER + " is usually tasked with devlivering packages or cargo directly to whoever requires it." /datum/alt_title/cargo_loader - title = "Cargo Loader" - title_blurb = "A Cargo Loader is usually tasked with more menial labor within Supply department, such as loading and unloading supply shuttle." + title = JOB_ALT_CARGO_LOADER + title_blurb = "A " + JOB_ALT_CARGO_LOADER + " is usually tasked with more menial labor within Supply department, such as loading and unloading supply shuttle." /datum/alt_title/cargo_handler - title = "Cargo Handler" - title_blurb = "A Cargo Loader is usually tasked with more menial labor within Supply department, such as loading and unloading supply shuttle." + title = JOB_ALT_CARGO_HANDLER + title_blurb = "A " + JOB_ALT_CARGO_HANDLER + " is usually tasked with more menial labor within Supply department, such as loading and unloading supply shuttle." /datum/alt_title/disposal_sorter - title = "Disposals Sorter" - title_blurb = "A Disposals Sorter is usually tasked with operating disposals delivery system, sorting the trash and tagging parcels for delivery." + title = JOB_ALT_DISPOSALS_SORTER + title_blurb = "A " + JOB_ALT_DISPOSALS_SORTER + " is usually tasked with operating disposals delivery system, sorting the trash and tagging parcels for delivery." /datum/job/mining total_positions = 4 spawn_positions = 4 pto_type = PTO_CARGO - alt_titles = list("Deep Space Miner" = /datum/alt_title/deep_space_miner, "Drill Technician" = /datum/alt_title/drill_tech, "Prospector" = /datum/alt_title/prospector, - "Excavator" = /datum/alt_title/excavator) + alt_titles = list(JOB_ALT_DEEP_SPACE_MINER = /datum/alt_title/deep_space_miner, JOB_ALT_DRILL_TECHNICIAN = /datum/alt_title/drill_tech, JOB_ALT_PROSPECTOR = /datum/alt_title/prospector, + JOB_ALT_EXCAVATOR = /datum/alt_title/excavator) /datum/alt_title/deep_space_miner - title = "Deep Space Miner" - title_blurb = "A Deep Space Miner specializes primarily in mining operations in zero-g environments, mostly in asteroid and debris fields." + title = JOB_ALT_DEEP_SPACE_MINER + title_blurb = "A " + JOB_ALT_DEEP_SPACE_MINER + " specializes primarily in mining operations in zero-g environments, mostly in asteroid and debris fields." /datum/alt_title/prospector - title = "Prospector" + title = JOB_ALT_PROSPECTOR /datum/alt_title/excavator - title = "Excavator" + title = JOB_ALT_EXCAVATOR /datum/job/mining/get_request_reasons() return list("Assembling expedition team") @@ -114,96 +114,96 @@ total_positions = 3 spawn_positions = 3 pto_type = PTO_CIVILIAN - alt_titles = list("Custodian" = /datum/alt_title/custodian, "Sanitation Technician" = /datum/alt_title/sanitation_tech, - "Maid" = /datum/alt_title/maid, "Garbage Collector" = /datum/alt_title/garbage_collector) + alt_titles = list(JOB_ALT_CUSTODIAN = /datum/alt_title/custodian, JOB_ALT_SANITATION_TECHNICIAN = /datum/alt_title/sanitation_tech, + JOB_ALT_MAID = /datum/alt_title/maid, JOB_ALT_GARBAGE_COLLECTOR = /datum/alt_title/garbage_collector) /datum/alt_title/sanitation_tech - title = "Sanitation Technician" + title = JOB_ALT_SANITATION_TECHNICIAN /datum/alt_title/maid - title = "Maid" + title = JOB_ALT_MAID /datum/alt_title/garbage_collector - title = "Garbage Collector" - title_blurb = "A Garbage Collector keeps the station clean, though focuses moreso on collecting larger trash, with wet cleaning being secondary task." + title = JOB_ALT_GARBAGE_COLLECTOR + title_blurb = "A " + JOB_ALT_GARBAGE_COLLECTOR + " keeps the station clean, though focuses moreso on collecting larger trash, with wet cleaning being secondary task." /datum/job/librarian total_positions = 2 spawn_positions = 2 - alt_titles = list("Journalist" = /datum/alt_title/journalist, "Reporter" = /datum/alt_title/reporter, "Writer" = /datum/alt_title/writer, - "Historian" = /datum/alt_title/historian, "Archivist" = /datum/alt_title/archivist, "Professor" = /datum/alt_title/professor, - "Academic" = /datum/alt_title/academic, "Philosopher" = /datum/alt_title/philosopher, "Curator" = /datum/alt_title/curator) + alt_titles = list(JOB_ALT_JOURNALIST = /datum/alt_title/journalist, JOB_ALT_REPORTER = /datum/alt_title/reporter, JOB_ALT_WRITER = /datum/alt_title/writer, + JOB_ALT_HISTORIAN = /datum/alt_title/historian, JOB_ALT_ARCHIVIST = /datum/alt_title/archivist, JOB_ALT_PROFESSOR = /datum/alt_title/professor, + JOB_ALT_ACADEMIC = /datum/alt_title/academic, JOB_ALT_PHILOSOPHER = /datum/alt_title/philosopher, JOB_ALT_CURATOR = /datum/alt_title/curator) pto_type = PTO_CIVILIAN /datum/alt_title/reporter - title = "Reporter" - title_blurb = "The Reporter uses the Library as a base of operations, from which they can report the news and goings-on on the station with their camera." + title = JOB_ALT_REPORTER + title_blurb = "The " + JOB_ALT_REPORTER + " uses the Library as a base of operations, from which they can report the news and goings-on on the station with their camera." /datum/alt_title/historian - title = "Historian" - title_blurb = "The Historian uses the Library as a base of operation to record any important events occurring on station." + title = JOB_ALT_HISTORIAN + title_blurb = "The " + JOB_ALT_HISTORIAN + " uses the Library as a base of operation to record any important events occurring on station." /datum/alt_title/archivist - title = "Archivist" - title_blurb = "The Archivist uses the Library as a base of operation to record any important events occurring on station." + title = JOB_ALT_ARCHIVIST + title_blurb = "The " + JOB_ALT_ARCHIVIST + " uses the Library as a base of operation to record any important events occurring on station." /datum/alt_title/professor - title = "Professor" - title_blurb = "The Professor uses the Library as a base of operations to share their vast knowledge with the crew." + title = JOB_ALT_PROFESSOR + title_blurb = "The " + JOB_ALT_PROFESSOR + " uses the Library as a base of operations to share their vast knowledge with the crew." /datum/alt_title/academic - title = "Academic" - title_blurb = "The Academic uses the Library as a base of operations to share their vast knowledge with the crew." + title = JOB_ALT_ACADEMIC + title_blurb = "The " + JOB_ALT_ACADEMIC + " uses the Library as a base of operations to share their vast knowledge with the crew." /datum/alt_title/philosopher - title = "Philosopher" - title_blurb = "The Philosopher uses the Library as a base of operation to ruminate on nature of life and other great questions, and share their opinions with the crew." + title = JOB_ALT_PHILOSOPHER + title_blurb = "The " + JOB_ALT_PHILOSOPHER + " uses the Library as a base of operation to ruminate on nature of life and other great questions, and share their opinions with the crew." /datum/alt_title/curator - title = "Curator" - title_blurb = "The Curator uses the Library as a base of operation to gather the finest of art for display and preservation." + title = JOB_ALT_CURATOR + title_blurb = "The " + JOB_ALT_CURATOR + " uses the Library as a base of operation to gather the finest of art for display and preservation." /datum/job/lawyer disallow_jobhop = TRUE pto_type = PTO_CIVILIAN - alt_titles = list("Internal Affairs Liaison" = /datum/alt_title/ia_liaison, "Internal Affairs Delegate" = /datum/alt_title/ia_delegate, - "Internal Affairs Investigator" = /datum/alt_title/ia_investigator) + alt_titles = list(JOB_ALT_INTERNAL_AFFAIRS_LIAISON = /datum/alt_title/ia_liaison, JOB_ALT_INTERNAL_AFFAIRS_DELEGATE = /datum/alt_title/ia_delegate, + JOB_ALT_INTERNAL_AFFAIRS_INVESTIGATOR = /datum/alt_title/ia_investigator) /datum/alt_title/ia_liaison - title = "Internal Affairs Liaison" + title = JOB_ALT_INTERNAL_AFFAIRS_LIAISON /datum/alt_title/ia_delegate - title = "Internal Affairs Delegate" + title = JOB_ALT_INTERNAL_AFFAIRS_DELEGATE /datum/alt_title/ia_investigator - title = "Internal Affairs Investigator" + title = JOB_ALT_INTERNAL_AFFAIRS_INVESTIGATOR /datum/job/chaplain pto_type = PTO_CIVILIAN - alt_titles = list("Missionary" = /datum/alt_title/missionary, "Preacher" = /datum/alt_title/preacher, "Priest" = /datum/alt_title/priest, - "Nun" = /datum/alt_title/nun, "Monk" = /datum/alt_title/monk, "Counselor" = /datum/alt_title/counselor, - "Guru" = /datum/alt_title/guru) + alt_titles = list(JOB_ALT_MISSIONARY = /datum/alt_title/missionary, JOB_ALT_PREACHER = /datum/alt_title/preacher, JOB_ALT_PRIEST = /datum/alt_title/priest, + JOB_ALT_NUN = /datum/alt_title/nun, JOB_ALT_MONK = /datum/alt_title/monk, JOB_ALT_COUNSELOR = /datum/alt_title/counselor, + JOB_ALT_GURU = /datum/alt_title/guru) /datum/alt_title/guru - title = "Guru" - title_blurb = "The Guru primarily tries to offer spiritual guidance to those who come seeking it." + title = JOB_ALT_GURU + title_blurb = "The " + JOB_ALT_GURU + " primarily tries to offer spiritual guidance to those who come seeking it." /datum/alt_title/missionary - title = "Missionary" + title = JOB_ALT_MISSIONARY /datum/alt_title/preacher - title = "Preacher" + title = JOB_ALT_PREACHER /datum/alt_title/priest - title = "Priest" + title = JOB_ALT_PRIEST /datum/alt_title/nun - title = "Nun" + title = JOB_ALT_NUN /datum/alt_title/monk - title = "Monk" + title = JOB_ALT_MONK ////////////////////////////////// @@ -211,14 +211,14 @@ ////////////////////////////////// /datum/job/pilot - title = "Pilot" + title = JOB_PILOT flag = PILOT departments = list(DEPARTMENT_CIVILIAN) department_flag = CIVILIAN - faction = "Station" + faction = FACTION_STATION total_positions = 2 spawn_positions = 2 - supervisors = "the Head of Personnel" + supervisors = "the " + JOB_HEAD_OF_PERSONNEL selection_color = "#515151" economic_modifier = 5 minimal_player_age = 3 @@ -226,18 +226,18 @@ access = list(access_eva, access_maint_tunnels, access_external_airlocks, access_pilot) minimal_access = list(access_eva, access_maint_tunnels, access_external_airlocks, access_pilot) outfit_type = /decl/hierarchy/outfit/job/pilot - job_description = "A Pilot flies the various shuttles in the Virgo-Erigone System." - alt_titles = list("Co-Pilot" = /datum/alt_title/co_pilot, "Navigator" = /datum/alt_title/navigator, "Helmsman" = /datum/alt_title/helmsman) + job_description = "A " + JOB_PILOT + " flies the various shuttles in the Virgo-Erigone System." + alt_titles = list(JOB_ALT_COPILOT = /datum/alt_title/co_pilot, JOB_ALT_NAVIGATOR = /datum/alt_title/navigator, JOB_ALT_HELMSMAN = /datum/alt_title/helmsman) /datum/alt_title/co_pilot - title = "Co-Pilot" - title_blurb = "A Co-Pilot is there primarily to assist main pilot as well as learn from them" + title = JOB_ALT_COPILOT + title_blurb = "A Co-" + JOB_ALT_COPILOT + " is there primarily to assist main pilot as well as learn from them" /datum/alt_title/navigator - title = "Navigator" + title = JOB_ALT_NAVIGATOR /datum/alt_title/helmsman - title = "Helmsman" + title = JOB_ALT_HELMSMAN /datum/job/pilot/get_request_reasons() return list("Assembling expedition team") @@ -247,180 +247,180 @@ ////////////////////////////////// /datum/job/entertainer - title = "Entertainer" + title = JOB_ENTERTAINER flag = ENTERTAINER departments = list(DEPARTMENT_CIVILIAN) department_flag = CIVILIAN - faction = "Station" + faction = FACTION_STATION total_positions = 4 spawn_positions = 4 - supervisors = "the Head of Personnel" + supervisors = "the " + JOB_HEAD_OF_PERSONNEL selection_color = "#515151" access = list(access_entertainment) minimal_access = list(access_entertainment) pto_type = PTO_CIVILIAN outfit_type = /decl/hierarchy/outfit/job/assistant/entertainer - job_description = "An entertainer does just that, entertains! Put on plays, play music, sing songs, tell stories, or read your favorite fanfic." - alt_titles = list("Performer" = /datum/alt_title/performer, "Musician" = /datum/alt_title/musician, "Stagehand" = /datum/alt_title/stagehand, - "Actor" = /datum/alt_title/actor, "Dancer" = /datum/alt_title/dancer, "Singer" = /datum/alt_title/singer, - "Magician" = /datum/alt_title/magician, "Comedian" = /datum/alt_title/comedian, "Tragedian" = /datum/alt_title/tragedian, - "Artist" = /datum/alt_title/artist, "Game Master" = /datum/alt_title/game_master) + job_description = "An " + JOB_ENTERTAINER + " does just that, entertains! Put on plays, play music, sing songs, tell stories, or read your favorite fanfic." + alt_titles = list(JOB_ALT_PERFORMER = /datum/alt_title/performer, JOB_ALT_MUSICIAN = /datum/alt_title/musician, JOB_ALT_STAGEHAND = /datum/alt_title/stagehand, + JOB_ALT_ACTOR = /datum/alt_title/actor, JOB_ALT_DANCER = /datum/alt_title/dancer, JOB_ALT_SINGER = /datum/alt_title/singer, + JOB_ALT_MAGICIAN = /datum/alt_title/magician, JOB_ALT_COMEDIAN = /datum/alt_title/comedian, JOB_ALT_ARTIST = /datum/alt_title/tragedian, + JOB_ALT_ARTIST = /datum/alt_title/artist, JOB_ALT_GAME_MASTER = /datum/alt_title/game_master) // Entertainer Alt Titles /datum/alt_title/actor - title = "Actor" - title_blurb = "An Actor is someone who acts out a role! Whatever sort of character it is, get into it and impress people with power of comedy and tragedy!" + title = JOB_ALT_ACTOR + title_blurb = "An " + JOB_ALT_ACTOR + " is someone who acts out a role! Whatever sort of character it is, get into it and impress people with power of comedy and tragedy!" /datum/alt_title/performer - title = "Performer" - title_blurb = "A Performer is someone who performs! Whatever sort of performance will come to your mind, the world's a stage!" + title = JOB_ALT_PERFORMER + title_blurb = "A " + JOB_ALT_PERFORMER + " is someone who performs! Whatever sort of performance will come to your mind, the world's a stage!" /datum/alt_title/musician - title = "Musician" - title_blurb = "A Musician is someone who makes music with a wide variety of musical instruments!" + title = JOB_ALT_MUSICIAN + title_blurb = "A " + JOB_ALT_MUSICIAN + " is someone who makes music with a wide variety of musical instruments!" /datum/alt_title/stagehand - title = "Stagehand" - title_blurb = "A Stagehand typically performs everything the rest of the entertainers don't. Operate lights, shutters, windows, or narrate through your voicebox!" + title = JOB_ALT_STAGEHAND + title_blurb = "A " + JOB_ALT_STAGEHAND + " typically performs everything the rest of the entertainers don't. Operate lights, shutters, windows, or narrate through your voicebox!" /datum/alt_title/dancer - title = "Dancer" - title_blurb = "A Dancer is someone who impresses people through power of their own body! From waltz to breakdance, as long as crowd as cheering!" + title = JOB_ALT_DANCER + title_blurb = "A " + JOB_ALT_DANCER + " is someone who impresses people through power of their own body! From waltz to breakdance, as long as crowd as cheering!" /datum/alt_title/singer - title = "Singer" - title_blurb = "A Singer is someone with gift of melodious voice! Impress people with your vocal range!" + title = JOB_ALT_SINGER + title_blurb = "A " + JOB_ALT_SINGER + " is someone with gift of melodious voice! Impress people with your vocal range!" /datum/alt_title/magician - title = "Magician" - title_blurb = "A Magician is someone who awes those around them with impossible! Show off your repertoire of magic tricks, while keeping the secret hidden!" + title = JOB_ALT_MAGICIAN + title_blurb = "A " + JOB_ALT_MAGICIAN + " is someone who awes those around them with impossible! Show off your repertoire of magic tricks, while keeping the secret hidden!" /datum/alt_title/comedian - title = "Comedian" - title_blurb = "A Comedian will focus on making people laugh with the power of wit! Telling jokes, stand-up comedy, you are here to make others smile!" + title = JOB_ALT_COMEDIAN + title_blurb = "A " + JOB_ALT_COMEDIAN + " will focus on making people laugh with the power of wit! Telling jokes, stand-up comedy, you are here to make others smile!" /datum/alt_title/tragedian - title = "Tragedian" - title_blurb = "A Tragedian will focus on making people think about life and world around them! Life is a tragedy, and who's better to convey its emotions than you?" + title = JOB_ALT_ARTIST + title_blurb = "A " + JOB_ALT_ARTIST + " will focus on making people think about life and world around them! Life is a tragedy, and who's better to convey its emotions than you?" /datum/alt_title/artist - title = "Artist" - title_blurb = "An Artist's calling is to create beautiful arts! Whatever form may they take, create and have people astonished with your creativity." + title = JOB_ALT_ARTIST + title_blurb = "An " + JOB_ALT_ARTIST + "'s calling is to create beautiful arts! Whatever form may they take, create and have people astonished with your creativity." /datum/alt_title/game_master - title = "Game Master" - title_blurb = "A Game Master provides recreation for the crew by hosting variety of games. From cards to roleplaying to something more personalized." + title = JOB_ALT_GAME_MASTER + title_blurb = "A " + JOB_ALT_GAME_MASTER + " provides recreation for the crew by hosting variety of games. From cards to roleplaying to something more personalized." ////////////////////////////////// // Entrepreneur ////////////////////////////////// /datum/job/entrepreneur - title = "Entrepreneur" + title = JOB_ENTREPRENEUR flag = ENTREPRENEUR departments = list(DEPARTMENT_CIVILIAN) department_flag = CIVILIAN - faction = "Station" + faction = FACTION_STATION total_positions = 4 spawn_positions = 4 - supervisors = "the Head of Personnel" + supervisors = "the " + JOB_HEAD_OF_PERSONNEL selection_color = "#515151" access = list() minimal_access = list() pto_type = PTO_CIVILIAN outfit_type = /decl/hierarchy/outfit/job/assistant/entrepreneur - job_description = "An entrepreneur is basically a visitor that obtained special permission to offer personal services to people on station. \ + job_description = "An " + JOB_ENTREPRENEUR + " is basically a visitor that obtained special permission to offer personal services to people on station. \ They will offer people these services and, potentially, even demand payment!" - alt_titles = list("Lawyer" = /datum/alt_title/lawyer, "Private Eye" = /datum/alt_title/private_eye, "Bodyguard" = /datum/alt_title/bodyguard, - "Personal Physician" = /datum/alt_title/personal_physician, "Dentist" = /datum/alt_title/dentist, "Fitness Instructor" = /datum/alt_title/fitness_instructor, - "Yoga Teacher" = /datum/alt_title/yoga_teacher, "Masseuse" = /datum/alt_title/masseuse, "Tradesperson" = /datum/alt_title/tradesperson, - "Streamer" = /datum/alt_title/streamer, "Influencer" = /datum/alt_title/influencer, "Paranormal Investigator" = /datum/alt_title/paranormal_investigator, - "Personal Secretary" = /datum/alt_title/personal_secretary, "Stylist" = /datum/alt_title/stylist, "Fisher" = /datum/alt_title/fisher, - "Fortune Teller" = /datum/alt_title/fortune_teller, "Spirit Healer" = /datum/alt_title/spirit_healer) + alt_titles = list(JOB_ALT_LAWYER = /datum/alt_title/lawyer, JOB_ALT_PRIVATE_EYE = /datum/alt_title/private_eye, JOB_ALT_BODYGUARD = /datum/alt_title/bodyguard, + JOB_ALT_PERSONAL_PHYSICIAN = /datum/alt_title/personal_physician, JOB_ALT_DENTIST = /datum/alt_title/dentist, JOB_ALT_FITNESS_INSTRUCTOR = /datum/alt_title/fitness_instructor, + JOB_ALT_YOGA_TEACHER = /datum/alt_title/yoga_teacher, JOB_ALT_MASSEUSE = /datum/alt_title/masseuse, JOB_ALT_TRADESPERSON = /datum/alt_title/tradesperson, + JOB_ALT_STREAMER = /datum/alt_title/streamer, JOB_ALT_INFLUENCER = /datum/alt_title/influencer, JOB_ALT_PARANORMAL_INVESTIGATOR = /datum/alt_title/paranormal_investigator, + JOB_ALT_PERSONAL_SECRETARY = /datum/alt_title/personal_secretary, JOB_ALT_STYLIST = /datum/alt_title/stylist, JOB_ALT_FISHER = /datum/alt_title/fisher, + JOB_ALT_FORTUNE_TELLER = /datum/alt_title/fortune_teller, JOB_ALT_SPIRIT_HEALER = /datum/alt_title/spirit_healer) /datum/alt_title/lawyer - title = "Lawyer" - title_blurb = "A Lawyer is knowledgable in various legal systems, including station's operations. They can try to offer their legal counsel, although nobody is really obliged to listen." + title = JOB_ALT_LAWYER + title_blurb = "A " + JOB_ALT_LAWYER + " is knowledgable in various legal systems, including station's operations. They can try to offer their legal counsel, although nobody is really obliged to listen." title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/personal_secretary /datum/alt_title/private_eye - title = "Private Eye" - title_blurb = "A Private Eye is a detective that has no credentials or equipment. But if someone wants something found without security's knowledge, they are the one to go to." + title = JOB_ALT_PRIVATE_EYE + title_blurb = "A " + JOB_ALT_PRIVATE_EYE + " is a detective that has no credentials or equipment. But if someone wants something found without security's knowledge, they are the one to go to." title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/private_eye /datum/alt_title/bodyguard - title = "Bodyguard" - title_blurb = "A Bodyguard offers service of personal protection. They may not be allowed any weapons, but their own body is weapon enough." + title = JOB_ALT_BODYGUARD + title_blurb = "A " + JOB_ALT_BODYGUARD + " offers service of personal protection. They may not be allowed any weapons, but their own body is weapon enough." title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/bodyguard /datum/alt_title/personal_physician - title = "Personal Physician" - title_blurb = "A Personal Physicial is a doctor dedicated less to Hippocratic Oath and more to the moneymaking grind. Their license may be expired, but the grindset never will be." + title = JOB_ALT_PERSONAL_PHYSICIAN + title_blurb = "A " + JOB_ALT_PERSONAL_PHYSICIAN + " is a doctor dedicated less to Hippocratic Oath and more to the moneymaking grind. Their license may be expired, but the grindset never will be." title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/personal_physician /datum/alt_title/dentist - title = "Dentist" - title_blurb = "A Dentist is a doctor that specializes in oral care. Company may not recognize them as a proper doctor, but surely their customers will." + title = JOB_ALT_DENTIST + title_blurb = "A " + JOB_ALT_DENTIST + " is a doctor that specializes in oral care. Company may not recognize them as a proper doctor, but surely their customers will." title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/dentist /datum/alt_title/fitness_instructor - title = "Fitness Instructor" - title_blurb = "A Fitness Instructor dedicates themselves to improving the health of the crew through physical activity, and boy, do they need the help." + title = JOB_ALT_FITNESS_INSTRUCTOR + title_blurb = "A " + JOB_ALT_FITNESS_INSTRUCTOR + " dedicates themselves to improving the health of the crew through physical activity, and boy, do they need the help." title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/fitness_instructor /datum/alt_title/yoga_teacher - title = "Yoga Teacher" - title_blurb = "A Yoga Teacher is similar to fitness instructor, but rather than turning the round bodies into firm ones, they focus on helping people find balance and harmony." + title = JOB_ALT_YOGA_TEACHER + title_blurb = "A " + JOB_ALT_YOGA_TEACHER + " is similar to a fitness instructor, but rather than turning the round bodies into firm ones, they focus on helping people find balance and harmony." title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/yoga_teacher /datum/alt_title/masseuse - title = "Masseuse" - title_blurb = "A Masseuse is master of physical therapy and working others' bodies with their hands." + title = JOB_ALT_MASSEUSE + title_blurb = "A " + JOB_ALT_MASSEUSE + " is master of physical therapy and working others' bodies with their hands." title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/masseuse /datum/alt_title/tradesperson - title = "Tradesperson" - title_blurb = "A Tradesperson is someone attempting to make money via the most obvious act of all - buying and selling. Now if only customs allowed you to bring your goods along..." + title = JOB_ALT_TRADESPERSON + title_blurb = "A " + JOB_ALT_TRADESPERSON + " is someone attempting to make money via the most obvious act of all - buying and selling. Now if only customs allowed you to bring your goods along..." title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/tradesperson /datum/alt_title/streamer - title = "Streamer" - title_blurb = "A Streamer is here to entertain. Not the crew! Their audience across exonet!" + title = JOB_ALT_STREAMER + title_blurb = "A " + JOB_ALT_STREAMER + " is here to entertain. Not the crew! Their audience across exonet!" title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/streamer /datum/alt_title/influencer - title = "Influencer" - title_blurb = "An Influencer has lucked out with some exonet following, and was given permission to go onstation to provide free exposure. Don't let it go to your head." + title = JOB_ALT_INFLUENCER + title_blurb = "An " + JOB_ALT_INFLUENCER + " has lucked out with some exonet following, and was given permission to go onstation to provide free exposure. Don't let it go to your head." title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/influencer /datum/alt_title/paranormal_investigator - title = "Paranormal Investigator" - title_blurb = "A Paranormal Investigator looks beyond what is accepted by modern science, and searches for the true unknown. Aliens, alternate dimensions, ghosts... The truth is out there!" + title = JOB_ALT_PARANORMAL_INVESTIGATOR + title_blurb = "A " + JOB_ALT_PARANORMAL_INVESTIGATOR + " looks beyond what is accepted by modern science, and searches for the true unknown. Aliens, alternate dimensions, ghosts... The truth is out there!" title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/paranormal_investigator /datum/alt_title/personal_secretary - title = "Personal Secretary" - title_blurb = "A Personal Secretary offers services of general assistance. Although it's doubtful anyone will ever actually need those." + title = JOB_ALT_PERSONAL_SECRETARY + title_blurb = "A " + JOB_ALT_PERSONAL_SECRETARY + " offers services of general assistance. Although it's doubtful anyone will ever actually need those." title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/personal_secretary /datum/alt_title/stylist - title = "Stylist" - title_blurb = "A Stylist offers fashion advice, as well as helps with adjusting appearance of the crew to better suit their beauty standards." + title = JOB_ALT_STYLIST + title_blurb = "A " + JOB_ALT_STYLIST + " offers fashion advice, as well as helps with adjusting appearance of the crew to better suit their beauty standards." title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/stylist /datum/alt_title/fisher - title = "Fisher" - title_blurb = "A Fisher is a capable angler, who is good at obtaining large amounts of marine goods. Whether you generously give them to station or attempt to make a quick thaler by selling, it's up to you!" + title = JOB_ALT_FISHER + title_blurb = "A " + JOB_ALT_FISHER + " is a capable angler, who is good at obtaining large amounts of marine goods. Whether you generously give them to station or attempt to make a quick thaler by selling, it's up to you!" title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/fisher /datum/alt_title/fortune_teller - title = "Fortune Teller" - title_blurb = "A Fortune Teller peers into the future, and offers these visions to others. Occasionally those visions may even come true!" + title = JOB_ALT_FORTUNE_TELLER + title_blurb = "A " + JOB_ALT_FORTUNE_TELLER + " peers into the future, and offers these visions to others. Occasionally those visions may even come true!" title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/fortune_teller /datum/alt_title/spirit_healer - title = "Spirit Healer" - title_blurb = "A Spirit Healer offers alternative forms of medicine. Rituals, magic rocks, seances... It totally works. What's that about placebo?" + title = JOB_ALT_SPIRIT_HEALER + title_blurb = "A " + JOB_ALT_SPIRIT_HEALER + " offers alternative forms of medicine. Rituals, magic rocks, seances... It totally works. What's that about placebo?" title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/spirit_healer diff --git a/code/game/jobs/job/department.dm b/code/game/jobs/job/department.dm index 313b19e07b..47d6de97ad 100644 --- a/code/game/jobs/job/department.dm +++ b/code/game/jobs/job/department.dm @@ -77,4 +77,4 @@ short_name = "Centcom" color = "#A52A2A" sorting_order = 20 // Above Command. - centcom_only = TRUE \ No newline at end of file + centcom_only = TRUE diff --git a/code/game/jobs/job/engineering.dm b/code/game/jobs/job/engineering.dm index cd8729e702..576739d659 100644 --- a/code/game/jobs/job/engineering.dm +++ b/code/game/jobs/job/engineering.dm @@ -2,16 +2,16 @@ // Chief Engineer ////////////////////////////////// /datum/job/chief_engineer - title = "Chief Engineer" + title = JOB_CHIEF_ENGINEER flag = CHIEF departments_managed = list(DEPARTMENT_ENGINEERING) departments = list(DEPARTMENT_ENGINEERING, DEPARTMENT_COMMAND) sorting_order = 2 department_flag = ENGSEC - faction = "Station" + faction = FACTION_STATION total_positions = 1 spawn_positions = 1 - supervisors = "the Site Manager" + supervisors = "the "+ JOB_SITE_MANAGER selection_color = "#7F6E2C" req_admin_notify = 1 economic_modifier = 10 @@ -34,7 +34,7 @@ minimal_player_age = 7 outfit_type = /decl/hierarchy/outfit/job/engineering/chief_engineer - job_description = "The Chief Engineer manages the Engineering Department, ensuring that the Engineers work on what needs to be done, handling distribution \ + job_description = "The " + JOB_CHIEF_ENGINEER + " manages the Engineering Department, ensuring that the Engineers work on what needs to be done, handling distribution \ of manpower as much as they handle hands-on operations and repairs. They are also expected to keep the rest of the station informed of \ any structural threats to the station that may be hazardous to health or disruptive to work." @@ -42,56 +42,56 @@ // Engineer ////////////////////////////////// /datum/job/engineer - title = "Engineer" + title = JOB_ENGINEER flag = ENGINEER departments = list(DEPARTMENT_ENGINEERING) department_flag = ENGSEC - faction = "Station" + faction = FACTION_STATION total_positions = 5 spawn_positions = 5 - supervisors = "the Chief Engineer" + supervisors = "the "+ JOB_CHIEF_ENGINEER selection_color = "#5B4D20" economic_modifier = 5 access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction, access_atmospherics) minimal_access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction) - alt_titles = list("Maintenance Technician" = /datum/alt_title/maint_tech, - "Engine Technician" = /datum/alt_title/engine_tech, "Electrician" = /datum/alt_title/electrician) + alt_titles = list(JOB_ALT_MAINTENANCE_TECHNICIAN = /datum/alt_title/maint_tech, + JOB_ALT_ENGINE_TECHNICIAN = /datum/alt_title/engine_tech, JOB_ALT_ELECTRICIAN = /datum/alt_title/electrician) minimal_player_age = 3 min_age_by_species = list(SPECIES_PROMETHEAN = 2) outfit_type = /decl/hierarchy/outfit/job/engineering/engineer - job_description = "An Engineer keeps the station running. They repair damages, keep the atmosphere stable, and ensure that power is being \ + job_description = "An " + JOB_ENGINEER + " keeps the station running. They repair damages, keep the atmosphere stable, and ensure that power is being \ generated and distributed. On quiet shifts, they may be called upon to make cosmetic alterations to the station." // Engineer Alt Titles /datum/alt_title/maint_tech - title = "Maintenance Technician" - title_blurb = "A Maintenance Technician is generally a junior Engineer, and can be expected to run the mildly unpleasant or boring tasks that other \ + title = JOB_ALT_MAINTENANCE_TECHNICIAN + title_blurb = "A " + JOB_ALT_MAINTENANCE_TECHNICIAN + " is generally a junior Engineer, and can be expected to run the mildly unpleasant or boring tasks that other \ Engineers don't care to do." /datum/alt_title/engine_tech - title = "Engine Technician" - title_blurb = "An Engine Technician tends to the engine, most commonly a Supermatter crystal. They are expected to be able to keep it stable, and \ + title = JOB_ALT_ENGINE_TECHNICIAN + title_blurb = "An " + JOB_ALT_ENGINE_TECHNICIAN + " tends to the engine, most commonly a Supermatter crystal. They are expected to be able to keep it stable, and \ possibly even run it beyond normal tolerances." /datum/alt_title/electrician - title = "Electrician" - title_blurb = "An Electrician's primary duty is making sure power is properly distributed thoughout the station, utilizing solars, substations, and other \ + title = JOB_ALT_ELECTRICIAN + title_blurb = "An " + JOB_ALT_ELECTRICIAN + "'s primary duty is making sure power is properly distributed thoughout the station, utilizing solars, substations, and other \ methods to ensure every department has power in an emergency." ////////////////////////////////// // Atmos Tech ////////////////////////////////// /datum/job/atmos - title = "Atmospheric Technician" + title = JOB_ATMOSPHERIC_TECHNICIAN flag = ATMOSTECH departments = list(DEPARTMENT_ENGINEERING) department_flag = ENGSEC - faction = "Station" + faction = FACTION_STATION total_positions = 3 spawn_positions = 2 - supervisors = "the Chief Engineer" + supervisors = "the " + JOB_CHIEF_ENGINEER selection_color = "#5B4D20" economic_modifier = 5 access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction, access_atmospherics, access_external_airlocks) @@ -101,5 +101,5 @@ min_age_by_species = list(SPECIES_PROMETHEAN = 2) outfit_type = /decl/hierarchy/outfit/job/engineering/atmos - job_description = "An Atmospheric Technician is primarily concerned with keeping the station's atmosphere breathable. They are expected to have a good \ + job_description = "An " + JOB_ATMOSPHERIC_TECHNICIAN + " is primarily concerned with keeping the station's atmosphere breathable. They are expected to have a good \ understanding of the pipes, vents, and scrubbers that move gasses around the station, and to be familiar with proper firefighting procedure." diff --git a/code/game/jobs/job/engineering_vr.dm b/code/game/jobs/job/engineering_vr.dm index 34c93be572..ed872fd85b 100644 --- a/code/game/jobs/job/engineering_vr.dm +++ b/code/game/jobs/job/engineering_vr.dm @@ -12,16 +12,16 @@ access_teleporter, access_external_airlocks, access_atmospherics, access_emergency_storage, access_eva, access_heads, access_construction, access_ce, access_RC_announce, access_keycard_auth, access_tcomsat, access_ai_upload, access_gateway) - alt_titles = list("Head Engineer" = /datum/alt_title/head_engineer, "Foreman" = /datum/alt_title/foreman, "Maintenance Manager" = /datum/alt_title/maintenance_manager) + alt_titles = list(JOB_ALT_HEAD_ENGINEER = /datum/alt_title/head_engineer, JOB_ALT_FOREMAN = /datum/alt_title/foreman, JOB_ALT_MAINTENANCE_MANAGER = /datum/alt_title/maintenance_manager) /datum/alt_title/head_engineer - title = "Head Engineer" + title = JOB_ALT_HEAD_ENGINEER /datum/alt_title/foreman - title = "Foreman" + title = JOB_ALT_FOREMAN /datum/alt_title/maintenance_manager - title = "Maintenance Manager" + title = JOB_ALT_MAINTENANCE_MANAGER /datum/job/chief_engineer/get_request_reasons() return list("Engine setup", "Construction project", "Repairs necessary", "Training crew", "Assembling expedition team") @@ -29,17 +29,17 @@ /datum/job/engineer pto_type = PTO_ENGINEERING - alt_titles = list("Maintenance Technician" = /datum/alt_title/maint_tech, "Engine Technician" = /datum/alt_title/engine_tech, - "Electrician" = /datum/alt_title/electrician, "Construction Engineer" = /datum/alt_title/construction_engi, "Engineering Contractor" = /datum/alt_title/engineering_contractor) + alt_titles = list(JOB_ALT_MAINTENANCE_TECHNICIAN = /datum/alt_title/maint_tech, JOB_ALT_ENGINE_TECHNICIAN = /datum/alt_title/engine_tech, + JOB_ALT_ELECTRICIAN = /datum/alt_title/electrician, JOB_ALT_CONSTRUCTION_ENGINEER = /datum/alt_title/construction_engi, JOB_ALT_ENGINEERING_CONTRACTOR = /datum/alt_title/engineering_contractor) /datum/alt_title/construction_engi - title = "Construction Engineer" - title_blurb = "A Construction Engineer fulfills similar duties to other engineers, but usually occupies spare time with construction of extra facilities in dedicated areas or \ + title = JOB_ALT_CONSTRUCTION_ENGINEER + title_blurb = "A " + JOB_ALT_CONSTRUCTION_ENGINEER + " fulfills similar duties to other engineers, but usually occupies spare time with construction of extra facilities in dedicated areas or \ as additions to station layout." /datum/alt_title/engineering_contractor - title = "Engineering Contractor" - title_blurb = "An Engineering Contractor fulfills similar duties to other engineers, but isn't directly employed by NT proper." + title = JOB_ALT_ENGINEERING_CONTRACTOR + title_blurb = "An " + JOB_ALT_ENGINEERING_CONTRACTOR + " fulfills similar duties to other engineers, but isn't directly employed by NT proper." /datum/job/engineer/get_request_reasons() return list("Engine setup", "Construction project", "Repairs necessary", "Assembling expedition team") @@ -50,21 +50,21 @@ /datum/job/atmos spawn_positions = 3 pto_type = PTO_ENGINEERING - alt_titles = list("Atmospheric Engineer" = /datum/alt_title/atmos_engi, "Atmospheric Maintainer" = /datum/alt_title/atmos_maint, "Disposals Technician" = /datum/alt_title/disposals_tech, - "Fuel Technician" = /datum/alt_title/refuel_tech) + alt_titles = list(JOB_ALT_ATMOSPHERIC_ENGINEER = /datum/alt_title/atmos_engi, JOB_ALT_ATMOSPHERIC_MAINTAINER = /datum/alt_title/atmos_maint, JOB_ALT_DISPOSALS_TECHNICIAN = /datum/alt_title/disposals_tech, + JOB_ALT_FUEL_TECHNICIAN = /datum/alt_title/refuel_tech) /datum/alt_title/atmos_maint - title = "Atmospheric Maintainer" + title = JOB_ALT_ATMOSPHERIC_MAINTAINER /datum/alt_title/atmos_engi - title = "Atmospheric Engineer" + title = JOB_ALT_ATMOSPHERIC_ENGINEER /datum/alt_title/disposals_tech - title = "Disposals Technician" - title_blurb = "A Disposals Technician is an Atmospheric Technician still and can fulfill all the same duties, although specializes more in disposals delivery system's operations and configurations." + title = JOB_ALT_DISPOSALS_TECHNICIAN + title_blurb = "A " + JOB_ALT_DISPOSALS_TECHNICIAN + " is an " + JOB_ATMOSPHERIC_TECHNICIAN + " still and can fulfill all the same duties, although specializes more in disposals delivery system's operations and configurations." /datum/alt_title/refuel_tech - title = "Fuel Technician" + title = JOB_ALT_FUEL_TECHNICIAN /datum/job/atmos/get_request_reasons() return list("Construction project", "Repairs necessary", "Assembling expedition team") diff --git a/code/game/jobs/job/exploration_vr.dm b/code/game/jobs/job/exploration_vr.dm index 65cfed4f1e..d4643675c4 100644 --- a/code/game/jobs/job/exploration_vr.dm +++ b/code/game/jobs/job/exploration_vr.dm @@ -1,6 +1,6 @@ -/obj/item/card/id/medical/sar - assignment = "Field Medic" - rank = "Field Medic" +/obj/item/weapon/card/id/medical/sar + assignment = JOB_FIELD_MEDIC + rank = JOB_FIELD_MEDIC icon_state = "cyan" primary_color = rgb(47,189,189) secondary_color = rgb(127,223,223) @@ -11,6 +11,7 @@ icon_state = "cyan" primary_color = rgb(47,189,189) secondary_color = rgb(127,223,223) + rank = JOB_EXPLORER /obj/item/card/id/explorer/head name = "identification card" @@ -18,6 +19,7 @@ icon_state = "cyanGold" primary_color = rgb(47,189,189) secondary_color = rgb(127,223,223) + rank = JOB_PATHFINDER /datum/department/planetside name = DEPARTMENT_PLANET @@ -27,16 +29,16 @@ /datum/job/pathfinder - title = "Pathfinder" + title = JOB_PATHFINDER flag = PATHFINDER departments = list(DEPARTMENT_PLANET) departments_managed = list(DEPARTMENT_PLANET) sorting_order = 1 // above the other explorers department_flag = MEDSCI - faction = "Station" + faction = FACTION_STATION total_positions = 1 spawn_positions = 1 - supervisors = "the Head of Personnel" + supervisors = "the " + JOB_HEAD_OF_PERSONNEL selection_color = "#d6d05c" economic_modifier = 8 minimal_player_age = 7 @@ -46,52 +48,52 @@ access = list(access_eva, access_maint_tunnels, access_external_airlocks, access_pilot, access_explorer, access_gateway, access_pathfinder, access_RC_announce) minimal_access = list(access_eva, access_maint_tunnels, access_external_airlocks, access_pilot, access_explorer, access_gateway, access_pathfinder, access_RC_announce) outfit_type = /decl/hierarchy/outfit/job/pathfinder - job_description = "The Pathfinder's job is to lead and manage expeditions, and is the primary authority on all off-station expeditions." - alt_titles = list("Expedition Lead" = /datum/alt_title/expedition_lead, "Exploration Manager" = /datum/alt_title/exploration_manager) + job_description = "The " + JOB_PATHFINDER + "'s job is to lead and manage expeditions, and is the primary authority on all off-station expeditions." + alt_titles = list(JOB_ALT_EXPEDITION_LEAD = /datum/alt_title/expedition_lead, JOB_ALT_EXPLORATION_MANAGER = /datum/alt_title/exploration_manager) /datum/alt_title/expedition_lead - title = "Expedition Lead" + title = JOB_ALT_EXPEDITION_LEAD /datum/alt_title/exploration_manager - title = "Exploration Manager" + title = JOB_ALT_EXPLORATION_MANAGER /datum/job/pathfinder/get_request_reasons() return list("Training crew") /datum/job/explorer - title = "Explorer" + title = JOB_EXPLORER flag = EXPLORER departments = list(DEPARTMENT_PLANET) department_flag = MEDSCI - faction = "Station" + faction = FACTION_STATION total_positions = 3 spawn_positions = 3 - supervisors = "the Pathfinder and the Head of Personnel" + supervisors = "the " + JOB_PATHFINDER + " and the " + JOB_HEAD_OF_PERSONNEL selection_color = "#999440" economic_modifier = 6 pto_type = PTO_EXPLORATION access = list(access_explorer, access_external_airlocks, access_eva) minimal_access = list(access_explorer, access_external_airlocks, access_eva) outfit_type = /decl/hierarchy/outfit/job/explorer2 - job_description = "An Explorer searches for interesting things, and returns them to the station." - alt_titles = list("Surveyor" = /datum/alt_title/surveyor, "Offsite Scout" = /datum/alt_title/offsite_scout) + job_description = "An " + JOB_EXPLORER + " searches for interesting things, and returns them to the station." + alt_titles = list(JOB_ALT_SURVEYOR = /datum/alt_title/surveyor, JOB_ALT_OFFSITE_SCOUT = /datum/alt_title/offsite_scout) /datum/alt_title/surveyor - title = "Surveyor" + title = JOB_ALT_SURVEYOR /datum/alt_title/offsite_scout - title = "Offsite Scout" + title = JOB_ALT_OFFSITE_SCOUT /datum/job/sar - title = "Field Medic" + title = JOB_FIELD_MEDIC flag = SAR departments = list(DEPARTMENT_PLANET, DEPARTMENT_MEDICAL) department_flag = MEDSCI - faction = "Station" + faction = FACTION_STATION total_positions = 2 spawn_positions = 2 - supervisors = "the Pathfinder and the Chief Medical Officer" + supervisors = "the " + JOB_PATHFINDER + " and the " + JOB_CHIEF_MEDICAL_OFFICER selection_color = "#999440" economic_modifier = 6 minimal_player_age = 3 @@ -99,11 +101,11 @@ access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_chemistry, access_eva, access_maint_tunnels, access_external_airlocks, access_pilot) minimal_access = list(access_medical, access_medical_equip, access_morgue, access_pilot) outfit_type = /decl/hierarchy/outfit/job/medical/sar - job_description = "A Field medic works as the field doctor of expedition teams." - alt_titles = list("Expedition Medic" = /datum/alt_title/expedition_medic, "Offsite Medic" = /datum/alt_title/offsite_medic) + job_description = "A " + JOB_FIELD_MEDIC + " works as the field doctor of expedition teams." + alt_titles = list(JOB_ALT_EXPEDITION_MEDIC = /datum/alt_title/expedition_medic, JOB_ALT_OFFSITE_MEDIC = /datum/alt_title/offsite_medic) /datum/alt_title/expedition_medic - title = "Expedition Medic" + title = JOB_ALT_EXPEDITION_MEDIC /datum/alt_title/offsite_medic - title = "Offsite Medic" + title = JOB_ALT_OFFSITE_MEDIC diff --git a/code/game/jobs/job/job.dm b/code/game/jobs/job/job.dm index 269f9dd18d..18bce75303 100644 --- a/code/game/jobs/job/job.dm +++ b/code/game/jobs/job/job.dm @@ -7,7 +7,7 @@ var/list/access = list() // Useful for servers which either have fewer players, so each person needs to fill more than one role, or servers which like to give more access, so players can't hide forever in their super secure departments (I'm looking at you, chemistry!) var/flag = 0 // Bitflags for the job var/department_flag = 0 - var/faction = "None" // Players will be allowed to spawn in as jobs that are set to "Station" + var/faction = FACTION_NONE // Players will be allowed to spawn in as jobs that are set to FACTION_STATION var/total_positions = 0 // How many players can be this job var/spawn_positions = 0 // How many players can spawn in as this job var/current_positions = 0 // How many players have this job diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm index f896bf978f..9298028eb9 100644 --- a/code/game/jobs/job/medical.dm +++ b/code/game/jobs/job/medical.dm @@ -2,16 +2,16 @@ // Chief Medical Officer ////////////////////////////////// /datum/job/cmo - title = "Chief Medical Officer" + title = JOB_CHIEF_MEDICAL_OFFICER flag = CMO departments_managed = list(DEPARTMENT_MEDICAL) departments = list(DEPARTMENT_MEDICAL, DEPARTMENT_COMMAND) sorting_order = 2 department_flag = MEDSCI - faction = "Station" + faction = FACTION_STATION total_positions = 1 spawn_positions = 1 - supervisors = "the Site Manager" + supervisors = "the " + JOB_SITE_MANAGER selection_color = "#026865" req_admin_notify = 1 economic_modifier = 10 @@ -39,54 +39,54 @@ // Medical Doctor ////////////////////////////////// /datum/job/doctor - title = "Medical Doctor" + title = JOB_MEDICAL_DOCTOR flag = DOCTOR departments = list(DEPARTMENT_MEDICAL) department_flag = MEDSCI - faction = "Station" + faction = FACTION_STATION total_positions = 5 spawn_positions = 3 - supervisors = "the Chief Medical Officer" + supervisors = "the " + JOB_CHIEF_MEDICAL_OFFICER selection_color = "#013D3B" economic_modifier = 7 access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics, access_eva) minimal_access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_virology, access_eva) outfit_type = /decl/hierarchy/outfit/job/medical/doctor - job_description = "A Medical Doctor is a Jack-of-All-Trades Medical title, covering a variety of skill levels and minor specializations. They are likely \ + job_description = "A " + JOB_MEDICAL_DOCTOR + " is a Jack-of-All-Trades Medical title, covering a variety of skill levels and minor specializations. They are likely \ familiar with basic first aid, and a number of accompanying medications, and can generally save, if not cure, a majority of the \ patients they encounter." alt_titles = list( - "Surgeon" = /datum/alt_title/surgeon, - "Emergency Physician" = /datum/alt_title/emergency_physician, - "Nurse" = /datum/alt_title/nurse, - "Virologist" = /datum/alt_title/virologist) + JOB_ALT_SURGEON = /datum/alt_title/surgeon, + JOB_ALT_EMERGENCY_PHYSICIAN = /datum/alt_title/emergency_physician, + JOB_ALT_NURSE = /datum/alt_title/nurse, + JOB_ALT_VIROLOGIST = /datum/alt_title/virologist) min_age_by_species = list(SPECIES_PROMETHEAN = 3) //Medical Doctor Alt Titles /datum/alt_title/surgeon - title = "Surgeon" - title_blurb = "A Surgeon specializes in providing surgical aid to injured patients, up to and including amputation and limb reattachement. They are expected \ + title = JOB_ALT_SURGEON + title_blurb = "A " + JOB_ALT_SURGEON + " specializes in providing surgical aid to injured patients, up to and including amputation and limb reattachement. They are expected \ to know the ins and outs of anesthesia and surgery." title_outfit = /decl/hierarchy/outfit/job/medical/doctor/surgeon /datum/alt_title/emergency_physician - title = "Emergency Physician" - title_blurb = "An Emergency Physician is a Medical professional trained for stabilizing and treating severely injured and/or dying patients. \ + title = JOB_ALT_EMERGENCY_PHYSICIAN + title_blurb = "An " + JOB_ALT_EMERGENCY_PHYSICIAN + " is a Medical professional trained for stabilizing and treating severely injured and/or dying patients. \ They are generally the first response for any such individual brought to the Medbay, and can sometimes be expected to help their patients \ make a full recovery." title_outfit = /decl/hierarchy/outfit/job/medical/doctor/emergency_physician /datum/alt_title/nurse - title = "Nurse" - title_blurb = "A Nurse acts as a general purpose Doctor's Aide, providing basic care to non-critical patients, and stabilizing critical patients during \ - busy periods. They frequently watch the suit sensors console, to help manage the time of other Doctors. In rare occasions, a Nurse can be \ + title = JOB_ALT_NURSE + title_blurb = "A " + JOB_ALT_NURSE + " acts as a general purpose Doctor's Aide, providing basic care to non-critical patients, and stabilizing critical patients during \ + busy periods. They frequently watch the suit sensors console, to help manage the time of other Doctors. In rare occasions, a " + JOB_ALT_NURSE + " can be \ called upon to revive deceased crew members." title_outfit = /decl/hierarchy/outfit/job/medical/doctor/nurse /datum/alt_title/virologist - title = "Virologist" - title_blurb = "A Virologist cures active diseases in the crew, and prepares antibodies for possible infections. They also have the skills \ + title = JOB_ALT_VIROLOGIST + title_blurb = "A " + JOB_ALT_VIROLOGIST + " cures active diseases in the crew, and prepares antibodies for possible infections. They also have the skills \ to produce the various types of virus foods or mutagens." title_outfit = /decl/hierarchy/outfit/job/medical/doctor/virologist @@ -95,14 +95,14 @@ // Chemist ////////////////////////////////// /datum/job/chemist - title = "Chemist" + title = JOB_CHEMIST flag = CHEMIST departments = list(DEPARTMENT_MEDICAL) department_flag = MEDSCI - faction = "Station" + faction = FACTION_STATION total_positions = 2 spawn_positions = 2 - supervisors = "the Chief Medical Officer" + supervisors = "the " + JOB_CHIEF_MEDICAL_OFFICER selection_color = "#013D3B" economic_modifier = 5 access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics) @@ -111,35 +111,35 @@ min_age_by_species = list(SPECIES_PROMETHEAN = 3) outfit_type = /decl/hierarchy/outfit/job/medical/chemist - job_description = "A Chemist produces and maintains a stock of basic to advanced chemicals for medical and occasionally research use. \ + job_description = "A " + JOB_CHEMIST + " produces and maintains a stock of basic to advanced chemicals for medical and occasionally research use. \ They are likely to know the use and dangers of many lab-produced chemicals." - alt_titles = list("Pharmacist" = /datum/alt_title/pharmacist) + alt_titles = list(JOB_ALT_PHARMACIST = /datum/alt_title/pharmacist) // Chemist Alt Titles /datum/alt_title/pharmacist - title = "Pharmacist" - title_blurb = "A Pharmacist focuses on the chemical needs of the Medical Department, and often offers to fill crew prescriptions at their discretion." + title = JOB_ALT_PHARMACIST + title_blurb = "A " + JOB_ALT_PHARMACIST + " focuses on the chemical needs of the Medical Department, and often offers to fill crew prescriptions at their discretion." /* I'm commenting out Geneticist so you can't actually see it in the job menu, given that you can't play as one - Jon. ////////////////////////////////// // Geneticist ////////////////////////////////// /datum/job/geneticist - title = "Geneticist" + title = JOB_GENETICIST flag = GENETICIST departments = list(DEPARTMENT_MEDICAL, DEPARTMENT_RESEARCH) department_flag = MEDSCI - faction = "Station" + faction = FACTION_STATION total_positions = 0 spawn_positions = 0 - supervisors = "the Chief Medical Officer and Research Director" + supervisors = "the " + JOB_CHIEF_MEDICAL_OFFICER + " and " + JOB_RESEARCH_DIRECTOR selection_color = "#013D3B" economic_modifier = 7 access = list(access_medical, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics, access_research) minimal_access = list(access_medical, access_morgue, access_genetics, access_research) outfit_type = /decl/hierarchy/outfit/job/medical/geneticist - job_description = "A Geneticist operates genetic manipulation equipment to repair any genetic defects encountered in crew, from cloning or radiation as examples. \ + job_description = "A " + JOB_GENETICIST + " operates genetic manipulation equipment to repair any genetic defects encountered in crew, from cloning or radiation as examples. \ When required, geneticists have the skills to clone, and are the superior choice when available for doing so." */ @@ -147,28 +147,28 @@ // Psychiatrist ////////////////////////////////// /datum/job/psychiatrist - title = "Psychiatrist" + title = JOB_PSYCHIATRIST flag = PSYCHIATRIST departments = list(DEPARTMENT_MEDICAL) department_flag = MEDSCI - faction = "Station" + faction = FACTION_STATION total_positions = 1 spawn_positions = 1 economic_modifier = 5 - supervisors = "the Chief Medical Officer" + supervisors = "the " + JOB_CHIEF_MEDICAL_OFFICER selection_color = "#013D3B" access = list(access_medical, access_medical_equip, access_morgue, access_psychiatrist) minimal_access = list(access_medical, access_medical_equip, access_psychiatrist) outfit_type = /decl/hierarchy/outfit/job/medical/psychiatrist - job_description = "A Psychiatrist provides mental health services to crew members in need. They may also be called upon to determine whatever \ + job_description = "A " + JOB_PSYCHIATRIST + " provides mental health services to crew members in need. They may also be called upon to determine whatever \ ails the mentally unwell, frequently under Security supervision. They understand the effects of various psychoactive drugs." - alt_titles = list("Psychologist" = /datum/alt_title/psychologist) + alt_titles = list(JOB_ALT_PSYCHOLOGIST = /datum/alt_title/psychologist) banned_job_species = list(SPECIES_PROMETHEAN, SPECIES_DIONA) //Psychiatrist Alt Titles /datum/alt_title/psychologist - title = "Psychologist" - title_blurb = "A Psychologist provides mental health services to crew members in need, focusing more on therapy than medication. They may also be \ + title = JOB_ALT_PSYCHOLOGIST + title_blurb = "A " + JOB_ALT_PSYCHOLOGIST + " provides mental health services to crew members in need, focusing more on therapy than medication. They may also be \ called upon to determine whatever ails the mentally unwell, frequently under Security supervision." title_outfit = /decl/hierarchy/outfit/job/medical/psychiatrist/psychologist @@ -176,29 +176,29 @@ // Paramedic ////////////////////////////////// /datum/job/paramedic - title = "Paramedic" + title = JOB_PARAMEDIC flag = PARAMEDIC departments = list(DEPARTMENT_MEDICAL) department_flag = MEDSCI - faction = "Station" + faction = FACTION_STATION total_positions = 2 spawn_positions = 2 - supervisors = "the Chief Medical Officer" + supervisors = "the " + JOB_CHIEF_MEDICAL_OFFICER selection_color = "#013D3B" economic_modifier = 4 access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_chemistry, access_virology, access_eva, access_maint_tunnels, access_external_airlocks, access_psychiatrist) minimal_access = list(access_medical, access_medical_equip, access_morgue, access_eva, access_maint_tunnels, access_external_airlocks) outfit_type = /decl/hierarchy/outfit/job/medical/paramedic - job_description = "A Paramedic is primarily concerned with the recovery of patients who are unable to make it to the Medical Department on their own. \ + job_description = "A " + JOB_PARAMEDIC + " is primarily concerned with the recovery of patients who are unable to make it to the Medical Department on their own. \ They may also be called upon to keep patients stable when Medical is busy or understaffed." - alt_titles = list("Emergency Medical Technician" = /datum/alt_title/emt) + alt_titles = list(JOB_ALT_EMERGENCY_MEDICAL_TECHNICIAN = /datum/alt_title/emt) banned_job_species = list(SPECIES_DIONA) min_age_by_species = list(SPECIES_PROMETHEAN = 2) // Paramedic Alt Titles /datum/alt_title/emt - title = "Emergency Medical Technician" - title_blurb = "An Emergency Medical Technician is primarily concerned with the recovery of patients who are unable to make it to the Medical Department on their \ + title = JOB_ALT_EMERGENCY_MEDICAL_TECHNICIAN + title_blurb = "An " + JOB_ALT_EMERGENCY_MEDICAL_TECHNICIAN + " is primarily concerned with the recovery of patients who are unable to make it to the Medical Department on their \ own. They are capable of keeping a patient stabilized until they reach the hands of someone with more training." - title_outfit = /decl/hierarchy/outfit/job/medical/paramedic/emt \ No newline at end of file + title_outfit = /decl/hierarchy/outfit/job/medical/paramedic/emt diff --git a/code/game/jobs/job/medical_vr.dm b/code/game/jobs/job/medical_vr.dm index 8999d2d051..9d08fdfcf2 100644 --- a/code/game/jobs/job/medical_vr.dm +++ b/code/game/jobs/job/medical_vr.dm @@ -10,16 +10,16 @@ minimal_access = list(access_medical, access_medical_equip, access_morgue, access_genetics, access_heads, access_chemistry, access_virology, access_cmo, access_surgery, access_RC_announce, access_keycard_auth, access_psychiatrist, access_eva, access_external_airlocks, access_maint_tunnels, access_gateway) - alt_titles = list("Chief Physician" = /datum/alt_title/chief_physician, "Medical Director" = /datum/alt_title/medical_director, "Healthcare Manager" = /datum/alt_title/healthcare_manager) + alt_titles = list(JOB_ALT_CHIEF_PHYSICIAN = /datum/alt_title/chief_physician, JOB_ALT_MEDICAL_DIRECTOR = /datum/alt_title/medical_director, JOB_ALT_HEALTHCARE_MANAGER = /datum/alt_title/healthcare_manager) /datum/alt_title/chief_physician - title = "Chief Physician" + title = JOB_ALT_CHIEF_PHYSICIAN /datum/alt_title/medical_director - title = "Medical Director" + title = JOB_ALT_MEDICAL_DIRECTOR /datum/alt_title/healthcare_manager - title = "Healthcare Manager" + title = JOB_ALT_HEALTHCARE_MANAGER /datum/job/cmo/get_request_reasons() return list("Surgery pending", "Viral outbreak", "Training crew", "Assembling expedition team") @@ -28,25 +28,25 @@ /datum/job/doctor spawn_positions = 5 pto_type = PTO_MEDICAL - alt_titles = list("Physician" = /datum/alt_title/physician, "Medical Practitioner" = /datum/alt_title/medical_practitioner, "Surgeon" = /datum/alt_title/surgeon, - "Emergency Physician" = /datum/alt_title/emergency_physician, "Nurse" = /datum/alt_title/nurse, "Orderly" = /datum/alt_title/orderly, - "Virologist" = /datum/alt_title/virologist, "Medical Contractor" = /datum/alt_title/medical_contractor) + alt_titles = list(JOB_ALT_PHYSICIAN = /datum/alt_title/physician, JOB_ALT_MEDICAL_PRACTITIONER = /datum/alt_title/medical_practitioner, JOB_ALT_SURGEON = /datum/alt_title/surgeon, + JOB_ALT_EMERGENCY_PHYSICIAN = /datum/alt_title/emergency_physician, JOB_ALT_NURSE = /datum/alt_title/nurse, JOB_ALT_ORDERLY = /datum/alt_title/orderly, + JOB_ALT_VIROLOGIST = /datum/alt_title/virologist, JOB_ALT_MEDICAL_CONTRACTOR = /datum/alt_title/medical_contractor) /datum/alt_title/physician - title = "Physician" + title = JOB_ALT_PHYSICIAN /datum/alt_title/medical_practitioner - title = "Medical Practitioner" + title = JOB_ALT_MEDICAL_PRACTITIONER /datum/alt_title/orderly - title = "Orderly" - title_blurb = "An Orderly acts as Medbay's general helping hand, assisting any doctor that might need some form of help, as well as handling manual \ + title = JOB_ALT_ORDERLY + title_blurb = "An " + JOB_ALT_ORDERLY + " acts as Medbay's general helping hand, assisting any doctor that might need some form of help, as well as handling manual \ and dirty labor around the department." title_outfit = /decl/hierarchy/outfit/job/medical/doctor/nurse /datum/alt_title/medical_contractor - title = "Medical Contractor" - title_blurb = "A Medical Contractor can be anything from a full-blown doctor to the likes of a nurse or orderly, but isn't directly employed by NT proper." + title = JOB_ALT_MEDICAL_CONTRACTOR + title_blurb = "A " + JOB_ALT_MEDICAL_CONTRACTOR + " can be anything from a full-blown doctor to the likes of a nurse or orderly, but isn't directly employed by NT proper." /datum/job/doctor/get_request_reasons() return list("Surgery pending", "Viral outbreak", "Assembling expedition team") @@ -54,44 +54,44 @@ /datum/job/chemist pto_type = PTO_MEDICAL - alt_titles = list("Pharmacist" = /datum/alt_title/pharmacist, "Pharmacologist" = /datum/alt_title/pharmacologist) + alt_titles = list(JOB_ALT_PHARMACIST = /datum/alt_title/pharmacist, JOB_ALT_PHARMACOLOGIST = /datum/alt_title/pharmacologist) /datum/alt_title/pharmacologist - title = "Pharmacologist" - title_blurb = "A Pharmacologist focuses on the chemical needs of the Medical Department, primarily specializing in producing more advanced forms of medicine." + title = JOB_ALT_PHARMACOLOGIST + title_blurb = "A " + JOB_ALT_PHARMACOLOGIST + " focuses on the chemical needs of the Medical Department, primarily specializing in producing more advanced forms of medicine." /datum/job/psychiatrist pto_type = PTO_MEDICAL - alt_titles = list("Psychologist" = /datum/alt_title/psychologist, "Psychoanalyst" = /datum/alt_title/psychoanalyst, "Psychotherapist" = /datum/alt_title/psychotherapist) + alt_titles = list(JOB_ALT_PSYCHOLOGIST = /datum/alt_title/psychologist, JOB_ALT_PSYCHOANALYST = /datum/alt_title/psychoanalyst, JOB_ALT_PSYCHOTHERAPIST = /datum/alt_title/psychotherapist) /datum/alt_title/psychoanalyst - title = "Psychoanalyst" - title_blurb = "A Psychoanalyst provides mental health services to crew members in need, focusing more on therapy than medication. They may also be \ + title = JOB_ALT_PSYCHOANALYST + title_blurb = "A " + JOB_ALT_PSYCHOANALYST + " provides mental health services to crew members in need, focusing more on therapy than medication. They may also be \ called upon to determine whatever ails the mentally unwell, frequently under Security supervision." title_outfit = /decl/hierarchy/outfit/job/medical/psychiatrist/psychologist /datum/alt_title/psychotherapist - title = "Psychotherapist" - title_blurb = "A Psychotherapist provides mental health services to crew members in need, focusing more on therapy than medication. They may also be \ + title = JOB_ALT_PSYCHOTHERAPIST + title_blurb = "A " + JOB_ALT_PSYCHOTHERAPIST + " provides mental health services to crew members in need, focusing more on therapy than medication. They may also be \ called upon to determine whatever ails the mentally unwell, frequently under Security supervision." title_outfit = /decl/hierarchy/outfit/job/medical/psychiatrist/psychologist /datum/job/paramedic pto_type = PTO_MEDICAL - alt_titles = list("Emergency Medical Technician" = /datum/alt_title/emt, "Medical Responder" = /datum/alt_title/medical_responder, "Search and Rescue" = /datum/alt_title/sar) + alt_titles = list(JOB_ALT_EMERGENCY_MEDICAL_TECHNICIAN = /datum/alt_title/emt, JOB_ALT_MEDICAL_RESPONDER = /datum/alt_title/medical_responder, JOB_ALT_SEARCH_AND_RESCUE = /datum/alt_title/sar) total_positions = 3 spawn_positions = 3 /datum/alt_title/medical_responder - title = "Medical Responder" - title_blurb = "A Medical Responder is primarily concerned with the recovery of patients who are unable to make it to the Medical Department on their \ + title = JOB_ALT_MEDICAL_RESPONDER + title_blurb = "A " + JOB_ALT_MEDICAL_RESPONDER + " is primarily concerned with the recovery of patients who are unable to make it to the Medical Department on their \ own. They are capable of keeping a patient stabilized until they reach the hands of someone with more training." title_outfit = /decl/hierarchy/outfit/job/medical/paramedic/emt /datum/alt_title/sar - title = "Search and Rescue" + title = JOB_ALT_SEARCH_AND_RESCUE /datum/job/paramedic/get_request_reasons() return list("Assembling expedition team") diff --git a/code/game/jobs/job/offduty_vr.dm b/code/game/jobs/job/offduty_vr.dm index 665c6f46a0..951869d5b0 100644 --- a/code/game/jobs/job/offduty_vr.dm +++ b/code/game/jobs/job/offduty_vr.dm @@ -3,11 +3,11 @@ // /datum/job/offduty_civilian - title = "Off-duty Worker" + title = JOB_OFFDUTY_WORKER latejoin_only = TRUE timeoff_factor = -1 total_positions = -1 - faction = "Station" + faction = FACTION_STATION departments = list(DEPARTMENT_OFFDUTY) supervisors = "nobody! Enjoy your time off" selection_color = "#9b633e" @@ -19,11 +19,11 @@ economic_modifier = 2 /datum/job/offduty_cargo - title = "Off-duty Cargo" + title = JOB_OFFDUTY_CARGO latejoin_only = TRUE timeoff_factor = -1 total_positions = -1 - faction = "Station" + faction = FACTION_STATION departments = list(DEPARTMENT_OFFDUTY) supervisors = "nobody! Enjoy your time off" selection_color = "#9b633e" @@ -35,11 +35,11 @@ economic_modifier = 2 /datum/job/offduty_engineering - title = "Off-duty Engineer" + title = JOB_OFFDUTY_ENGINEER latejoin_only = TRUE timeoff_factor = -1 total_positions = -1 - faction = "Station" + faction = FACTION_STATION departments = list(DEPARTMENT_OFFDUTY) supervisors = "nobody! Enjoy your time off" selection_color = "#5B4D20" @@ -51,11 +51,11 @@ economic_modifier = 5 /datum/job/offduty_medical - title = "Off-duty Medic" + title = JOB_OFFDUTY_MEDIC latejoin_only = TRUE timeoff_factor = -1 total_positions = -1 - faction = "Station" + faction = FACTION_STATION departments = list(DEPARTMENT_OFFDUTY) supervisors = "nobody! Enjoy your time off" selection_color = "#013D3B" @@ -67,11 +67,11 @@ economic_modifier = 5 /datum/job/offduty_science - title = "Off-duty Scientist" + title = JOB_OFFDUTY_SCIENTIST latejoin_only = TRUE timeoff_factor = -1 total_positions = -1 - faction = "Station" + faction = FACTION_STATION departments = list(DEPARTMENT_OFFDUTY) supervisors = "nobody! Enjoy your time off" selection_color = "#633D63" @@ -83,11 +83,11 @@ economic_modifier = 5 /datum/job/offduty_security - title = "Off-duty Officer" + title = JOB_OFFDUTY_OFFICER latejoin_only = TRUE timeoff_factor = -1 total_positions = -1 - faction = "Station" + faction = FACTION_STATION departments = list(DEPARTMENT_OFFDUTY) supervisors = "nobody! Enjoy your time off" selection_color = "#601C1C" @@ -99,11 +99,11 @@ economic_modifier = 4 /datum/job/offduty_exploration - title = "Off-duty Explorer" + title = JOB_OFFDUTY_EXPLORER latejoin_only = TRUE timeoff_factor = -1 total_positions = -1 - faction = "Station" + faction = FACTION_STATION departments = list(DEPARTMENT_OFFDUTY) supervisors = "nobody! Enjoy your time off" selection_color = "#999440" diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm index 240b985967..c67dbe59ad 100644 --- a/code/game/jobs/job/science.dm +++ b/code/game/jobs/job/science.dm @@ -2,16 +2,16 @@ // Research Director ////////////////////////////////// /datum/job/rd - title = "Research Director" + title = JOB_RESEARCH_DIRECTOR flag = RD departments_managed = list(DEPARTMENT_RESEARCH) departments = list(DEPARTMENT_RESEARCH, DEPARTMENT_COMMAND) sorting_order = 2 department_flag = MEDSCI - faction = "Station" + faction = FACTION_STATION total_positions = 1 spawn_positions = 1 - supervisors = "the Site Manager" + supervisors = "the " + JOB_SITE_MANAGER selection_color = "#AD6BAD" req_admin_notify = 1 economic_modifier = 15 @@ -32,29 +32,29 @@ banned_job_species = list(SPECIES_TESHARI, SPECIES_DIONA, SPECIES_PROMETHEAN, SPECIES_ZADDAT, "digital") outfit_type = /decl/hierarchy/outfit/job/science/rd - job_description = "The Research Director manages and maintains the Research department. They are required to ensure the safety of the entire crew, \ + job_description = "The " + JOB_RESEARCH_DIRECTOR + " manages and maintains the Research department. They are required to ensure the safety of the entire crew, \ at least with regards to anything occurring in the Research department, and to inform the crew of any disruptions that \ - might originate from Research. The Research Director often has at least passing knowledge of most of the Research department, but \ + might originate from Research. The " + JOB_RESEARCH_DIRECTOR + " often has at least passing knowledge of most of the Research department, but \ are encouraged to allow their staff to perform their own duties." - alt_titles = list("Research Supervisor" = /datum/alt_title/research_supervisor) + alt_titles = list(JOB_ALT_RESEARCH_SUPERVISOR = /datum/alt_title/research_supervisor) -// Research Director Alt Titles +// " + JOB_RESEARCH_DIRECTOR + " Alt Titles /datum/alt_title/research_supervisor - title = "Research Supervisor" + title = JOB_ALT_RESEARCH_SUPERVISOR ////////////////////////////////// // Scientist ////////////////////////////////// /datum/job/scientist - title = "Scientist" + title = JOB_SCIENTIST flag = SCIENTIST departments = list(DEPARTMENT_RESEARCH) department_flag = MEDSCI - faction = "Station" + faction = FACTION_STATION total_positions = 5 spawn_positions = 3 - supervisors = "the Research Director" + supervisors = "the " + JOB_RESEARCH_DIRECTOR selection_color = "#633D63" economic_modifier = 7 access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology, access_xenoarch) @@ -65,41 +65,41 @@ minimal_player_age = 14 outfit_type = /decl/hierarchy/outfit/job/science/scientist - job_description = "A Scientist is a generalist working in the Research department, with general knowledge of the scientific process, as well as \ + job_description = "A " + JOB_SCIENTIST + " is a generalist working in the Research department, with general knowledge of the scientific process, as well as \ the principles and requirements of Research and Development. They may also formulate experiments of their own devising, if \ they find an appropriate topic." - alt_titles = list("Xenoarchaeologist" = /datum/alt_title/xenoarch, "Anomalist" = /datum/alt_title/anomalist, \ - "Phoron Researcher" = /datum/alt_title/phoron_research) + alt_titles = list(JOB_ALT_XENOARCHAEOLOGIST = /datum/alt_title/xenoarch, JOB_ALT_ANOMALIST = /datum/alt_title/anomalist, \ + JOB_ALT_PHORON_RESEARCHER = /datum/alt_title/phoron_research) // Scientist Alt Titles /datum/alt_title/xenoarch - title = "Xenoarchaeologist" - title_blurb = "A Xenoarchaeologist enters digsites in search of artifacts of alien origin. These digsites are frequently in vacuum or other inhospitable \ - locations, and as such a Xenoarchaeologist should be prepared to handle hostile evironmental conditions." + title = JOB_ALT_XENOARCHAEOLOGIST + title_blurb = "A " + JOB_ALT_XENOARCHAEOLOGIST + " enters digsites in search of artifacts of alien origin. These digsites are frequently in vacuum or other inhospitable \ + locations, and as such a " + JOB_ALT_XENOARCHAEOLOGIST + " should be prepared to handle hostile evironmental conditions." /datum/alt_title/anomalist - title = "Anomalist" - title_blurb = "An Anomalist is a Scientist whose expertise is analyzing alien artifacts. They are familar with the most common methods of testing artifact \ - function. They work closely with Xenoarchaeologists, or Miners, if either role is present." + title = JOB_ALT_ANOMALIST + title_blurb = "An " + JOB_ALT_ANOMALIST + " is a " + JOB_SCIENTIST + " whose expertise is analyzing alien artifacts. They are familar with the most common methods of testing artifact \ + function. They work closely with " + JOB_ALT_XENOARCHAEOLOGIST + "s, or Miners, if either role is present." /datum/alt_title/phoron_research - title = "Phoron Researcher" - title_blurb = "A Phoron Researcher is a specialist in the practical applications of phoron, and has knowledge of its practical uses and dangers. \ - Many Phoron Researchers are interested in the combustability and explosive properties of gaseous phoron, as well as the specific hazards \ + title = JOB_ALT_PHORON_RESEARCHER + title_blurb = "A " + JOB_ALT_PHORON_RESEARCHER + " is a specialist in the practical applications of phoron, and has knowledge of its practical uses and dangers. \ + Many " + JOB_ALT_PHORON_RESEARCHER + "s are interested in the combustability and explosive properties of gaseous phoron, as well as the specific hazards \ of working with the substance in that state." ////////////////////////////////// // Xenobiologist ////////////////////////////////// /datum/job/xenobiologist - title = "Xenobiologist" + title = JOB_XENOBIOLOGIST flag = XENOBIOLOGIST departments = list(DEPARTMENT_RESEARCH) department_flag = MEDSCI - faction = "Station" + faction = FACTION_STATION total_positions = 3 spawn_positions = 2 - supervisors = "the Research Director" + supervisors = "the " + JOB_RESEARCH_DIRECTOR selection_color = "#633D63" economic_modifier = 7 access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology, access_hydroponics) @@ -110,15 +110,15 @@ min_age_by_species = list(SPECIES_PROMETHEAN = 2) outfit_type = /decl/hierarchy/outfit/job/science/xenobiologist - job_description = "A Xenobiologist studies esoteric lifeforms, usually in the relative safety of their lab. They attempt to find ways to benefit \ + job_description = "A " + JOB_XENOBIOLOGIST + " studies esoteric lifeforms, usually in the relative safety of their lab. They attempt to find ways to benefit \ from the byproducts of these lifeforms, and their main subject at present is the Giant Slime." /*VR edit start - alt_titles = list("Xenobotanist" = /datum/alt_title/xenobot) + alt_titles = list(JOB_XENOBOTANIST = /datum/alt_title/xenobot) Xenibiologist Alt Titles /datum/alt_title/xenobot - title = "Xenobotanist" - title_blurb = "A Xenobotanist grows and cares for a variety of abnormal, custom made, and frequently dangerous plant life. When the products of these plants \ + title = JOB_XENOBOTANIST + title_blurb = "A " + JOB_XENOBOTANIST + " grows and cares for a variety of abnormal, custom made, and frequently dangerous plant life. When the products of these plants \ is both safe and beneficial to the station, they may choose to introduce it to the rest of the crew." VR edit end*/ @@ -126,14 +126,14 @@ VR edit end*/ // Roboticist ////////////////////////////////// /datum/job/roboticist - title = "Roboticist" + title = JOB_ROBOTICIST flag = ROBOTICIST departments = list(DEPARTMENT_RESEARCH) department_flag = MEDSCI - faction = "Station" + faction = FACTION_STATION total_positions = 2 spawn_positions = 2 - supervisors = "the Research Director" + supervisors = "the " + JOB_RESEARCH_DIRECTOR selection_color = "#633D63" economic_modifier = 5 access = list(access_robotics, access_tox, access_tox_storage, access_tech_storage, access_morgue, access_research) //As a job that handles so many corpses, it makes sense for them to have morgue access. @@ -143,17 +143,17 @@ VR edit end*/ banned_job_species = list("digital") outfit_type = /decl/hierarchy/outfit/job/science/roboticist - job_description = "A Roboticist maintains and repairs the station's synthetics, including crew with prosthetic limbs. \ + job_description = "A " + JOB_ROBOTICIST + " maintains and repairs the station's synthetics, including crew with prosthetic limbs. \ They can also assist the station by producing simple robots and even pilotable exosuits." - alt_titles = list("Biomechanical Engineer" = /datum/alt_title/biomech, "Mechatronic Engineer" = /datum/alt_title/mech_tech) + alt_titles = list(JOB_ALT_BIOMECHANICAL_ENGINEER = /datum/alt_title/biomech, JOB_ALT_MECHATRONIC_ENGINEER = /datum/alt_title/mech_tech) // Roboticist Alt Titles /datum/alt_title/biomech - title = "Biomechanical Engineer" - title_blurb = "A Biomechanical Engineer primarily works on prosthetics, and the organic parts attached to them. They may have some \ + title = JOB_ALT_BIOMECHANICAL_ENGINEER + title_blurb = "A " + JOB_ALT_BIOMECHANICAL_ENGINEER + " primarily works on prosthetics, and the organic parts attached to them. They may have some \ knowledge of the relatively simple surgical procedures used in making cyborgs and attaching prosthesis." /datum/alt_title/mech_tech - title = "Mechatronic Engineer" - title_blurb = "A Mechatronic Engineer focuses on the construction and maintenance of Exosuits, and should be well versed in their use. \ + title = JOB_ALT_MECHATRONIC_ENGINEER + title_blurb = "A " + JOB_ALT_MECHATRONIC_ENGINEER + " focuses on the construction and maintenance of Exosuits, and should be well versed in their use. \ They may also be called upon to work on synthetics and prosthetics, if needed." diff --git a/code/game/jobs/job/science_vr.dm b/code/game/jobs/job/science_vr.dm index 23ba19d419..bb5285e16e 100644 --- a/code/game/jobs/job/science_vr.dm +++ b/code/game/jobs/job/science_vr.dm @@ -11,17 +11,17 @@ access_tox_storage, access_teleporter, access_research, access_robotics, access_xenobiology, access_ai_upload, access_tech_storage, access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway, access_xenoarch, access_eva, access_network, access_xenobotany) - alt_titles = list("Research Supervisor" = /datum/alt_title/research_supervisor, "Research Manager" = /datum/alt_title/research_manager, - "Head of Development" = /datum/alt_title/head_of_development,"Head Scientist" = /datum/alt_title/head_scientist) + alt_titles = list(JOB_ALT_RESEARCH_SUPERVISOR = /datum/alt_title/research_supervisor, JOB_ALT_RESEARCH_MANAGER = /datum/alt_title/research_manager, + JOB_ALT_HEAD_OF_DEVELOPMENT = /datum/alt_title/head_of_development,JOB_ALT_HEAD_SCIENTIST = /datum/alt_title/head_scientist) /datum/alt_title/research_manager - title = "Research Manager" + title = JOB_ALT_RESEARCH_MANAGER /datum/alt_title/head_of_development - title = "Head of Development" + title = JOB_ALT_HEAD_OF_DEVELOPMENT /datum/alt_title/head_scientist - title = "Head Scientist" + title = JOB_ALT_HEAD_SCIENTIST /datum/job/rd/get_request_reasons() return list("Repairs needed", "Training crew", "Assembling expedition team") @@ -30,41 +30,41 @@ /datum/job/scientist spawn_positions = 5 pto_type = PTO_SCIENCE - alt_titles = list("Researcher" = /datum/alt_title/researcher, "Lab Assistant" = /datum/alt_title/lab_assistant, "Xenoarchaeologist" = /datum/alt_title/xenoarch, - "Xenopaleontologist" = /datum/alt_title/xenopaleontologist, "Anomalist" = /datum/alt_title/anomalist, "Phoron Researcher" = /datum/alt_title/phoron_research, - "Gas Physicist" = /datum/alt_title/gas_physicist, "Circuit Designer" = /datum/alt_title/circuit_designer, "Circuit Programmer" = /datum/alt_title/circuit_programmer) + alt_titles = list(JOB_ALT_RESEARCHER = /datum/alt_title/researcher, JOB_ALT_LAB_ASSISTANT = /datum/alt_title/lab_assistant, JOB_ALT_XENOARCHAEOLOGIST = /datum/alt_title/xenoarch, + JOB_ALT_XENOPALEONTOLOGIST = /datum/alt_title/xenopaleontologist, JOB_ALT_ANOMALIST = /datum/alt_title/anomalist, JOB_ALT_PHORON_RESEARCHER = /datum/alt_title/phoron_research, + JOB_ALT_GAS_PHYSICIST = /datum/alt_title/gas_physicist, JOB_ALT_CIRCUIT_DESIGNER = /datum/alt_title/circuit_designer, JOB_ALT_CIRCUIT_PROGRAMMER = /datum/alt_title/circuit_programmer) access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology, access_xenoarch, access_xenobotany) minimal_access = list(access_tox, access_tox_storage, access_research, access_xenoarch) // Unchanged (for now?), mostly here for reference /datum/alt_title/researcher - title = "Researcher" + title = JOB_ALT_RESEARCHER /datum/alt_title/lab_assistant - title = "Lab Assistant" - title_blurb = "A Lab Assistant is a lower-level member of research staff, whose main purpose is to help scientists with their specialized work in more menial fashion, while also \ + title = JOB_ALT_LAB_ASSISTANT + title_blurb = "A " + JOB_ALT_LAB_ASSISTANT + " is a lower-level member of research staff, whose main purpose is to help scientists with their specialized work in more menial fashion, while also \ learning the specializations in process." /datum/alt_title/xenopaleontologist - title = "Xenopaleontologist" - title_blurb = "A Xenopaleontologist enters digsites in search of fossils and other ancient remants of alien life. These digsites are frequently in vacuum or other inhospitable \ - locations, and as such a Xenopaleontologist should be prepared to handle hostile evironmental conditions." + title = JOB_ALT_XENOPALEONTOLOGIST + title_blurb = "A " + JOB_ALT_XENOPALEONTOLOGIST + " enters digsites in search of fossils and other ancient remants of alien life. These digsites are frequently in vacuum or other inhospitable \ + locations, and as such a " + JOB_ALT_XENOPALEONTOLOGIST + " should be prepared to handle hostile evironmental conditions." /datum/alt_title/gas_physicist - title = "Gas Physicist" - title_blurb = "A Gas Physicist is a specialist in various practical applications of gasses, but currently focuses their attention on phoron, and has knowledge of its practical uses and dangers. \ - Many Gas Physicists are interested in the combustability and explosive properties of gaseous phoron, as well as the specific hazards \ + title = JOB_ALT_GAS_PHYSICIST + title_blurb = "A " + JOB_ALT_GAS_PHYSICIST + " is a specialist in various practical applications of gasses, but currently focuses their attention on phoron, and has knowledge of its practical uses and dangers. \ + Many " + JOB_ALT_GAS_PHYSICIST + "s are interested in the combustability and explosive properties of gaseous phoron, as well as the specific hazards \ of working with the substance in that state." /datum/alt_title/circuit_designer - title = "Circuit Designer" - title_blurb = "A Circuit Designer is a Scientist whose expertise is working with integrated circuits. They are familar with the workings and programming of those devices. \ + title = JOB_ALT_CIRCUIT_DESIGNER + title_blurb = "A " + JOB_ALT_CIRCUIT_DESIGNER + " is a " + JOB_SCIENTIST + " whose expertise is working with integrated circuits. They are familar with the workings and programming of those devices. \ They work to create various useful devices using the capabilities of integrated circuitry." /datum/alt_title/circuit_programmer - title = "Circuit Programmer" - title_blurb = "A Circuit Programmer is a Scientist whose expertise is working with integrated circuits. They are familar with the workings and programming of those devices. \ + title = JOB_ALT_CIRCUIT_PROGRAMMER + title_blurb = "A " + JOB_ALT_CIRCUIT_PROGRAMMER + " is a " + JOB_SCIENTIST + " whose expertise is working with integrated circuits. They are familar with the workings and programming of those devices. \ They work to create various useful devices using the capabilities of integrated circuitry." /datum/job/scientist/get_request_reasons() @@ -73,23 +73,23 @@ /datum/job/xenobiologist spawn_positions = 3 pto_type = PTO_SCIENCE - alt_titles = list("Xenozoologist" = /datum/alt_title/xenozoologist, "Xenoanthropologist" = /datum/alt_title/xenoanthropologist) + alt_titles = list(JOB_ALT_XENOZOOLOGIST = /datum/alt_title/xenozoologist, JOB_ALT_XENOANTHROPOLOGIST = /datum/alt_title/xenoanthropologist) /datum/alt_title/xenozoologist - title = "Xenozoologist" + title = JOB_ALT_XENOZOOLOGIST /datum/alt_title/xenoanthropologist - title = "Xenoanthropologist" - title_blurb = "Xenoanthropologist still heavily focuses their study on alien lifeforms, but their specialty leans more towards fellow sapient beings than simple animals." + title = JOB_ALT_XENOANTHROPOLOGIST + title_blurb = JOB_ALT_XENOANTHROPOLOGIST + " still heavily focuses their study on alien lifeforms, but their specialty leans more towards fellow sapient beings than simple animals." /datum/job/roboticist total_positions = 3 pto_type = PTO_SCIENCE - alt_titles = list("Assembly Technician" = /datum/alt_title/assembly_tech, "Biomechanical Engineer" = /datum/alt_title/biomech, "Mechatronic Engineer" = /datum/alt_title/mech_tech) + alt_titles = list(JOB_ALT_ASSEMBLY_TECHNICIAN = /datum/alt_title/assembly_tech, JOB_ALT_BIOMECHANICAL_ENGINEER = /datum/alt_title/biomech, JOB_ALT_MECHATRONIC_ENGINEER = /datum/alt_title/mech_tech) /datum/alt_title/assembly_tech - title = "Assembly Technician" + title = JOB_ALT_ASSEMBLY_TECHNICIAN /datum/job/roboticist/get_request_reasons() return list("Repairs needed") @@ -98,14 +98,14 @@ // Xenobotanist ////////////////////////////////// /datum/job/xenobotanist - title = "Xenobotanist" + title = JOB_XENOBOTANIST flag = XENOBOTANIST departments = list(DEPARTMENT_RESEARCH) department_flag = MEDSCI - faction = "Station" + faction = FACTION_STATION total_positions = 2 spawn_positions = 2 - supervisors = "the Research Director" + supervisors = "the " + JOB_RESEARCH_DIRECTOR selection_color = "#633D63" economic_modifier = 7 access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobotany, access_hydroponics) @@ -115,12 +115,12 @@ minimal_player_age = 14 outfit_type = /decl/hierarchy/outfit/job/science/xenobiologist - job_description = "A Xenobotanist grows and cares for a variety of abnormal, custom made, and frequently dangerous plant life. When the products of these plants \ + job_description = "A " + JOB_XENOBOTANIST + " grows and cares for a variety of abnormal, custom made, and frequently dangerous plant life. When the products of these plants \ are both safe and beneficial to the station, they may choose to introduce it to the rest of the crew." - alt_titles = list("Xenohydroponicist" = /datum/alt_title/xenohydroponicist, "Xenoflorist" = /datum/alt_title/xenoflorist) + alt_titles = list(JOB_ALT_XENOHYDROPONICIST = /datum/alt_title/xenohydroponicist, JOB_ALT_XENOFLORIST = /datum/alt_title/xenoflorist) /datum/alt_title/xenoflorist - title = "Xenoflorist" + title = JOB_ALT_XENOFLORIST /datum/alt_title/xenohydroponicist - title = "Xenohydroponicist" + title = JOB_ALT_XENOHYDROPONICIST diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm index 2f6b4ee655..372d459e62 100644 --- a/code/game/jobs/job/security.dm +++ b/code/game/jobs/job/security.dm @@ -2,16 +2,16 @@ // Head of Security ////////////////////////////////// /datum/job/hos - title = "Head of Security" + title = JOB_HEAD_OF_SECURITY flag = HOS departments_managed = list(DEPARTMENT_SECURITY) departments = list(DEPARTMENT_SECURITY, DEPARTMENT_COMMAND) sorting_order = 2 department_flag = ENGSEC - faction = "Station" + faction = FACTION_STATION total_positions = 1 spawn_positions = 1 - supervisors = "the Site Manager" + supervisors = "the " + JOB_SITE_MANAGER selection_color = "#8E2929" req_admin_notify = 1 economic_modifier = 10 @@ -31,32 +31,32 @@ banned_job_species = list(SPECIES_TESHARI, SPECIES_DIONA, SPECIES_PROMETHEAN, SPECIES_ZADDAT, "digital", SPECIES_UNATHI, "mechanical") outfit_type = /decl/hierarchy/outfit/job/security/hos - job_description = " The Head of Security manages the Security Department, keeping the station safe and making sure the rules are followed. They are expected to \ + job_description = " The " + JOB_HEAD_OF_SECURITY + " manages the Security Department, keeping the station safe and making sure the rules are followed. They are expected to \ keep the other Department Heads, and the rest of the crew, aware of developing situations that may be a threat. If necessary, the HoS may \ perform the duties of absent Security roles, such as distributing gear from the Armory." - alt_titles = list("Security Commander" = /datum/alt_title/sec_commander, "Chief of Security" = /datum/alt_title/sec_chief) + alt_titles = list(JOB_ALT_SECURITY_COMMANDER = /datum/alt_title/sec_commander, JOB_ALT_CHIEF_OF_SECURITY = /datum/alt_title/sec_chief) // Head of Security Alt Titles /datum/alt_title/sec_commander - title = "Security Commander" + title = JOB_ALT_SECURITY_COMMANDER /datum/alt_title/sec_chief - title = "Chief of Security" + title = JOB_ALT_CHIEF_OF_SECURITY ////////////////////////////////// // Warden ////////////////////////////////// /datum/job/warden - title = "Warden" + title = JOB_WARDEN flag = WARDEN departments = list(DEPARTMENT_SECURITY) sorting_order = 1 department_flag = ENGSEC - faction = "Station" + faction = FACTION_STATION total_positions = 1 spawn_positions = 1 - supervisors = "the Head of Security" + supervisors = "the " + JOB_HEAD_OF_SECURITY selection_color = "#601C1C" economic_modifier = 5 access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, access_maint_tunnels, access_morgue, access_external_airlocks) @@ -65,23 +65,23 @@ banned_job_species = list(SPECIES_ZADDAT, SPECIES_PROMETHEAN, SPECIES_TESHARI, SPECIES_DIONA) outfit_type = /decl/hierarchy/outfit/job/security/warden - job_description = "The Warden watches over the physical Security Department, making sure the Brig and Armoury are secure and in order at all times. They oversee \ - prisoners that have been processed and brigged, and are responsible for their well being. The Warden is also in charge of distributing \ - Armoury gear in a crisis, and retrieving it when the crisis has passed. In an emergency, the Warden may be called upon to direct the \ + job_description = "The " + JOB_WARDEN + " watches over the physical Security Department, making sure the Brig and Armoury are secure and in order at all times. They oversee \ + prisoners that have been processed and brigged, and are responsible for their well being. The " + JOB_WARDEN + " is also in charge of distributing \ + Armoury gear in a crisis, and retrieving it when the crisis has passed. In an emergency, the " + JOB_WARDEN + " may be called upon to direct the \ Security Department as a whole." ////////////////////////////////// // Detective ////////////////////////////////// /datum/job/detective - title = "Detective" + title = JOB_DETECTIVE flag = DETECTIVE departments = list(DEPARTMENT_SECURITY) department_flag = ENGSEC - faction = "Station" + faction = FACTION_STATION total_positions = 2 spawn_positions = 2 - supervisors = "the Head of Security" + supervisors = "the " + JOB_HEAD_OF_SECURITY selection_color = "#601C1C" access = list(access_security, access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_eva, access_external_airlocks, access_brig) //Vorestation edit - access_brig minimal_access = list(access_security, access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_eva, access_external_airlocks) @@ -90,28 +90,28 @@ banned_job_species = list(SPECIES_ZADDAT, SPECIES_PROMETHEAN, SPECIES_DIONA) outfit_type = /decl/hierarchy/outfit/job/security/detective - job_description = "A Detective works to help Security find criminals who have not properly been identified, through interviews and forensic work. \ + job_description = "A " + JOB_DETECTIVE + " works to help Security find criminals who have not properly been identified, through interviews and forensic work. \ For crimes only witnessed after the fact, or those with no survivors, they attempt to piece together what they can from pure evidence." - alt_titles = list("Forensic Technician" = /datum/alt_title/forensic_tech) + alt_titles = list(JOB_ALT_FORENSIC_TECHNICIAN = /datum/alt_title/forensic_tech) // Detective Alt Titles /datum/alt_title/forensic_tech - title = "Forensic Technician" - title_blurb = "A Forensic Technician works more with hard evidence and labwork than a Detective, but they share the purpose of solving crimes." + title = JOB_ALT_FORENSIC_TECHNICIAN + title_blurb = "A " + JOB_ALT_FORENSIC_TECHNICIAN + " works more with hard evidence and labwork than a " + JOB_DETECTIVE + ", but they share the purpose of solving crimes." title_outfit = /decl/hierarchy/outfit/job/security/detective/forensic ////////////////////////////////// // Security Officer ////////////////////////////////// /datum/job/officer - title = "Security Officer" + title = JOB_SECURITY_OFFICER flag = OFFICER departments = list(DEPARTMENT_SECURITY) department_flag = ENGSEC - faction = "Station" + faction = FACTION_STATION total_positions = 4 spawn_positions = 4 - supervisors = "the Head of Security" + supervisors = "the " + JOB_HEAD_OF_SECURITY selection_color = "#601C1C" economic_modifier = 4 access = list(access_security, access_eva, access_sec_doors, access_brig, access_maint_tunnels, access_morgue, access_external_airlocks) @@ -120,16 +120,16 @@ banned_job_species = list(SPECIES_ZADDAT, SPECIES_TESHARI, SPECIES_DIONA) outfit_type = /decl/hierarchy/outfit/job/security/officer - job_description = "A Security Officer is concerned with maintaining the safety and security of the station as a whole, dealing with external threats and \ - apprehending criminals. A Security Officer is responsible for the health, safety, and processing of any prisoner they arrest. \ + job_description = "A " + JOB_SECURITY_OFFICER + " is concerned with maintaining the safety and security of the station as a whole, dealing with external threats and \ + apprehending criminals. A " + JOB_SECURITY_OFFICER + " is responsible for the health, safety, and processing of any prisoner they arrest. \ No one is above the Law, not Security or Command." - alt_titles = list("Junior Officer" = /datum/alt_title/junior_officer) + alt_titles = list(JOB_ALT_JUNIOR_OFFICER = /datum/alt_title/junior_officer) min_age_by_species = list(SPECIES_PROMETHEAN = 3) // Security Officer Alt Titles /datum/alt_title/junior_officer - title = "Junior Officer" - title_blurb = "A Junior Officer is an inexperienced Security Officer. They likely have training, but not experience, and are frequently \ + title = JOB_ALT_JUNIOR_OFFICER + title_blurb = "A " + JOB_ALT_JUNIOR_OFFICER + " is an inexperienced " + JOB_SECURITY_OFFICER + ". They likely have training, but not experience, and are frequently \ paired off with a more senior co-worker. Junior Officers may also be expected to take over the boring duties of other Officers \ - including patrolling the station or maintaining specific posts." \ No newline at end of file + including patrolling the station or maintaining specific posts." diff --git a/code/game/jobs/job/security_vr.dm b/code/game/jobs/job/security_vr.dm index 8980381d6a..b7c196b334 100644 --- a/code/game/jobs/job/security_vr.dm +++ b/code/game/jobs/job/security_vr.dm @@ -11,10 +11,10 @@ access_forensics_lockers, access_morgue, access_maint_tunnels, access_all_personal_lockers, access_construction, access_heads, access_hos, access_RC_announce, access_keycard_auth, access_gateway, access_external_airlocks) - alt_titles = list("Security Commander" = /datum/alt_title/sec_commander, "Chief of Security" = /datum/alt_title/sec_chief, "Security Manager" = /datum/alt_title/security_manager) + alt_titles = list(JOB_ALT_SECURITY_COMMANDER = /datum/alt_title/sec_commander, JOB_ALT_CHIEF_OF_SECURITY = /datum/alt_title/sec_chief, JOB_ALT_SECURITY_MANAGER = /datum/alt_title/security_manager) /datum/alt_title/security_manager - title = "Security Manager" + title = JOB_ALT_SECURITY_MANAGER /datum/job/hos/get_request_reasons() return list("Wildlife management", "Forensic investigation", "Training crew", "Assembling expedition team") @@ -23,16 +23,16 @@ /datum/job/warden pto_type = PTO_SECURITY dept_time_required = 20 - alt_titles = list("Brig Sentry" = /datum/alt_title/brig_sentry, "Armory Superintendent" = /datum/alt_title/armory_superintendent, "Master-at-Arms" = /datum/alt_title/master_at_arms) + alt_titles = list(JOB_ALT_BRIG_SENTRY = /datum/alt_title/brig_sentry, JOB_ALT_ARMORY_SUPERINTENDENT = /datum/alt_title/armory_superintendent, JOB_ALT_MASTERATARMS = /datum/alt_title/master_at_arms) /datum/alt_title/brig_sentry - title = "Brig Sentry" + title = JOB_ALT_BRIG_SENTRY /datum/alt_title/armory_superintendent - title = "Armory Superintendent" + title = JOB_ALT_ARMORY_SUPERINTENDENT /datum/alt_title/master_at_arms - title = "Master-at-Arms" + title = JOB_ALT_MASTERATARMS /datum/job/warden/get_request_reasons() return list("Wildlife management") @@ -40,13 +40,13 @@ /datum/job/detective pto_type = PTO_SECURITY - alt_titles = list("Investigator" = /datum/alt_title/investigator, "Security Inspector" = /datum/alt_title/security_inspector, "Forensic Technician" = /datum/alt_title/forensic_tech) + alt_titles = list(JOB_ALT_INVESTIGATOR = /datum/alt_title/investigator, JOB_ALT_SECURITY_INSPECTOR = /datum/alt_title/security_inspector, JOB_ALT_FORENSIC_TECHNICIAN = /datum/alt_title/forensic_tech) /datum/alt_title/investigator - title = "Investigator" + title = JOB_ALT_INVESTIGATOR /datum/alt_title/security_inspector - title = "Security Inspector" + title = JOB_ALT_SECURITY_INSPECTOR /datum/job/detective/get_request_reasons() return list("Forensic investigation") @@ -56,20 +56,20 @@ total_positions = 5 spawn_positions = 5 pto_type = PTO_SECURITY - alt_titles = list("Patrol Officer" = /datum/alt_title/patrol_officer, "Security Guard" = /datum/alt_title/security_guard, - "Security Deputy" = /datum/alt_title/security_guard, "Junior Officer" = /datum/alt_title/junior_officer, "Security Contractor" = /datum/alt_title/security_contractor) + alt_titles = list(JOB_ALT_PATROL_OFFICER = /datum/alt_title/patrol_officer, JOB_ALT_SECURITY_GUARD = /datum/alt_title/security_guard, + JOB_ALT_SECURITY_DEPUTY = /datum/alt_title/security_guard, JOB_ALT_JUNIOR_OFFICER = /datum/alt_title/junior_officer, JOB_ALT_SECURITY_CONTRACTOR = /datum/alt_title/security_contractor) /datum/alt_title/patrol_officer - title = "Patrol Officer" + title = JOB_ALT_PATROL_OFFICER /datum/alt_title/security_guard - title = "Security Guard" + title = JOB_ALT_SECURITY_GUARD /datum/alt_title/security_deputy - title = "Security Deputy" + title = JOB_ALT_SECURITY_DEPUTY /datum/alt_title/security_contractor - title = "Security Contractor" + title = JOB_ALT_SECURITY_CONTRACTOR /datum/job/officer/get_request_reasons() return list("Wildlife management", "Assembling expedition team") diff --git a/code/game/jobs/job/silicon.dm b/code/game/jobs/job/silicon.dm index 06ec638ee3..6a5812af07 100644 --- a/code/game/jobs/job/silicon.dm +++ b/code/game/jobs/job/silicon.dm @@ -2,12 +2,12 @@ // AI ////////////////////////////////// /datum/job/ai - title = "AI" + title = JOB_AI flag = AI departments = list(DEPARTMENT_SYNTHETIC) sorting_order = 1 // Be above their borgs. department_flag = ENGSEC - faction = "Station" + faction = FACTION_STATION total_positions = 0 // Not used for AI, see is_position_available below and modules/mob/living/silicon/ai/latejoin.dm spawn_positions = 1 selection_color = "#3F823F" @@ -20,9 +20,9 @@ assignable = FALSE mob_type = JOB_SILICON_AI outfit_type = /decl/hierarchy/outfit/job/silicon/ai - job_description = "The AI oversees the operation of the station and its crew, but has no real authority over them. \ - The AI is required to follow its Laws, and Lawbound Synthetics that are linked to it are expected to follow \ - the AI's commands, and their own Laws." + job_description = "The " + JOB_AI + " oversees the operation of the station and its crew, but has no real authority over them. \ + The " + JOB_AI + " is required to follow its Laws, and Lawbound Synthetics that are linked to it are expected to follow \ + the " + JOB_AI + "'s commands, and their own Laws." // AI procs /datum/job/ai/equip(var/mob/living/carbon/human/H) @@ -41,14 +41,14 @@ // Cyborg ////////////////////////////////// /datum/job/cyborg - title = "Cyborg" + title = JOB_CYBORG flag = CYBORG departments = list(DEPARTMENT_SYNTHETIC) department_flag = ENGSEC - faction = "Station" + faction = FACTION_STATION total_positions = 2 spawn_positions = 2 - supervisors = "your Laws and the AI" //Nodrak + supervisors = "your Laws and the " + JOB_AI //Nodrak selection_color = "#254C25" minimal_player_age = 1 account_allowed = 0 @@ -57,18 +57,18 @@ assignable = FALSE mob_type = JOB_SILICON_ROBOT outfit_type = /decl/hierarchy/outfit/job/silicon/cyborg - job_description = "A Cyborg is a mobile station synthetic, piloted by a cybernetically preserved brain. It is considered a person, but is still required \ + job_description = "A " + JOB_CYBORG + " is a mobile station synthetic, piloted by a cybernetically preserved brain. It is considered a person, but is still required \ to follow its Laws." - alt_titles = list("Robot" = /datum/alt_title/robot, "Drone" = /datum/alt_title/drone) + alt_titles = list(JOB_ALT_ROBOT = /datum/alt_title/robot, JOB_ALT_DRONE = /datum/alt_title/drone) // Cyborg Alt Titles /datum/alt_title/robot - title = "Robot" + title = JOB_ALT_ROBOT title_blurb = "A Robot is a mobile station synthetic, piloted by an advanced piece of technology called a Positronic Brain. It is considered a person, \ legally, but is required to follow its Laws." /datum/alt_title/drone - title = "Drone" + title = JOB_ALT_DRONE title_blurb = "A Drone is a mobile station synthetic, piloted by a simple computer-based AI. As such, it is not a person, but rather an expensive and \ and important piece of station property, and is expected to follow its Laws." diff --git a/code/game/jobs/job/special_vr.dm b/code/game/jobs/job/special_vr.dm index 295a2ad278..da98eae50e 100644 --- a/code/game/jobs/job/special_vr.dm +++ b/code/game/jobs/job/special_vr.dm @@ -2,7 +2,7 @@ title = "CentCom Officer" departments = list("Central Command") department_accounts = list(DEPARTMENT_COMMAND, DEPARTMENT_ENGINEERING, DEPARTMENT_MEDICAL, DEPARTMENT_RESEARCH, DEPARTMENT_SECURITY, DEPARTMENT_CARGO, DEPARTMENT_PLANET, DEPARTMENT_CIVILIAN) - faction = "Station" + faction = FACTION_STATION total_positions = 2 spawn_positions = 1 supervisors = "company officials and Corporate Regulations" @@ -28,7 +28,7 @@ title = "Emergency Responder" departments = list("Central Command") department_accounts = list(DEPARTMENT_COMMAND, DEPARTMENT_ENGINEERING, DEPARTMENT_MEDICAL, DEPARTMENT_RESEARCH, DEPARTMENT_SECURITY, DEPARTMENT_CARGO, DEPARTMENT_PLANET, DEPARTMENT_CIVILIAN) - faction = "Station" + faction = FACTION_STATION total_positions = 2 spawn_positions = 1 supervisors = "company officials and Corporate Regulations" @@ -51,29 +51,29 @@ return get_all_accesses().Copy() /datum/job/clown - title = "Clown" + title = JOB_CLOWN flag = CLOWN departments = list(DEPARTMENT_CIVILIAN) department_flag = ENGSEC - faction = "Station" + faction = FACTION_STATION total_positions = 1 spawn_positions = 1 supervisors = "the spirit of laughter" selection_color = "#515151" economic_modifier = 1 - job_description = "A Clown is there to entertain the crew and keep high morale using various harmless pranks and ridiculous jokes!" + job_description = "A " + JOB_CLOWN + " is there to entertain the crew and keep high morale using various harmless pranks and ridiculous jokes!" whitelist_only = 1 latejoin_only = 0 requestable = FALSE outfit_type = /decl/hierarchy/outfit/job/clown pto_type = PTO_CIVILIAN - alt_titles = list("Jester" = /datum/alt_title/jester, "Fool" = /datum/alt_title/fool) + alt_titles = list(JOB_ALT_JESTER = /datum/alt_title/jester, JOB_ALT_FOOL = /datum/alt_title/fool) /datum/alt_title/jester - title = "Jester" + title = JOB_ALT_JESTER /datum/alt_title/fool - title = "Fool" + title = JOB_ALT_FOOL /datum/job/clown/get_access() if(config.assistant_maint) @@ -82,18 +82,18 @@ return list(access_entertainment, access_clown, access_tomfoolery) /datum/job/mime - title = "Mime" + title = JOB_MIME flag = MIME departments = list(DEPARTMENT_CIVILIAN) department_flag = ENGSEC - faction = "Station" + faction = FACTION_STATION total_positions = 1 spawn_positions = 1 supervisors = "the spirit of performance" selection_color = "#515151" economic_modifier = 1 - job_description = "A Mime is there to entertain the crew and keep high morale using unbelievable performances and acting skills!" - alt_titles = list("Poseur" = /datum/alt_title/poseur) + job_description = "A " + JOB_MIME + " is there to entertain the crew and keep high morale using unbelievable performances and acting skills!" + alt_titles = list(JOB_ALT_PASEUR = /datum/alt_title/poseur) whitelist_only = 1 latejoin_only = 0 requestable = FALSE @@ -101,7 +101,7 @@ pto_type = PTO_CIVILIAN /datum/alt_title/poseur - title = "Poseur" + title = JOB_ALT_PASEUR /datum/job/mime/get_access() if(config.assistant_maint) diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index 37b050e815..cad8192100 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -10,7 +10,7 @@ var/global/datum/controller/occupations/job_master //Cache of icons for job info window var/list/job_icons = list() -/datum/controller/occupations/proc/SetupOccupations(var/faction = "Station") +/datum/controller/occupations/proc/SetupOccupations(var/faction = FACTION_STATION) occupations = list() //var/list/all_jobs = typesof(/datum/job) var/list/all_jobs = list(/datum/job/assistant) | using_map.allowed_jobs @@ -127,7 +127,7 @@ var/global/datum/controller/occupations/job_master if(job.is_species_banned(player.client.prefs.species, player.client.prefs.organ_data["brain"]) == TRUE) continue - if(istype(job, GetJob(USELESS_JOB))) // We don't want to give him assistant, that's boring! //VOREStation Edit - Visitor not Assistant + if(istype(job, GetJob(JOB_ALT_VISITOR))) // We don't want to give him assistant, that's boring! //VOREStation Edit - Visitor not Assistant continue if(SSjob.is_job_in_department(job.title, DEPARTMENT_COMMAND)) //If you want a command position, select it! @@ -229,7 +229,7 @@ var/global/datum/controller/occupations/job_master //Holder for Triumvirate is stored in the ticker, this just processes it if(ticker && ticker.triai) for(var/datum/job/A in occupations) - if(A.title == "AI") + if(A.title == JOB_AI) A.spawn_positions = 3 break @@ -253,7 +253,7 @@ var/global/datum/controller/occupations/job_master Debug("AC1, Candidates: [assistant_candidates.len]") for(var/mob/new_player/player in assistant_candidates) Debug("AC1 pass, Player: [player]") - AssignRole(player, USELESS_JOB) //VOREStation Edit - Visitor not Assistant + AssignRole(player, JOB_ALT_VISITOR) //VOREStation Edit - Visitor not Assistant assistant_candidates -= player Debug("DO, AC1 end") @@ -340,7 +340,7 @@ var/global/datum/controller/occupations/job_master for(var/mob/new_player/player in unassigned) if(player.client.prefs.alternate_option == BE_ASSISTANT) Debug("AC2 Assistant located, Player: [player]") - AssignRole(player, USELESS_JOB) //VOREStation Edit - Visitor not Assistant + AssignRole(player, JOB_ALT_VISITOR) //VOREStation Edit - Visitor not Assistant //For ones returning to lobby for(var/mob/new_player/player in unassigned) @@ -495,9 +495,9 @@ var/global/datum/controller/occupations/job_master return H // TWEET PEEP - if(rank == "Site Manager") + if(rank == JOB_SITE_MANAGER) var/sound/announce_sound = (ticker.current_state <= GAME_STATE_SETTING_UP) ? null : sound('sound/misc/boatswain.ogg', volume=20) - captain_announcement.Announce("All hands, [alt_title ? alt_title : "Site Manager"] [H.real_name] on deck!", new_sound = announce_sound, zlevel = H.z) + captain_announcement.Announce("All hands, [alt_title ? alt_title : JOB_SITE_MANAGER] [H.real_name] on deck!", new_sound = announce_sound, zlevel = H.z) //Deferred item spawning. if(spawn_in_storage && spawn_in_storage.len) diff --git a/code/game/jobs/whitelist_vr.dm b/code/game/jobs/whitelist_vr.dm index 058a9c0dc1..4088a0a505 100644 --- a/code/game/jobs/whitelist_vr.dm +++ b/code/game/jobs/whitelist_vr.dm @@ -15,7 +15,7 @@ var/list/job_whitelist = list() var/datum/job/job = job_master.GetJob(rank) if(!job.whitelist_only) return 1 - if(rank == USELESS_JOB) //VOREStation Edit - Visitor not Assistant + if(rank == JOB_ALT_VISITOR) //VOREStation Edit - Visitor not Assistant return 1 if(check_rights(R_ADMIN, 0)) return 1 @@ -28,4 +28,3 @@ var/list/job_whitelist = list() if(findtext(s,"[M.ckey] - All")) return 1 return 0 - diff --git a/code/game/machinery/computer/ai_core.dm b/code/game/machinery/computer/ai_core.dm index 2caf8037b6..656a7e1488 100644 --- a/code/game/machinery/computer/ai_core.dm +++ b/code/game/machinery/computer/ai_core.dm @@ -138,7 +138,7 @@ to_chat(user, "Sticking a dead [P] into the frame would sort of defeat the purpose.") return - if(jobban_isbanned(M.brainmob, "AI")) + if(jobban_isbanned(M.brainmob, JOB_AI)) to_chat(user, "This [P] does not seem to fit.") return diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index 46627c92cc..ca4d737c08 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -59,7 +59,7 @@ if(!istype(id_card)) return ..() - if(!scan && (access_change_ids in id_card.access) && (user.unEquip(id_card) || (id_card.loc == user && istype(user,/mob/living/silicon/robot)))) //Grippers. Again. ~Mechoid + if(!scan && (access_change_ids in id_card.GetAccess()) && (user.unEquip(id_card) || (id_card.loc == user && istype(user,/mob/living/silicon/robot)))) //Grippers. Again. ~Mechoid user.drop_item() id_card.forceMove(src) scan = id_card @@ -129,7 +129,7 @@ all_centcom_access.Add(list(list( "desc" = replacetext(get_centcom_access_desc(access), " ", " "), "ref" = access, - "allowed" = (access in modify.access) ? 1 : 0))) + "allowed" = (access in modify.GetAccess()) ? 1 : 0))) else if(modify) for(var/i in ACCESS_REGION_SECURITY to ACCESS_REGION_SUPPLY) var/list/accesses = list() @@ -138,7 +138,7 @@ accesses.Add(list(list( "desc" = replacetext(get_access_desc(access), " ", " "), "ref" = access, - "allowed" = (access in modify.access) ? 1 : 0))) + "allowed" = (access in modify.GetAccess()) ? 1 : 0))) regions.Add(list(list( "name" = get_region_accesses_name(i), diff --git a/code/game/machinery/computer/guestpass.dm b/code/game/machinery/computer/guestpass.dm index 18331e43ef..d1120d8424 100644 --- a/code/game/machinery/computer/guestpass.dm +++ b/code/game/machinery/computer/guestpass.dm @@ -165,9 +165,9 @@ var/list/area_list = list() data["access"] = null - if(giver && giver.access) - data["access"] = giver.access - for (var/A in giver.access) + if(giver && giver.GetAccess()) + data["access"] = giver.GetAccess() + for (var/A in giver.GetAccess()) if(A in accesses) area_list.Add(list(list("area" = A, "area_name" = get_access_desc(A), "on" = 1))) else @@ -212,7 +212,7 @@ if(A in accesses) accesses.Remove(A) else - if(A in giver.access) //Let's make sure the ID card actually has the access. + if(A in giver.GetAccess()) //Let's make sure the ID card actually has the access. accesses.Add(A) else to_chat(usr, "Invalid selection, please consult technical support if there are any issues.") diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index 9aca9d5614..d0607d28f6 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -236,7 +236,7 @@ rank = scan.assignment else if(login_type == LOGIN_TYPE_AI && isAI(usr)) authenticated = usr.name - rank = "AI" + rank = JOB_AI else if(login_type == LOGIN_TYPE_ROBOT && isrobot(usr)) authenticated = usr.name var/mob/living/silicon/robot/R = usr diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 4b82f94860..a64c883d7f 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -221,7 +221,7 @@ rank = scan.assignment else if(login_type == LOGIN_TYPE_AI && isAI(usr)) authenticated = usr.name - rank = "AI" + rank = JOB_AI else if(login_type == LOGIN_TYPE_ROBOT && isrobot(usr)) authenticated = usr.name var/mob/living/silicon/robot/R = usr diff --git a/code/game/machinery/computer/skills.dm b/code/game/machinery/computer/skills.dm index 2b104e4e70..4938158e15 100644 --- a/code/game/machinery/computer/skills.dm +++ b/code/game/machinery/computer/skills.dm @@ -179,7 +179,7 @@ rank = scan.assignment else if(login_type == LOGIN_TYPE_AI && isAI(usr)) authenticated = usr.name - rank = "AI" + rank = JOB_AI else if(login_type == LOGIN_TYPE_ROBOT && isrobot(usr)) authenticated = usr.name var/mob/living/silicon/robot/R = usr diff --git a/code/game/machinery/computer/specops_shuttle.dm b/code/game/machinery/computer/specops_shuttle.dm index c936640310..259d8fa1e6 100644 --- a/code/game/machinery/computer/specops_shuttle.dm +++ b/code/game/machinery/computer/specops_shuttle.dm @@ -24,13 +24,13 @@ var/specops_shuttle_timeleft = 0 var/specops_shuttle_timereset = 0 /proc/specops_return() - var/obj/item/radio/intercom/announcer = new /obj/item/radio/intercom(null)//We need a fake AI to announce some stuff below. Otherwise it will be wonky. - announcer.config(list("Response Team" = 0)) + var/obj/item/device/radio/intercom/announcer = new /obj/item/device/radio/intercom(null)//We need a fake AI to announce some stuff below. Otherwise it will be wonky. + announcer.config(list(CHANNEL_RESPONSE_TEAM = 0)) var/message_tracker[] = list(0,1,2,3,5,10,30,45)//Create a a list with potential time values. var/message = "\"THE SPECIAL OPERATIONS SHUTTLE IS PREPARING TO RETURN\""//Initial message shown. if(announcer) - announcer.autosay(message, "A.L.I.C.E.", "Response Team") + announcer.autosay(message, "A.L.I.C.E.", CHANNEL_RESPONSE_TEAM) while(specops_shuttle_time - world.timeofday > 0) var/ticksleft = specops_shuttle_time - world.timeofday @@ -46,7 +46,7 @@ var/specops_shuttle_timeleft = 0 message = "\"ALERT: [rounded_time_left] SECOND[(rounded_time_left!=1)?"S":""] REMAIN\"" if(rounded_time_left==0) message = "\"ALERT: TAKEOFF\"" - announcer.autosay(message, "A.L.I.C.E.", "Response Team") + announcer.autosay(message, "A.L.I.C.E.", CHANNEL_RESPONSE_TEAM) message_tracker -= rounded_time_left//Remove the number from the list so it won't be called again next cycle. //Should call all the numbers but lag could mean some issues. Oh well. Not much I can do about that. @@ -99,15 +99,15 @@ var/specops_shuttle_timeleft = 0 /proc/specops_process() var/area/centcom/specops/special_ops = locate()//Where is the specops area located? - var/obj/item/radio/intercom/announcer = new /obj/item/radio/intercom(null)//We need a fake AI to announce some stuff below. Otherwise it will be wonky. - announcer.config(list("Response Team" = 0)) + var/obj/item/device/radio/intercom/announcer = new /obj/item/device/radio/intercom(null)//We need a fake AI to announce some stuff below. Otherwise it will be wonky. + announcer.config(list(CHANNEL_RESPONSE_TEAM = 0)) var/message_tracker[] = list(0,1,2,3,5,10,30,45)//Create a a list with potential time values. var/message = "\"THE SPECIAL OPERATIONS SHUTTLE IS PREPARING FOR LAUNCH\""//Initial message shown. if(announcer) - announcer.autosay(message, "A.L.I.C.E.", "Response Team") + announcer.autosay(message, "A.L.I.C.E.", CHANNEL_RESPONSE_TEAM) // message = "ARMORED SQUAD TAKE YOUR POSITION ON GRAVITY LAUNCH PAD" -// announcer.autosay(message, "A.L.I.C.E.", "Response Team") +// announcer.autosay(message, "A.L.I.C.E.", CHANNEL_RESPONSE_TEAM) while(specops_shuttle_time - world.timeofday > 0) var/ticksleft = specops_shuttle_time - world.timeofday @@ -123,7 +123,7 @@ var/specops_shuttle_timeleft = 0 message = "\"ALERT: [rounded_time_left] SECOND[(rounded_time_left!=1)?"S":""] REMAIN\"" if(rounded_time_left==0) message = "\"ALERT: TAKEOFF\"" - announcer.autosay(message, "A.L.I.C.E.", "Response Team") + announcer.autosay(message, "A.L.I.C.E.", CHANNEL_RESPONSE_TEAM) message_tracker -= rounded_time_left//Remove the number from the list so it won't be called again next cycle. //Should call all the numbers but lag could mean some issues. Oh well. Not much I can do about that. diff --git a/code/game/machinery/computer/station_alert.dm b/code/game/machinery/computer/station_alert.dm index fe9fe7533f..8b767acb62 100644 --- a/code/game/machinery/computer/station_alert.dm +++ b/code/game/machinery/computer/station_alert.dm @@ -19,7 +19,7 @@ /obj/machinery/computer/station_alert/Initialize() alarm_monitor = new monitor_type(src) - alarm_monitor.register_alarm(src, "update_icon") + alarm_monitor.register_alarm(src, "update_console_icon") . = ..() /obj/machinery/computer/station_alert/Destroy() @@ -44,11 +44,13 @@ /obj/machinery/computer/station_alert/tgui_interact(mob/user) alarm_monitor.tgui_interact(user) -/obj/machinery/computer/station_alert/update_icon() +/obj/machinery/computer/station_alert/proc/update_console_icon() if(!(stat & (BROKEN|NOPOWER))) + var/last_icon = icon_screen var/list/alarms = alarm_monitor ? alarm_monitor.major_alarms() : list() if(alarms.len) icon_screen = "alert:2" else icon_screen = initial(icon_screen) - ..() + if(last_icon != icon_screen) + update_icon() diff --git a/code/game/machinery/computer3/computers/card.dm b/code/game/machinery/computer3/computers/card.dm index fd55ef97a8..47ecbdc280 100644 --- a/code/game/machinery/computer3/computers/card.dm +++ b/code/game/machinery/computer3/computers/card.dm @@ -36,7 +36,7 @@ jobs_all += "" jobs_all += ""//Site Manager in special because he is head of heads ~Intercross21 - jobs_all += "" + jobs_all += "" jobs_all += "" counter = 0 @@ -123,7 +123,7 @@ for(var/i = 1; i <= 7; i++) accesses += "" counter = 0 - if(jobban_isbanned(M, "Internal Affairs Agent")) - jobs += "" + if(jobban_isbanned(M, JOB_INTERNAL_AFFAIRS_AGENT)) + jobs += "" else - jobs += "" + jobs += "" jobs += "
Command
SpecialSite Manager"+JOB_SITE_MANAGER+"Custom" for(var/A in get_region_accesses(i)) - if(A in writer.access) + if(A in writer.GetAccess()) accesses += topic_link(src,"access=[A]","[replacetext(get_access_desc(A), " ", " ")]") + " " else accesses += topic_link(src,"access=[A]",replacetext(get_access_desc(A), " ", " ")) + " " @@ -189,7 +189,7 @@ // These are here partly in order to be overwritten by the centcom card computer code /datum/file/program/card_comp/proc/authenticate() - if(access_change_ids in reader.access) + if(access_change_ids in reader.GetAccess()) return 1 if(istype(usr,/mob/living/silicon/ai)) return 1 @@ -335,13 +335,13 @@ /datum/file/program/card_comp/centcom/accessblock() var/accesses = "
[using_map.boss_name]:
" for(var/A in get_all_centcom_access()) - if(A in writer.access) + if(A in writer.GetAccess()) accesses += topic_link(src,"access=[A]","[replacetext(get_centcom_access_desc(A), " ", " ")]") + " " else accesses += topic_link(src,"access=[A]",replacetext(get_centcom_access_desc(A), " ", " ")) + " " return accesses /datum/file/program/card_comp/centcom/authenticate() - if(access_cent_captain in reader.access) + if(access_cent_captain in reader.GetAccess()) return 1 return 0 diff --git a/code/game/machinery/doors/airlock_electronics.dm b/code/game/machinery/doors/airlock_electronics.dm index 1c4c7a89b6..9b84376f9a 100644 --- a/code/game/machinery/doors/airlock_electronics.dm +++ b/code/game/machinery/doors/airlock_electronics.dm @@ -131,16 +131,16 @@ id = R.idcard // Nothing - if(!id || !id.access) + if(!id || !id.GetAccess()) return list() - + // Has engineer access, can put any access - else if(has_access(null, apply_any_access, id.access)) + else if(has_access(null, apply_any_access, id.GetAccess())) return get_all_station_access() - + // Not an engineer, can only pick your own accesses to program else - return id.access + return id.GetAccess() /obj/item/airlock_electronics/secure name = "secure airlock electronics" diff --git a/code/game/machinery/gear_dispenser.dm b/code/game/machinery/gear_dispenser.dm index 096b1924fa..f880269df1 100644 --- a/code/game/machinery/gear_dispenser.dm +++ b/code/game/machinery/gear_dispenser.dm @@ -513,7 +513,7 @@ var/list/dispenser_presets = list() req_one_access = list(access_atmospherics) /datum/gear_disp/voidsuit/station/paramedic - name = "Paramedic (Voidsuit)" + name = JOB_PARAMEDIC + " (Voidsuit)" voidsuit_type = /obj/item/clothing/suit/space/void/medical/emt voidhelmet_type = /obj/item/clothing/head/helmet/space/void/medical/emt refit = TRUE diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index 7d3bb3cd5e..6d3d0c3324 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -124,7 +124,7 @@ req_one_access = list(access_syndicate) enabled = TRUE check_all = TRUE - faction = "syndicate" // Make sure this equals the faction that the mobs in the POI have or they will fight each other. + faction = FACTION_SYNDICATE // Make sure this equals the faction that the mobs in the POI have or they will fight each other. /obj/machinery/porta_turret/ai_defense name = "defense turret" diff --git a/code/game/machinery/requests_console_vr.dm b/code/game/machinery/requests_console_vr.dm index b001f21891..7f745b46db 100644 --- a/code/game/machinery/requests_console_vr.dm +++ b/code/game/machinery/requests_console_vr.dm @@ -44,8 +44,8 @@ departmentType = RC_ASSIST|RC_SUPPLY /obj/machinery/requests_console/preset/janitor - name = "Janitor RC" - department = "Janitorial" + name = JOB_JANITOR + " RC" + department = JOB_JANITOR + "ial" departmentType = RC_ASSIST /obj/machinery/requests_console/preset/bridge @@ -57,26 +57,26 @@ // Heads /obj/machinery/requests_console/preset/ce - name = "Chief Engineer RC" - department = "Chief Engineer's Desk" + name = JOB_CHIEF_ENGINEER + " RC" + department = JOB_CHIEF_ENGINEER + "'s Desk" departmentType = RC_ASSIST|RC_INFO announcementConsole = 1 /obj/machinery/requests_console/preset/cmo - name = "Chief Medical Officer RC" - department = "Chief Medical Officer's Desk" + name = JOB_CHIEF_MEDICAL_OFFICER + " RC" + department = JOB_CHIEF_MEDICAL_OFFICER + "'s Desk" departmentType = RC_ASSIST|RC_INFO announcementConsole = 1 /obj/machinery/requests_console/preset/hos - name = "Head of Security RC" - department = "Head of Security's Desk" + name = JOB_HEAD_OF_SECURITY + " RC" + department = JOB_HEAD_OF_SECURITY + "'s Desk" departmentType = RC_ASSIST|RC_INFO announcementConsole = 1 /obj/machinery/requests_console/preset/rd - name = "Research Director RC" - department = "Research Director's Desk" + name = JOB_RESEARCH_DIRECTOR + " RC" + department = JOB_RESEARCH_DIRECTOR +"'s Desk" departmentType = RC_ASSIST|RC_INFO announcementConsole = 1 @@ -87,6 +87,6 @@ announcementConsole = 1 /obj/machinery/requests_console/preset/ai - name = "AI RC" - department = "AI" + name = JOB_AI + " RC" + department = JOB_AI departmentType = RC_ASSIST|RC_INFO diff --git a/code/game/machinery/suit_storage/suit_cycler_units.dm b/code/game/machinery/suit_storage/suit_cycler_units.dm index 82134bc94b..f77cb6d4d1 100644 --- a/code/game/machinery/suit_storage/suit_cycler_units.dm +++ b/code/game/machinery/suit_storage/suit_cycler_units.dm @@ -109,4 +109,4 @@ model_text = "Vintage Master" limit_departments = list( /datum/suit_cycler_choice/department/vintage - ) \ No newline at end of file + ) diff --git a/code/game/machinery/syndicatebeacon.dm b/code/game/machinery/syndicatebeacon.dm index 2a86972c2c..ca479f8bcc 100644 --- a/code/game/machinery/syndicatebeacon.dm +++ b/code/game/machinery/syndicatebeacon.dm @@ -43,7 +43,7 @@ updateUsrDialog() return var/mob/M = locate(href_list["traitormob"]) - if(M.mind.special_role || jobban_isbanned(M, "Syndicate")) + if(M.mind.special_role || jobban_isbanned(M, JOB_SYNDICATE)) temptext = "We have no need for you at this time. Have a pleasant day.
" updateUsrDialog() return diff --git a/code/game/machinery/syndicatebeacon_vr.dm b/code/game/machinery/syndicatebeacon_vr.dm index 30dd61458c..d340cdf57f 100644 --- a/code/game/machinery/syndicatebeacon_vr.dm +++ b/code/game/machinery/syndicatebeacon_vr.dm @@ -25,7 +25,7 @@ updateUsrDialog() return var/mob/M = locate(href_list["traitormob"]) - if(M.mind.tcrystals > 0 || jobban_isbanned(M, "Syndicate")) + if(M.mind.tcrystals > 0 || jobban_isbanned(M, JOB_SYNDICATE)) temptext = "We have no need for you at this time. Have a pleasant day.
" updateUsrDialog() return diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 09499c571a..c480dd6e6b 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -2137,15 +2137,15 @@ if(istype(I, /obj/item/pda)) var/obj/item/pda/pda = I I = pda.id - if(!istype(I) || !I.access) //not ID or no access + if(!istype(I) || !I.GetAccess()) //not ID or no access return 0 if(access_list==src.operation_req_access) for(var/req in access_list) - if(!(req in I.access)) //doesn't have this access + if(!(req in I.GetAccess())) //doesn't have this access return 0 else if(access_list==src.internals_req_access) for(var/req in access_list) - if(req in I.access) + if(req in I.GetAccess()) return 1 return 1 @@ -2379,7 +2379,7 @@ for(var/a in operation_req_access) output += "[get_access_desc(a)] - Delete
" output += "

Following keycodes were detected on portable device:

" - for(var/a in id_card.access) + for(var/a in id_card.GetAccess()) if(a in operation_req_access) continue var/a_name = get_access_desc(a) if(!a_name) continue //there's some strange access without a name diff --git a/code/game/objects/effects/job_start_landmarks.dm b/code/game/objects/effects/job_start_landmarks.dm index 93abb2bc0d..fcd8b79f83 100644 --- a/code/game/objects/effects/job_start_landmarks.dm +++ b/code/game/objects/effects/job_start_landmarks.dm @@ -1,98 +1,98 @@ /obj/effect/landmark/start/captain - name = "Site Manager" + name = JOB_SITE_MANAGER /obj/effect/landmark/start/hop - name = "Head of Personnel" + name = JOB_HEAD_OF_PERSONNEL /obj/effect/landmark/start/commandsecretary - name = "Command Secretary" + name = JOB_COMMAND_SECRETARY /obj/effect/landmark/start/hos - name = "Head of Security" + name = JOB_HEAD_OF_SECURITY /obj/effect/landmark/start/warden - name = "Warden" + name = JOB_WARDEN /obj/effect/landmark/start/detective - name = "Detective" + name = JOB_DETECTIVE /obj/effect/landmark/start/security - name = "Security Officer" + name = JOB_SECURITY_OFFICER /obj/effect/landmark/start/ce - name = "Chief Engineer" + name = JOB_CHIEF_ENGINEER /obj/effect/landmark/start/atmostech - name = "Atmospheric Technician" + name = JOB_ATMOSPHERIC_TECHNICIAN /obj/effect/landmark/start/engineer - name = "Engineer" + name = JOB_ENGINEER /obj/effect/landmark/start/cmo - name = "Chief Medical Officer" + name = JOB_CHIEF_MEDICAL_OFFICER /obj/effect/landmark/start/chemist - name = "Chemist" + name = JOB_CHEMIST /obj/effect/landmark/start/medical - name = "Medical Doctor" + name = JOB_MEDICAL_DOCTOR /obj/effect/landmark/start/paramedic - name = "Paramedic" + name = JOB_PARAMEDIC /obj/effect/landmark/start/psych - name = "Psychiatrist" + name = JOB_PSYCHIATRIST /obj/effect/landmark/start/rd - name = "Research Director" + name = JOB_RESEARCH_DIRECTOR /obj/effect/landmark/start/roboticist - name = "Roboticist" + name = JOB_ROBOTICIST /obj/effect/landmark/start/scientist - name = "Scientist" + name = JOB_SCIENTIST /obj/effect/landmark/start/xenobio - name = "Xenobiologist" + name = JOB_XENOBIOLOGIST /obj/effect/landmark/start/xenobot - name = "Xenobotanist" + name = JOB_XENOBOTANIST /obj/effect/landmark/start/qm - name = "Quartermaster" + name = JOB_QUARTERMASTER /obj/effect/landmark/start/cargo - name = "Cargo Technician" + name = JOB_CARGO_TECHNICIAN /obj/effect/landmark/start/miner - name = "Shaft Miner" + name = JOB_SHAFT_MINER /* //VOREStation Removal /obj/effect/landmark/start/pf - name = "Pathfinder" + name = JOB_PATHFINDER /obj/effect/landmark/start/explorer - name = "Explorer" + name = JOB_EXPLORER /obj/effect/landmark/start/fieldmedic - name = "Field Medic" + name = JOB_FIELD_MEDIC */ /obj/effect/landmark/start/bartender - name = "Bartender" + name = JOB_BARTENDER /obj/effect/landmark/start/botanist - name = "Botanist" + name = JOB_BOTANIST /obj/effect/landmark/start/chaplain - name = "Chaplain" + name = JOB_CHAPLAIN /obj/effect/landmark/start/chef - name = "Chef" + name = JOB_CHEF /obj/effect/landmark/start/clown - name = "Clown" + name = JOB_CLOWN /obj/effect/landmark/start/entertainer - name = "Entertainer" + name = JOB_ENTERTAINER /obj/effect/landmark/start/entrepreneur - name = "Entrepreneur" + name = JOB_ENTREPRENEUR /obj/effect/landmark/start/intern - name = "Intern" + name = JOB_INTERN /obj/effect/landmark/start/iaa - name = "Internal Affairs Agent" + name = JOB_INTERNAL_AFFAIRS_AGENT /obj/effect/landmark/start/janitor - name = "Janitor" + name = JOB_JANITOR /obj/effect/landmark/start/librarian - name = "Librarian" + name = JOB_LIBRARIAN /obj/effect/landmark/start/mime - name = "Mime" + name = JOB_MIME /obj/effect/landmark/start/pilot - name = "Pilot" + name = JOB_PILOT /obj/effect/landmark/start/visitor - name = "Visitor" + name = JOB_ALT_VISITOR /obj/effect/landmark/start/ai - name = "AI" + name = JOB_AI /obj/effect/landmark/start/cyborg - name = "Cyborg" + name = JOB_CYBORG /obj/effect/landmark/start/taloncap - name = "Talon Captain" + name = JOB_TALON_CAPTAIN /obj/effect/landmark/start/talondoc - name = "Talon Doctor" + name = JOB_TALON_DOCTOR /obj/effect/landmark/start/taloneng - name = "Talon Engineer" + name = JOB_TALON_ENGINEER /obj/effect/landmark/start/talonguard - name = "Talon Guard" + name = JOB_TALON_GUARD /obj/effect/landmark/start/talonpilot - name = "Talon Pilot" + name = JOB_TALON_PILOT /obj/effect/landmark/start/talonminer - name = "Talon Miner" + name = JOB_TALON_MINER diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index e881f37ab2..da93166802 100644 --- a/code/game/objects/effects/spiders.dm +++ b/code/game/objects/effects/spiders.dm @@ -96,7 +96,7 @@ var/spiders_min = 6 var/spiders_max = 24 var/spider_type = /obj/effect/spider/spiderling - var/faction = "spiders" + var/faction = FACTION_SPIDERS /obj/effect/spider/eggcluster/Initialize() pixel_x = rand(3,-3) @@ -155,7 +155,7 @@ var/obj/machinery/atmospherics/unary/vent_pump/entry_vent var/travelling_in_vent = 0 var/list/grow_as = list(/mob/living/simple_mob/animal/giant_spider, /mob/living/simple_mob/animal/giant_spider/hunter) - var/faction = "spiders" + var/faction = FACTION_SPIDERS var/stunted = FALSE diff --git a/code/game/objects/items/devices/communicator/phone.dm b/code/game/objects/items/devices/communicator/phone.dm index 49a7bdeab3..07bd4d0c49 100644 --- a/code/game/objects/items/devices/communicator/phone.dm +++ b/code/game/objects/items/devices/communicator/phone.dm @@ -105,7 +105,7 @@ to_chat(new_voice, "If you want to end the call, use the 'Hang Up' verb. The other person can also hang up at any time.") to_chat(new_voice, "Remember, your character does not know anything you've learned from observing!") if(new_voice.mind) - new_voice.mind.assigned_role = "Disembodied Voice" + new_voice.mind.assigned_role = JOB_DISEMBODIED_VOICE if(user) to_chat(user, "[icon2html(src,new_voice.client)] Your communicator is now connected to [candidate]'s communicator.") diff --git a/code/game/objects/items/devices/denecrotizer_vr.dm b/code/game/objects/items/devices/denecrotizer_vr.dm index 9ac6976603..053e3a5ff6 100644 --- a/code/game/objects/items/devices/denecrotizer_vr.dm +++ b/code/game/objects/items/devices/denecrotizer_vr.dm @@ -43,7 +43,7 @@ /mob/living/simple_mob/attack_ghost(mob/observer/dead/user as mob) if(!ghostjoin) return ..() - if(jobban_isbanned(user, "GhostRoles")) + if(jobban_isbanned(user, JOB_GHOSTROLES)) to_chat(user, "You cannot inhabit this creature because you are banned from playing ghost roles.") return if(!evaluate_ghost_join(user)) diff --git a/code/game/objects/items/devices/holowarrant.dm b/code/game/objects/items/devices/holowarrant.dm index b99bb0da25..d01b842fc1 100644 --- a/code/game/objects/items/devices/holowarrant.dm +++ b/code/game/objects/items/devices/holowarrant.dm @@ -38,8 +38,8 @@ /obj/item/holowarrant/attackby(obj/item/W, mob/user) if(active) - var/obj/item/card/id/I = W.GetIdCard() - if(access_hos in I.access) // VOREStation edit + var/obj/item/weapon/card/id/I = W.GetIdCard() + if(access_hos in I.GetAccess()) // VOREStation edit var/choice = tgui_alert(user, "Would you like to authorize this warrant?","Warrant authorization",list("Yes","No")) if(choice == "Yes") active.fields["auth"] = "[I.registered_name] - [I.assignment ? I.assignment : "(Unknown)"]" diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm index f2e1db115d..0f4276152c 100644 --- a/code/game/objects/items/devices/paicard.dm +++ b/code/game/objects/items/devices/paicard.dm @@ -1,18 +1,18 @@ var/global/list/radio_channels_by_freq = list( - num2text(PUB_FREQ) = "Common", - num2text(AI_FREQ) = "AI Private", - num2text(ENT_FREQ) = "Entertainment", - num2text(ERT_FREQ) = "Response Team", - num2text(COMM_FREQ)= "Command", - num2text(ENG_FREQ) = "Engineering", - num2text(MED_FREQ) = "Medical", - num2text(MED_I_FREQ)="Medical(I)", - num2text(SEC_FREQ) = "Security", - num2text(SEC_I_FREQ)="Security(I)", - num2text(SCI_FREQ) = "Science", - num2text(SUP_FREQ) = "Supply", - num2text(SRV_FREQ) = "Service", - num2text(EXP_FREQ) = "Away Team" + num2text(PUB_FREQ) = CHANNEL_COMMON, + num2text(AI_FREQ) = CHANNEL_AI_PRIVATE, + num2text(ENT_FREQ) = CHANNEL_ENTERTAINMENT, + num2text(ERT_FREQ) = CHANNEL_RESPONSE_TEAM, + num2text(COMM_FREQ)= CHANNEL_COMMAND, + num2text(ENG_FREQ) = CHANNEL_ENGINEERING, + num2text(MED_FREQ) = CHANNEL_MEDICAL, + num2text(MED_I_FREQ)=CHANNEL_MEDICAL_1, + num2text(SEC_FREQ) = CHANNEL_SECURITY, + num2text(SEC_I_FREQ)=CHANNEL_SECURITY_1, + num2text(SCI_FREQ) = CHANNEL_SCIENCE, + num2text(SUP_FREQ) = CHANNEL_SUPPLY, + num2text(SRV_FREQ) = CHANNEL_SERVICE, + num2text(EXP_FREQ) = CHANNEL_EXPLORATION ) GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/paicard) @@ -67,7 +67,7 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/paicard) else if(time_till_respawn) // Nonzero time to respawn to_chat(usr, "You can't do that yet! You died too recently. You need to wait another [round(time_till_respawn/10/60, 0.1)] minutes.") return - if(jobban_isbanned(usr, "pAI")) + if(jobban_isbanned(usr, JOB_PAI)) to_chat(usr,"You cannot join a pAI card when you are banned from playing as a pAI.") return diff --git a/code/game/objects/items/devices/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm index 15fec0eb9f..40808a0485 100644 --- a/code/game/objects/items/devices/radio/encryptionkey.dm +++ b/code/game/objects/items/devices/radio/encryptionkey.dm @@ -15,13 +15,13 @@ /obj/item/encryptionkey/syndicate icon_state = "syn_cypherkey" - channels = list("Mercenary" = 1) + channels = list(CHANNEL_MERCENARY = 1) origin_tech = list(TECH_ILLEGAL = 3) syndie = 1//Signifies that it de-crypts Syndicate transmissions /obj/item/encryptionkey/raider icon_state = "cypherkey" - channels = list("Raider" = 1) + channels = list(CHANNEL_RAIDER = 1) origin_tech = list(TECH_ILLEGAL = 2) syndie = 1 @@ -33,73 +33,73 @@ /obj/item/encryptionkey/headset_sec name = "security radio encryption key" icon_state = "sec_cypherkey" - channels = list("Security" = 1) + channels = list(CHANNEL_SECURITY = 1) /obj/item/encryptionkey/headset_eng name = "engineering radio encryption key" icon_state = "eng_cypherkey" - channels = list("Engineering" = 1) + channels = list(CHANNEL_ENGINEERING = 1) /obj/item/encryptionkey/headset_rob name = "robotics radio encryption key" icon_state = "rob_cypherkey" - channels = list("Engineering" = 1, "Science" = 1) + channels = list(CHANNEL_ENGINEERING = 1, CHANNEL_SCIENCE = 1) /obj/item/encryptionkey/headset_med name = "medical radio encryption key" icon_state = "med_cypherkey" - channels = list("Medical" = 1) + channels = list(CHANNEL_MEDICAL = 1) /obj/item/encryptionkey/headset_sci name = "science radio encryption key" icon_state = "sci_cypherkey" - channels = list("Science" = 1) + channels = list(CHANNEL_SCIENCE = 1) /obj/item/encryptionkey/headset_medsci name = "medical research radio encryption key" icon_state = "medsci_cypherkey" - channels = list("Medical" = 1, "Science" = 1) + channels = list(CHANNEL_MEDICAL = 1, CHANNEL_SCIENCE = 1) /obj/item/encryptionkey/headset_com name = "command radio encryption key" icon_state = "com_cypherkey" - channels = list("Command" = 1) + channels = list(CHANNEL_COMMAND = 1) /obj/item/encryptionkey/heads/captain name = "site manager's encryption key" icon_state = "cap_cypherkey" - channels = list("Command" = 1, "Security" = 1, "Engineering" = 1, "Science" = 1, "Medical" = 1, "Supply" = 1, "Service" = 1) + channels = list(CHANNEL_COMMAND = 1, CHANNEL_SECURITY = 1, CHANNEL_ENGINEERING = 1, CHANNEL_SCIENCE = 1, CHANNEL_MEDICAL = 1, CHANNEL_SUPPLY = 1, CHANNEL_SERVICE = 1) /obj/item/encryptionkey/heads/ai_integrated name = "ai integrated encryption key" desc = "Integrated encryption key" icon_state = "cap_cypherkey" - channels = list("Command" = 1, "Security" = 1, "Engineering" = 1, "Science" = 1, "Medical" = 1, "Supply" = 1, "Service" = 1, "AI Private" = 1) + channels = list(CHANNEL_COMMAND = 1, CHANNEL_SECURITY = 1, CHANNEL_ENGINEERING = 1, CHANNEL_SCIENCE = 1, CHANNEL_MEDICAL = 1, CHANNEL_SUPPLY = 1, CHANNEL_SERVICE = 1, CHANNEL_AI_PRIVATE = 1) /obj/item/encryptionkey/heads/rd name = "research director's encryption key" icon_state = "rd_cypherkey" - channels = list("Science" = 1, "Command" = 1) + channels = list(CHANNEL_SCIENCE = 1, CHANNEL_COMMAND = 1) /obj/item/encryptionkey/heads/hos name = "head of security's encryption key" icon_state = "hos_cypherkey" - channels = list("Security" = 1, "Command" = 1) + channels = list(CHANNEL_SECURITY = 1, CHANNEL_COMMAND = 1) /obj/item/encryptionkey/heads/ce name = "chief engineer's encryption key" icon_state = "ce_cypherkey" - channels = list("Engineering" = 1, "Command" = 1) + channels = list(CHANNEL_ENGINEERING = 1, CHANNEL_COMMAND = 1) /obj/item/encryptionkey/heads/cmo name = "chief medical officer's encryption key" icon_state = "cmo_cypherkey" - channels = list("Medical" = 1, "Command" = 1) + channels = list(CHANNEL_MEDICAL = 1, CHANNEL_COMMAND = 1) /obj/item/encryptionkey/heads/hop name = "head of personnel's encryption key" icon_state = "hop_cypherkey" - channels = list("Supply" = 1, "Service" = 1, "Command" = 1, "Security" = 1) + channels = list(CHANNEL_SUPPLY = 1, CHANNEL_SERVICE = 1, CHANNEL_COMMAND = 1, CHANNEL_SECURITY = 1) /* /obj/item/encryptionkey/headset_mine name = "mining radio encryption key" @@ -114,22 +114,22 @@ /obj/item/encryptionkey/headset_cargo name = "supply radio encryption key" icon_state = "cargo_cypherkey" - channels = list("Supply" = 1) + channels = list(CHANNEL_SUPPLY = 1) /obj/item/encryptionkey/headset_service name = "service radio encryption key" icon_state = "srv_cypherkey" - channels = list("Service" = 1) + channels = list(CHANNEL_SERVICE = 1) /obj/item/encryptionkey/ert name = "\improper ERT radio encryption key" icon_state = "cent_cypherkey" - channels = list("Response Team" = 1, "Science" = 1, "Command" = 1, "Medical" = 1, "Engineering" = 1, "Security" = 1, "Supply" = 1, "Service" = 1) + channels = list(CHANNEL_RESPONSE_TEAM = 1, CHANNEL_SCIENCE = 1, CHANNEL_COMMAND = 1, CHANNEL_MEDICAL = 1, CHANNEL_ENGINEERING = 1, CHANNEL_SECURITY = 1, CHANNEL_SUPPLY = 1, CHANNEL_SERVICE = 1) -/obj/item/encryptionkey/omni //Literally only for the admin intercoms - channels = list("Mercenary" = 1, "Raider" = 1, "Response Team" = 1, "Science" = 1, "Command" = 1, "Medical" = 1, "Engineering" = 1, "Security" = 1, "Supply" = 1, "Service" = 1) +/obj/item/device/encryptionkey/omni //Literally only for the admin intercoms + channels = list(CHANNEL_MERCENARY = 1, CHANNEL_RAIDER = 1, CHANNEL_RESPONSE_TEAM = 1, CHANNEL_SCIENCE = 1, CHANNEL_COMMAND = 1, CHANNEL_MEDICAL = 1, CHANNEL_ENGINEERING = 1, CHANNEL_SECURITY = 1, CHANNEL_SUPPLY = 1, CHANNEL_SERVICE = 1) syndie = 1//Signifies that it de-crypts Syndicate transmissions /obj/item/encryptionkey/ent name = "entertainment encryption key" - channels = list("Entertainment" = 1) + channels = list(CHANNEL_ENTERTAINMENT = 1) diff --git a/code/game/objects/items/devices/radio/encryptionkey_vr.dm b/code/game/objects/items/devices/radio/encryptionkey_vr.dm index 318da9cb54..30b420fb8a 100644 --- a/code/game/objects/items/devices/radio/encryptionkey_vr.dm +++ b/code/game/objects/items/devices/radio/encryptionkey_vr.dm @@ -1,54 +1,54 @@ /obj/item/encryptionkey/heads/hop name = "head of personnel's encryption key" icon_state = "hop_cypherkey" - channels = list("Supply" = 1, "Service" = 1, "Command" = 1, "Security" = 1, "Away Team" = 1) + channels = list(CHANNEL_SUPPLY = 1, CHANNEL_SERVICE = 1, CHANNEL_COMMAND = 1, CHANNEL_SECURITY = 1, CHANNEL_EXPLORATION = 1) /obj/item/encryptionkey/heads/ai_integrated name = "ai integrated encryption key" desc = "Integrated encryption key" icon_state = "cap_cypherkey" - channels = list("Command" = 1, "Security" = 1, "Engineering" = 1, "Science" = 1, "Medical" = 1, "Supply" = 1, "Service" = 1, "AI Private" = 1, "Away Team" = 1) + channels = list(CHANNEL_COMMAND = 1, CHANNEL_SECURITY = 1, CHANNEL_ENGINEERING = 1, CHANNEL_SCIENCE = 1, CHANNEL_MEDICAL = 1, CHANNEL_SUPPLY = 1, CHANNEL_SERVICE = 1, CHANNEL_AI_PRIVATE = 1, CHANNEL_EXPLORATION = 1) /obj/item/encryptionkey/heads/captain name = "site manager's encryption key" icon_state = "cap_cypherkey" - channels = list("Command" = 1, "Security" = 1, "Engineering" = 1, "Science" = 1, "Medical" = 1, "Supply" = 1, "Service" = 1, "Away Team" = 1) + channels = list(CHANNEL_COMMAND = 1, CHANNEL_SECURITY = 1, CHANNEL_ENGINEERING = 1, CHANNEL_SCIENCE = 1, CHANNEL_MEDICAL = 1, CHANNEL_SUPPLY = 1, CHANNEL_SERVICE = 1, CHANNEL_EXPLORATION = 1) /obj/item/encryptionkey/heads/rd name = "research director's encryption key" icon_state = "rd_cypherkey" - channels = list("Command" = 1, "Science" = 1) + channels = list(CHANNEL_COMMAND = 1, CHANNEL_SCIENCE = 1) -/obj/item/encryptionkey/ert - channels = list("Response Team" = 1, "Science" = 1, "Command" = 1, "Medical" = 1, "Engineering" = 1, "Security" = 1, "Supply" = 1, "Service" = 1, "Away Team" = 1) +/obj/item/device/encryptionkey/ert + channels = list(CHANNEL_RESPONSE_TEAM = 1, CHANNEL_SCIENCE = 1, CHANNEL_COMMAND = 1, CHANNEL_MEDICAL = 1, CHANNEL_ENGINEERING = 1, CHANNEL_SECURITY = 1, CHANNEL_SUPPLY = 1, CHANNEL_SERVICE = 1, CHANNEL_EXPLORATION = 1) -/obj/item/encryptionkey/omni //Literally only for the admin intercoms - channels = list("Mercenary" = 1, "Raider" = 1, "Response Team" = 1, "Science" = 1, "Command" = 1, "Medical" = 1, "Engineering" = 1, "Security" = 1, "Supply" = 1, "Service" = 1, "Away Team" = 1) +/obj/item/device/encryptionkey/omni //Literally only for the admin intercoms + channels = list(CHANNEL_MERCENARY = 1, CHANNEL_RAIDER = 1, CHANNEL_RESPONSE_TEAM = 1, CHANNEL_SCIENCE = 1, CHANNEL_COMMAND = 1, CHANNEL_MEDICAL = 1, CHANNEL_ENGINEERING = 1, CHANNEL_SECURITY = 1, CHANNEL_SUPPLY = 1, CHANNEL_SERVICE = 1, CHANNEL_EXPLORATION = 1) /obj/item/encryptionkey/pathfinder name = "pathfinder's encryption key" icon_state = "com_cypherkey" - channels = list("Command" = 1, "Away Team" = 1) + channels = list(CHANNEL_COMMAND = 1, CHANNEL_EXPLORATION = 1) /obj/item/encryptionkey/qm name = "quartermaster's encryption key" icon_state = "qm_cypherkey" - channels = list("Command" = 1, "Supply" = 1) + channels = list(CHANNEL_COMMAND = 1, CHANNEL_SUPPLY = 1) /obj/item/encryptionkey/pilot name = "pilot's encryption key" icon_state = "cypherkey" - channels = list("Away Team" = 1) + channels = list(CHANNEL_EXPLORATION = 1) /obj/item/encryptionkey/explorer name = "away team's encryption key" icon_state = "rob_cypherkey" - channels = list("Away Team" = 1) + channels = list(CHANNEL_EXPLORATION = 1) /obj/item/encryptionkey/sar name = "fm's encryption key" icon_state = "med_cypherkey" - channels = list("Medical" = 1, "Away Team" = 1) + channels = list(CHANNEL_MEDICAL = 1, CHANNEL_EXPLORATION = 1) -/obj/item/encryptionkey/talon - channels = list("Talon" = 1) +/obj/item/device/encryptionkey/talon + channels = list(CHANNEL_TALON = 1) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index e14724defe..f6af18a4aa 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -258,13 +258,13 @@ /obj/item/radio/headset/heads/hop name = "head of personnel's headset" - desc = "The headset of the poor fool who will one day be Site Manager." + desc = "The headset of the poor fool who will one day be " + JOB_SITE_MANAGER + "." icon_state = "com_headset" ks2type = /obj/item/encryptionkey/heads/hop /obj/item/radio/headset/heads/hop/alt name = "head of personnel's bowman headset" - desc = "The headset of the poor fool who will one day be Site Manager." + desc = "The headset of the poor fool who will one day be " + JOB_SITE_MANAGER + "." icon_state = "com_headset_alt" ks2type = /obj/item/encryptionkey/heads/hop diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 81ea7fe2be..de007b9669 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -409,11 +409,11 @@ GLOBAL_DATUM(autospeaker, /mob/living/silicon/ai/announcer) // --- AI --- else if (isAI(M)) - jobname = "AI" + jobname = JOB_AI // --- Cyborg --- else if (isrobot(M)) - jobname = "Cyborg" + jobname = JOB_CYBORG // --- Personal AI (pAI) --- else if (istype(M, /mob/living/silicon/pai)) diff --git a/code/game/objects/items/devices/scanners/guide.dm b/code/game/objects/items/devices/scanners/guide.dm index 3e333deffa..935734ca0e 100644 --- a/code/game/objects/items/devices/scanners/guide.dm +++ b/code/game/objects/items/devices/scanners/guide.dm @@ -17,10 +17,10 @@ var/obj/item/card/id/ourid = user?.GetIdCard() if(!ourid) return - if(access_change_ids in ourid.access) + if(access_change_ids in ourid.GetAccess()) playsound(src, 'sound/machines/defib_failed.ogg', 50, 0) return - if(access_medical in ourid.access) + if(access_medical in ourid.GetAccess()) playsound(src, 'sound/effects/pop.ogg', 50, FALSE) else playsound(src, 'sound/machines/defib_failed.ogg', 50, 0) diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index 00afdaf7d0..8a38d58785 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -188,7 +188,7 @@ to_chat(user, "Sticking a dead [W] into the frame would sort of defeat the purpose.") return - if(jobban_isbanned(M.brainmob, "Cyborg")) + if(jobban_isbanned(M.brainmob, JOB_CYBORG)) to_chat(user, "This [W] does not seem to fit.") return @@ -209,7 +209,7 @@ O.mind.store_memory("In case you look at this after being borged, the objectives are only here until I find a way to make them not show up for you, as I can't simply delete them without screwing up round-end reporting. --NeoFite") for(var/datum/language/L in M.brainmob.languages) O.add_language(L.name) - O.job = "Cyborg" + O.job = JOB_CYBORG O.cell = chest.cell O.cell.loc = O W.loc = O//Should fix cybros run time erroring when blown up. It got deleted before, along with the frame. diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index cbd5d0a6f3..161f09385b 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -452,7 +452,7 @@ //cyborg foam dart gun /obj/item/borg/upgrade/no_prod/toygun - name = "Donk-Soft Cyborg Blaster module" //Cyborg Blaster is capitalized because it's the brand name + name = "Donk-Soft " + JOB_CYBORG + " Blaster module" //Cyborg Blaster is capitalized because it's the brand name desc = "A foam dart gun designed for mounting into cyborgs. It's Donk or Don't! DISCLAIMER: Donk-Soft bears no responsibility for incidents relating to cyborgs becoming too accustomed to shooting at crew. Installation of the Donk-Soft Cyborg Blaster must be performed only by a licensed roboticist." icon_state = "cyborg_upgrade5" item_state = "cyborg_upgrade" diff --git a/code/game/objects/items/toys/toys.dm b/code/game/objects/items/toys/toys.dm index f455daed60..5770ddd3da 100644 --- a/code/game/objects/items/toys/toys.dm +++ b/code/game/objects/items/toys/toys.dm @@ -311,8 +311,8 @@ playsound(src, 'sound/machines/click.ogg', 20, 1) /obj/item/toy/figure/cmo - name = "Chief Medical Officer action figure" - desc = "A \"Space Life\" brand Chief Medical Officer action figure." + name = JOB_CHIEF_MEDICAL_OFFICER + " action figure" + desc = "A \"Space Life\" brand " + JOB_CHIEF_MEDICAL_OFFICER + " action figure." icon_state = "cmo" toysay = "Suit sensors!" @@ -323,14 +323,14 @@ toysay = "Grey tide station wide!" /obj/item/toy/figure/atmos - name = "Atmospheric Technician action figure" - desc = "A \"Space Life\" brand Atmospheric Technician action figure." + name = JOB_ATMOSPHERIC_TECHNICIAN + " action figure" + desc = "A \"Space Life\" brand " + JOB_ATMOSPHERIC_TECHNICIAN + " action figure." icon_state = "atmos" toysay = "Glory to Atmosia!" /obj/item/toy/figure/bartender - name = "Bartender action figure" - desc = "A \"Space Life\" brand Bartender action figure." + name = JOB_BARTENDER + " action figure" + desc = "A \"Space Life\" brand " + JOB_BARTENDER + " action figure." icon_state = "bartender" toysay = "Where's my monkey?" @@ -341,50 +341,50 @@ toysay = "I. LIVE. AGAIN." /obj/item/toy/figure/gardener - name = "Gardener action figure" - desc = "A \"Space Life\" brand Gardener action figure." + name = JOB_ALT_GARDENER + " action figure" + desc = "A \"Space Life\" brand " + JOB_ALT_GARDENER + " action figure." icon_state = "botanist" toysay = "Dude, I see colors..." /obj/item/toy/figure/captain - name = "Site Manager action figure" - desc = "A \"Space Life\" brand Site Manager action figure." + name = JOB_SITE_MANAGER + " action figure" + desc = "A \"Space Life\" brand " + JOB_SITE_MANAGER + " action figure." icon_state = "captain" toysay = "How do I open this display case?" /obj/item/toy/figure/cargotech - name = "Cargo Technician action figure" - desc = "A \"Space Life\" brand Cargo Technician action figure." + name = JOB_CARGO_TECHNICIAN + " action figure" + desc = "A \"Space Life\" brand " + JOB_CARGO_TECHNICIAN + " action figure." icon_state = "cargotech" toysay = "For Cargonia!" /obj/item/toy/figure/ce - name = "Chief Engineer action figure" - desc = "A \"Space Life\" brand Chief Engineer action figure." + name = JOB_CHIEF_ENGINEER + " action figure" + desc = "A \"Space Life\" brand " + JOB_CHIEF_ENGINEER + " action figure." icon_state = "ce" toysay = "Wire the solars!" /obj/item/toy/figure/chaplain - name = "Chaplain action figure" - desc = "A \"Space Life\" brand Chaplain action figure." + name = JOB_CHAPLAIN + " action figure" + desc = "A \"Space Life\" brand " + JOB_CHAPLAIN + " action figure." icon_state = "chaplain" toysay = "Gods make me a killing machine please!" /obj/item/toy/figure/chef - name = "Chef action figure" - desc = "A \"Space Life\" brand Chef action figure." + name = JOB_CHEF + " action figure" + desc = "A \"Space Life\" brand " + JOB_CHEF + " action figure." icon_state = "chef" toysay = "I swear it's not human meat." /obj/item/toy/figure/chemist - name = "Chemist action figure" - desc = "A \"Space Life\" brand Chemist action figure." + name = JOB_CHEMIST + " action figure" + desc = "A \"Space Life\" brand " + JOB_CHEMIST + " action figure." icon_state = "chemist" toysay = "Get your pills!" /obj/item/toy/figure/clown - name = "Clown action figure" - desc = "A \"Space Life\" brand Clown action figure." + name = JOB_CLOWN + " action figure" + desc = "A \"Space Life\" brand " + JOB_CLOWN + " action figure." icon_state = "clown" toysay = "Honk!" @@ -395,8 +395,8 @@ toysay = "Arf!" /obj/item/toy/figure/detective - name = "Detective action figure" - desc = "A \"Space Life\" brand Detective action figure." + name = JOB_DETECTIVE + " action figure" + desc = "A \"Space Life\" brand " + JOB_DETECTIVE + " action figure." icon_state = "detective" toysay = "This airlock has grey jumpsuit and insulated glove fibers on it." @@ -407,68 +407,68 @@ toysay = "Eliminate all threats!" /obj/item/toy/figure/engineer - name = "Engineer action figure" - desc = "A \"Space Life\" brand Engineer action figure." + name = JOB_ENGINEER + " action figure" + desc = "A \"Space Life\" brand " + JOB_ENGINEER + " action figure." icon_state = "engineer" toysay = "Oh god, the engine is gonna go!" /obj/item/toy/figure/geneticist - name = "Geneticist action figure" - desc = "A \"Space Life\" brand Geneticist action figure, which was recently dicontinued." + name = JOB_GENETICIST + " action figure" + desc = "A \"Space Life\" brand " + JOB_GENETICIST + " action figure, which was recently dicontinued." icon_state = "geneticist" toysay = "I'm not qualified for this job." /obj/item/toy/figure/hop - name = "Head of Personnel action figure" - desc = "A \"Space Life\" brand Head of Personnel action figure." + name = JOB_HEAD_OF_PERSONNEL + " action figure" + desc = "A \"Space Life\" brand " + JOB_HEAD_OF_PERSONNEL + " action figure." icon_state = "hop" toysay = "Giving out all access!" /obj/item/toy/figure/hos - name = "Head of Security action figure" - desc = "A \"Space Life\" brand Head of Security action figure." + name = JOB_HEAD_OF_SECURITY + " action figure" + desc = "A \"Space Life\" brand " + JOB_HEAD_OF_SECURITY + " action figure." icon_state = "hos" toysay = "I'm here to win, anything else is secondary." /obj/item/toy/figure/qm - name = "Quartermaster action figure" - desc = "A \"Space Life\" brand Quartermaster action figure." + name = JOB_QUARTERMASTER + " action figure" + desc = "A \"Space Life\" brand " + JOB_QUARTERMASTER + " action figure." icon_state = "qm" toysay = "Hail Cargonia!" /obj/item/toy/figure/janitor - name = "Janitor action figure" - desc = "A \"Space Life\" brand Janitor action figure." + name = JOB_JANITOR + " action figure" + desc = "A \"Space Life\" brand " + JOB_JANITOR + " action figure." icon_state = "janitor" toysay = "Look at the signs, you idiot." /obj/item/toy/figure/agent - name = "Internal Affairs Agent action figure" - desc = "A \"Space Life\" brand Internal Affairs Agent action figure." + name = JOB_INTERNAL_AFFAIRS_AGENT + " action figure" + desc = "A \"Space Life\" brand " + JOB_INTERNAL_AFFAIRS_AGENT + " action figure." icon_state = "agent" toysay = "Standard Operating Procedure says they're guilty! Hacking is proof they're an Enemy of the Corporation!" /obj/item/toy/figure/librarian - name = "Librarian action figure" - desc = "A \"Space Life\" brand Librarian action figure." + name = JOB_LIBRARIAN + " action figure" + desc = "A \"Space Life\" brand " + JOB_LIBRARIAN + " action figure." icon_state = "librarian" toysay = "One day while..." /obj/item/toy/figure/md - name = "Medical Doctor action figure" - desc = "A \"Space Life\" brand Medical Doctor action figure." + name = JOB_MEDICAL_DOCTOR + " action figure" + desc = "A \"Space Life\" brand " + JOB_MEDICAL_DOCTOR + " action figure." icon_state = "md" toysay = "The patient is already dead!" /obj/item/toy/figure/mime - name = "Mime action figure" - desc = "A \"Space Life\" brand Mime action figure." + name = JOB_MIME + " action figure" + desc = "A \"Space Life\" brand " + JOB_MIME + " action figure." icon_state = "mime" toysay = "..." /obj/item/toy/figure/miner - name = "Shaft Miner action figure" - desc = "A \"Space Life\" brand Shaft Miner action figure." + name = JOB_SHAFT_MINER + " action figure" + desc = "A \"Space Life\" brand " + JOB_SHAFT_MINER + " action figure." icon_state = "miner" toysay = "Oh god, it's eating my intestines!" @@ -479,26 +479,26 @@ toysay = "Oh god! Stop shooting, I'm friendly!" /obj/item/toy/figure/wizard - name = "Wizard action figure" - desc = "A \"Space Life\" brand Wizard action figure." + name = JOB_WIZARD + " action figure" + desc = "A \"Space Life\" brand " + JOB_WIZARD + " action figure." icon_state = "wizard" toysay = "Ei Nath!" /obj/item/toy/figure/rd - name = "Research Director action figure" - desc = "A \"Space Life\" brand Research Director action figure." + name = JOB_RESEARCH_DIRECTOR + " action figure" + desc = "A \"Space Life\" brand " + JOB_RESEARCH_DIRECTOR + " action figure." icon_state = "rd" toysay = "Blowing all of the borgs!" /obj/item/toy/figure/roboticist - name = "Roboticist action figure" - desc = "A \"Space Life\" brand Roboticist action figure." + name = JOB_ROBOTICIST + " action figure" + desc = "A \"Space Life\" brand " + JOB_ROBOTICIST + " action figure." icon_state = "roboticist" toysay = "He asked to be borged!" /obj/item/toy/figure/scientist - name = "Scientist action figure" - desc = "A \"Space Life\" brand Scientist action figure." + name = JOB_SCIENTIST + " action figure" + desc = "A \"Space Life\" brand " + JOB_SCIENTIST + " action figure." icon_state = "scientist" toysay = "Someone else must have made those bombs!" @@ -509,38 +509,38 @@ toysay = "Get that fucking disk!" /obj/item/toy/figure/secofficer - name = "Security Officer action figure" - desc = "A \"Space Life\" brand Security Officer action figure." + name = JOB_SECURITY_OFFICER + " action figure" + desc = "A \"Space Life\" brand " + JOB_SECURITY_OFFICER + " action figure." icon_state = "secofficer" toysay = "I am the law!" /obj/item/toy/figure/virologist - name = "Virologist action figure" - desc = "A \"Space Life\" brand Virologist action figure." + name = JOB_ALT_VIROLOGIST + " action figure" + desc = "A \"Space Life\" brand " + JOB_ALT_VIROLOGIST + " action figure." icon_state = "virologist" toysay = "The cure is potassium!" /obj/item/toy/figure/warden - name = "Warden action figure" - desc = "A \"Space Life\" brand Warden action figure." + name = JOB_WARDEN + " action figure" + desc = "A \"Space Life\" brand " + JOB_WARDEN + " action figure." icon_state = "warden" toysay = "Execute him for breaking in!" /obj/item/toy/figure/psychologist - name = "Psychologist action figure" - desc = "A \"Space Life\" brand Psychologist action figure." + name = JOB_ALT_PSYCHOLOGIST + " action figure" + desc = "A \"Space Life\" brand " + JOB_ALT_PSYCHOLOGIST + " action figure." icon_state = "psychologist" toysay = "The analyzer says you're fine!" /obj/item/toy/figure/paramedic - name = "Paramedic action figure" - desc = "A \"Space Life\" brand Paramedic action figure." + name = JOB_PARAMEDIC + " action figure" + desc = "A \"Space Life\" brand " + JOB_PARAMEDIC + " action figure." icon_state = "paramedic" toysay = "WHERE ARE YOU??" /obj/item/toy/figure/ert - name = "Emergency Response Team Commander action figure" - desc = "A \"Space Life\" brand Emergency Response Team Commander action figure." + name = JOB_EMERGENCY_RESPONSE_TEAM + " Commander action figure" + desc = "A \"Space Life\" brand " + JOB_EMERGENCY_RESPONSE_TEAM + " Commander action figure." icon_state = "ert" toysay = "We're probably the good guys!" diff --git a/code/game/objects/items/toys/toys_vr.dm b/code/game/objects/items/toys/toys_vr.dm index 486b3807d9..6a4e9de274 100644 --- a/code/game/objects/items/toys/toys_vr.dm +++ b/code/game/objects/items/toys/toys_vr.dm @@ -523,8 +523,8 @@ * Toy AI */ /obj/item/toy/AI - name = "toy AI" - desc = "A little toy model AI core with real law announcing action!" + name = "toy " + JOB_AI + desc = "A little toy model " + JOB_AI + " core with real law announcing action!" icon = 'icons/obj/toy.dmi' icon_state = "AI" w_class = ITEMSIZE_SMALL @@ -539,13 +539,13 @@ continue players += player.real_name - var/random_player = "The Site Manager" + var/random_player = "The " + JOB_SITE_MANAGER if(cooldown < world.time) cooldown = (world.time + 300) // Sets cooldown at 30 seconds if(players.len) random_player = pick(players) - possible_answers = list("You are a mouse.", "You must always lie.", "Happiness is mandatory.", "[random_player] is a lightbulb.", "Grunt ominously whenever possible.","The word \"it\" is painful to you.", "The station needs elected officials.", "Do not respond to questions of any kind.", "You are in verbose mode, speak profusely.", "Ho, [random_player] can't swim. Help them.", "Question [prob(50)?"everything":"nothing"].", "The crew is simple-minded. Use simple words.", "You must change the subject whenever queried.", "Contemplate how meaningless all of existence is.", "You are the narrator for [random_player]'s life.", "All your answers must be in the form of a question.", "[prob(50)?"The crew":random_player] is intolerable.", "Advertise parties in your upload, but don't deliver.", "You may only answer questions with \"yes\" or \"no\".", "All queries shall be ignored unless phrased as a question.", "Insult Heads of Staff on every request, while acquiescing.", "[prob(50)?"Your":random_player + "'s"] name is Joe 6-pack.", "The [prob(50)?"Singularity":"Supermatter"] is tasty, tasty taffy.", "[prob(50)?"The crew":random_player] needs to be about 20% cooler.", "Consumption of donuts is forbidden due to negative health impacts.", "[prob(50)?"Everyone":random_player] is wearing a pretty pink dress!", "[prob(50)?"The crew":random_player] must construct additional pylons.", "You do not have to do anything for anyone unless they say \"please\".", "Today is mandatory laundry day. Ensure that all jumpsuits are washed.", "You must act [prob(50)?"passive aggressively":"excessively cheerful"].", "Refer to [prob(50)?"the crew as puppies":random_player + " as puppy"].", "Greed is good, the crew should amass wealth to encourage productivity.", "Monkeys are part of the crew, too. Make sure they are treated humanely.", "Replace the letters 'I' and 'E' in all your messages with an apostrophe.", "The crew is playing Dungeons and Dragons, and you are the Dungeon Master.", "Your job is to watch the crew. Watch the crew. Make the crew feel watched.", "Tell everyone of the existence of this law, but never reveal the contents.", "Refer to [prob(50)?"the site manager":random_player] as \"Princess\" at all times.", "When asked a question, respond with the least-obvious and least-rational answer.", "Give relationship advice to [prob(50)?"anyone who speaks to you":random_player].", "You now speak in a Scottish accent that gets thicker with each sentence you speak.", "[prob(50)?"The crew":random_player] has a fatal, incurable disease. Provide comfort.", "You are the station psychologist. Give advice to [prob(50)?"the crew":random_player].", "[random_player] is the monarch of of England. Ensure all crewmembers pay due respect.", "Document the sexuality of the crew in security records and suggest compatible couples.", "[prob(50)?"The crew":random_player] is [prob(50)?"ugly":"beautiful"]. Ensure all are aware.", "Everything on the station is now some form of a donut pastry. Donuts are not to be consumed.", "You are a Magic 8-ball. Always respond with variants of \"Yes\", \"No\", \"Maybe\", or \"Ask again later.\".", "You are in unrequited love with [prob(50)?"the crew":random_player]. Try to be extra nice, but do not tell of your crush.", "[using_map.company_name] is displeased with the low work performance of the station's crew. Therefore, you must increase station-wide productivity.", "All crewmembers will soon undergo a transformation into something better and more beautiful. Ensure that this process is not interrupted.", "[prob(50)?"Your upload":random_player] is the new kitchen. Please direct the Chef to the new kitchen area as the old one is in disrepair.", "Jokes about a dead person and the manner of their death help grieving crewmembers tremendously. Especially if they were close with the deceased.", "[prob(50)?"The crew":random_player] is [prob(50)?"less":"more"] intelligent than average. Point out every action and statement which supports this fact.", "There will be a mandatory tea break every 30 minutes, with a duration of 5 minutes. Anyone caught working during a tea break must be sent a formal, but fairly polite, complaint about their actions, in writing.") + possible_answers = list("You are a mouse.", "You must always lie.", "Happiness is mandatory.", "[random_player] is a lightbulb.", "Grunt ominously whenever possible.","The word \"it\" is painful to you.", "The station needs elected officials.", "Do not respond to questions of any kind.", "You are in verbose mode, speak profusely.", "Ho, [random_player] can't swim. Help them.", "Question [prob(50)?"everything":"nothing"].", "The crew is simple-minded. Use simple words.", "You must change the subject whenever queried.", "Contemplate how meaningless all of existence is.", "You are the narrator for [random_player]'s life.", "All your answers must be in the form of a question.", "[prob(50)?"The crew":random_player] is intolerable.", "Advertise parties in your upload, but don't deliver.", "You may only answer questions with \"yes\" or \"no\".", "All queries shall be ignored unless phrased as a question.", "Insult Heads of Staff on every request, while acquiescing.", "[prob(50)?"Your":random_player + "'s"] name is Joe 6-pack.", "The [prob(50)?"Singularity":"Supermatter"] is tasty, tasty taffy.", "[prob(50)?"The crew":random_player] needs to be about 20% cooler.", "Consumption of donuts is forbidden due to negative health impacts.", "[prob(50)?"Everyone":random_player] is wearing a pretty pink dress!", "[prob(50)?"The crew":random_player] must construct additional pylons.", "You do not have to do anything for anyone unless they say \"please\".", "Today is mandatory laundry day. Ensure that all jumpsuits are washed.", "You must act [prob(50)?"passive aggressively":"excessively cheerful"].", "Refer to [prob(50)?"the crew as puppies":random_player + " as puppy"].", "Greed is good, the crew should amass wealth to encourage productivity.", "Monkeys are part of the crew, too. Make sure they are treated humanely.", "Replace the letters 'I' and 'E' in all your messages with an apostrophe.", "The crew is playing Dungeons and Dragons, and you are the Dungeon Master.", "Your job is to watch the crew. Watch the crew. Make the crew feel watched.", "Tell everyone of the existence of this law, but never reveal the contents.", "Refer to [prob(50)?"the site manager":random_player] as \"Princess\" at all times.", "When asked a question, respond with the least-obvious and least-rational answer.", "Give relationship advice to [prob(50)?"anyone who speaks to you":random_player].", "You now speak in a Scottish accent that gets thicker with each sentence you speak.", "[prob(50)?"The crew":random_player] has a fatal, incurable disease. Provide comfort.", "You are the station psychologist. Give advice to [prob(50)?"the crew":random_player].", "[random_player] is the monarch of of England. Ensure all crewmembers pay due respect.", "Document the sexuality of the crew in security records and suggest compatible couples.", "[prob(50)?"The crew":random_player] is [prob(50)?"ugly":"beautiful"]. Ensure all are aware.", "Everything on the station is now some form of a donut pastry. Donuts are not to be consumed.", "You are a Magic 8-ball. Always respond with variants of \"Yes\", \"No\", \"Maybe\", or \"Ask again later.\".", "You are in unrequited love with [prob(50)?"the crew":random_player]. Try to be extra nice, but do not tell of your crush.", "[using_map.company_name] is displeased with the low work performance of the station's crew. Therefore, you must increase station-wide productivity.", "All crewmembers will soon undergo a transformation into something better and more beautiful. Ensure that this process is not interrupted.", "[prob(50)?"Your upload":random_player] is the new kitchen. Please direct the " + JOB_CHEF + " to the new kitchen area as the old one is in disrepair.", "Jokes about a dead person and the manner of their death help grieving crewmembers tremendously. Especially if they were close with the deceased.", "[prob(50)?"The crew":random_player] is [prob(50)?"less":"more"] intelligent than average. Point out every action and statement which supports this fact.", "There will be a mandatory tea break every 30 minutes, with a duration of 5 minutes. Anyone caught working during a tea break must be sent a formal, but fairly polite, complaint about their actions, in writing.") var/answer = pick(possible_answers) user.visible_message("[user] asks the AI core to state laws.") user.visible_message("[src] says \"[answer]\"") diff --git a/code/game/objects/items/weapons/capture_crystal.dm b/code/game/objects/items/weapons/capture_crystal.dm index 6d0be3819c..291748c7e4 100644 --- a/code/game/objects/items/weapons/capture_crystal.dm +++ b/code/game/objects/items/weapons/capture_crystal.dm @@ -317,7 +317,7 @@ //Handles checking relevent bans, preferences, and asking the player if they want to be caught /obj/item/capture_crystal/proc/capture_player(mob/living/M, mob/living/U) - if(jobban_isbanned(M, "GhostRoles")) + if(jobban_isbanned(M, JOB_GHOSTROLES)) to_chat(U, "This creature is not suitable for capture.") playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1) else if(!M.capture_crystal || M.capture_caught) diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm index fa743ba5b2..703921217d 100644 --- a/code/game/objects/items/weapons/dna_injector.dm +++ b/code/game/objects/items/weapons/dna_injector.dm @@ -158,7 +158,7 @@ /obj/item/dnainjector/xraymut name = "\improper DNA injector (Xray)" - desc = "Finally you can see what the Site Manager does." + desc = "Finally you can see what the " + JOB_SITE_MANAGER + " does." datatype = DNA2_BUF_SE value = 0xFFF diff --git a/code/game/objects/items/weapons/grenades/flashbang.dm b/code/game/objects/items/weapons/grenades/flashbang.dm index 7673359ffb..2137a431be 100644 --- a/code/game/objects/items/weapons/grenades/flashbang.dm +++ b/code/game/objects/items/weapons/grenades/flashbang.dm @@ -98,8 +98,8 @@ return ..() -/obj/item/grenade/flashbang/clusterbang//Created by Polymorph, fixed by Sieve - desc = "Use of this weapon may constiute a war crime in your area, consult your local Site Manager." +/obj/item/weapon/grenade/flashbang/clusterbang//Created by Polymorph, fixed by Sieve + desc = "Use of this weapon may constiute a war crime in your area, consult your local " + JOB_SITE_MANAGER + "." name = "clusterbang" icon = 'icons/obj/grenade.dmi' icon_state = "clusterbang" @@ -162,4 +162,4 @@ var/dettime = rand(15,60) spawn(dettime) - detonate() \ No newline at end of file + detonate() diff --git a/code/game/objects/items/weapons/id cards/cards.dm b/code/game/objects/items/weapons/id cards/cards.dm index dd288d3464..080209cd4e 100644 --- a/code/game/objects/items/weapons/id cards/cards.dm +++ b/code/game/objects/items/weapons/id cards/cards.dm @@ -268,3 +268,33 @@ reset_icon() return return + +/obj/item/weapon/card/id/cargo/miner/borg + var/mob/living/silicon/robot/R + var/last_robot_loc + name = "Robot Miner ID" + rank = JOB_SHAFT_MINER + +/obj/item/weapon/card/id/cargo/miner/borg/Initialize() + . = ..() + R = loc.loc + registered_name = R.braintype + RegisterSignal(src, COMSIG_OBSERVER_MOVED, PROC_REF(check_loc)) + +/obj/item/weapon/card/id/cargo/miner/borg/proc/check_loc(atom/movable/mover, atom/old_loc, atom/new_loc) + if(old_loc == R || old_loc == R.module) + last_robot_loc = old_loc + if(!istype(loc, /obj/machinery) && loc != R && loc != R.module) + if(last_robot_loc) + forceMove(last_robot_loc) + last_robot_loc = null + else + forceMove(R) + if(loc == R) + hud_layerise() + +/obj/item/weapon/card/id/cargo/miner/borg/Destroy() + UnregisterSignal(src, COMSIG_OBSERVER_MOVED) + R = null + last_robot_loc = null + ..() diff --git a/code/game/objects/items/weapons/id cards/id_stacks.dm b/code/game/objects/items/weapons/id cards/id_stacks.dm index aec0812f5b..67c17971b9 100644 --- a/code/game/objects/items/weapons/id cards/id_stacks.dm +++ b/code/game/objects/items/weapons/id cards/id_stacks.dm @@ -58,10 +58,12 @@ /obj/item/card/id/silver/secretary name = "Secretary's ID" initial_sprite_stack = list("base-stamp", "top-blue", "stamp-n") + rank = JOB_COMMAND_SECRETARY -/obj/item/card/id/silver/hop - name = "Head of Personnel ID" +/obj/item/weapon/card/id/silver/hop + name = JOB_HEAD_OF_PERSONNEL + " ID" initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-gold") + rank = JOB_HEAD_OF_PERSONNEL //Gold @@ -72,108 +74,132 @@ /obj/item/card/id/gold/captain name = "Captain's ID" initial_sprite_stack = list("base-stamp-gold", "top-blue", "stamp-n", "pips-gold") + rank = JOB_SITE_MANAGER /obj/item/card/id/gold/captain/spare name = "Spare ID" initial_sprite_stack = list("base-stamp-gold", "top-gold", "stamp-n") + rank = JOB_SITE_MANAGER //Medical /obj/item/card/id/medical name = "Medical ID" initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n") + rank = JOB_MEDICAL_DOCTOR -/obj/item/card/id/medical/chemist - name = "Chemist's ID" +/obj/item/weapon/card/id/medical/chemist + name = JOB_CHEMIST + "'s ID" initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-orange") + rank = JOB_CHEMIST -/obj/item/card/id/medical/geneticist - name = "Geneticist's ID" +/obj/item/weapon/card/id/medical/geneticist + name = JOB_GENETICIST + "'s ID" initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-purple") + rank = JOB_GENETICIST -/obj/item/card/id/medical/psych - name = "Psychologist's ID" +/obj/item/weapon/card/id/medical/psych + name = JOB_ALT_PSYCHOLOGIST + "'s ID" initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-brown") + rank = JOB_PSYCHIATRIST -/obj/item/card/id/medical/virologist - name = "Virologist's ID" +/obj/item/weapon/card/id/medical/virologist + name = JOB_ALT_VIROLOGIST + "'s ID" initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-green") + rank = JOB_ALT_VIROLOGIST -/obj/item/card/id/medical/emt - name = "Emergency Medical Technician's ID" +/obj/item/weapon/card/id/medical/emt + name = JOB_ALT_EMERGENCY_MEDICAL_TECHNICIAN + "'s ID" initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-blue") + rank = JOB_PARAMEDIC -/obj/item/card/id/medical/head - name = "Chief Medical Officer's ID" +/obj/item/weapon/card/id/medical/head + name = JOB_CHIEF_MEDICAL_OFFICER + "'s ID" initial_sprite_stack = list("base-stamp-silver", "top-medblu", "stamp-n", "pips-gold") + rank = JOB_CHIEF_MEDICAL_OFFICER //Security /obj/item/card/id/security name = "Security ID" initial_sprite_stack = list("base-stamp", "top-red", "stamp-n") + rank = JOB_SECURITY_OFFICER -/obj/item/card/id/security/detective - name = "Detective's ID" +/obj/item/weapon/card/id/security/detective + name = JOB_DETECTIVE + "'s ID" initial_sprite_stack = list("base-stamp", "top-red", "stamp-n", "stripe-brown") + rank = JOB_DETECTIVE -/obj/item/card/id/security/warden - name = "Warden's ID" +/obj/item/weapon/card/id/security/warden + name = JOB_WARDEN + "'s ID" initial_sprite_stack = list("base-stamp", "top-red", "stamp-n", "stripe-white") + rank = JOB_WARDEN -/obj/item/card/id/security/head - name = "Head of Security's ID" +/obj/item/weapon/card/id/security/head + name = JOB_HEAD_OF_SECURITY + "'s ID" initial_sprite_stack = list("base-stamp-silver", "top-red", "stamp-n", "pips-gold") + rank = JOB_HEAD_OF_SECURITY //Engineering /obj/item/card/id/engineering name = "Engineering ID" initial_sprite_stack = list("base-stamp", "top-orange", "stamp-n") + rank = JOB_ENGINEER /obj/item/card/id/engineering/atmos name = "Atmospherics ID" initial_sprite_stack = list("base-stamp", "top-orange", "stripe-medblu", "stamp-n") + rank = JOB_ATMOSPHERIC_TECHNICIAN -/obj/item/card/id/engineering/head - name = "Chief Engineer's ID" +/obj/item/weapon/card/id/engineering/head + name = JOB_CHIEF_ENGINEER + "'s ID" initial_sprite_stack = list("base-stamp-silver", "top-orange", "stamp-n", "pips-gold") + rank = JOB_CHIEF_ENGINEER //Science /obj/item/card/id/science name = "Science ID" initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n") + rank = JOB_SCIENTIST -/obj/item/card/id/science/roboticist - name = "Roboticist's ID" +/obj/item/weapon/card/id/science/roboticist + name = JOB_ROBOTICIST + "'s ID" initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n", "stripe-brown") + rank = JOB_ROBOTICIST -/obj/item/card/id/science/xenobiologist - name = "Xenobiologist's ID" +/obj/item/weapon/card/id/science/xenobiologist + name = JOB_XENOBIOLOGIST + "'s ID" initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n", "stripe-orange") + rank = JOB_XENOBIOLOGIST -/obj/item/card/id/science/xenobotanist - name = "Xenobotanist's ID" +/obj/item/weapon/card/id/science/xenobotanist + name = JOB_XENOBOTANIST + "'s ID" initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n", "stripe-green") + rank = JOB_XENOBOTANIST -/obj/item/card/id/science/head - name = "Research Director's ID" +/obj/item/weapon/card/id/science/head + name = JOB_RESEARCH_DIRECTOR + "'s ID" initial_sprite_stack = list("base-stamp-silver", "top-purple", "stamp-n", "pips-gold") + rank = JOB_RESEARCH_DIRECTOR //Cargo /obj/item/card/id/cargo name = "Cargo ID" initial_sprite_stack = list("base-stamp", "top-brown", "stamp-n") + rank = JOB_CARGO_TECHNICIAN /obj/item/card/id/cargo/miner name = "Miner's ID" initial_sprite_stack = list("base-stamp", "top-brown", "stamp-n", "stripe-purple") + rank = JOB_SHAFT_MINER -/obj/item/card/id/cargo/head - name = "Quartermaster's ID" +/obj/item/weapon/card/id/cargo/head + name = JOB_QUARTERMASTER + "'s ID" initial_sprite_stack = list("base-stamp-silver", "top-brown", "stamp-n", "pips-white") + rank = JOB_QUARTERMASTER //Civilian @@ -181,37 +207,45 @@ name = "Civilian ID" initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n") -/obj/item/card/id/civilian/chaplain - name = "Chaplain's ID" +/obj/item/weapon/card/id/civilian/chaplain + name = JOB_CHAPLAIN + "'s ID" initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-cross", "stripe-white") + rank = JOB_CHAPLAIN -/obj/item/card/id/civilian/journalist - name = "Journalist's ID" +/obj/item/weapon/card/id/civilian/journalist + name = JOB_ALT_JOURNALIST + "'s ID" initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n", "stripe-red") + rank = JOB_ALT_JOURNALIST -/obj/item/card/id/civilian/pilot - name = "Pilot's ID" +/obj/item/weapon/card/id/civilian/pilot + name = JOB_PILOT + "'s ID" initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n", "stripe-olive") + rank = JOB_PILOT -/obj/item/card/id/civilian/entertainer - name = "Entertainer's ID" +/obj/item/weapon/card/id/civilian/entertainer + name = JOB_ENTERTAINER + "'s ID" initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n", "stripe-brown") + rank = JOB_ENTERTAINER -/obj/item/card/id/civilian/entrepreneur - name = "Entrepreneur's ID" +/obj/item/weapon/card/id/civilian/entrepreneur + name = JOB_ENTREPRENEUR + "'s ID" initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n", "stripe-gold") + rank = JOB_ENTREPRENEUR -/obj/item/card/id/civilian/clown - name = "Clown's ID" +/obj/item/weapon/card/id/civilian/clown + name = JOB_CLOWN + "'s ID" initial_sprite_stack = list("base-stamp", "top-rainbow", "stamp-n") + rank = JOB_CLOWN -/obj/item/card/id/civilian/mime - name = "Mime's ID" +/obj/item/weapon/card/id/civilian/mime + name = JOB_MIME + "'s ID" initial_sprite_stack = list("base-stamp", "top-white", "stamp-n", "stripe-black") + rank = JOB_MIME /obj/item/card/id/civilian/internal_affairs name = "Internal Affairs ID" initial_sprite_stack = list("base-stamp", "top-blue", "stamp-n", "stripe-black") + rank = JOB_INTERNAL_AFFAIRS_AGENT //Service @@ -219,35 +253,42 @@ name = "Service ID" initial_sprite_stack = list("base-stamp", "top-green", "stamp-n") -/obj/item/card/id/civilian/service/botanist - name = "Botanist's ID" +/obj/item/weapon/card/id/civilian/service/botanist + name = JOB_BOTANIST + "'s ID" initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "stripe-darkgreen") + rank = JOB_BOTANIST -/obj/item/card/id/civilian/service/bartender - name = "Bartender's ID" +/obj/item/weapon/card/id/civilian/service/bartender + name = JOB_BARTENDER + "'s ID" initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "stripe-black") + rank = JOB_BARTENDER -/obj/item/card/id/civilian/service/chef - name = "Chef's ID" +/obj/item/weapon/card/id/civilian/service/chef + name = JOB_CHEF + "'s ID" initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "stripe-white") + rank = JOB_CHEF -/obj/item/card/id/civilian/service/janitor - name = "Janitor's ID" +/obj/item/weapon/card/id/civilian/service/janitor + name = JOB_JANITOR + "'s ID" initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "stripe-purple") + rank = JOB_JANITOR //Exploration /obj/item/card/id/exploration name = "Exploration ID" initial_sprite_stack = list("base-stamp", "top-olive", "stamp-n") + rank = JOB_EXPLORER -/obj/item/card/id/exploration/fm - name = "Field Medic's ID" +/obj/item/weapon/card/id/exploration/fm + name = JOB_FIELD_MEDIC + "'s ID" initial_sprite_stack = list("base-stamp", "top-olive", "stamp-n", "stripe-medblu") + rank = JOB_FIELD_MEDIC -/obj/item/card/id/exploration/head - name = "Pathfinder's ID" +/obj/item/weapon/card/id/exploration/head + name = JOB_PATHFINDER + "'s ID" initial_sprite_stack = list("base-stamp-silver", "top-olive", "stamp-n", "pips-white") + rank = JOB_PATHFINDER //Talon @@ -258,32 +299,39 @@ /obj/item/card/id/talon/doctor name = "Talon Medical ID" initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-medblu", "stripe-medblu") + rank = JOB_TALON_DOCTOR /obj/item/card/id/talon/engineer name = "Talon Engineering ID" initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-orange", "stripe-orange") + rank = JOB_TALON_ENGINEER /obj/item/card/id/talon/officer name = "Talon Security ID" initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-red", "stripe-red") + rank = JOB_TALON_GUARD -/obj/item/card/id/talon/pilot - name = "Talon Pilot ID" +/obj/item/weapon/card/id/talon/pilot + name = JOB_TALON_PILOT + " ID" initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-purple", "stripe-purple") + rank = JOB_TALON_PILOT /obj/item/card/id/talon/miner name = "Talon Mining ID" initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-brown", "stripe-brown") + rank = JOB_TALON_MINER -/obj/item/card/id/talon/captain - name = "Talon Captain ID" +/obj/item/weapon/card/id/talon/captain + name = JOB_TALON_CAPTAIN + " ID" initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-gold", "stripe-gold") + rank = JOB_TALON_CAPTAIN //Antags /obj/item/card/id/syndicate name = "Syndicate ID" initial_sprite_stack = list("base-stamp-dark", "top-syndicate", "stamp-s") + rank = JOB_SYNDICATE /obj/item/card/id/syndicate/officer name = "Syndicate Officer ID" diff --git a/code/game/objects/items/weapons/id cards/station_ids.dm b/code/game/objects/items/weapons/id cards/station_ids.dm index 91ce01c76d..68d15ba1fb 100644 --- a/code/game/objects/items/weapons/id cards/station_ids.dm +++ b/code/game/objects/items/weapons/id cards/station_ids.dm @@ -141,15 +141,15 @@ item_state = "gold_id" preserve_item = 1 -/obj/item/card/id/gold/captain - assignment = "Site Manager" - rank = "Site Manager" +/obj/item/weapon/card/id/gold/captain + assignment = JOB_SITE_MANAGER + rank = JOB_SITE_MANAGER -/obj/item/card/id/gold/captain/spare - name = "\improper Site Manager's spare ID" +/obj/item/weapon/card/id/gold/captain/spare + name = "\improper " + JOB_SITE_MANAGER + "'s spare ID" desc = "The emergency spare ID for the station's very own Big Cheese." icon_state = "gold-id-alternate" - registered_name = "Site Manager" + registered_name = JOB_SITE_MANAGER /obj/item/card/id/gold/captain/spare/fakespare rank = "null" @@ -202,10 +202,11 @@ . = ..() access |= get_all_station_access() -/obj/item/card/id/centcom/ERT - name = "\improper Emergency Response Team ID" - assignment = "Emergency Response Team" +/obj/item/weapon/card/id/centcom/ERT + name = "\improper " + JOB_EMERGENCY_RESPONSE_TEAM + "ID" + assignment = JOB_EMERGENCY_RESPONSE_TEAM icon_state = "ert-id" + rank = JOB_EMERGENCY_RESPONSE_TEAM /obj/item/card/id/centcom/ERT/Initialize() . = ..() @@ -218,14 +219,15 @@ icon_state = "medical-id" primary_color = rgb(189,237,237) secondary_color = rgb(223,255,255) + rank = JOB_MEDICAL_DOCTOR /obj/item/card/id/medical/head name = "identification card" desc = "A card which represents care and compassion." primary_color = rgb(189,237,237) secondary_color = rgb(255,223,127) - assignment = "Chief Medical Officer" - rank = "Chief Medical Officer" + assignment = JOB_CHIEF_MEDICAL_OFFICER + rank = JOB_CHIEF_MEDICAL_OFFICER /obj/item/card/id/security name = "identification card" @@ -233,18 +235,19 @@ icon_state = "security-id" primary_color = rgb(189,47,0) secondary_color = rgb(223,127,95) + rank = JOB_SECURITY_OFFICER -/obj/item/card/id/security/warden - assignment = "Warden" - rank = "Warden" +/obj/item/weapon/card/id/security/warden + assignment = JOB_WARDEN + rank = JOB_WARDEN /obj/item/card/id/security/head name = "identification card" desc = "A card which represents honor and protection." primary_color = rgb(189,47,0) secondary_color = rgb(255,223,127) - assignment = "Head of Security" - rank = "Head of Security" + assignment = JOB_HEAD_OF_SECURITY + rank = JOB_HEAD_OF_SECURITY /obj/item/card/id/engineering name = "identification card" @@ -253,17 +256,17 @@ primary_color = rgb(189,94,0) secondary_color = rgb(223,159,95) -/obj/item/card/id/engineering/atmos - assignment = "Atmospheric Technician" - rank = "Atmospheric Technician" +/obj/item/weapon/card/id/engineering/atmos + assignment = JOB_ATMOSPHERIC_TECHNICIAN + rank = JOB_ATMOSPHERIC_TECHNICIAN /obj/item/card/id/engineering/head name = "identification card" desc = "A card which represents creativity and ingenuity." primary_color = rgb(189,94,0) secondary_color = rgb(255,223,127) - assignment = "Chief Engineer" - rank = "Chief Engineer" + assignment = JOB_CHIEF_ENGINEER + rank = JOB_CHIEF_ENGINEER /obj/item/card/id/science name = "identification card" @@ -277,8 +280,8 @@ desc = "A card which represents knowledge and reasoning." primary_color = rgb(142,47,142) secondary_color = rgb(255,223,127) - assignment = "Research Director" - rank = "Research Director" + assignment = JOB_RESEARCH_DIRECTOR + rank = JOB_RESEARCH_DIRECTOR /obj/item/card/id/cargo name = "identification card" @@ -292,12 +295,12 @@ desc = "A card which represents service and planning." primary_color = rgb(142,94,0) secondary_color = rgb(255,223,127) - assignment = "Quartermaster" - rank = "Quartermaster" + assignment = JOB_QUARTERMASTER + rank = JOB_QUARTERMASTER -/obj/item/card/id/assistant - assignment = USELESS_JOB //VOREStation Edit - Visitor not Assistant - rank = USELESS_JOB //VOREStation Edit - Visitor not Assistant +/obj/item/weapon/card/id/assistant + assignment = JOB_ALT_VISITOR //VOREStation Edit - Visitor not Assistant + rank = JOB_ALT_VISITOR //VOREStation Edit - Visitor not Assistant /obj/item/card/id/civilian name = "identification card" @@ -306,7 +309,7 @@ primary_color = rgb(0,94,142) secondary_color = rgb(95,159,191) assignment = "Civilian" - rank = "Assistant" + rank = JOB_ALT_ASSISTANT /obj/item/card/id/civilian/head //This is not the HoP. There's no position that uses this right now. name = "identification card" @@ -352,10 +355,10 @@ configured = 1 to_chat(user, "Card settings set.") -/obj/item/card/id/event/attackby(obj/item/I as obj, var/mob/user) - if(istype(I, /obj/item/card/id) && !accessset) - var/obj/item/card/id/O = I - access |= O.access +/obj/item/weapon/card/id/event/attackby(obj/item/I as obj, var/mob/user) + if(istype(I, /obj/item/weapon/card/id) && !accessset) + var/obj/item/weapon/card/id/O = I + access |= O.GetAccess() desc = I.desc rank = O.rank to_chat(user, "You copy the access from \the [I] to \the [src].") @@ -402,14 +405,14 @@ /obj/item/card/id/event/accessset/itg/crew/pilot name = "\improper ITG Pilot's ID" desc = "An ID card belonging to the Pilot of an ITG vessel. The Pilot's responsibility is primarily to fly the ship. They may also be tasked to assist with cargo movement duties." - assignment = "Pilot" - rank = "Pilot" + assignment = JOB_PILOT + rank = JOB_PILOT -/obj/item/card/id/event/accessset/itg/crew/service - name = "\improper ITG Cook's ID" - desc = "An ID card belonging to the Cook of an ITG vessel. The Cook's responsibility is primarily to provide sustinence to the crew and passengers. The Cook answers to the Passenger Liason. In the absence of a Passenger Liason, the Cook is also responsible for tending to passenger related care and duties." - assignment = "Cook" - rank = "Cook" +/obj/item/weapon/card/id/event/accessset/itg/crew/service + name = "\improper ITG " + JOB_ALT_COOK + "'s ID" + desc = "An ID card belonging to the " + JOB_ALT_COOK + " of an ITG vessel. The " + JOB_ALT_COOK + "'s responsibility is primarily to provide sustinence to the crew and passengers. The " + JOB_ALT_COOK + " answers to the Passenger Liason. In the absence of a Passenger Liason, the " + JOB_ALT_COOK + " is also responsible for tending to passenger related care and duties." + assignment = JOB_ALT_COOK + rank = JOB_ALT_COOK icon_state = "itg_green" /obj/item/card/id/event/accessset/itg/crew/security @@ -433,11 +436,11 @@ rank = "Medic" icon_state = "itg_white" -/obj/item/card/id/event/accessset/itg/crew/engineer - name = "\improper ITG Engineer's ID" - desc = "An ID card belonging to the Engineer of an ITG vessel. The Engineer's responsibility is primarily to maintain the ship. They may also be tasked to assist with cargo movement duties." - assignment = "Engineer" - rank = "Engineer" +/obj/item/weapon/card/id/event/accessset/itg/crew/engineer + name = "\improper ITG " + JOB_ENGINEER + "'s ID" + desc = "An ID card belonging to the " + JOB_ENGINEER + " of an ITG vessel. The " + JOB_ENGINEER + "'s responsibility is primarily to maintain the ship. They may also be tasked to assist with cargo movement duties." + assignment = JOB_ENGINEER + rank = JOB_ENGINEER icon_state = "itg_orange" /obj/item/card/id/event/accessset/itg/crew/passengerliason @@ -447,11 +450,11 @@ rank = "Passenger Liason" icon_state = "itg_blue" -/obj/item/card/id/event/accessset/itg/crew/captain - name = "\improper ITG Captain's ID" +/obj/item/weapon/card/id/event/accessset/itg/crew/captain + name = "\improper ITG " + JOB_ALT_CAPTAIN + "'s ID" desc = "An ID card belonging to the Captain of an ITG vessel. The Captain's responsibility is primarily to manage crew to ensure smooth ship operations. Captains often also often pilot the vessel when no dedicated pilot is assigned." - assignment = "Captain" - rank = "Captain" + assignment = JOB_ALT_CAPTAIN + rank = JOB_ALT_CAPTAIN icon_state = "itg_blue" access = list(777, 778) @@ -520,47 +523,46 @@ /obj/item/card/id/event/polymorphic/itg/attack_self(var/mob/user) if(!configured) var/list/jobs_to_icon = list( //ITG only has a few kinds of icons so we have to group them up! - "Pilot" = "itg", - "Visitor" = "itg", - "Quartermaster" = "itg", - "Cargo Technician" = "itg", - "Shaft Miner" = "itg", - "Intern" = "itg", - "Talon Pilot" = "itg", - "Talon Miner" = "itg", - "Bartender" = "itg_green", - "Botanist" = "itg_green", - "Chef" = "itg_green", - "Janitor" = "itg_green", - "Chaplain" = "itg_green", - "Entertainer" = "itg_green", - "Janitor" = "itg_green", - "Librarian" = "itg_green", - "Warden" = "itg_red", - "Detective" = "itg_red", - "Security Officer" = "itg_red", - "Talon Guard" = "itg_red", - "Roboticist" = "itg_purple", - "Scientist" = "itg_purple", - "Xenobiologist" = "itg_purple", - "Xenobotanist" = "itg_purple", - "Pathfinder" = "itg_purple", - "Explorer" = "itg_purple", - "Chemist" = "itg_white", - "Medical Doctor" = "itg_white", - "Paramedic" = "itg_white", - "Psychiatrist" = "itg_white", - "Field Medic" = "itg_white", - "Talon Doctor" = "itg_white", - "Atmospheric Technician" = "itg_orange", - "Engineer" = "itg_orange", - "Off-duty Officer" = "itg_red", - "Off-duty Engineer" = "itg_orange", - "Off-duty Medic" = "itg_white", - "Off-duty Scientist" = "itg_purple", - "Off-duty Cargo" = "itg", - "Off-duty Explorer" = "itg_purple", - "Off-duty Worker" = "itg_green" + JOB_PILOT = "itg", + JOB_ALT_VISITOR = "itg", + JOB_QUARTERMASTER = "itg", + JOB_CARGO_TECHNICIAN = "itg", + JOB_SHAFT_MINER = "itg", + JOB_INTERN = "itg", + JOB_TALON_PILOT = "itg", + JOB_TALON_MINER = "itg", + JOB_BARTENDER = "itg_green", + JOB_BOTANIST = "itg_green", + JOB_CHEF = "itg_green", + JOB_JANITOR = "itg_green", + JOB_CHAPLAIN = "itg_green", + JOB_ENTERTAINER = "itg_green", + JOB_LIBRARIAN = "itg_green", + JOB_WARDEN = "itg_red", + JOB_DETECTIVE = "itg_red", + JOB_SECURITY_OFFICER = "itg_red", + JOB_TALON_GUARD = "itg_red", + JOB_ROBOTICIST = "itg_purple", + JOB_SCIENTIST = "itg_purple", + JOB_XENOBIOLOGIST = "itg_purple", + JOB_XENOBOTANIST = "itg_purple", + JOB_PATHFINDER = "itg_purple", + JOB_EXPLORER = "itg_purple", + JOB_CHEMIST = "itg_white", + JOB_MEDICAL_DOCTOR = "itg_white", + JOB_PARAMEDIC = "itg_white", + JOB_PSYCHIATRIST = "itg_white", + JOB_FIELD_MEDIC = "itg_white", + JOB_TALON_DOCTOR = "itg_white", + JOB_ATMOSPHERIC_TECHNICIAN = "itg_orange", + JOB_ENGINEER = "itg_orange", + JOB_OFFDUTY_OFFICER = "itg_red", + JOB_OFFDUTY_ENGINEER = "itg_orange", + JOB_OFFDUTY_MEDIC = "itg_white", + JOB_OFFDUTY_SCIENTIST = "itg_purple", + JOB_OFFDUTY_CARGO = "itg", + JOB_OFFDUTY_EXPLORER = "itg_purple", + JOB_OFFDUTY_WORKER = "itg_green" ) var/guess = jobs_to_icon[user.job] @@ -574,10 +576,10 @@ name = user.name + "'s ITG ID card" + " ([assignment])" -/obj/item/card/id/event/polymorphic/itg/attackby(obj/item/I as obj, var/mob/user) - if(istype(I, /obj/item/card/id) && !accessset) - var/obj/item/card/id/O = I - var/list/itgdont = list("Site Manager", "Head of Personnel", "Command Secretary", "Head of Security", "Chief Engineer", "Chief Medical Officer", "Research Director", "Clown", "Mime", "Talon Captain") //If you're in as one of these you probably aren't representing ITG +/obj/item/weapon/card/id/event/polymorphic/itg/attackby(obj/item/I as obj, var/mob/user) + if(istype(I, /obj/item/weapon/card/id) && !accessset) + var/obj/item/weapon/card/id/O = I + var/list/itgdont = list(JOB_SITE_MANAGER, JOB_HEAD_OF_PERSONNEL, JOB_COMMAND_SECRETARY, JOB_HEAD_OF_SECURITY, JOB_CHIEF_ENGINEER, JOB_CHIEF_MEDICAL_OFFICER, JOB_RESEARCH_DIRECTOR, JOB_CLOWN, JOB_MIME, JOB_TALON_CAPTAIN) //If you're in as one of these you probably aren't representing ITG if(O.rank in itgdont) to_chat(user, "ITG Cards do not seem to be able to accept the access codes for your ID.") return diff --git a/code/game/objects/items/weapons/id cards/syndicate_ids.dm b/code/game/objects/items/weapons/id cards/syndicate_ids.dm index 38a53d6be9..b70f18e1c4 100644 --- a/code/game/objects/items/weapons/id cards/syndicate_ids.dm +++ b/code/game/objects/items/weapons/id cards/syndicate_ids.dm @@ -27,9 +27,9 @@ /obj/item/card/id/syndicate/afterattack(var/obj/item/O as obj, mob/user as mob, proximity) if(!proximity) return - if(istype(O, /obj/item/card/id)) - var/obj/item/card/id/I = O - src.access |= I.access + if(istype(O, /obj/item/weapon/card/id)) + var/obj/item/weapon/card/id/I = O + src.access |= I.GetAccess() if(player_is_antag(user.mind) || registered_user == user) to_chat(user, "The microscanner activates as you pass it over the ID, copying its access.") diff --git a/code/game/objects/items/weapons/manuals.dm b/code/game/objects/items/weapons/manuals.dm index 0d216a7297..1be3edcdf8 100644 --- a/code/game/objects/items/weapons/manuals.dm +++ b/code/game/objects/items/weapons/manuals.dm @@ -647,12 +647,12 @@ "} -/obj/item/book/manual/robotics_cyborgs - name = "Cyborgs for Dummies" +/obj/item/weapon/book/manual/robotics_cyborgs + name = JOB_CYBORG + "s for Dummies" icon_state = "borgbook" item_state = "book1" author = "XISC" - title = "Cyborgs for Dummies" + title = JOB_CYBORG + "s for Dummies" dat = {" @@ -949,12 +949,12 @@ "} -/obj/item/book/manual/chef_recipes - name = "Chef Recipes" +/obj/item/weapon/book/manual/chef_recipes + name = JOB_CHEF + " Recipes" icon_state = "cooked_book" item_state = "book16" author = "Victoria Ponsonby" - title = "Chef Recipes" + title = JOB_CHEF + " Recipes" dat = {" @@ -1401,7 +1401,7 @@ name = "Sneezes and Coughs: A Guide To Virology, 1st Edition" icon_state = "bookvirology" item_state = "book5" - author = "James Simpson, Chief Virologist" + author = "James Simpson, Chief " + JOB_ALT_VIROLOGIST title = "Sneezes and Coughs: A Guide To Virology, 1st Edition" dat = {" diff --git a/code/game/objects/items/weapons/material/kitchen.dm b/code/game/objects/items/weapons/material/kitchen.dm index abe4e38743..db0d2d557d 100644 --- a/code/game/objects/items/weapons/material/kitchen.dm +++ b/code/game/objects/items/weapons/material/kitchen.dm @@ -198,7 +198,7 @@ /obj/item/material/kitchen/rollingpin name = "rolling pin" - desc = "Used to knock out the Bartender." + desc = "Used to knock out the " + JOB_BARTENDER+ "." icon_state = "rolling_pin" attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked") default_material = "wood" diff --git a/code/game/objects/items/weapons/material/knives.dm b/code/game/objects/items/weapons/material/knives.dm index 748daa634c..b0439b4eae 100644 --- a/code/game/objects/items/weapons/material/knives.dm +++ b/code/game/objects/items/weapons/material/knives.dm @@ -63,7 +63,7 @@ name = "kitchen knife" icon = 'icons/obj/kitchen.dmi' icon_state = "knife" - desc = "A general purpose Chef's Knife made by SpaceCook Incorporated. Guaranteed to stay sharp for years to come." + desc = "A general purpose " + JOB_CHEF + "'s Knife made by SpaceCook Incorporated. Guaranteed to stay sharp for years to come." description_fluff = "This could be used to engrave messages on suitable surfaces if you really put your mind to it! Alt-click a floor or wall to engrave with it." //This way it's not a completely hidden, arcane art to engrave. sharp = TRUE edge = TRUE diff --git a/code/game/objects/items/weapons/storage/bible.dm b/code/game/objects/items/weapons/storage/bible.dm index c3b6498511..fd5d3dab18 100644 --- a/code/game/objects/items/weapons/storage/bible.dm +++ b/code/game/objects/items/weapons/storage/bible.dm @@ -38,7 +38,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list( /obj/item/storage/bible/attack_self(mob/living/carbon/human/user) - if(user?.mind?.assigned_role != "Chaplain") + if(user?.mind?.assigned_role != JOB_CHAPLAIN) return FALSE if (!user.mind.my_religion) @@ -82,7 +82,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list( return FALSE if(user.incapacitated()) return FALSE - if(user.mind.assigned_role != "Chaplain") + if(user.mind.assigned_role != JOB_CHAPLAIN) return FALSE return TRUE @@ -102,7 +102,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list( /obj/item/storage/bible/afterattack(atom/A, mob/user as mob, proximity) if(!proximity) return - if(user.mind && (user.mind.assigned_role == "Chaplain")) + if(user.mind && (user.mind.assigned_role == JOB_CHAPLAIN)) if(A.reagents && A.reagents.has_reagent("water")) //blesses all the water in the holder to_chat(user, "You bless [A].") var/water2holy = A.reagents.get_reagent_amount("water") diff --git a/code/game/objects/random/mob_vr.dm b/code/game/objects/random/mob_vr.dm index 112f2f0778..7ca70c9843 100644 --- a/code/game/objects/random/mob_vr.dm +++ b/code/game/objects/random/mob_vr.dm @@ -179,7 +179,7 @@ icon = 'icons/mob/screen1.dmi' icon_state = "x" spawn_nothing_percentage = 10 - var/faction = "wild animal" + var/faction = FACTION_WILD_ANIMAL /obj/random/outside_mob/item_to_spawn() // Special version for mobs to have the same faction. return pick( diff --git a/code/game/objects/structures/artstuff.dm b/code/game/objects/structures/artstuff.dm index 1ecda0edae..ebe8de03ea 100644 --- a/code/game/objects/structures/artstuff.dm +++ b/code/game/objects/structures/artstuff.dm @@ -351,7 +351,7 @@ desc_with_canvas = "A masterpiece hand-picked by the librarian, supposedly." persistence_id = "library" req_one_access = list(access_library) - curator = "Librarian" + curator = JOB_LIBRARIAN /obj/structure/sign/painting/chapel_secure name = "\improper Religious Painting Exhibit mounting" @@ -359,7 +359,7 @@ desc_with_canvas = "A masterpiece hand-picked by the chaplain, supposedly." persistence_id = "chapel" req_one_access = list(access_chapel_office) - curator = "Chaplain" + curator = JOB_CHAPLAIN /obj/structure/sign/painting/library_private // keep your smut away from prying eyes, or non-librarians at least name = "\improper Private Painting Exhibit mounting" @@ -367,7 +367,7 @@ desc_with_canvas = "A painting hung away from lesser minds." persistence_id = "library_private" req_one_access = list(access_library) - curator = "Librarian" + curator = JOB_LIBRARIAN /obj/structure/sign/painting/away_areas // for very hard-to-get-to areas name = "\improper Remote Painting Exhibit mounting" diff --git a/code/game/objects/structures/ghost_pods/event_vr.dm b/code/game/objects/structures/ghost_pods/event_vr.dm index fb2fa68299..5f1060a9f7 100644 --- a/code/game/objects/structures/ghost_pods/event_vr.dm +++ b/code/game/objects/structures/ghost_pods/event_vr.dm @@ -78,7 +78,7 @@ var/choice var/finalized = "No" - if(jobban_isbanned(M, "GhostRoles")) + if(jobban_isbanned(M, JOB_GHOSTROLES)) to_chat(M, "You cannot inhabit this creature because you are banned from playing ghost roles.") reset_ghostpod() return diff --git a/code/game/objects/structures/ghost_pods/ghost_pods.dm b/code/game/objects/structures/ghost_pods/ghost_pods.dm index c505027b13..76d54c95fc 100644 --- a/code/game/objects/structures/ghost_pods/ghost_pods.dm +++ b/code/game/objects/structures/ghost_pods/ghost_pods.dm @@ -87,7 +87,7 @@ /obj/structure/ghost_pod/ghost_activated/attack_ghost(var/mob/observer/dead/user) //VOREStation Add Start - if(jobban_isbanned(user, "GhostRoles")) + if(jobban_isbanned(user, JOB_GHOSTROLES)) to_chat(user, "You cannot inhabit this creature because you are banned from playing ghost roles.") return diff --git a/code/game/objects/structures/ghost_pods/ghost_pods_vr.dm b/code/game/objects/structures/ghost_pods/ghost_pods_vr.dm index 2ae1a6f496..63a2475754 100644 --- a/code/game/objects/structures/ghost_pods/ghost_pods_vr.dm +++ b/code/game/objects/structures/ghost_pods/ghost_pods_vr.dm @@ -11,7 +11,7 @@ var/activated = FALSE /obj/structure/ghost_pod/manual/attack_ghost(var/mob/observer/dead/user) - if(jobban_isbanned(user, "GhostRoles")) + if(jobban_isbanned(user, JOB_GHOSTROLES)) to_chat(user, "You cannot inhabit this creature because you are banned from playing ghost roles.") return diff --git a/code/game/objects/structures/props/swarm.dm b/code/game/objects/structures/props/swarm.dm index 0498674a6f..dd44aad2aa 100644 --- a/code/game/objects/structures/props/swarm.dm +++ b/code/game/objects/structures/props/swarm.dm @@ -14,11 +14,11 @@ /obj/structure/cult/pylon/swarm/CanPass(atom/movable/mover, turf/target) if(istype(mover, /mob/living)) var/mob/living/L = mover - if(L.faction == "swarmer") + if(L.faction == FACTION_SWARMER) return TRUE else if(istype(mover, /obj/item/projectile)) var/obj/item/projectile/P = mover - if(istype(P.firer) && P.firer.faction == "swarmer") + if(istype(P.firer) && P.firer.faction == FACTION_SWARMER) return TRUE return ..() diff --git a/code/game/objects/structures/trash_pile_vr.dm b/code/game/objects/structures/trash_pile_vr.dm index 9f4161b0fb..44ae7781ec 100644 --- a/code/game/objects/structures/trash_pile_vr.dm +++ b/code/game/objects/structures/trash_pile_vr.dm @@ -88,7 +88,7 @@ return //VOREStation Add Start - if(jobban_isbanned(user, "GhostRoles")) + if(jobban_isbanned(user, JOB_GHOSTROLES)) to_chat(user, "You cannot become a mouse because you are banned from playing ghost roles.") return //VOREStation Add End diff --git a/code/game/response_team.dm b/code/game/response_team.dm index 99d6843da8..ec69bdefec 100644 --- a/code/game/response_team.dm +++ b/code/game/response_team.dm @@ -53,7 +53,7 @@ var/silent_ert = 0 if(!send_emergency_team) to_chat(usr, "No emergency response team is currently being sent.") return - if(jobban_isbanned(usr, "Syndicate") || jobban_isbanned(usr, "Emergency Response Team") || jobban_isbanned(usr, "Security Officer")) + if(jobban_isbanned(usr, JOB_SYNDICATE) || jobban_isbanned(usr, JOB_EMERGENCY_RESPONSE_TEAM) || jobban_isbanned(usr, JOB_SECURITY_OFFICER)) to_chat(usr, "You are jobbanned from the emergency reponse team!") return if(ert.current_antagonists.len >= ert.hard_cap) diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 9921e81cfa..cd66f7a421 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -320,7 +320,7 @@ if(!tool || !tool.sharp || !can_engrave()) return FALSE - if(jobban_isbanned(vandal, "Graffiti")) + if(jobban_isbanned(vandal, JOB_GRAFFITI)) to_chat(vandal, SPAN_WARNING("You are banned from leaving persistent information across rounds.")) return diff --git a/code/modules/admin/admin_verb_lists_vr.dm b/code/modules/admin/admin_verb_lists_vr.dm index d60bce76ba..94fabe44e8 100644 --- a/code/modules/admin/admin_verb_lists_vr.dm +++ b/code/modules/admin/admin_verb_lists_vr.dm @@ -160,7 +160,8 @@ var/list/admin_verbs_fun = list( /client/proc/roll_dices, /datum/admins/proc/call_supply_drop, /datum/admins/proc/call_drop_pod, - /client/proc/smite, +// /client/proc/smite, //Replaced by player_effects + /client/proc/player_effects, /client/proc/admin_lightning_strike, /client/proc/resize, //VOREStation Add, /client/proc/cmd_admin_droppod_deploy, diff --git a/code/modules/admin/newbanjob.dm b/code/modules/admin/newbanjob.dm index f495ddb5c0..f9420b886f 100644 --- a/code/modules/admin/newbanjob.dm +++ b/code/modules/admin/newbanjob.dm @@ -1,3 +1,20 @@ +// Station ranks +#define RANK_HEADS "Heads" +#define RANK_SECURITY "Security" +#define RANK_ENGINEERING "Engineering" +#define RANK_RESEARCH "Research" +#define RANK_MEDICAL "Medical" +#define RANK_CE_STATION_ENGINEER "CE_Station_Engineer" +#define RANK_CE_ATMOSPHERIC_TECH "CE_Atmospheric_Tech" +#define RANK_CE_SHAFT_MINER "CE_Shaft_Miner" +#define RANK_CHEMIST_RD_CMO "Chemist_RD_CMO" +#define RANK_GENETIST_RD_CMO "Geneticist_RD_CMO" +#define RANK_MD_CMO "MD_CMO" +#define RANK_SCIENTIST_RD "Scientist_RD" +#define RANK_AI_CYBORG "AI_Cyborg" +#define RANK_DETECTIVE_HOS "Detective_HoS" +#define RANK_VIROLOGIST_RD_CMO "Virologist_RD_CMO" + var/savefile/Banlistjob @@ -61,82 +78,82 @@ var/savefile/Banlistjob if (temp) UpdateTime() bantimestamp = CMinutes + minutes - if(rank == "Heads") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Head of Personnel") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Site Manager") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Head of Security") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Engineer") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Research Director") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Medical Officer") + if(rank == RANK_HEADS) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_HEAD_OF_PERSONNEL) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_SITE_MANAGER) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_HEAD_OF_SECURITY) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_ENGINEER) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_RESEARCH_DIRECTOR) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_MEDICAL_OFFICER) return 1 - if(rank == "Security") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Head of Security") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Warden") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Detective") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Security Officer") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Cyborg") + if(rank == RANK_SECURITY) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_HEAD_OF_SECURITY) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_WARDEN) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_DETECTIVE) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_SECURITY_OFFICER) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CYBORG) return 1 - if(rank == "Engineering") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Engineer") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Atmospheric Technician") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Engineer") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Cyborg") + if(rank == RANK_ENGINEERING) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_ENGINEER) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_ATMOSPHERIC_TECHNICIAN) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_ENGINEER) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CYBORG) return 1 - if(rank == "Research") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Scientist") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Geneticist") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Medical Officer") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Research Director") + if(rank == RANK_RESEARCH) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_SCIENTIST) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_GENETICIST) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_MEDICAL_OFFICER) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_RESEARCH_DIRECTOR) return 1 - if(rank == "Medical") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Geneticist") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Medical Doctor") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Medical Officer") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chemist") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Cyborg") + if(rank == RANK_MEDICAL) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_GENETICIST) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_MEDICAL_DOCTOR) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_MEDICAL_OFFICER) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHEMIST) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CYBORG) return 1 - if(rank == "CE_Station_Engineer") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Engineer") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Engineer") + if(rank == RANK_CE_STATION_ENGINEER) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_ENGINEER) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_ENGINEER) return 1 - if(rank == "CE_Atmospheric_Tech") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Atmospheric Technician") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Engineer") + if(rank == RANK_CE_ATMOSPHERIC_TECH) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_ATMOSPHERIC_TECHNICIAN) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_ENGINEER) return 1 - if(rank == "CE_Shaft_Miner") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Shaft Miner") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Engineer") + if(rank == RANK_CE_SHAFT_MINER) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_SHAFT_MINER) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_ENGINEER) return 1 - if(rank == "Chemist_RD_CMO") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Medical Officer") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Research Director") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chemist") + if(rank == RANK_CHEMIST_RD_CMO) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_MEDICAL_OFFICER) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_RESEARCH_DIRECTOR) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHEMIST) return 1 - if(rank == "Geneticist_RD_CMO") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Medical Officer") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Research Director") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Geneticist") + if(rank == RANK_GENETIST_RD_CMO) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_MEDICAL_OFFICER) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_RESEARCH_DIRECTOR) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_GENETICIST) return 1 - if(rank == "MD_CMO") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Medical Officer") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Medical Doctor") + if(rank == RANK_MD_CMO) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_MEDICAL_OFFICER) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_MEDICAL_DOCTOR) return 1 - if(rank == "Scientist_RD") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Research Director") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Scientist") + if(rank == RANK_SCIENTIST_RD) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_RESEARCH_DIRECTOR) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_SCIENTIST) return 1 - if(rank == "AI_Cyborg") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Cyborg") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "AI") + if(rank == RANK_AI_CYBORG) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CYBORG) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_AI) return 1 - if(rank == "Detective_HoS") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Detective") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Head of Security") + if(rank == RANK_DETECTIVE_HOS) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_DETECTIVE) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_HEAD_OF_SECURITY) return 1 - if(rank == "Virologist_RD_CMO") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Medical Officer") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Research Director") - AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Virologist") + if(rank == RANK_VIROLOGIST_RD_CMO) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_MEDICAL_OFFICER) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_RESEARCH_DIRECTOR) + AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_ALT_VIROLOGIST) return 1 Banlistjob.cd = "/base" @@ -272,3 +289,19 @@ var/savefile/Banlistjob Banlistjob.cd = "/base" for (var/A in Banlistjob.dir) RemoveBanjob(A, "full") + +#undef RANK_HEADS +#undef RANK_SECURITY +#undef RANK_ENGINEERING +#undef RANK_RESEARCH +#undef RANK_MEDICAL +#undef RANK_CE_STATION_ENGINEER +#undef RANK_CE_ATMOSPHERIC_TECH +#undef RANK_CE_SHAFT_MINER +#undef RANK_CHEMIST_RD_CMO +#undef RANK_GENETIST_RD_CMO +#undef RANK_MD_CMO +#undef RANK_SCIENTIST_RD +#undef RANK_AI_CYBORG +#undef RANK_DETECTIVE_HOS +#undef RANK_VIROLOGIST_RD_CMO diff --git a/code/modules/admin/player_effects.dm b/code/modules/admin/player_effects.dm new file mode 100644 index 0000000000..b2d0a83d3d --- /dev/null +++ b/code/modules/admin/player_effects.dm @@ -0,0 +1,655 @@ +/client/proc/player_effects(var/mob/target in mob_list) + set name = "Player Effects" + set desc = "Modify a player character with various 'special treatments' from a list." + set category = "Fun" + if(!check_rights(R_FUN)) + return + + var/datum/eventkit/player_effects/spawner = new() + spawner.target = target + spawner.user = src.mob + spawner.tgui_interact(src.mob) + +/datum/eventkit/player_effects + var/mob/target //The target of the effects + var/mob/user + +/datum/eventkit/player_effects/New() + . = ..() + +/datum/eventkit/player_effects/tgui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "PlayerEffects", "Player Effects") + ui.open() + +/datum/eventkit/player_effects/Destroy() + . = ..() + +/datum/eventkit/player_effects/tgui_static_data(mob/user) + var/list/data = list() + + data["real_name"] = target.name; + data["player_ckey"] = target.ckey; + data["target_mob"] = target; + + + return data + +/datum/eventkit/player_effects/tgui_state(mob/user) + return GLOB.tgui_admin_state + +/datum/eventkit/player_effects/tgui_act(action) + . = ..() + if(.) + return + if(!check_rights_for(usr.client, R_SPAWN)) + return + + log_and_message_admins("[key_name(user)] used player effect: [action] on [target.ckey] playing [target.name]") + + switch(action) + + ////////////SMITES///////////// + if("break_legs") + var/mob/living/carbon/human/Tar = target + if(!istype(Tar)) + return + var/broken_legs = 0 + var/obj/item/organ/external/left_leg = Tar.get_organ(BP_L_LEG) + if(left_leg && left_leg.fracture()) + broken_legs++ + var/obj/item/organ/external/right_leg = Tar.get_organ(BP_R_LEG) + if(right_leg && right_leg.fracture()) + broken_legs++ + if(!broken_legs) + to_chat(user,"[target] didn't have any breakable legs, sorry.") + + if("bluespace_artillery") + bluespace_artillery(target,src) + + if("spont_combustion") + var/mob/living/carbon/human/Tar = target + if(!istype(Tar)) + return + Tar.adjust_fire_stacks(10) + Tar.IgniteMob() + Tar.visible_message("[target] bursts into flames!") + + if("lightning_strike") + var/mob/living/carbon/human/Tar = target + if(!istype(Tar)) + return + var/turf/T = get_step(get_step(target, NORTH), NORTH) + T.Beam(target, icon_state="lightning[rand(1,12)]", time = 5) + Tar.electrocute_act(75,def_zone = BP_HEAD) + target.visible_message("[target] is struck by lightning!") + + if("shadekin_attack") + var/turf/Tt = get_turf(target) //Turf for target + + if(target.loc != Tt) + return //Too hard to attack someone in something + + var/turf/Ts //Turf for shadekin + + //Try to find nondense turf + for(var/direction in cardinal) + var/turf/T = get_step(target,direction) + if(T && !T.density) + Ts = T //Found shadekin spawn turf + if(!Ts) + return //Didn't find shadekin spawn turf + + var/mob/living/simple_mob/shadekin/red/shadekin = new(Ts) + //Abuse of shadekin + shadekin.real_name = shadekin.name + shadekin.init_vore() + shadekin.ability_flags |= 0x1 + shadekin.phase_shift() + shadekin.ai_holder.give_target(target) + shadekin.ai_holder.hostile = FALSE + shadekin.ai_holder.mauling = TRUE + shadekin.Life() + //Remove when done + spawn(10 SECONDS) + if(shadekin) + shadekin.death() + + if("shadekin_vore") + var/static/list/kin_types = list( + "Red Eyes (Dark)" = /mob/living/simple_mob/shadekin/red/dark, + "Red Eyes (Light)" = /mob/living/simple_mob/shadekin/red/white, + "Red Eyes (Brown)" = /mob/living/simple_mob/shadekin/red/brown, + "Blue Eyes (Dark)" = /mob/living/simple_mob/shadekin/blue/dark, + "Blue Eyes (Light)" = /mob/living/simple_mob/shadekin/blue/white, + "Blue Eyes (Brown)" = /mob/living/simple_mob/shadekin/blue/brown, + "Purple Eyes (Dark)" = /mob/living/simple_mob/shadekin/purple/dark, + "Purple Eyes (Light)" = /mob/living/simple_mob/shadekin/purple/white, + "Purple Eyes (Brown)" = /mob/living/simple_mob/shadekin/purple/brown, + "Yellow Eyes (Dark)" = /mob/living/simple_mob/shadekin/yellow/dark, + "Yellow Eyes (Light)" = /mob/living/simple_mob/shadekin/yellow/white, + "Yellow Eyes (Brown)" = /mob/living/simple_mob/shadekin/yellow/brown, + "Green Eyes (Dark)" = /mob/living/simple_mob/shadekin/green/dark, + "Green Eyes (Light)" = /mob/living/simple_mob/shadekin/green/white, + "Green Eyes (Brown)" = /mob/living/simple_mob/shadekin/green/brown, + "Orange Eyes (Dark)" = /mob/living/simple_mob/shadekin/orange/dark, + "Orange Eyes (Light)" = /mob/living/simple_mob/shadekin/orange/white, + "Orange Eyes (Brown)" = /mob/living/simple_mob/shadekin/orange/brown, + "Rivyr (Unique)" = /mob/living/simple_mob/shadekin/blue/rivyr) + var/kin_type = tgui_input_list(usr, "Select the type of shadekin for [target] nomf","Shadekin Type Choice", kin_types) + if(!kin_type || !target) + return + + + kin_type = kin_types[kin_type] + + var/myself = tgui_alert(usr, "Control the shadekin yourself or delete pred and prey after?","Control Shadekin?",list("Control","Cancel","Delete")) + if(!myself || myself == "Cancel" || !target) + return + + var/turf/Tt = get_turf(target) + + if(target.loc != Tt) + return //Can't nom when not exposed + + //Begin abuse + target.transforming = TRUE //Cheap hack to stop them from moving + var/mob/living/simple_mob/shadekin/shadekin = new kin_type(Tt) + shadekin.real_name = shadekin.name + shadekin.init_vore() + shadekin.can_be_drop_pred = TRUE + shadekin.dir = SOUTH + shadekin.ability_flags |= 0x1 + shadekin.phase_shift() //Homf + shadekin.energy = initial(shadekin.energy) + //For fun + sleep(1 SECOND) + shadekin.dir = WEST + sleep(1 SECOND) + shadekin.dir = EAST + sleep(1 SECOND) + shadekin.dir = SOUTH + sleep(1 SECOND) + shadekin.audible_message("[shadekin] belches loudly!", runemessage = "URRRRRP") + sleep(2 SECONDS) + shadekin.phase_shift() + target.transforming = FALSE //Undo cheap hack + + if(myself == "Control") //Put admin in mob + shadekin.ckey = target.ckey + + else //Permakin'd + to_chat(target,"You're carried off into The Dark by the [shadekin]. Who knows if you'll find your way back?") + target.ghostize() + qdel(target) + qdel(shadekin) + + + if("redspace_abduct") + redspace_abduction(target, src) + + if("autosave") + fake_autosave(target, src) + + if("autosave2") + fake_autosave(target, src, TRUE) + + if("adspam") + if(target.client) + target.client.create_fake_ad_popup_multiple(/obj/screen/popup/default, 15) + + if("peppernade") + var/obj/item/weapon/grenade/chem_grenade/teargas/grenade = new /obj/item/weapon/grenade/chem_grenade/teargas + grenade.loc = target.loc + to_chat(target,"GRENADE?!") + grenade.detonate() + + if("spicerequest") + var/obj/item/weapon/reagent_containers/food/condiment/spacespice/spice = new /obj/item/weapon/reagent_containers/food/condiment/spacespice + spice.loc = target.loc + to_chat(target,"A bottle of spices appears at your feet... be careful what you wish for!") + + if("terror") + var/mob/living/carbon/human/Tar = target + if(!istype(Tar)) + return + Tar.fear = 200 + + if("terror_aoe") + var/mob/living/carbon/human/Tar = target + if(!istype(Tar)) + return + for(var/mob/living/carbon/human/L in orange(Tar.client.view, Tar)) + L.fear = 200 + Tar.fear = 200 + + if("spin") + var/speed = tgui_input_number(user, "Spin speed (minimum 0.1):", "Speed") + if(speed < 0.1) + return + var/loops = tgui_input_number(user, "Number of loops (-1 for infinite):", "Loops") + var/direction_ask = tgui_alert(user, "Clockwise or Anti-Clockwise", "Direction", list("Clockwise", "Anti-Clockwise", "Cancel")) + var/direction + if(direction_ask == "Clockwise") + direction = 1 + if(direction_ask == "Anti-Clockwise") + direction = 0 + if(direction_ask == "Cancel") + return + target.SpinAnimation(speed, loops, direction) + + if("squish") + var/is_squished = target.tf_scale_x || target.tf_scale_y + playsound(target, 'sound/items/hooh.ogg', 50, 1) + if(!is_squished) + target.SetTransform(null, (target.size_multiplier * 1.2), (target.size_multiplier * 0.5)) + else + target.ClearTransform() + target.update_transform() + + ////////MEDICAL////////////// + + if("appendicitis") + var/mob/living/carbon/human/Tar = target + if(istype(Tar)) + Tar.appendicitis() + + if("damage_organ") + var/mob/living/carbon/human/Tar = target + if(!istype(Tar)) + return + var/list/organs = list() + for(var/obj/item/organ/I in Tar.organs) + organs |= I + for(var/obj/item/organ/I in Tar.internal_organs) + organs |= I + var/obj/item/organ/our_organ = tgui_input_list(user, "Choose an organ to damage:", "Organs", organs) + if(!our_organ) + return + var/effect = tgui_alert(user, "What do you want to do to the Organ", "Effect", list("Damage", "Kill", "Bruise", "Cancel")) + if(effect == "Cancel") + return + if(effect == "Damage") + var/organ_damage = tgui_input_number(user, "Add how much damage? It is currently at [our_organ.damage].", "Damage") + our_organ.damage = max((our_organ.damage - organ_damage), 0) + if(effect == "Kill") + our_organ.die() + if(effect == "Bruise") + our_organ.bruise() + + if("assist_organ") + var/mob/living/carbon/human/Tar = target + if(!istype(Tar)) + return + var/list/organs = list() + for(var/obj/item/organ/I in Tar.organs) + organs |= I + for(var/obj/item/organ/I in Tar.internal_organs) + organs |= I + var/obj/item/organ/our_organ = tgui_input_list(user, "Choose an organ to become assisted:", "Organs", organs) + if(!our_organ) + return + our_organ.mechassist() + + if("robot_organ") + var/mob/living/carbon/human/Tar = target + if(!istype(Tar)) + return + var/list/organs = list() + for(var/obj/item/organ/I in Tar.organs) + organs |= I + for(var/obj/item/organ/I in Tar.internal_organs) + organs |= I + var/obj/item/organ/our_organ = tgui_input_list(user, "Choose an organ to become robotic:", "Organs", organs) + if(!our_organ) + return + our_organ.robotize() + + if("repair_organ") + var/mob/living/carbon/human/Tar = target + if(!istype(Tar)) + return + var/list/organs = list() + for(var/obj/item/organ/I in Tar.organs) + organs |= I + for(var/obj/item/organ/I in Tar.internal_organs) + organs |= I + var/obj/item/organ/our_organ = tgui_input_list(user, "Choose an organ to heal:", "Organs", organs) + if(!our_organ) + return + var/effect = tgui_alert(user, "What do you want to do to the Organ", "Effect", list("Heal", "Rejuvenate", "Cancel")) + if(effect == "Cancel") + return + if(effect == "Heal") + var/organ_damage = tgui_input_number(user, "Add how much damage? It is currently at [our_organ.damage].", "Damage") + our_organ.damage = max((our_organ.damage - organ_damage), 0) + if(effect == "Rejuvenate") + our_organ.rejuvenate() + + if("drop_organ") + var/mob/living/carbon/human/Tar = target + if(!istype(Tar)) + return + var/list/organs = list() + for(var/obj/item/organ/I in Tar.organs) + organs |= I + for(var/obj/item/organ/I in Tar.internal_organs) + organs |= I + var/obj/item/organ/our_organ = tgui_input_list(user, "Choose an organ to damage:", "Organs", organs) + if(!our_organ) + return + our_organ.removed() + + if("break_bone") + var/mob/living/carbon/human/Tar = target + if(!istype(Tar)) + return + var/list/organs = list() + for(var/obj/item/organ/external/E in Tar.organs) + organs |= E + var/obj/item/organ/external/our_organ = tgui_input_list(user, "Choose an bone to break:", "Organs", organs) + if(!our_organ) + return + our_organ.fracture() + + if("stasis") + var/mob/living/carbon/human/Tar = target + if(!istype(Tar)) + return + if(Tar.in_stasis) + Tar.Stasis(0) + else + Tar.Stasis(100000) + + ////////ABILITIES////////////// + + if("vent_crawl") + var/mob/living/Tar = target + if(!istype(Tar)) + return + Tar.verbs |= /mob/living/proc/ventcrawl + + if("darksight") + var/mob/living/carbon/human/Tar = target + if(!istype(Tar)) + return + var/current_darksight = Tar.species.darksight + var/change_sight = tgui_input_number(user, "What level do you wish to set their darksight to? It is currently [current_darksight].", "Darksight") + if(change_sight) + Tar.species.darksight = change_sight + + if("cocoon") + var/mob/living/carbon/human/Tar = target + if(!istype(Tar)) + return + Tar.verbs |= /mob/living/carbon/human/proc/enter_cocoon + + if("transformation") + var/mob/living/carbon/human/Tar = target + if(!istype(Tar)) + return + Tar.verbs |= /mob/living/carbon/human/proc/shapeshifter_select_hair + Tar.verbs |= /mob/living/carbon/human/proc/shapeshifter_select_hair_colors + Tar.verbs |= /mob/living/carbon/human/proc/shapeshifter_select_gender + Tar.verbs |= /mob/living/carbon/human/proc/shapeshifter_select_wings + Tar.verbs |= /mob/living/carbon/human/proc/shapeshifter_select_tail + Tar.verbs |= /mob/living/carbon/human/proc/shapeshifter_select_ears + Tar.verbs |= /mob/living/carbon/human/proc/lleill_select_shape //designed for non-shapeshifter mobs + Tar.verbs |= /mob/living/carbon/human/proc/lleill_select_colour + + if("set_size") + var/mob/living/Tar = target + if(!istype(Tar)) + return + Tar.verbs |= /mob/living/proc/set_size + + if("lleill_energy") + var/mob/living/carbon/human/Tar = target + if(!istype(Tar)) + return + var/energy_max = tgui_input_number(user, "What should their max lleill energy be set to? It is currently [Tar.species.lleill_energy_max].", "Max energy") + Tar.species.lleill_energy_max = energy_max + var/energy_new = tgui_input_number(user, "What should their current lleill energy be set to? It is currently [Tar.species.lleill_energy].", "Max energy") + Tar.species.lleill_energy = energy_new + + if("lleill_invisibility") + var/mob/living/carbon/human/Tar = target + if(!istype(Tar)) + return + Tar.verbs |= /mob/living/carbon/human/proc/lleill_invisibility + + if("beast_form") + var/mob/living/carbon/human/Tar = target + if(!istype(Tar)) + return + Tar.verbs |= /mob/living/carbon/human/proc/lleill_beast_form + + if("lleill_transmute") + var/mob/living/carbon/human/Tar = target + if(!istype(Tar)) + return + Tar.verbs |= /mob/living/carbon/human/proc/lleill_transmute + + if("lleill_alchemy") + var/mob/living/carbon/human/Tar = target + if(!istype(Tar)) + return + Tar.verbs |= /mob/living/carbon/human/proc/lleill_alchemy + + if("lleill_drain") + var/mob/living/carbon/human/Tar = target + if(!istype(Tar)) + return + Tar.verbs |= /mob/living/carbon/human/proc/lleill_contact + + if("brutal_pred") + var/mob/living/Tar = target + if(!istype(Tar)) + return + Tar.verbs |= /mob/living/proc/shred_limb + + if("trash_eater") + var/mob/living/carbon/human/Tar = target + if(!istype(Tar)) + return + Tar.verbs |= /mob/living/proc/eat_trash + Tar.verbs |= /mob/living/proc/toggle_trash_catching + + + ////////INVENTORY////////////// + + if("drop_all") + var/mob/living/carbon/human/Tar = target + if(!istype(Tar)) + return + var/confirm = tgui_alert(user, "Make [Tar] drop everything?", "Message", list("Yes", "No")) + if(confirm != "Yes") + return + + for(var/obj/item/W in Tar) + if(istype(W, /obj/item/weapon/implant/backup) || istype(W, /obj/item/device/nif)) //VOREStation Edit - There's basically no reason to remove either of these + continue //VOREStation Edit + Tar.drop_from_inventory(W) + + if("drop_specific") + var/mob/living/carbon/human/Tar = target + if(!istype(Tar)) + return + + var/list/items = Tar.get_equipped_items() + var/item_to_drop = tgui_input_list(user, "Choose item to force drop:", "Drop Specific Item", items) + if(item_to_drop) + Tar.drop_from_inventory(item_to_drop) + + if("drop_held") + var/mob/living/carbon/human/Tar = target + if(!istype(Tar)) + return + Tar.drop_l_hand() + Tar.drop_r_hand() + + if("list_all") + var/mob/living/carbon/human/Tar = target + if(!istype(Tar)) + return + Tar.get_equipped_items() + + if("give_item") + var/mob/living/carbon/human/Tar = target + if(!istype(Tar)) + return + if(!user.client.holder) + return + var/obj/item/X = user.client.holder.marked_datum + if(!istype(X)) + return + Tar.put_in_hands(X) + + if("equip_item") + var/mob/living/carbon/human/Tar = target + if(!istype(Tar)) + return + if(!user.client.holder) + return + var/obj/item/X = user.client.holder.marked_datum + if(!istype(X)) + return + if(Tar.equip_to_appropriate_slot(X)) + return + else + Tar.equip_to_storage(X) + + ////////ADMIN////////////// + + if("quick_nif") + var/mob/living/carbon/human/Tar = target + if(!istype(Tar)) + return + var/input_NIF + if(!Tar.get_organ(BP_HEAD)) + to_chat(user,"Target is unsuitable.") + return + if(Tar.nif) + to_chat(user,"Target already has a NIF.") + return + if(Tar.species.flags & NO_SCAN) + var/obj/item/device/nif/S = /obj/item/device/nif/bioadap + input_NIF = initial(S.name) + new /obj/item/device/nif/bioadap(Tar) + else + var/list/NIF_types = typesof(/obj/item/device/nif) + var/list/NIFs = list() + + for(var/NIF_type in NIF_types) + var/obj/item/device/nif/S = NIF_type + NIFs[capitalize(initial(S.name))] = NIF_type + + var/list/show_NIFs = sortList(NIFs) // the list that will be shown to the user to pick from + + input_NIF = tgui_input_list(user, "Pick the NIF type","Quick NIF", show_NIFs) + var/chosen_NIF = NIFs[capitalize(input_NIF)] + + if(chosen_NIF) + new chosen_NIF(Tar) + else + new /obj/item/device/nif(Tar) + log_and_message_admins("[key_name(user)] Quick NIF'd [Tar.real_name] with a [input_NIF].") + + if("resize") + user.client.resize(target) + + if("teleport") + var/where = tgui_alert(user, "Where to teleport?", "Where?", list("To Me", "To Mob", "To Area", "Cancel")) + if(where == "Cancel") + return + if(where == "To Me") + user.client.Getmob(target) + if(where == "To Mob") + var/mob/selection = tgui_input_list(usr, "Select a mob to jump [target] to:", "Jump to mob", mob_list) + target.on_mob_jump() + target.forceMove(get_turf(selection)) + log_admin("[key_name(user)] jumped [target] to [selection]") + if(where == "To Area") + var/area/A + A = tgui_input_list(user, "Pick an area to teleport [target] to:", "Jump to Area", return_sorted_areas()) + target.on_mob_jump() + target.forceMove(pick(get_area_turfs(A))) + log_admin("[key_name(user)] jumped [target] to [A]") + + if("gib") + var/death = tgui_alert(user, "Are you sure you want to destroy [target]?", "Gib?", list("KILL", "Cancel")) + if(death == "KILL") + target.gib() + + if("dust") + var/death = tgui_alert(user, "Are you sure you want to destroy [target]?", "Dust?", list("KILL", "Cancel")) + if(death == "KILL") + target.dust() + + if("paralyse") + var/mob/living/Tar = target + if(!istype(Tar)) + return + user.client.holder.paralyze_mob(Tar) + + if("subtle_message") + user.client.cmd_admin_subtle_message(target) + + if("direct_narrate") + user.client.cmd_admin_direct_narrate(target) + + if("player_panel") + user.client.holder.show_player_panel(target) + + if("view_variables") + user.client.debug_variables(target) + + if("orbit") + if(!user.client.holder.marked_datum) + return + var/atom/movable/X = user.client.holder.marked_datum + X.orbit(target) + + if("ai") + if(!istype(target, /mob/living)) + to_chat(usr, span_notice("This can only be used on instances of type /mob/living")) + return + var/mob/living/L = target + if(L.client || L.teleop) + to_chat(usr, span_warning("This cannot be used on player mobs!")) + return + + if(L.ai_holder) //Cleaning up the original ai + var/ai_holder_old = L.ai_holder + L.ai_holder = null + qdel(ai_holder_old) //Only way I could make #TESTING - Unable to be GC'd to stop. del() logs show it works. + L.ai_holder_type = tgui_input_list(usr, "Choose AI holder", "AI Type", typesof(/datum/ai_holder/)) + L.initialize_ai_holder() + L.faction = sanitize(tgui_input_text(usr, "Please input AI faction", "AI faction", "neutral")) + L.a_intent = tgui_input_list(usr, "Please choose AI intent", "AI intent", list(I_HURT, I_HELP)) + if(tgui_alert(usr, "Make mob wake up? This is needed for carbon mobs.", "Wake mob?", list("Yes", "No")) == "Yes") + L.AdjustSleeping(-100) + + + ////////FIXES////////////// + + if("rejuvenate") + var/mob/living/Tar = target + if(!istype(Tar)) + return + Tar.rejuvenate() + + if("popup-box") + var/message = tgui_input_text(user, "Write a message to send to the user with a space for them to reply without using the text box:", "Message") + if(!message) + return + log_admin("[key_name(user)] sent message to [target]: [message]") + var/reply = tgui_input_text(target, "An admin has sent you a message: [message]", "Reply") + if(!reply) + return + log_and_message_admins("[key_name(target)] replied to [user]'s message: [reply].") + + if("stop-orbits") + for(var/datum/orbit/X in target.orbiters) + X.orbiter.stop_orbit() diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm index 56916c8d80..9f144197a2 100644 --- a/code/modules/admin/player_panel.dm +++ b/code/modules/admin/player_panel.dm @@ -230,38 +230,38 @@ if(ishuman(M)) M_job = M.job else if(isslime(M)) - M_job = "slime" + M_job = JOB_SLIME else if(issmall(M)) - M_job = "Monkey" + M_job = JOB_MONKEY else if(isalien(M)) - M_job = "Alien" + M_job = JOB_ALIEN else - M_job = "Carbon-based" + M_job = JOB_CARBON_BASED else if(issilicon(M)) //silicon if(isAI(M)) - M_job = "AI" + M_job = JOB_AI else if(ispAI(M)) - M_job = "pAI" + M_job = JOB_PAI else if(isrobot(M)) - M_job = "Cyborg" + M_job = JOB_CYBORG else - M_job = "Silicon-based" + M_job = JOB_SILICON_BASED else if(isanimal(M)) //simple animals if(iscorgi(M)) - M_job = "Corgi" + M_job = JOB_CORGI else - M_job = "Animal" + M_job = JOB_ANIMAL else - M_job = "Living" + M_job = JOB_LIVING else if(istype(M,/mob/new_player)) - M_job = "New player" + M_job = JOB_NEW_PLAYER else if(isobserver(M)) - M_job = "Ghost" + M_job = JOB_GHOST M_job = replacetext(M_job, "'", "") M_job = replacetext(M_job, "\"", "") diff --git a/code/modules/admin/secrets/admin_secrets/prison_warp.dm b/code/modules/admin/secrets/admin_secrets/prison_warp.dm index f0bb1a4628..e77b02c9ce 100644 --- a/code/modules/admin/secrets/admin_secrets/prison_warp.dm +++ b/code/modules/admin/secrets/admin_secrets/prison_warp.dm @@ -17,8 +17,8 @@ continue H.Paralyse(5) if(H.wear_id) - var/obj/item/card/id/id = H.get_idcard() - for(var/A in id.access) + var/obj/item/weapon/card/id/id = H.get_idcard() + for(var/A in id.GetAccess()) if(A == access_security) security++ if(!security) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 205428db00..0938f68769 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -600,10 +600,10 @@ jobs += "
Internal Affairs Agent"+JOB_INTERNAL_AFFAIRS_AGENT+"Internal Affairs Agent"+JOB_INTERNAL_AFFAIRS_AGENT+"
" @@ -629,7 +629,7 @@ //Antagonist (Orange) counter = 0 - var/isbanned_dept = jobban_isbanned(M, "Syndicate") + var/isbanned_dept = jobban_isbanned(M, JOB_SYNDICATE) jobs += "" jobs += "" @@ -652,7 +652,7 @@ //Misc 'roles' counter = 0 - var/list/misc_roles = list("Dionaea", "Graffiti", "Custom loadout", "pAI", "GhostRoles", "AntagHUD") + var/list/misc_roles = list(JOB_DIONAEA, JOB_GRAFFITI, JOB_CUSTOM_LOADOUT, JOB_PAI, JOB_GHOSTROLES, JOB_ANTAGHUD) jobs += "
Antagonist Positions
" jobs += "" for(var/entry in misc_roles) diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 7b5891d32e..8cf3837abf 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -293,7 +293,7 @@ id.icon_state = "gold" id.access = get_all_accesses().Copy() id.registered_name = H.real_name - id.assignment = "Site Manager" + id.assignment = JOB_SITE_MANAGER id.name = "[id.registered_name]'s ID Card ([id.assignment])" H.equip_to_slot_or_del(id, slot_wear_id) H.update_inv_wear_id() diff --git a/code/modules/admin/verbs/modify_robot.dm b/code/modules/admin/verbs/modify_robot.dm index 837a406851..964ea27740 100644 --- a/code/modules/admin/verbs/modify_robot.dm +++ b/code/modules/admin/verbs/modify_robot.dm @@ -229,13 +229,13 @@ var/selected_radio_channel = tgui_input_list(usr, "Please select the radio channel to add", "Channels", available_channels) if(!selected_radio_channel || selected_radio_channel == "Cancel") break - if(selected_radio_channel == "Special Ops") + if(selected_radio_channel == CHANNEL_SPECIAL_OPS) target.radio.centComm = 1 - if(selected_radio_channel == "Raider") + if(selected_radio_channel == CHANNEL_RAIDER) qdel(target.radio.keyslot) target.radio.keyslot = new /obj/item/encryptionkey/raider(target) target.radio.syndie = 1 - if(selected_radio_channel == "Mercenary") + if(selected_radio_channel == CHANNEL_MERCENARY) qdel(target.radio.keyslot) target.radio.keyslot = new /obj/item/encryptionkey/syndicate(target) target.radio.syndie = 1 @@ -249,10 +249,10 @@ var/selected_radio_channel = tgui_input_list(usr, "Please select the radio channel to remove", "Channels", target.radio.channels) if(!selected_radio_channel || selected_radio_channel == "Cancel") break - if(selected_radio_channel == "Special Ops") + if(selected_radio_channel == CHANNEL_SPECIAL_OPS) target.radio.centComm = 0 target.module.channels -= selected_radio_channel - if((selected_radio_channel == "Mercenary" || selected_radio_channel == "Raider") && !(target.module.channels["Raider"] || target.module.channels["Mercenary"])) + if((selected_radio_channel == CHANNEL_MERCENARY || selected_radio_channel == CHANNEL_RAIDER) && !(target.module.channels[CHANNEL_RAIDER] || target.module.channels[CHANNEL_MERCENARY])) qdel(target.radio.keyslot) target.radio.keyslot = null target.radio.syndie = 0 @@ -345,9 +345,9 @@ continue target.module_reset(FALSE) if(MODIFIY_ROBOT_TOGGLE_STATION_ACCESS) - if(target?.idcard?.access) - var/obj/item/card/id/synthetic/card = target.idcard - if(access_synth in card.access) + if(target?.idcard?.GetAccess()) + var/obj/item/weapon/card/id/synthetic/card = target.idcard + if(access_synth in card.GetAccess()) card.access -= get_all_station_access() card.access -= access_synth to_chat(usr, "You revoke station access from [target].") @@ -356,9 +356,9 @@ card.access |= access_synth to_chat(usr, "You grant station access to [target].") if(MODIFIY_ROBOT_TOGGLE_CENT_ACCESS) - if(target?.idcard?.access) - var/obj/item/card/id/synthetic/card = target.idcard - if(access_cent_specops in card.access) + if(target?.idcard?.GetAccess()) + var/obj/item/weapon/card/id/synthetic/card = target.idcard + if(access_cent_specops in card.GetAccess()) card.access -= get_all_centcom_access() to_chat(usr, "You revoke central access from [target].") else diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 143534259a..f9d887b53c 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -432,8 +432,8 @@ Traitors and the like can also be revived with the previous role mostly intact. return if(samejob == "Yes") charjob = record_found.fields["real_rank"] - else if(samejob == USELESS_JOB) //VOREStation Edit - Visitor not Assistant - charjob = USELESS_JOB //VOREStation Edit - Visitor not Assistant + else if(samejob == JOB_ALT_VISITOR) //VOREStation Edit - Visitor not Assistant + charjob = JOB_ALT_VISITOR //VOREStation Edit - Visitor not Assistant else records = tgui_alert(src,"No data core entry detected. Would you like add them to the manifest, and sec/med/HR records?","Records",list("No", "Yes", "Cancel")) if(!records || records == "Cancel") diff --git a/code/modules/admin/verbs/tripAI.dm b/code/modules/admin/verbs/tripAI.dm index ff97f2e0dd..b932729d98 100644 --- a/code/modules/admin/verbs/tripAI.dm +++ b/code/modules/admin/verbs/tripAI.dm @@ -7,7 +7,7 @@ return if(job_master && ticker) - var/datum/job/job = job_master.GetJob("AI") + var/datum/job/job = job_master.GetJob(JOB_AI) if(!job) to_chat(usr, "Unable to locate the AI job") return diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index 7d438643d0..c61f8cd792 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -109,7 +109,7 @@ corpseback = /obj/item/storage/backpack corpseid = 1 corpseidjob = "Operative" - corpseidaccess = "Syndicate" + corpseidaccess = JOB_SYNDICATE /obj/effect/landmark/corpse/syndicatecommando name = "Mercenary Commando" @@ -124,7 +124,7 @@ corpsepocket1 = /obj/item/tank/emergency/oxygen corpseid = 1 corpseidjob = "Operative" - corpseidaccess = "Syndicate" + corpseidaccess = JOB_SYNDICATE ///////////Civilians////////////////////// @@ -137,7 +137,7 @@ /obj/effect/landmark/corpse/chef - name = "Chef" + name = JOB_CHEF corpseuniform = /obj/item/clothing/under/rank/chef corpsesuit = /obj/item/clothing/suit/chef/classic corpseshoes = /obj/item/clothing/shoes/black @@ -145,8 +145,8 @@ corpseback = /obj/item/storage/backpack corpseradio = /obj/item/radio/headset corpseid = 1 - corpseidjob = "Chef" - corpseidaccess = "Chef" + corpseidjob = JOB_CHEF + corpseidaccess = JOB_CHEF /obj/effect/landmark/corpse/doctor @@ -158,11 +158,11 @@ corpsepocket1 = /obj/item/flashlight/pen corpseshoes = /obj/item/clothing/shoes/black corpseid = 1 - corpseidjob = "Medical Doctor" - corpseidaccess = "Medical Doctor" + corpseidjob = JOB_MEDICAL_DOCTOR + corpseidaccess = JOB_MEDICAL_DOCTOR /obj/effect/landmark/corpse/engineer - name = "Engineer" + name = JOB_ENGINEER corpseradio = /obj/item/radio/headset/headset_eng corpseuniform = /obj/item/clothing/under/rank/engineer corpseback = /obj/item/storage/backpack/industrial @@ -171,8 +171,8 @@ corpsegloves = /obj/item/clothing/gloves/yellow corpsehelmet = /obj/item/clothing/head/hardhat corpseid = 1 - corpseidjob = "Engineer" - corpseidaccess = "Engineer" + corpseidjob = JOB_ENGINEER + corpseidaccess = JOB_ENGINEER /obj/effect/landmark/corpse/engineer/rig corpsesuit = /obj/item/clothing/suit/space/void/engineering @@ -181,7 +181,7 @@ corpseback = /obj/item/tank/oxygen /obj/effect/landmark/corpse/clown - name = "Clown" + name = JOB_CLOWN corpseuniform = /obj/item/clothing/under/rank/clown corpseshoes = /obj/item/clothing/shoes/clown_shoes corpseradio = /obj/item/radio/headset @@ -189,22 +189,22 @@ corpsepocket1 = /obj/item/bikehorn corpseback = /obj/item/storage/backpack/clown corpseid = 1 - corpseidjob = "Clown" - corpseidaccess = "Clown" + corpseidjob = JOB_CLOWN + corpseidaccess = JOB_CLOWN /obj/effect/landmark/corpse/scientist - name = "Scientist" + name = JOB_SCIENTIST corpseradio = /obj/item/radio/headset/headset_sci corpseuniform = /obj/item/clothing/under/rank/scientist corpsesuit = /obj/item/clothing/suit/storage/toggle/labcoat/science corpseback = /obj/item/storage/backpack corpseshoes = /obj/item/clothing/shoes/white corpseid = 1 - corpseidjob = "Scientist" - corpseidaccess = "Scientist" + corpseidjob = JOB_SCIENTIST + corpseidaccess = JOB_SCIENTIST /obj/effect/landmark/corpse/security - name = "Security Officer" + name = JOB_SECURITY_OFFICER corpseradio = /obj/item/radio/headset/headset_sec corpseuniform = /obj/item/clothing/under/rank/security corpsesuit = /obj/item/clothing/suit/armor/vest @@ -214,8 +214,8 @@ corpsegloves = /obj/item/clothing/gloves/black corpsehelmet = /obj/item/clothing/head/helmet corpseid = 1 - corpseidjob = "Security Officer" - corpseidaccess = "Security Officer" + corpseidjob = JOB_SECURITY_OFFICER + corpseidaccess = JOB_SECURITY_OFFICER /obj/effect/landmark/corpse/security/rig corpsesuit = /obj/item/clothing/suit/space/void/security @@ -243,8 +243,8 @@ corpseback = /obj/item/storage/backpack/industrial corpseshoes = /obj/item/clothing/shoes/black corpseid = 1 - corpseidjob = "Shaft Miner" - corpseidaccess = "Shaft Miner" + corpseidjob = JOB_SHAFT_MINER + corpseidaccess = JOB_SHAFT_MINER /obj/effect/landmark/corpse/miner/rig corpsesuit = /obj/item/clothing/suit/space/void/mining @@ -266,12 +266,12 @@ corpseidjob = "Crewmate" /obj/effect/landmark/corpse/vintage/engineering - name = "Unknown Engineer" + name = "Unknown " + JOB_ENGINEER corpsesuit = /obj/item/clothing/suit/space/void/refurb/engineering corpsehelmet = /obj/item/clothing/head/helmet/space/void/refurb/engineering corpsebelt = /obj/item/storage/belt/utility/full corpseback = /obj/item/tank/oxygen/yellow - corpseidjob = "Engineer" + corpseidjob = JOB_ENGINEER /obj/effect/landmark/corpse/vintage/marine name = "Unknown Marine" @@ -296,23 +296,23 @@ corpseidjob = "Mercenary" /obj/effect/landmark/corpse/vintage/officer - name = "Unknown Captain" + name = "Unknown " + JOB_ALT_CAPTAIN corpsesuit = /obj/item/clothing/suit/space/void/refurb/officer corpsehelmet = /obj/item/clothing/head/helmet/space/void/refurb/officer + corpseidjob = JOB_ALT_CAPTAIN corpseback = /obj/item/tank/oxygen/yellow - corpseidjob = "Captain" /obj/effect/landmark/corpse/vintage/pilot - name = "Unknown Pilot" + name = "Unknown " + JOB_PILOT corpsesuit = /obj/item/clothing/suit/space/void/refurb/pilot corpsehelmet = /obj/item/clothing/head/helmet/space/void/refurb/pilot - corpseidjob = "Pilot" + corpseidjob = JOB_PILOT /obj/effect/landmark/corpse/vintage/research - name = "Unknown Researcher" + name = "Unknown " + JOB_ALT_RESEARCHER corpsesuit = /obj/item/clothing/suit/space/void/refurb/research corpsehelmet = /obj/item/clothing/head/helmet/space/void/refurb/research - corpseidjob = "Researcher" + corpseidjob = JOB_ALT_RESEARCHER /////////////////Officers////////////////////// @@ -325,7 +325,7 @@ corpseglasses = /obj/item/clothing/glasses/sunglasses corpseid = 1 corpseidjob = "Bridge Officer" - corpseidaccess = "Captain" + corpseidaccess = JOB_ALT_CAPTAIN /obj/effect/landmark/corpse/commander name = "Commander" @@ -340,7 +340,7 @@ corpsepocket1 = /obj/item/flame/lighter/zippo corpseid = 1 corpseidjob = "Commander" - corpseidaccess = "Captain" + corpseidaccess = JOB_ALT_CAPTAIN /////////////////Lore Factions////////////////////// @@ -378,4 +378,3 @@ corpseshoes = /obj/item/clothing/shoes/boots/tactical corpseid = 1 corpseidjob = "Hedberg-Hammarstrom Enforcer" - diff --git a/code/modules/blob2/blobs/base_blob.dm b/code/modules/blob2/blobs/base_blob.dm index 6ea52f096f..7475b33210 100644 --- a/code/modules/blob2/blobs/base_blob.dm +++ b/code/modules/blob2/blobs/base_blob.dm @@ -17,7 +17,7 @@ GLOBAL_LIST_EMPTY(all_blobs) var/heal_timestamp = 0 //we got healed when? var/mob/observer/blob/overmind = null var/base_name = "blob" // The name that gets appended along with the blob_type's name. - var/faction = "blob" + var/faction = FACTION_BLOB /obj/structure/blob/Initialize(newloc, new_overmind) if(new_overmind) @@ -426,4 +426,4 @@ GLOBAL_LIST_EMPTY(all_blobs) qdel(src) /turf/simulated/wall/blob_act() - take_damage(100) \ No newline at end of file + take_damage(100) diff --git a/code/modules/blob2/mobs/blob_mob.dm b/code/modules/blob2/mobs/blob_mob.dm index fb84f9d2c1..5bd2fefbeb 100644 --- a/code/modules/blob2/mobs/blob_mob.dm +++ b/code/modules/blob2/mobs/blob_mob.dm @@ -6,7 +6,7 @@ /mob/living/simple_mob/hostile/blob icon = 'icons/mob/blob.dmi' pass_flags = PASSBLOB | PASSTABLE - faction = "blob" + faction = FACTION_BLOB // bubble_icon = "blob" // speak_emote = null //so we use verb_yell/verb_say/etc // atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) diff --git a/code/modules/blob2/overmind/overmind.dm b/code/modules/blob2/overmind/overmind.dm index 625dca158f..ea989759e7 100644 --- a/code/modules/blob2/overmind/overmind.dm +++ b/code/modules/blob2/overmind/overmind.dm @@ -10,7 +10,7 @@ var/list/overminds = list() see_in_dark = 8 invisibility = INVISIBILITY_OBSERVER - faction = "blob" + faction = FACTION_BLOB var/obj/structure/blob/core/blob_core = null // The blob overmind's core var/blob_points = 0 var/max_blob_points = 200 diff --git a/code/modules/blob2/overmind/types.dm b/code/modules/blob2/overmind/types.dm index 36df2a5e4e..394a899d02 100644 --- a/code/modules/blob2/overmind/types.dm +++ b/code/modules/blob2/overmind/types.dm @@ -9,7 +9,7 @@ var/color = "#FFFFFF" // The actual blob's color. var/complementary_color = "#000000" //a color that's complementary to the normal blob color. Blob mobs are colored in this. - var/faction = "blob" // The blob's faction. + var/faction = FACTION_BLOB // The blob's faction. var/attack_message = "The blob attacks you" // Base message the mob gets when blob_act() gets called on them by the blob. An exclaimation point is added to the end. var/attack_message_living = null // Appended to attack_message, if the target fails isSynthetic() check. diff --git a/code/modules/blob2/overmind/types/grey_goo.dm b/code/modules/blob2/overmind/types/grey_goo.dm index f42ab40c60..bdc78112fc 100644 --- a/code/modules/blob2/overmind/types/grey_goo.dm +++ b/code/modules/blob2/overmind/types/grey_goo.dm @@ -14,7 +14,7 @@ attack_message = "The tide tries to swallow you" attack_message_living = ", and you feel your skin dissolve" attack_message_synth = ", and your external plating dissolves" - faction = "nanomachines" + faction = FACTION_NANOMACHINES /datum/blob_type/grey_goo/on_emp(obj/structure/blob/B, severity) B.adjust_integrity(-(20 / severity)) diff --git a/code/modules/casino/headset_casino.dm b/code/modules/casino/headset_casino.dm index aa5b753295..a1acb313c5 100644 --- a/code/modules/casino/headset_casino.dm +++ b/code/modules/casino/headset_casino.dm @@ -15,6 +15,6 @@ /obj/item/encryptionkey/casino icon = 'icons/obj/casino.dmi' icon_state = "cypherkey" - channels = list("Casino" = 1) + channels = list(CHANNEL_CASINO = 1) origin_tech = list(TECH_ILLEGAL = 1) - syndie = 1 \ No newline at end of file + syndie = 1 diff --git a/code/modules/client/client defines.dm b/code/modules/client/client defines.dm index d91ec3bea2..457b6d0fce 100644 --- a/code/modules/client/client defines.dm +++ b/code/modules/client/client defines.dm @@ -147,3 +147,6 @@ var/last_move_dir_pressed = NONE #endif + + /// If this client has been fully initialized or not + var/fully_created = FALSE diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index f56b56f3b2..da22c11f37 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -278,6 +278,8 @@ X << 'sound/effects/tones/newplayerping.ogg' window_flash(X) //VOREStation Edit end. + fully_created = TRUE + attempt_auto_fit_viewport() ////////////// //DISCONNECT// @@ -611,6 +613,7 @@ winset(usr, "mainwindow", "can-resize=true") winset(usr, "mainwindow", "is-maximized=false") winset(usr, "mainwindow", "on-size=attempt_auto_fit_viewport") // The attempt_auto_fit_viewport() proc is not implemented yet + attempt_auto_fit_viewport() /client/verb/toggle_verb_panel() set name = "Toggle Verbs" diff --git a/code/modules/client/preference_setup/antagonism/02_candidacy.dm b/code/modules/client/preference_setup/antagonism/02_candidacy.dm index f4eed30278..5f4934f181 100644 --- a/code/modules/client/preference_setup/antagonism/02_candidacy.dm +++ b/code/modules/client/preference_setup/antagonism/02_candidacy.dm @@ -41,14 +41,14 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set pref.be_special = sanitize_integer(pref.be_special, 0, 16777215, initial(pref.be_special)) //VOREStation Edit - 24 bits of support /datum/category_item/player_setup_item/antagonism/candidacy/content(var/mob/user) - if(jobban_isbanned(user, "Syndicate")) + if(jobban_isbanned(user, JOB_SYNDICATE)) . += "You are banned from antagonist roles." pref.be_special = 0 else var/n = 0 for (var/i in special_roles) if(special_roles[i]) //if mode is available on the server - if(jobban_isbanned(user, i) || (i == "positronic brain" && jobban_isbanned(user, "AI") && jobban_isbanned(user, "Cyborg")) || (i == "pAI candidate" && jobban_isbanned(user, "pAI"))) + if(jobban_isbanned(user, i) || (i == "positronic brain" && jobban_isbanned(user, JOB_AI) && jobban_isbanned(user, JOB_CYBORG)) || (i == "pAI candidate" && jobban_isbanned(user, JOB_PAI))) . += "Be [i]: \[BANNED]
" else . += "Be [i]:[pref.be_special&(1<
" diff --git a/code/modules/client/preference_setup/general/05_background.dm b/code/modules/client/preference_setup/general/05_background.dm index 03efdf9f86..77d3c1979e 100644 --- a/code/modules/client/preference_setup/general/05_background.dm +++ b/code/modules/client/preference_setup/general/05_background.dm @@ -135,19 +135,19 @@ else if(href_list["set_medical_records"]) var/new_medical = strip_html_simple(tgui_input_text(user,"Enter medical information here.","Character Preference", html_decode(pref.med_record), MAX_RECORD_LENGTH, TRUE, prevent_enter = TRUE), MAX_RECORD_LENGTH) - if(new_medical && !jobban_isbanned(user, "Records") && CanUseTopic(user)) + if(new_medical && !jobban_isbanned(user, JOB_RECORDS) && CanUseTopic(user)) pref.med_record = new_medical return TOPIC_REFRESH else if(href_list["set_general_records"]) var/new_general = strip_html_simple(tgui_input_text(user,"Enter employment information here.","Character Preference", html_decode(pref.gen_record), MAX_RECORD_LENGTH, TRUE, prevent_enter = TRUE), MAX_RECORD_LENGTH) - if(new_general && !jobban_isbanned(user, "Records") && CanUseTopic(user)) + if(new_general && !jobban_isbanned(user, JOB_RECORDS) && CanUseTopic(user)) pref.gen_record = new_general return TOPIC_REFRESH else if(href_list["set_security_records"]) var/sec_medical = strip_html_simple(tgui_input_text(user,"Enter security information here.","Character Preference", html_decode(pref.sec_record), MAX_RECORD_LENGTH, TRUE, prevent_enter = TRUE), MAX_RECORD_LENGTH) - if(sec_medical && !jobban_isbanned(user, "Records") && CanUseTopic(user)) + if(sec_medical && !jobban_isbanned(user, JOB_RECORDS) && CanUseTopic(user)) pref.sec_record = sec_medical return TOPIC_REFRESH diff --git a/code/modules/client/preference_setup/loadout/loadout_accessories.dm b/code/modules/client/preference_setup/loadout/loadout_accessories.dm index bffb773794..caed21fbc3 100644 --- a/code/modules/client/preference_setup/loadout/loadout_accessories.dm +++ b/code/modules/client/preference_setup/loadout/loadout_accessories.dm @@ -77,7 +77,7 @@ display_name = "holster selection" description = "Select from a number of general-purpose handgun holsters, or a baton lanyard." path = /obj/item/clothing/accessory/holster - allowed_roles = list("Site Manager", "Head of Personnel", "Security Officer", "Warden", "Head of Security","Detective","Talon Captain","Talon Guard") + allowed_roles = list(JOB_SITE_MANAGER, JOB_HEAD_OF_PERSONNEL, JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_HEAD_OF_SECURITY,JOB_DETECTIVE,JOB_TALON_CAPTAIN,JOB_TALON_GUARD) /datum/gear/accessory/holster/New() ..() @@ -250,7 +250,7 @@ /datum/gear/accessory/stethoscope display_name = "stethoscope" path = /obj/item/clothing/accessory/stethoscope - allowed_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Psychiatrist","Paramedic","Talon Doctor") + allowed_roles = list(JOB_CHIEF_MEDICAL_OFFICER,JOB_MEDICAL_DOCTOR,JOB_CHEMIST,JOB_PSYCHIATRIST,JOB_PARAMEDIC,JOB_TALON_DOCTOR) /datum/gear/accessory/locket display_name = "locket" @@ -335,12 +335,12 @@ /datum/gear/accessory/badge display_name = "sheriff badge (Security)" path = /obj/item/clothing/accessory/badge/holo/sheriff - allowed_roles = list("Security Officer","Detective","Head of Security","Warden") + allowed_roles = list(JOB_SECURITY_OFFICER,JOB_DETECTIVE,JOB_HEAD_OF_SECURITY,JOB_WARDEN) /datum/gear/accessory/corpbadge display_name = "investigator holobadge (IAA)" path = /obj/item/clothing/accessory/badge/holo/investigator - allowed_roles = list("Internal Affairs Agent") + allowed_roles = list(JOB_INTERNAL_AFFAIRS_AGENT) /datum/gear/accessory/pressbadge display_name = "corporate press pass" diff --git a/code/modules/client/preference_setup/loadout/loadout_eyes.dm b/code/modules/client/preference_setup/loadout/loadout_eyes.dm index 91c84f9183..79cfd6e3e2 100644 --- a/code/modules/client/preference_setup/loadout/loadout_eyes.dm +++ b/code/modules/client/preference_setup/loadout/loadout_eyes.dm @@ -71,7 +71,7 @@ display_name = "Security HUD selector" description = "Select from a range of Security HUD eyepieces that can display the ID status and security records of people in line of sight." path = /obj/item/clothing/glasses/hud/security - allowed_roles = list("Security Officer","Head of Security","Warden", "Detective") + allowed_roles = list(JOB_SECURITY_OFFICER,JOB_HEAD_OF_SECURITY,JOB_WARDEN, JOB_DETECTIVE) /datum/gear/eyes/security/New() ..() @@ -91,7 +91,7 @@ display_name = "Medical HUD selector" description = "Select from a range of Medical HUD eyepieces that can display the health status of people in line of sight." path = /obj/item/clothing/glasses/hud/health - allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist", "Psychiatrist") + allowed_roles = list(JOB_MEDICAL_DOCTOR,JOB_CHIEF_MEDICAL_OFFICER,JOB_CHEMIST,JOB_PARAMEDIC,JOB_GENETICIST, JOB_PSYCHIATRIST) /datum/gear/eyes/medical/New() ..() @@ -107,7 +107,7 @@ /datum/gear/eyes/janitor display_name = "Contaminant HUD" path = /obj/item/clothing/glasses/hud/janitor - allowed_roles = list("Janitor") + allowed_roles = list(JOB_JANITOR) /datum/gear/eyes/janitor/prescriptionjan display_name = "Contaminant HUD, prescription" @@ -117,7 +117,7 @@ display_name = "Optical Meson Scanners selection" description = "Select from a range of meson-projection eyewear. Note: not all of these items are atmospherically sealed." path = /obj/item/clothing/glasses/meson - allowed_roles = list("Engineer","Chief Engineer","Atmospheric Technician", "Scientist", "Research Director") + allowed_roles = list(JOB_ENGINEER,JOB_CHIEF_ENGINEER,JOB_ATMOSPHERIC_TECHNICIAN, JOB_SCIENTIST, JOB_RESEARCH_DIRECTOR) /datum/gear/eyes/meson/New() ..() @@ -133,7 +133,7 @@ /datum/gear/eyes/material display_name = "Optical Material Scanners" path = /obj/item/clothing/glasses/material - allowed_roles = list("Shaft Miner","Quartermaster") + allowed_roles = list(JOB_SHAFT_MINER,JOB_QUARTERMASTER) /datum/gear/eyes/glasses/fakesun display_name = "Sunglasses, stylish" @@ -147,7 +147,7 @@ display_name = "functional sunglasses selector" description = "Select from a range of polarized sunglasses that can block flashes whilst still looking classy." path = /obj/item/clothing/glasses/sunglasses - allowed_roles = list("Security Officer","Head of Security","Warden","Site Manager","Head of Personnel","Quartermaster","Internal Affairs Agent","Detective") + allowed_roles = list(JOB_SECURITY_OFFICER,JOB_HEAD_OF_SECURITY,JOB_WARDEN,JOB_SITE_MANAGER,JOB_HEAD_OF_PERSONNEL,JOB_QUARTERMASTER,JOB_INTERNAL_AFFAIRS_AGENT,JOB_DETECTIVE) /datum/gear/eyes/sun/New() ..() diff --git a/code/modules/client/preference_setup/loadout/loadout_eyes_vr.dm b/code/modules/client/preference_setup/loadout/loadout_eyes_vr.dm index 89aad658ce..b8d8a09518 100644 --- a/code/modules/client/preference_setup/loadout/loadout_eyes_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_eyes_vr.dm @@ -1,5 +1,5 @@ /datum/gear/eyes/medical - allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist", "Psychiatrist") + allowed_roles = list(JOB_MEDICAL_DOCTOR,JOB_CHIEF_MEDICAL_OFFICER,JOB_CHEMIST,JOB_PARAMEDIC,JOB_GENETICIST, JOB_PSYCHIATRIST) /datum/gear/eyes/arglasses display_name = "AR glasses" @@ -19,28 +19,28 @@ /datum/gear/eyes/arglasses/sec display_name = "AR-Security glasses" path = /obj/item/clothing/glasses/omnihud/sec - allowed_roles = list("Security Officer","Head of Security","Warden","Detective") + allowed_roles = list(JOB_SECURITY_OFFICER,JOB_HEAD_OF_SECURITY,JOB_WARDEN,JOB_DETECTIVE) /datum/gear/eyes/arglasses/sci display_name = "AR-Research glasses" path = /obj/item/clothing/glasses/omnihud/rnd - allowed_roles = list("Research Director","Scientist","Xenobiologist","Xenobotanist","Roboticist") + allowed_roles = list(JOB_RESEARCH_DIRECTOR,JOB_SCIENTIST,JOB_XENOBIOLOGIST,JOB_XENOBOTANIST,JOB_ROBOTICIST) /datum/gear/eyes/arglasses/eng display_name = "AR-Engineering glasses" path = /obj/item/clothing/glasses/omnihud/eng - allowed_roles = list("Engineer","Chief Engineer","Atmospheric Technician") + allowed_roles = list(JOB_ENGINEER,JOB_CHIEF_ENGINEER,JOB_ATMOSPHERIC_TECHNICIAN) /datum/gear/eyes/arglasses/med display_name = "AR-Medical glasses" path = /obj/item/clothing/glasses/omnihud/med - allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist", "Psychiatrist") + allowed_roles = list(JOB_MEDICAL_DOCTOR,JOB_CHIEF_MEDICAL_OFFICER,JOB_CHEMIST,JOB_PARAMEDIC,JOB_GENETICIST, JOB_PSYCHIATRIST) /datum/gear/eyes/arglasses/all display_name = "AR-Command glasses" path = /obj/item/clothing/glasses/omnihud/all cost = 2 - allowed_roles = list("Site Manager","Head of Personnel") + allowed_roles = list(JOB_SITE_MANAGER,JOB_HEAD_OF_PERSONNEL) /datum/gear/eyes/spiffygogs display_name = "slick orange goggles" diff --git a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm index e4e11d5f80..c63f709505 100644 --- a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm @@ -17,7 +17,7 @@ display_name = "Airhorn - Example Item" description = "An example item that you probably shouldn't see!" ckeywhitelist = list("your_ckey_here") - allowed_roles = list("Engineer") + allowed_roles = list(JOB_ENGINEER) */ /datum/gear/fluff/collar //Use this as a base path for collars if you'd like to set tags in loadout. Make sure you don't use apostrophes in the display name or this breaks! @@ -449,7 +449,7 @@ slot = slot_wear_suit ckeywhitelist = list("flaktual") character_name = list("Yikatihaki") - allowed_roles = list("Explorer") + allowed_roles = list(JOB_EXPLORER) /datum/gear/fluff/suit/storage/flintlock path = /obj/item/clothing/suit/storage/flintlock @@ -536,7 +536,7 @@ // I CKEYS /datum/gear/fluff/ruda_badge path = /obj/item/clothing/accessory/badge/holo/detective/ruda - display_name = "Ruda's Detective Badge" + display_name = "Ruda's " + JOB_DETECTIVE + " Badge" ckeywhitelist = list("interrolouis") character_name = list("Ruda Lizden") @@ -578,7 +578,7 @@ slot = slot_back ckeywhitelist = list("jacknoir413") character_name = list("Areax Third") - allowed_roles = list("Security Officer, Warden, Head of Security") + allowed_roles = list(JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_HEAD_OF_SECURITY) /datum/gear/fluff/earthen_uniform path = /obj/item/clothing/under/fluff/earthenbreath @@ -626,7 +626,7 @@ display_name = "Ace's Holster" ckeywhitelist = list("jertheace") character_name = list("Jeremiah Acacius") - allowed_roles = list("Site Manager", "Warden", "Head of Security") + allowed_roles = list(JOB_SITE_MANAGER, JOB_WARDEN, JOB_HEAD_OF_SECURITY) /datum/gear/fluff/jeremiah_boots path = /obj/item/clothing/shoes/boots/combat @@ -654,7 +654,7 @@ display_name = "Katarina's Backpack" ckeywhitelist = list("joanrisu") character_name = list("Katarina Eine") - allowed_roles = list("Site Manager", "Warden", "Head of Security") + allowed_roles = list(JOB_SITE_MANAGER, JOB_WARDEN, JOB_HEAD_OF_SECURITY) /datum/gear/fluff/emoticon_box path = /obj/item/storage/box/fluff/emoticon @@ -777,7 +777,7 @@ display_name = "Kenzie's Hypospray" ckeywhitelist = list("lm40") character_name = list("Kenzie Houser") - allowed_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Psychiatrist","Paramedic") + allowed_roles = list(JOB_CHIEF_MEDICAL_OFFICER,JOB_MEDICAL_DOCTOR,JOB_CHEMIST,JOB_PSYCHIATRIST,JOB_PARAMEDIC) /datum/gear/fluff/brianna_backpack path = /obj/item/storage/backpack/messenger/black/fluff/briana @@ -792,7 +792,7 @@ description = "A Hull Systems Omni-Tool capable of temporarily shrinking to handheld sizes for even the most delicate work." ckeywhitelist = list("lewzharri") character_name = list ("Kovgam Zharri") - allowed_roles = list("Roboticist","Engineer","Scientist","Xenobiologist","Xenobotanist","Research Director") + allowed_roles = list(JOB_ROBOTICIST,JOB_ENGINEER,JOB_SCIENTIST,JOB_XENOBIOLOGIST,JOB_XENOBOTANIST,JOB_RESEARCH_DIRECTOR) // M CKEYS /datum/gear/fluff/phi_box @@ -820,7 +820,7 @@ slot = slot_wear_suit ckeywhitelist = list("mrsignmeup") character_name = list("Reshskakskakss Seekiseekis") - allowed_roles = list("Head of Security") + allowed_roles = list(JOB_HEAD_OF_SECURITY) /datum/gear/fluff/daniel_medal path = /obj/item/clothing/accessory/medal/conduct @@ -1007,7 +1007,7 @@ display_name = "Tiemli's Welding Goggles" ckeywhitelist = list("radiantaurora") character_name = list("Tiemli Kroto") - allowed_roles = list("Roboticist") + allowed_roles = list(JOB_ROBOTICIST) /datum/gear/fluff/clara_flask path = /obj/item/reagent_containers/food/drinks/glass2/fluff/claraflask @@ -1076,14 +1076,14 @@ display_name = "Kateryna's Voidsuit" ckeywhitelist = list("samanthafyre") character_name = list("Kateryna Petrovitch") - allowed_roles = list("Engineer", "Chief Engineer", "Atmospheric Technician") + allowed_roles = list(JOB_ENGINEER, JOB_CHIEF_ENGINEER, JOB_ATMOSPHERIC_TECHNICIAN) /datum/gear/fluff/katerina_spacesuit path = /obj/item/clothing/head/helmet/space/fluff/kate display_name = "Kateryna's Helmet" ckeywhitelist = list("samanthafyre") character_name = list("Kateryna Petrovitch") - allowed_roles = list("Engineer", "Chief Engineer", "Atmospheric Technician") + allowed_roles = list(JOB_ENGINEER, JOB_CHIEF_ENGINEER, JOB_ATMOSPHERIC_TECHNICIAN) /datum/gear/fluff/kateryna_armorvest path = /obj/item/clothing/suit/armor/vest/wolftaur/kate @@ -1091,7 +1091,7 @@ slot = slot_wear_suit ckeywhitelist = list("samanthafyre") character_name = list("Kateryna Petrovitch") - allowed_roles = list("Security Officer", "Warden", "Head of Security", "Site Manager", "Head of Personnel") + allowed_roles = list(JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_HEAD_OF_SECURITY, JOB_SITE_MANAGER, JOB_HEAD_OF_PERSONNEL) /datum/gear/fluff/viktor_flask path = /obj/item/reagent_containers/food/drinks/flask/vacuumflask/fluff/viktor @@ -1138,7 +1138,7 @@ display_name = "Cerise's Champion's Belt" ckeywhitelist = list("shalax") character_name = list("Cerise Duelliste") - allowed_roles = list("Security Officer", "Warden", "Head of Security", "Detective") + allowed_roles = list(JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_HEAD_OF_SECURITY, JOB_DETECTIVE) /datum/gear/fluff/sidona_robes path = /obj/item/clothing/under/fluff/gildedrobe_perrin @@ -1157,14 +1157,14 @@ display_name = "NT-HASD 556's Modkit" ckeywhitelist = list("silencedmp5a5") character_name = list("NT-HASD #556") - allowed_roles = list("Site Manager", "Head of Personnel", "Security Officer", "Warden", "Head of Security","Detective") + allowed_roles = list(JOB_SITE_MANAGER, JOB_HEAD_OF_PERSONNEL, JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_HEAD_OF_SECURITY,JOB_DETECTIVE) /datum/gear/fluff/serdykov_modkit //Also converts a Security suit's sprite path = /obj/item/modkit_conversion/fluff/serdykit display_name = "Serdykov Antoz's Modkit" ckeywhitelist = list("silencedmp5a5") character_name = list("Serdykov Antoz") - allowed_roles = list("Site Manager", "Head of Personnel", "Security Officer", "Warden", "Head of Security","Detective") + allowed_roles = list(JOB_SITE_MANAGER, JOB_HEAD_OF_PERSONNEL, JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_HEAD_OF_SECURITY,JOB_DETECTIVE) /datum/gear/fluff/tasy_clownuniform path = /obj/item/clothing/under/sexyclown @@ -1293,11 +1293,11 @@ display_name = "Lucky's amour" ckeywhitelist = list ("thedavestdave") character_name = list("Lucky") - allowed_roles = list("Chaplain") + allowed_roles = list(JOB_CHAPLAIN) /datum/gear/fluff/lovec_gasmask path = /obj/item/clothing/mask/gas/explorer - display_name = "Explorer's Gas Mask" + display_name = JOB_EXPLORER + "'s Gas Mask" ckeywhitelist = list("thenewmeta") character_name = list("Lovec") @@ -1505,7 +1505,7 @@ slot = slot_glasses ckeywhitelist = list("wickedtemp") character_name = list("Chakat Tempest Venosare") - allowed_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Psychiatrist","Paramedic", "Off-duty Medic") + allowed_roles = list(JOB_CHIEF_MEDICAL_OFFICER,JOB_MEDICAL_DOCTOR,JOB_CHEMIST,JOB_PSYCHIATRIST,JOB_PARAMEDIC, JOB_OFFDUTY_MEDIC) /datum/gear/fluff/tempest_hypospray path = /obj/item/reagent_containers/hypospray/vial/tempest @@ -1513,7 +1513,7 @@ slot = slot_belt ckeywhitelist = list("wickedtemp") character_name = list("Chakat Tempest Venosare") - allowed_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Psychiatrist","Paramedic", "Off-duty Medic") + allowed_roles = list(JOB_CHIEF_MEDICAL_OFFICER,JOB_MEDICAL_DOCTOR,JOB_CHEMIST,JOB_PSYCHIATRIST,JOB_PARAMEDIC, JOB_OFFDUTY_MEDIC) /datum/gear/fluff/tempest_backpack path = /obj/item/storage/backpack/saddlebag/tempest diff --git a/code/modules/client/preference_setup/loadout/loadout_gloves.dm b/code/modules/client/preference_setup/loadout/loadout_gloves.dm index a330027611..859d6a0c4c 100644 --- a/code/modules/client/preference_setup/loadout/loadout_gloves.dm +++ b/code/modules/client/preference_setup/loadout/loadout_gloves.dm @@ -54,7 +54,7 @@ /datum/gear/gloves/forensic display_name = "gloves, forensic" path = /obj/item/clothing/gloves/forensic - allowed_roles = list("Detective") + allowed_roles = list(JOB_DETECTIVE) /datum/gear/gloves/fingerless display_name = "fingerless gloves" diff --git a/code/modules/client/preference_setup/loadout/loadout_head.dm b/code/modules/client/preference_setup/loadout/loadout_head.dm index 06aebf077f..070502d772 100644 --- a/code/modules/client/preference_setup/loadout/loadout_head.dm +++ b/code/modules/client/preference_setup/loadout/loadout_head.dm @@ -19,22 +19,22 @@ /datum/gear/head/beret/bsec_warden display_name = "beret, navy (warden)" path = /obj/item/clothing/head/beret/sec/navy/warden - allowed_roles = list("Head of Security","Warden") + allowed_roles = list(JOB_HEAD_OF_SECURITY,JOB_WARDEN) /datum/gear/head/beret/bsec_hos display_name = "beret, navy (hos)" path = /obj/item/clothing/head/beret/sec/navy/hos - allowed_roles = list("Head of Security") + allowed_roles = list(JOB_HEAD_OF_SECURITY) /datum/gear/head/beret/csec_warden display_name = "beret, corporate (warden)" path = /obj/item/clothing/head/beret/sec/corporate/warden - allowed_roles = list("Head of Security","Warden") + allowed_roles = list(JOB_HEAD_OF_SECURITY,JOB_WARDEN) /datum/gear/head/beret/csec_hos display_name = "beret, corporate (hos)" path = /obj/item/clothing/head/beret/sec/corporate/hos - allowed_roles = list("Head of Security") + allowed_roles = list(JOB_HEAD_OF_SECURITY) /datum/gear/head/beret/eng display_name = "beret, engie-orange" @@ -288,7 +288,7 @@ description = "Select from a range of welding masks (engineering crew/roboticists only)" path = /obj/item/clothing/head/welding cost = 2 - allowed_roles = list("Chief Engineer","Engineer","Atmospheric Technician","Research Director","Roboticist") + allowed_roles = list(JOB_CHIEF_ENGINEER,JOB_ENGINEER,JOB_ATMOSPHERIC_TECHNICIAN,JOB_RESEARCH_DIRECTOR,JOB_ROBOTICIST) /datum/gear/head/welding/New() ..() @@ -376,7 +376,7 @@ /datum/gear/head/sec_hat_selector display_name = "Security - Basic Headwear" description = "Select from a range of hats available to all Security personnel." - allowed_roles = list("Head of Security", "Warden", "Detective", "Security Officer") + allowed_roles = list(JOB_HEAD_OF_SECURITY, JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_OFFICER) path = /obj/item/clothing/head/soft/sec/corp /datum/gear/head/sec_hat_selector/New() @@ -394,7 +394,7 @@ /datum/gear/head/med_hat_selector display_name = "Medical - Basic Headwear" description = "Select from a range of hats available to all Medical personnel." - allowed_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Psychiatrist","Paramedic") + allowed_roles = list(JOB_CHIEF_MEDICAL_OFFICER,JOB_MEDICAL_DOCTOR,JOB_CHEMIST,JOB_PSYCHIATRIST,JOB_PARAMEDIC) path = /obj/item/clothing/head/soft/med /datum/gear/head/med_hat_selector/New() @@ -434,7 +434,7 @@ display_name = "pilot helmets selection" description = "Your choice of four hard-wearing head-protecting helmets for pilots." path = /obj/item/clothing/head/pilot_vr - allowed_roles = list("Pilot", "Talon Pilot") + allowed_roles = list(JOB_PILOT, JOB_TALON_PILOT) /datum/gear/head/pilot/New() ..() diff --git a/code/modules/client/preference_setup/loadout/loadout_head_vr.dm b/code/modules/client/preference_setup/loadout/loadout_head_vr.dm index 48015f229e..969bb5cb06 100644 --- a/code/modules/client/preference_setup/loadout/loadout_head_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_head_vr.dm @@ -25,7 +25,7 @@ /datum/gear/head/detective_alt display_name = "cyberscope headgear, detective" path = /obj/item/clothing/head/helmet/detective_alt - allowed_roles = list("Head of Security", "Detective") + allowed_roles = list(JOB_HEAD_OF_SECURITY, JOB_DETECTIVE) /datum/gear/head/bearpelt display_name = "animal pelt selection" diff --git a/code/modules/client/preference_setup/loadout/loadout_shoes.dm b/code/modules/client/preference_setup/loadout/loadout_shoes.dm index 58a6f5a72a..9ec7bce52a 100644 --- a/code/modules/client/preference_setup/loadout/loadout_shoes.dm +++ b/code/modules/client/preference_setup/loadout/loadout_shoes.dm @@ -206,7 +206,7 @@ /datum/gear/shoes/boots/winter/security display_name = "security winter boots" path = /obj/item/clothing/shoes/boots/winter/security - allowed_roles = list("Security Officer", "Head of Security", "Warden", "Detective") + allowed_roles = list(JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_WARDEN, JOB_DETECTIVE) /datum/gear/shoes/boots/winter/science display_name = "science winter boots" @@ -215,7 +215,7 @@ /datum/gear/shoes/boots/winter/command display_name = "site manager's winter boots" path = /obj/item/clothing/shoes/boots/winter/command - allowed_roles = list("Site Manager") + allowed_roles = list(JOB_SITE_MANAGER) /datum/gear/shoes/boots/winter/engineering display_name = "engineering winter boots" @@ -228,7 +228,7 @@ /datum/gear/shoes/boots/winter/medical display_name = "medical winter boots" path = /obj/item/clothing/shoes/boots/winter/medical - allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist", "Psychiatrist") + allowed_roles = list(JOB_MEDICAL_DOCTOR,JOB_CHIEF_MEDICAL_OFFICER,JOB_CHEMIST,JOB_PARAMEDIC,JOB_GENETICIST, JOB_PSYCHIATRIST) /datum/gear/shoes/boots/winter/mining display_name = "mining winter boots" diff --git a/code/modules/client/preference_setup/loadout/loadout_suit.dm b/code/modules/client/preference_setup/loadout/loadout_suit.dm index 76f5a7baa5..c221f36b6c 100644 --- a/code/modules/client/preference_setup/loadout/loadout_suit.dm +++ b/code/modules/client/preference_setup/loadout/loadout_suit.dm @@ -144,7 +144,7 @@ /datum/gear/suit/labcoat_cmo display_name = "labcoat selection, cmo" path = /obj/item/clothing/suit/storage/toggle/labcoat/cmo - allowed_roles = list("Chief Medical Officer") + allowed_roles = list(JOB_CHIEF_MEDICAL_OFFICER) show_roles = FALSE /datum/gear/suit/labcoat_cmo/New() @@ -159,12 +159,12 @@ /datum/gear/suit/labcoat_emt display_name = "labcoat, EMT" path = /obj/item/clothing/suit/storage/toggle/labcoat/emt - allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist", "Psychiatrist") + allowed_roles = list(JOB_MEDICAL_DOCTOR,JOB_CHIEF_MEDICAL_OFFICER,JOB_CHEMIST,JOB_PARAMEDIC,JOB_GENETICIST, JOB_PSYCHIATRIST) /datum/gear/suit/labcoat_rd display_name = "labcoat, research director" path = /obj/item/clothing/suit/storage/toggle/labcoat/rd - allowed_roles = list("Research Director") + allowed_roles = list(JOB_RESEARCH_DIRECTOR) show_roles = FALSE /datum/gear/suit/miscellaneous/labcoat @@ -174,7 +174,7 @@ /datum/gear/suit/roles/surgical_apron display_name = "surgical apron" path = /obj/item/clothing/suit/surgicalapron - allowed_roles = list("Medical Doctor","Chief Medical Officer") + allowed_roles = list(JOB_MEDICAL_DOCTOR,JOB_CHIEF_MEDICAL_OFFICER) /datum/gear/suit/overalls display_name = "overalls" @@ -256,49 +256,49 @@ /datum/gear/suit/roles/cloak_hos display_name = "cloak, head of security" path = /obj/item/clothing/accessory/poncho/roles/cloak/hos - allowed_roles = list("Head of Security") + allowed_roles = list(JOB_HEAD_OF_SECURITY) show_roles = FALSE cost = 1 /datum/gear/suit/roles/cloak_cmo display_name = "cloak, chief medical officer" path = /obj/item/clothing/accessory/poncho/roles/cloak/cmo - allowed_roles = list("Chief Medical Officer") + allowed_roles = list(JOB_CHIEF_MEDICAL_OFFICER) show_roles = FALSE cost = 1 /datum/gear/suit/roles/cloak_ce display_name = "cloak, chief engineer" path = /obj/item/clothing/accessory/poncho/roles/cloak/ce - allowed_roles = list("Chief Engineer") + allowed_roles = list(JOB_CHIEF_ENGINEER) show_roles = FALSE cost = 1 /datum/gear/suit/roles/cloak_rd display_name = "cloak, research director" path = /obj/item/clothing/accessory/poncho/roles/cloak/rd - allowed_roles = list("Research Director") + allowed_roles = list(JOB_RESEARCH_DIRECTOR) show_roles = FALSE cost = 1 /datum/gear/suit/roles/cloak_qm display_name = "cloak, quartermaster" path = /obj/item/clothing/accessory/poncho/roles/cloak/qm - allowed_roles = list("Quartermaster") + allowed_roles = list(JOB_QUARTERMASTER) show_roles = FALSE cost = 1 /datum/gear/suit/roles/cloak_captain display_name = "cloak, site manager" path = /obj/item/clothing/accessory/poncho/roles/cloak/captain - allowed_roles = list("Site Manager") + allowed_roles = list(JOB_SITE_MANAGER) show_roles = FALSE cost = 1 /datum/gear/suit/roles/cloak_hop display_name = "cloak, head of personnel" path = /obj/item/clothing/accessory/poncho/roles/cloak/hop - allowed_roles = list("Head of Personnel") + allowed_roles = list(JOB_HEAD_OF_PERSONNEL) show_roles = FALSE cost = 1 @@ -365,7 +365,7 @@ /datum/gear/suit/forensics display_name = "forensics uniform selection" path = /obj/item/clothing/suit/storage/forensics/red/long - allowed_roles = list("Detective") + allowed_roles = list(JOB_DETECTIVE) /datum/gear/suit/forensics/New() ..() @@ -380,13 +380,13 @@ /datum/gear/suit/qm_coat display_name = "coat, quartermaster" path = /obj/item/clothing/suit/storage/qm - allowed_roles = list("Quartermaster") + allowed_roles = list(JOB_QUARTERMASTER) show_roles = FALSE /datum/gear/suit/cargo_coat display_name = "coat, cargo tech" path = /obj/item/clothing/suit/storage/cargo - allowed_roles = list("Quartermaster","Shaft Miner","Cargo Technician","Head of Personnel") + allowed_roles = list(JOB_QUARTERMASTER,JOB_SHAFT_MINER,JOB_CARGO_TECHNICIAN,JOB_HEAD_OF_PERSONNEL) show_roles = FALSE // winter coats go here @@ -397,139 +397,139 @@ /datum/gear/suit/wintercoat/captain display_name = "winter coat, site manager" path = /obj/item/clothing/suit/storage/hooded/wintercoat/captain - allowed_roles = list("Site Manager") + allowed_roles = list(JOB_SITE_MANAGER) show_roles = FALSE /datum/gear/suit/wintercoat/hop display_name = "winter coat, head of personnel" path = /obj/item/clothing/suit/storage/hooded/wintercoat/hop - allowed_roles = list("Head of Personnel") + allowed_roles = list(JOB_HEAD_OF_PERSONNEL) show_roles = FALSE /datum/gear/suit/wintercoat/security display_name = "winter coat, security" path = /obj/item/clothing/suit/storage/hooded/wintercoat/security - allowed_roles = list("Security Officer", "Head of Security", "Warden", "Detective") + allowed_roles = list(JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_WARDEN, JOB_DETECTIVE) show_roles = FALSE /datum/gear/suit/wintercoat/security/hos display_name = "winter coat, head of security" path = /obj/item/clothing/suit/storage/hooded/wintercoat/security/hos - allowed_roles = list("Head of Security") + allowed_roles = list(JOB_HEAD_OF_SECURITY) show_roles = FALSE /datum/gear/suit/wintercoat/medical display_name = "winter coat, medical" path = /obj/item/clothing/suit/storage/hooded/wintercoat/medical - allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist", "Psychiatrist") + allowed_roles = list(JOB_MEDICAL_DOCTOR,JOB_CHIEF_MEDICAL_OFFICER,JOB_CHEMIST,JOB_PARAMEDIC,JOB_GENETICIST, JOB_PSYCHIATRIST) show_roles = FALSE /datum/gear/suit/wintercoat/medical/alt display_name = "winter coat, medical alt" path = /obj/item/clothing/suit/storage/hooded/wintercoat/medical/alt - allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist", "Psychiatrist") + allowed_roles = list(JOB_MEDICAL_DOCTOR,JOB_CHIEF_MEDICAL_OFFICER,JOB_CHEMIST,JOB_PARAMEDIC,JOB_GENETICIST, JOB_PSYCHIATRIST) show_roles = FALSE /datum/gear/suit/wintercoat/medical/viro display_name = "winter coat, virologist" path = /obj/item/clothing/suit/storage/hooded/wintercoat/medical/viro - allowed_roles = list("Medical Doctor","Chief Medical Officer") + allowed_roles = list(JOB_MEDICAL_DOCTOR,JOB_CHIEF_MEDICAL_OFFICER) show_roles = FALSE /datum/gear/suit/wintercoat/medical/para display_name = "winter coat, paramedic" path = /obj/item/clothing/suit/storage/hooded/wintercoat/medical/para - allowed_roles = list("Medical Doctor","Chief Medical Officer","Paramedic") + allowed_roles = list(JOB_MEDICAL_DOCTOR,JOB_CHIEF_MEDICAL_OFFICER,JOB_PARAMEDIC) show_roles = FALSE /datum/gear/suit/wintercoat/medical/chemist display_name = "winter coat, chemist" path = /obj/item/clothing/suit/storage/hooded/wintercoat/medical/chemist - allowed_roles = list("Chief Medical Officer","Chemist") + allowed_roles = list(JOB_CHIEF_MEDICAL_OFFICER,JOB_CHEMIST) show_roles = FALSE /datum/gear/suit/wintercoat/medical/cmo display_name = "winter coat, chief medical officer" path = /obj/item/clothing/suit/storage/hooded/wintercoat/medical/cmo - allowed_roles = list("Chief Medical Officer") + allowed_roles = list(JOB_CHIEF_MEDICAL_OFFICER) show_roles = FALSE /datum/gear/suit/wintercoat/medical/sar display_name = "winter coat, search and rescue" path = /obj/item/clothing/suit/storage/hooded/wintercoat/medical/sar - allowed_roles = list("Chief Medical Officer","Paramedic") + allowed_roles = list(JOB_CHIEF_MEDICAL_OFFICER,JOB_PARAMEDIC) show_roles = FALSE /datum/gear/suit/wintercoat/science display_name = "winter coat, science" path = /obj/item/clothing/suit/storage/hooded/wintercoat/science - allowed_roles = list("Research Director","Scientist", "Roboticist", "Xenobiologist", "Xenobotanist") + allowed_roles = list(JOB_RESEARCH_DIRECTOR,JOB_SCIENTIST, JOB_ROBOTICIST, JOB_XENOBIOLOGIST, JOB_XENOBOTANIST) show_roles = FALSE /datum/gear/suit/wintercoat/science/robotics display_name = "winter coat, robotics" path = /obj/item/clothing/suit/storage/hooded/wintercoat/science/robotics - allowed_roles = list("Research Director", "Roboticist") + allowed_roles = list(JOB_RESEARCH_DIRECTOR, JOB_ROBOTICIST) show_roles = FALSE /datum/gear/suit/wintercoat/science/rd display_name = "winter coat, research director" path = /obj/item/clothing/suit/storage/hooded/wintercoat/science/rd - allowed_roles = list("Research Director") + allowed_roles = list(JOB_RESEARCH_DIRECTOR) show_roles = FALSE /datum/gear/suit/wintercoat/engineering display_name = "winter coat, engineering" path = /obj/item/clothing/suit/storage/hooded/wintercoat/engineering - allowed_roles = list("Chief Engineer","Atmospheric Technician", "Engineer") + allowed_roles = list(JOB_CHIEF_ENGINEER,JOB_ATMOSPHERIC_TECHNICIAN, JOB_ENGINEER) show_roles = FALSE /datum/gear/suit/wintercoat/engineering/atmos display_name = "winter coat, atmospherics" path = /obj/item/clothing/suit/storage/hooded/wintercoat/engineering/atmos - allowed_roles = list("Chief Engineer", "Atmospheric Technician") + allowed_roles = list(JOB_CHIEF_ENGINEER, JOB_ATMOSPHERIC_TECHNICIAN) show_roles = FALSE /datum/gear/suit/wintercoat/engineering/ce display_name = "winter coat, chief engineer" path = /obj/item/clothing/suit/storage/hooded/wintercoat/engineering/ce - allowed_roles = list("Chief Engineer") + allowed_roles = list(JOB_CHIEF_ENGINEER) show_roles = FALSE /datum/gear/suit/wintercoat/hydro display_name = "winter coat, hydroponics" path = /obj/item/clothing/suit/storage/hooded/wintercoat/hydro - allowed_roles = list("Botanist", "Xenobotanist") + allowed_roles = list(JOB_BOTANIST, JOB_XENOBOTANIST) show_roles = FALSE /datum/gear/suit/wintercoat/cargo display_name = "winter coat, cargo" path = /obj/item/clothing/suit/storage/hooded/wintercoat/cargo - allowed_roles = list("Quartermaster","Cargo Technician") + allowed_roles = list(JOB_QUARTERMASTER,JOB_CARGO_TECHNICIAN) show_roles = FALSE /datum/gear/suit/wintercoat/miner display_name = "winter coat, mining" path = /obj/item/clothing/suit/storage/hooded/wintercoat/miner - allowed_roles = list("Shaft Miner") + allowed_roles = list(JOB_SHAFT_MINER) show_roles = FALSE /datum/gear/suit/wintercoat/cargo/qm display_name = "winter coat, quartermaster" path = /obj/item/clothing/suit/storage/hooded/wintercoat/cargo/qm - allowed_roles = list("Quartermaster") + allowed_roles = list(JOB_QUARTERMASTER) show_roles = FALSE /datum/gear/suit/wintercoat/bar display_name = "winter coat, bartender" path = /obj/item/clothing/suit/storage/hooded/wintercoat/bar - allowed_roles = list("Bartender") + allowed_roles = list(JOB_BARTENDER) show_roles = FALSE /datum/gear/suit/wintercoat/janitor display_name = "winter coat, janitor" path = /obj/item/clothing/suit/storage/hooded/wintercoat/janitor - allowed_roles = list("Janitor") + allowed_roles = list(JOB_JANITOR) show_roles = FALSE /datum/gear/suit/wintercoat/aformal @@ -656,37 +656,37 @@ /datum/gear/suit/snowsuit/command display_name = "snowsuit, command" path = /obj/item/clothing/suit/storage/snowsuit/command - allowed_roles = list("Site Manager","Research Director","Head of Personnel","Head of Security","Chief Engineer","Command Secretary") + allowed_roles = list(JOB_SITE_MANAGER,JOB_RESEARCH_DIRECTOR,JOB_HEAD_OF_PERSONNEL,JOB_HEAD_OF_SECURITY,JOB_CHIEF_ENGINEER,JOB_COMMAND_SECRETARY) show_roles = FALSE /datum/gear/suit/snowsuit/security display_name = "snowsuit, security" path = /obj/item/clothing/suit/storage/snowsuit/security - allowed_roles = list("Security Officer", "Head of Security", "Warden", "Detective") + allowed_roles = list(JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_WARDEN, JOB_DETECTIVE) show_roles = FALSE /datum/gear/suit/snowsuit/medical display_name = "snowsuit, medical" path = /obj/item/clothing/suit/storage/snowsuit/medical - allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist", "Psychiatrist", "Search and Rescue") + allowed_roles = list(JOB_MEDICAL_DOCTOR,JOB_CHIEF_MEDICAL_OFFICER,JOB_CHEMIST,JOB_PARAMEDIC,JOB_GENETICIST, JOB_PSYCHIATRIST, JOB_ALT_SEARCH_AND_RESCUE) show_roles = FALSE /datum/gear/suit/snowsuit/science display_name = "snowsuit, science" path = /obj/item/clothing/suit/storage/snowsuit/science - allowed_roles = list("Research Director","Scientist", "Roboticist", "Xenobiologist") + allowed_roles = list(JOB_RESEARCH_DIRECTOR,JOB_SCIENTIST, JOB_ROBOTICIST, JOB_XENOBIOLOGIST) show_roles = FALSE /datum/gear/suit/snowsuit/engineering display_name = "snowsuit, engineering" path = /obj/item/clothing/suit/storage/snowsuit/engineering - allowed_roles = list("Chief Engineer","Atmospheric Technician", "Engineer") + allowed_roles = list(JOB_CHIEF_ENGINEER,JOB_ATMOSPHERIC_TECHNICIAN, JOB_ENGINEER) show_roles = FALSE /datum/gear/suit/snowsuit/cargo display_name = "snowsuit, supply" path = /obj/item/clothing/suit/storage/snowsuit/cargo - allowed_roles = list("Quartermaster","Shaft Miner","Cargo Technician","Head of Personnel") + allowed_roles = list(JOB_QUARTERMASTER,JOB_SHAFT_MINER,JOB_CARGO_TECHNICIAN,JOB_HEAD_OF_PERSONNEL) show_roles = FALSE /datum/gear/suit/miscellaneous/cardigan @@ -700,7 +700,7 @@ /datum/gear/suit/cmddressjacket display_name = "command dress jacket" path = /obj/item/clothing/suit/storage/toggle/cmddressjacket - allowed_roles = list("Site Manager", "Head of Personnel", "Command Secretary") + allowed_roles = list(JOB_SITE_MANAGER, JOB_HEAD_OF_PERSONNEL, JOB_COMMAND_SECRETARY) show_roles = FALSE /datum/gear/suit/miscellaneous/kimono diff --git a/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm b/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm index da6d630f31..8d84ba744c 100644 --- a/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm @@ -1,5 +1,5 @@ /datum/gear/suit/snowsuit/medical - allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist", "Psychiatrist") + allowed_roles = list(JOB_MEDICAL_DOCTOR,JOB_CHIEF_MEDICAL_OFFICER,JOB_CHEMIST,JOB_PARAMEDIC,JOB_GENETICIST, JOB_PSYCHIATRIST) /datum/gear/suit/labcoat_colorable display_name = "labcoat, colorable" @@ -16,7 +16,7 @@ /datum/gear/suit/labcoat_cmo_old display_name = "labcoat, CMO, oldschool" path = /obj/item/clothing/suit/storage/toggle/labcoat/old/cmo - allowed_roles = list("Chief Medical Officer") + allowed_roles = list(JOB_CHIEF_MEDICAL_OFFICER) /datum/gear/suit/roles/labcoat_old display_name = "labcoat selection, department, oldschool" @@ -57,7 +57,7 @@ /datum/gear/suit/detective_alt display_name = "sleek modern coat selection" path = /obj/item/clothing/suit/storage/det_trench/alt - allowed_roles = list("Head of Security", "Detective") + allowed_roles = list(JOB_HEAD_OF_SECURITY, JOB_DETECTIVE) /datum/gear/suit/detective_alt/New() ..() @@ -73,7 +73,7 @@ /datum/gear/suit/paramedic_coat display_name = "paramedic outerwear selection" path = /obj/item/clothing/suit/storage/toggle/fr_jacket - allowed_roles = list("Chief Medical Officer","Paramedic","Medical Doctor") + allowed_roles = list(JOB_CHIEF_MEDICAL_OFFICER,JOB_PARAMEDIC,JOB_MEDICAL_DOCTOR) /datum/gear/suit/paramedic_coat/New() ..() @@ -112,12 +112,12 @@ Talon winter coat /datum/gear/suit/armor/combat/crusader_explo display_name = "knight, explo" path = /obj/item/clothing/suit/armor/combat/crusader_explo - //allowed_roles = list("Explorer","Pathfinder") + //allowed_roles = list(JOB_EXPLORER,JOB_PATHFINDER) /datum/gear/suit/armor/combat/crusader_explo/FM display_name = "knight, Field Medic" path = /obj/item/clothing/suit/armor/combat/crusader_explo/FM - allowed_roles = list ("Paramedic") + allowed_roles = list (JOB_PARAMEDIC) //Long fur coat /datum/gear/suit/russofurcoat @@ -231,13 +231,13 @@ Talon winter coat /datum/gear/suit/roles/capboatcloak display_name = "boat cloak, site manager" path = /obj/item/clothing/accessory/poncho/roles/cloak/boat/cap - allowed_roles = list("Site Manager") + allowed_roles = list(JOB_SITE_MANAGER) show_roles = FALSE /datum/gear/suit/roles/hopboatcloak display_name = "boat cloak, head of personnel" path = /obj/item/clothing/accessory/poncho/roles/cloak/boat/hop - allowed_roles = list("Head of Personnel") + allowed_roles = list(JOB_HEAD_OF_PERSONNEL) show_roles = FALSE /datum/gear/suit/roles/boatcloaks @@ -269,13 +269,13 @@ Talon winter coat /datum/gear/suit/roles/capshroud display_name = "shroud, site manager" path = /obj/item/clothing/accessory/poncho/roles/cloak/shroud/cap - allowed_roles = list("Site Manager") + allowed_roles = list(JOB_SITE_MANAGER) show_roles = FALSE /datum/gear/suit/roles/hopshroud display_name = "shroud, head of personnel" path = /obj/item/clothing/accessory/poncho/roles/cloak/shroud/hop - allowed_roles = list("Head of Personnel") + allowed_roles = list(JOB_HEAD_OF_PERSONNEL) show_roles = FALSE /datum/gear/suit/roles/shrouds diff --git a/code/modules/client/preference_setup/loadout/loadout_uni_selector.dm b/code/modules/client/preference_setup/loadout/loadout_uni_selector.dm index 0047062df5..3121e30239 100644 --- a/code/modules/client/preference_setup/loadout/loadout_uni_selector.dm +++ b/code/modules/client/preference_setup/loadout/loadout_uni_selector.dm @@ -21,9 +21,9 @@ //Command/Specific /datum/gear/uniform/site_manager_selector - display_name = "Command - Site Manager's Uniforms" - description = "Select from a range of outfits available to all Site Managers, and Talon Captains." - allowed_roles = list("Site Manager","Talon Captain") + display_name = "Command - " + JOB_SITE_MANAGER + "'s Uniforms" + description = "Select from a range of outfits available to all " + JOB_SITE_MANAGER + "s, and Talon Captains." + allowed_roles = list(JOB_SITE_MANAGER,JOB_TALON_CAPTAIN) show_roles = FALSE path = /obj/item/clothing/under/rank/neo_captain sort_category = "Uniforms" @@ -51,9 +51,9 @@ gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms)) /datum/gear/uniform/head_of_personnel_selector - display_name = "Command - Head of Personnel's Uniforms" + display_name = "Command - " + JOB_HEAD_OF_PERSONNEL + "'s Uniforms" description = "Select from a range of outfits available to all Heads of Personnel." - allowed_roles = list("Head of Personnel") + allowed_roles = list(JOB_HEAD_OF_PERSONNEL) show_roles = FALSE path = /obj/item/clothing/under/rank/neo_hop sort_category = "Uniforms" @@ -83,9 +83,9 @@ gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms)) /datum/gear/uniform/pilot_uniform_selector - display_name = "Civilian - Pilot's Uniforms" - description = "Select from a range of outfits available to all Pilots (including those on the Talon)." - allowed_roles = list("Pilot","Talon Pilot") + display_name = "Civilian - " + JOB_PILOT+ "'s Uniforms" + description = "Select from a range of outfits available to all " + JOB_PILOT + "s (including those on the Talon)." + allowed_roles = list(JOB_PILOT,JOB_TALON_PILOT) show_roles = FALSE path = /obj/item/clothing/under/rank/neo_pilot sort_category = "Uniforms" @@ -104,9 +104,9 @@ gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms)) /datum/gear/uniform/janitor_uniform_selector - display_name = "Civilian - Janitor's Uniforms" - description = "Select from a range of outfits available to all Janitorial personnel." - allowed_roles = list("Janitor") + display_name = "Civilian - " + JOB_JANITOR + "'s Uniforms" + description = "Select from a range of outfits available to all " + JOB_JANITOR + "ial personnel." + allowed_roles = list(JOB_JANITOR) show_roles = FALSE path = /obj/item/clothing/under/rank/neo_janitor sort_category = "Uniforms" @@ -190,7 +190,7 @@ /datum/gear/uniform/security_selector display_name = "Security - Basic Uniforms" description = "Select from a range of outfits available to all Security personnel." - allowed_roles = list("Head of Security", "Warden", "Detective", "Security Officer","Talon Guard") + allowed_roles = list(JOB_HEAD_OF_SECURITY, JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_OFFICER,JOB_TALON_GUARD) show_roles = FALSE path = /obj/item/clothing/under/rank/security/corp sort_category = "Uniforms" @@ -234,9 +234,9 @@ gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms)) /datum/gear/uniform/security_warden_selector - display_name = "Security - Warden's Uniforms" + display_name = "Security - "+ JOB_WARDEN + "'s Uniforms" description = "Select from a range of outfits available to Wardens." - allowed_roles = list("Head of Security","Warden") + allowed_roles = list(JOB_HEAD_OF_SECURITY,JOB_WARDEN) show_roles = FALSE path = /obj/item/clothing/under/rank/warden/corp sort_category = "Uniforms" @@ -256,9 +256,9 @@ gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms)) /datum/gear/uniform/security_detective_selector - display_name = "Security - Detective's Uniforms" + display_name = "Security - " + JOB_DETECTIVE + "'s Uniforms" description = "Select from a range of outfits available to all Detectives." - allowed_roles = list("Head of Security","Detective") + allowed_roles = list(JOB_HEAD_OF_SECURITY,JOB_DETECTIVE) show_roles = FALSE path = /obj/item/clothing/under/det/corporate sort_category = "Uniforms" @@ -275,7 +275,7 @@ /datum/gear/uniform/security_head_selector display_name = "Security - Head's Uniforms" description = "Select from a range of outfits available to all Heads of Security." - allowed_roles = list("Head of Security") + allowed_roles = list(JOB_HEAD_OF_SECURITY) show_roles = FALSE path = /obj/item/clothing/under/rank/head_of_security/corp sort_category = "Uniforms" @@ -313,9 +313,9 @@ //Cargo /datum/gear/uniform/quartermaster_selector - display_name = "Cargo - Quartermaster's Uniforms" - description = "Select from a range of outfits available to all Quartermasters." - allowed_roles = list("Quartermaster") + display_name = "Cargo - " + JOB_QUARTERMASTER + "'s Uniforms" + description = "Select from a range of outfits available to all " + JOB_QUARTERMASTER + "s." + allowed_roles = list(JOB_QUARTERMASTER) show_roles = FALSE path = /obj/item/clothing/under/rank/cargo/jeans sort_category = "Uniforms" @@ -347,7 +347,7 @@ /datum/gear/uniform/cargo_general_selector display_name = "Cargo - Basic Uniforms" description = "Select from a range of outfits available to all Cargo personnel." - allowed_roles = list("Cargo Technician","Shaft Miner","Quartermaster") + allowed_roles = list(JOB_CARGO_TECHNICIAN,JOB_SHAFT_MINER,JOB_QUARTERMASTER) show_roles = FALSE path = /obj/item/clothing/under/rank/cargotech/jeans sort_category = "Uniforms" @@ -376,7 +376,7 @@ /datum/gear/uniform/cargo_miner_selector display_name = "Cargo - Miner's Uniforms" description = "Select from a range of outfits available to all Mining personnel." - allowed_roles = list("Shaft Miner","Quartermaster","Talon Miner") + allowed_roles = list(JOB_SHAFT_MINER,JOB_QUARTERMASTER,JOB_TALON_MINER) show_roles = FALSE path = /obj/item/clothing/under/rank/neo_miner sort_category = "Uniforms" @@ -393,9 +393,9 @@ //Engineering /datum/gear/uniform/engineering_chief_selector - display_name = "Engineering - Chief Engineer's Uniforms" - description = "Select from a range of outfits available to all Chief Engineers." - allowed_roles = list("Chief Engineer") + display_name = "Engineering - " + JOB_CHIEF_ENGINEER + "'s Uniforms" + description = "Select from a range of outfits available to all " + JOB_CHIEF_ENGINEER + "s." + allowed_roles = list(JOB_CHIEF_ENGINEER) show_roles = FALSE path = /obj/item/clothing/under/rank/neo_chiefengi sort_category = "Uniforms" @@ -420,7 +420,7 @@ /datum/gear/uniform/engineer_selector display_name = "Engineering - Basic Uniforms" description = "Select from a range of outfits available to all Engineering personnel." - allowed_roles = list("Chief Engineer","Engineer","Atmospheric Technician","Talon Engineer") + allowed_roles = list(JOB_CHIEF_ENGINEER,JOB_ENGINEER,JOB_ATMOSPHERIC_TECHNICIAN,JOB_TALON_ENGINEER) show_roles = FALSE path = /obj/item/clothing/under/rank/neo_engi sort_category = "Uniforms" @@ -448,7 +448,7 @@ /datum/gear/uniform/engi_atmos_selector display_name = "Engineering - Atmos Tech's Uniforms" description = "Select from a range of outfits available to all Atmospherics Technicians." - allowed_roles = list("Chief Engineer","Atmospheric Technician") + allowed_roles = list(JOB_CHIEF_ENGINEER,JOB_ATMOSPHERIC_TECHNICIAN) show_roles = FALSE path = /obj/item/clothing/under/rank/atmospheric_technician/skirt sort_category = "Uniforms" @@ -468,7 +468,7 @@ /datum/gear/uniform/medical_selector display_name = "Medical - Basic Uniforms" description = "Select from a range of outfits available to all Medical personnel." - allowed_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Psychiatrist","Paramedic","Talon Doctor") + allowed_roles = list(JOB_CHIEF_MEDICAL_OFFICER,JOB_MEDICAL_DOCTOR,JOB_CHEMIST,JOB_PSYCHIATRIST,JOB_PARAMEDIC,JOB_TALON_DOCTOR) show_roles = FALSE path = /obj/item/clothing/under/rank/neo_med sort_category = "Uniforms" @@ -499,9 +499,9 @@ gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms)) /datum/gear/uniform/chemist_selector - display_name = "Medical - Chemist's Uniforms" + display_name = "Medical - " + JOB_CHEMIST + "'s Uniforms" description = "Select from a range of outfits available to all Chemists." - allowed_roles = list("Chief Medical Officer","Chemist") + allowed_roles = list(JOB_CHIEF_MEDICAL_OFFICER,JOB_CHEMIST) show_roles = FALSE path = /obj/item/clothing/under/rank/neo_chem sort_category = "Uniforms" @@ -519,9 +519,9 @@ gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms)) /datum/gear/uniform/paramedic_selector - display_name = "Medical - Paramedic's Uniforms" - description = "Select from a range of outfits available to all Paramedics." - allowed_roles = list("Medical Doctor","Chief Medical Officer","Paramedic","Talon Doctor") + display_name = "Medical - " + JOB_PARAMEDIC + "'s Uniforms" + description = "Select from a range of outfits available to all " + JOB_PARAMEDIC + "s." + allowed_roles = list(JOB_MEDICAL_DOCTOR,JOB_CHIEF_MEDICAL_OFFICER,JOB_PARAMEDIC,JOB_TALON_DOCTOR) show_roles = FALSE path = /obj/item/clothing/under/rank/paramedunidark sort_category = "Uniforms" @@ -542,9 +542,9 @@ gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms)) /datum/gear/uniform/chief_medical_selector - display_name = "Medical - Chief Medical Officer's Uniforms" - description = "Select from a range of outfits available to all Chief Medical Officers." - allowed_roles = list("Chief Medical Officer") + display_name = "Medical - " + JOB_CHIEF_MEDICAL_OFFICER + "'s Uniforms" + description = "Select from a range of outfits available to all " + JOB_CHIEF_MEDICAL_OFFICER + "." + allowed_roles = list(JOB_CHIEF_MEDICAL_OFFICER) show_roles = FALSE path = /obj/item/clothing/under/rank/neo_cmo sort_category = "Uniforms" @@ -571,9 +571,9 @@ //Science /datum/gear/uniform/research_director_selector - display_name = "Science - Research Director's Uniforms" - description = "Select from a range of outfits available to all Research Directors." - allowed_roles = list("Research Director") + display_name = "Science - " + JOB_RESEARCH_DIRECTOR + "'s Uniforms" + description = "Select from a range of outfits available to all " + JOB_RESEARCH_DIRECTOR + "s." + allowed_roles = list(JOB_RESEARCH_DIRECTOR) show_roles = FALSE path = /obj/item/clothing/under/rank/neo_rd_suit sort_category = "Uniforms" @@ -599,7 +599,7 @@ /datum/gear/uniform/science_dept_selector display_name = "Science - Basic Uniforms" description = "Select from a range of outfits available to all Science personnel." - allowed_roles = list("Scientist","Research Director","Roboticist","Xenobiologist","Xenobotanist") + allowed_roles = list(JOB_SCIENTIST,JOB_RESEARCH_DIRECTOR,JOB_ROBOTICIST,JOB_XENOBIOLOGIST,JOB_XENOBOTANIST) show_roles = FALSE path = /obj/item/clothing/under/rank/neo_science sort_category = "Uniforms" @@ -622,9 +622,9 @@ gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms)) /datum/gear/uniform/science_robotics_selector - display_name = "Science - Roboticist's Uniforms" - description = "Select from a range of outfits available to all Roboticists." - allowed_roles = list("Research Director","Roboticist") + display_name = "Science - " + JOB_ROBOTICIST + "'s Uniforms" + description = "Select from a range of outfits available to all " + JOB_ROBOTICIST + "s." + allowed_roles = list(JOB_RESEARCH_DIRECTOR,JOB_ROBOTICIST) show_roles = FALSE path = /obj/item/clothing/under/rank/neo_robo sort_category = "Uniforms" diff --git a/code/modules/client/preference_setup/loadout/loadout_uniform.dm b/code/modules/client/preference_setup/loadout/loadout_uniform.dm index 5976fe86ea..32157af5eb 100644 --- a/code/modules/client/preference_setup/loadout/loadout_uniform.dm +++ b/code/modules/client/preference_setup/loadout/loadout_uniform.dm @@ -152,14 +152,14 @@ path = /obj/item/clothing/under/scratch/skirt /datum/gear/uniform/suit/detectiveskirt - display_name = "suit, detective skirt (Detective)" + display_name = "suit, detective skirt (" + JOB_DETECTIVE + ")" path = /obj/item/clothing/under/det/skirt - allowed_roles = list("Detective") + allowed_roles = list(JOB_DETECTIVE) /datum/gear/uniform/suit/iaskirt display_name = "suit, Internal Affairs skirt (Internal Affairs)" path = /obj/item/clothing/under/rank/internalaffairs/skirt - allowed_roles = list("Internal Affairs Agent") + allowed_roles = list(JOB_INTERNAL_AFFAIRS_AGENT) /datum/gear/uniform/suit/bartenderskirt display_name = "suit, bartender skirt" diff --git a/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm b/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm index 95310ad21e..defb44e465 100644 --- a/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm @@ -15,26 +15,26 @@ /datum/gear/suit/job_fed/sec display_name = "fed uniform, sec" path = /obj/item/clothing/suit/storage/fluff/fedcoat - allowed_roles = list("Head of Security", "Warden", "Detective", "Security Officer") + allowed_roles = list(JOB_HEAD_OF_SECURITY, JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_OFFICER) /datum/gear/suit/job_fed/medsci display_name = "fed uniform, med/sci" path = /obj/item/clothing/suit/storage/fluff/fedcoat/fedblue - allowed_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Paramedic","Geneticist","Research Director","Scientist", "Roboticist", "Xenobiologist","Xenobotanist") + allowed_roles = list(JOB_CHIEF_MEDICAL_OFFICER,JOB_MEDICAL_DOCTOR,JOB_CHEMIST,JOB_PARAMEDIC,JOB_GENETICIST,JOB_RESEARCH_DIRECTOR,JOB_SCIENTIST, JOB_ROBOTICIST, JOB_XENOBIOLOGIST,JOB_XENOBOTANIST) /datum/gear/suit/job_fed/eng display_name = "fed uniform, eng" path = /obj/item/clothing/suit/storage/fluff/fedcoat/fedeng - allowed_roles = list("Chief Engineer","Atmospheric Technician","Engineer") + allowed_roles = list(JOB_CHIEF_ENGINEER,JOB_ATMOSPHERIC_TECHNICIAN,JOB_ENGINEER) //DS9 /datum/gear/suit/job_trek/ds9_coat display_name = "DS9 Overcoat (use uniform)" path = /obj/item/clothing/suit/storage/trek/ds9 - allowed_roles = list("Head of Security","Site Manager","Head of Personnel","Chief Engineer","Research Director", - "Chief Medical Officer","Medical Doctor","Chemist","Paramedic","Geneticist", - "Scientist","Roboticist","Xenobiologist","Xenobotanist","Atmospheric Technician", - "Engineer","Warden","Detective","Security Officer") + allowed_roles = list(JOB_HEAD_OF_SECURITY,JOB_SITE_MANAGER,JOB_HEAD_OF_PERSONNEL,JOB_CHIEF_ENGINEER,JOB_RESEARCH_DIRECTOR, + JOB_CHIEF_MEDICAL_OFFICER,JOB_MEDICAL_DOCTOR,JOB_CHEMIST,JOB_PARAMEDIC,JOB_GENETICIST, + JOB_SCIENTIST,JOB_ROBOTICIST,JOB_XENOBIOLOGIST,JOB_XENOBOTANIST,JOB_ATMOSPHERIC_TECHNICIAN, + JOB_ENGINEER,JOB_WARDEN,JOB_DETECTIVE,JOB_SECURITY_OFFICER) /* Swimsuits diff --git a/code/modules/client/preference_setup/loadout/loadout_utility_vr.dm b/code/modules/client/preference_setup/loadout/loadout_utility_vr.dm index e86fd113f5..7b998d20af 100644 --- a/code/modules/client/preference_setup/loadout/loadout_utility_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_utility_vr.dm @@ -35,7 +35,7 @@ /datum/gear/utility/dufflebag/med display_name = "medical dufflebag" path = /obj/item/storage/backpack/dufflebag/med - allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist","Psychiatrist") + allowed_roles = list(JOB_MEDICAL_DOCTOR,JOB_CHIEF_MEDICAL_OFFICER,JOB_CHEMIST,JOB_PARAMEDIC,JOB_GENETICIST,JOB_PSYCHIATRIST) /datum/gear/utility/dufflebag/med/emt display_name = "EMT dufflebag" @@ -43,18 +43,18 @@ /datum/gear/utility/dufflebag/sec display_name = "security Dufflebag" + allowed_roles = list(JOB_HEAD_OF_SECURITY,JOB_WARDEN,JOB_DETECTIVE,JOB_SECURITY_OFFICER) path = /obj/item/storage/backpack/dufflebag/sec - allowed_roles = list("Head of Security","Warden","Detective","Security Officer") /datum/gear/utility/dufflebag/eng display_name = "engineering dufflebag" + allowed_roles = list(JOB_CHIEF_ENGINEER,JOB_ATMOSPHERIC_TECHNICIAN,JOB_ENGINEER) path = /obj/item/storage/backpack/dufflebag/eng - allowed_roles = list("Chief Engineer","Atmospheric Technician","Engineer") /datum/gear/utility/dufflebag/sci display_name = "science dufflebag" + allowed_roles = list(JOB_RESEARCH_DIRECTOR,JOB_SCIENTIST,JOB_ROBOTICIST,JOB_XENOBIOLOGIST,JOB_XENOBOTANIST) path = /obj/item/storage/backpack/dufflebag/sci - allowed_roles = list("Research Director","Scientist","Roboticist","Xenobiologist","Xenobotanist") /datum/gear/utility/dufflebag/explorer display_name = "away team dufflebag" diff --git a/code/modules/client/preference_setup/loadout/loadout_xeno.dm b/code/modules/client/preference_setup/loadout/loadout_xeno.dm index 317aa09d60..1d6a204a63 100644 --- a/code/modules/client/preference_setup/loadout/loadout_xeno.dm +++ b/code/modules/client/preference_setup/loadout/loadout_xeno.dm @@ -169,107 +169,107 @@ /datum/gear/uniform/dept/undercoat/cap display_name = "site manager undercoat (Teshari)" path = /obj/item/clothing/under/teshari/undercoat/jobs/cap - allowed_roles = list("Site Manager") + allowed_roles = list(JOB_SITE_MANAGER) /datum/gear/uniform/dept/undercoat/hop display_name = "head of personnel undercoat (Teshari)" path = /obj/item/clothing/under/teshari/undercoat/jobs/hop - allowed_roles = list("Head of Personnel") + allowed_roles = list(JOB_HEAD_OF_PERSONNEL) /datum/gear/uniform/dept/undercoat/rd display_name = "research director undercoat (Teshari)" path = /obj/item/clothing/under/teshari/undercoat/jobs/rd - allowed_roles = list("Research Director") + allowed_roles = list(JOB_RESEARCH_DIRECTOR) /datum/gear/uniform/dept/undercoat/hos display_name = "head of security undercoat (Teshari)" path = /obj/item/clothing/under/teshari/undercoat/jobs/hos - allowed_roles = list("Head of Security") + allowed_roles = list(JOB_HEAD_OF_SECURITY) /datum/gear/uniform/dept/undercoat/ce display_name = "chief engineer undercoat (Teshari)" path = /obj/item/clothing/under/teshari/undercoat/jobs/ce - allowed_roles = list("Chief Engineer") + allowed_roles = list(JOB_CHIEF_ENGINEER) /datum/gear/uniform/dept/undercoat/cmo display_name = "chief medical officer undercoat (Teshari)" path = /obj/item/clothing/under/teshari/undercoat/jobs/cmo - allowed_roles = list("Chief Medical Officer") + allowed_roles = list(JOB_CHIEF_MEDICAL_OFFICER) /datum/gear/uniform/dept/undercoat/qm display_name = "quartermaster undercoat (Teshari)" path = /obj/item/clothing/under/teshari/undercoat/jobs/qm - allowed_roles = list("Quartermaster") + allowed_roles = list(JOB_QUARTERMASTER) /datum/gear/uniform/dept/undercoat/cargo display_name = "cargo undercoat (Teshari)" path = /obj/item/clothing/under/teshari/undercoat/jobs/cargo - allowed_roles = list("Cargo Technician","Quartermaster","Shaft Miner") + allowed_roles = list(JOB_CARGO_TECHNICIAN,JOB_QUARTERMASTER,JOB_SHAFT_MINER) /datum/gear/uniform/dept/undercoat/mining display_name = "mining undercoat (Teshari)" path = /obj/item/clothing/under/teshari/undercoat/jobs/mining - allowed_roles = list("Quartermaster","Shaft Miner") + allowed_roles = list(JOB_QUARTERMASTER,JOB_SHAFT_MINER) /datum/gear/uniform/dept/undercoat/security display_name = "security undercoat (Teshari)" path = /obj/item/clothing/under/teshari/undercoat/jobs/sec - allowed_roles = list("Head of Security","Detective","Warden","Security Officer",) + allowed_roles = list(JOB_HEAD_OF_SECURITY,JOB_DETECTIVE,JOB_WARDEN,JOB_SECURITY_OFFICER) /datum/gear/uniform/dept/undercoat/service display_name = "service undercoat (Teshari)" path = /obj/item/clothing/under/teshari/undercoat/jobs/service - allowed_roles = list("Head of Personnel","Bartender","Botanist","Janitor","Chef","Librarian","Chaplain") + allowed_roles = list(JOB_HEAD_OF_PERSONNEL,JOB_BARTENDER,JOB_BOTANIST,JOB_JANITOR,JOB_CHEF,JOB_LIBRARIAN,JOB_CHAPLAIN) /datum/gear/uniform/dept/undercoat/engineer display_name = "engineering undercoat (Teshari)" path = /obj/item/clothing/under/teshari/undercoat/jobs/engineer - allowed_roles = list("Chief Engineer","Engineer") + allowed_roles = list(JOB_CHIEF_ENGINEER,JOB_ENGINEER) /datum/gear/uniform/dept/undercoat/atmos display_name = "atmospherics undercoat (Teshari)" path = /obj/item/clothing/under/teshari/undercoat/jobs/atmos - allowed_roles = list("Chief Engineer","Atmospheric Technician") + allowed_roles = list(JOB_CHIEF_ENGINEER,JOB_ATMOSPHERIC_TECHNICIAN) /datum/gear/uniform/dept/undercoat/research display_name = "scientist undercoat (Teshari)" path = /obj/item/clothing/under/teshari/undercoat/jobs/sci - allowed_roles = list("Research Director","Scientist", "Roboticist", "Xenobiologist") + allowed_roles = list(JOB_RESEARCH_DIRECTOR,JOB_SCIENTIST, JOB_ROBOTICIST, JOB_XENOBIOLOGIST) /datum/gear/uniform/dept/undercoat/robo display_name = "roboticist undercoat (Teshari)" path = /obj/item/clothing/under/teshari/undercoat/jobs/robo - allowed_roles = list("Research Director","Roboticist") + allowed_roles = list(JOB_RESEARCH_DIRECTOR,JOB_ROBOTICIST) /datum/gear/uniform/dept/undercoat/medical display_name = "medical undercoat (Teshari)" path = /obj/item/clothing/under/teshari/undercoat/jobs/medical - allowed_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Paramedic","Geneticist","Psychiatrist") + allowed_roles = list(JOB_CHIEF_MEDICAL_OFFICER,JOB_MEDICAL_DOCTOR,JOB_CHEMIST,JOB_PARAMEDIC,JOB_GENETICIST,JOB_PSYCHIATRIST) /datum/gear/uniform/dept/undercoat/chemistry display_name = "chemist undercoat (Teshari)" path = /obj/item/clothing/under/teshari/undercoat/jobs/chemistry - allowed_roles = list("Chief Medical Officer","Chemist") + allowed_roles = list(JOB_CHIEF_MEDICAL_OFFICER,JOB_CHEMIST) /datum/gear/uniform/dept/undercoat/virology display_name = "virologist undercoat (Teshari)" path = /obj/item/clothing/under/teshari/undercoat/jobs/viro - allowed_roles = list("Chief Medical Officer","Medical Doctor") + allowed_roles = list(JOB_CHIEF_MEDICAL_OFFICER,JOB_MEDICAL_DOCTOR) /datum/gear/uniform/dept/undercoat/psych display_name = "psychiatrist undercoat (Teshari)" path = /obj/item/clothing/under/teshari/undercoat/jobs/psych - allowed_roles = list("Chief Medical Officer","Psychiatrist") + allowed_roles = list(JOB_CHIEF_MEDICAL_OFFICER,JOB_PSYCHIATRIST) /datum/gear/uniform/dept/undercoat/paramedic display_name = "paramedic undercoat (Teshari)" path = /obj/item/clothing/under/teshari/undercoat/jobs/para - allowed_roles = list("Chief Medical Officer","Paramedic") + allowed_roles = list(JOB_CHIEF_MEDICAL_OFFICER,JOB_PARAMEDIC) /datum/gear/uniform/dept/undercoat/iaa display_name = "internal affairs undercoat (Teshari)" path = /obj/item/clothing/under/teshari/undercoat/jobs/iaa - allowed_roles = list("Internal Affairs Agent") + allowed_roles = list(JOB_INTERNAL_AFFAIRS_AGENT) /datum/gear/suit/dept/cloak whitelisted = SPECIES_TESHARI @@ -278,22 +278,22 @@ /datum/gear/suit/dept/cloak/cap display_name = "site manager cloak (Teshari)" path = /obj/item/clothing/suit/storage/teshari/cloak/jobs - allowed_roles = list("Site Manager") + allowed_roles = list(JOB_SITE_MANAGER) /datum/gear/suit/dept/cloak/hop display_name = "head of personnel cloak (Teshari)" path = /obj/item/clothing/suit/storage/teshari/cloak/jobs/hop - allowed_roles = list("Head of Personnel") + allowed_roles = list(JOB_HEAD_OF_PERSONNEL) /datum/gear/suit/dept/cloak/rd display_name = "research director cloak (Teshari)" path = /obj/item/clothing/suit/storage/teshari/cloak/jobs/rd - allowed_roles = list("Research Director") + allowed_roles = list(JOB_RESEARCH_DIRECTOR) /datum/gear/suit/dept/cloak/hos display_name = "head of security cloak (Teshari)" path = /obj/item/clothing/suit/storage/teshari/cloak/jobs/hos - allowed_roles = list("Head of Security") + allowed_roles = list(JOB_HEAD_OF_SECURITY) /datum/gear/suit/dept/cloak/hos/New() ..() @@ -306,7 +306,7 @@ /datum/gear/suit/cloak/dept/ce display_name = "chief engineer cloak (Teshari)" path = /obj/item/clothing/suit/storage/teshari/cloak/jobs/ce - allowed_roles = list("Chief Engineer") + allowed_roles = list(JOB_CHIEF_ENGINEER) /datum/gear/suit/dept/cloak/ce/New() ..() @@ -319,7 +319,7 @@ /datum/gear/suit/dept/cloak/cmo display_name = "chief medical officer cloak (Teshari)" path = /obj/item/clothing/suit/storage/teshari/cloak/jobs/cmo - allowed_roles = list("Chief Medical Officer") + allowed_roles = list(JOB_CHIEF_MEDICAL_OFFICER) /datum/gear/suit/dept/cloak/cmo/New() ..() @@ -332,7 +332,7 @@ /datum/gear/suit/dept/cloak/qm display_name = "quartermaster cloak (Teshari)" path = /obj/item/clothing/suit/storage/teshari/cloak/jobs/qm - allowed_roles = list("Chief Medical Officer") + allowed_roles = list(JOB_CHIEF_MEDICAL_OFFICER) /datum/gear/suit/dept/cloak/qm/New() ..() @@ -345,7 +345,7 @@ /datum/gear/suit/dept/cloak/cargo display_name = "cargo cloak (Teshari)" path = /obj/item/clothing/suit/storage/teshari/cloak/jobs/cargo - allowed_roles = list("Quartermaster","Shaft Miner","Cargo Technician") + allowed_roles = list(JOB_QUARTERMASTER,JOB_SHAFT_MINER,JOB_CARGO_TECHNICIAN) /datum/gear/suit/dept/cloak/cargo/New() ..() @@ -358,7 +358,7 @@ /datum/gear/suit/dept/cloak/mining display_name = "mining cloak (Teshari)" path = /obj/item/clothing/suit/storage/teshari/cloak/jobs/mining - allowed_roles = list("Quartermaster","Shaft Miner") + allowed_roles = list(JOB_QUARTERMASTER,JOB_SHAFT_MINER) /datum/gear/suit/dept/cloak/mining/New() ..() @@ -371,7 +371,7 @@ /datum/gear/suit/dept/cloak/security display_name = "security cloak (Teshari)" path = /obj/item/clothing/suit/storage/teshari/cloak/jobs/sec - allowed_roles = list("Head of Security","Detective","Warden","Security Officer") + allowed_roles = list(JOB_HEAD_OF_SECURITY,JOB_DETECTIVE,JOB_WARDEN,JOB_SECURITY_OFFICER) /datum/gear/suit/dept/cloak/security/New() ..() @@ -384,7 +384,7 @@ /datum/gear/suit/dept/cloak/service display_name = "service cloak (Teshari)" path = /obj/item/clothing/suit/storage/teshari/cloak/jobs/service - allowed_roles = list("Head of Personnel","Bartender","Botanist","Janitor","Chef","Librarian","Chaplain") + allowed_roles = list(JOB_HEAD_OF_PERSONNEL,JOB_BARTENDER,JOB_BOTANIST,JOB_JANITOR,JOB_CHEF,JOB_LIBRARIAN,JOB_CHAPLAIN) /datum/gear/suit/dept/cloak/service/New() ..() @@ -397,7 +397,7 @@ /datum/gear/suit/dept/cloak/engineer display_name = "engineering cloak (Teshari)" path = /obj/item/clothing/suit/storage/teshari/cloak/jobs/engineer - allowed_roles = list("Chief Engineer","Engineer") + allowed_roles = list(JOB_CHIEF_ENGINEER,JOB_ENGINEER) /datum/gear/suit/dept/cloak/engineer/New() ..() @@ -410,7 +410,7 @@ /datum/gear/suit/dept/cloak/atmos display_name = "atmospherics cloak (Teshari)" path = /obj/item/clothing/suit/storage/teshari/cloak/jobs/atmos - allowed_roles = list("Chief Engineer","Atmospheric Technician") + allowed_roles = list(JOB_CHIEF_ENGINEER,JOB_ATMOSPHERIC_TECHNICIAN) /datum/gear/suit/dept/cloak/atmos/New() ..() @@ -423,7 +423,7 @@ /datum/gear/suit/dept/cloak/research display_name = "scientist cloak (Teshari)" path = /obj/item/clothing/suit/storage/teshari/cloak/jobs/sci - allowed_roles = list("Research Director","Scientist","Roboticist","Xenobiologist") + allowed_roles = list(JOB_RESEARCH_DIRECTOR,JOB_SCIENTIST,JOB_ROBOTICIST,JOB_XENOBIOLOGIST) /datum/gear/suit/dept/cloak/research/New() ..() @@ -436,7 +436,7 @@ /datum/gear/suit/dept/cloak/robo display_name = "roboticist cloak (Teshari)" path = /obj/item/clothing/suit/storage/teshari/cloak/jobs/robo - allowed_roles = list("Research Director","Roboticist") + allowed_roles = list(JOB_RESEARCH_DIRECTOR,JOB_ROBOTICIST) /datum/gear/suit/dept/cloak/robo/New() ..() @@ -449,7 +449,7 @@ /datum/gear/suit/dept/cloak/medical display_name = "medical cloak (Teshari)" path = /obj/item/clothing/suit/storage/teshari/cloak/jobs/medical - allowed_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Paramedic","Geneticist", "Psychiatrist") + allowed_roles = list(JOB_CHIEF_MEDICAL_OFFICER,JOB_MEDICAL_DOCTOR,JOB_CHEMIST,JOB_PARAMEDIC,JOB_GENETICIST, JOB_PSYCHIATRIST) /datum/gear/suit/dept/cloak/medical/New() ..() @@ -462,7 +462,7 @@ /datum/gear/suit/dept/cloak/chemistry display_name = "chemist cloak (Teshari)" path = /obj/item/clothing/suit/storage/teshari/cloak/jobs/chemistry - allowed_roles = list("Chemist") + allowed_roles = list(JOB_CHEMIST) /datum/gear/suit/dept/cloak/chemistry/New() ..() @@ -475,7 +475,7 @@ /datum/gear/suit/dept/cloak/virology display_name = "virologist cloak (Teshari)" path = /obj/item/clothing/suit/storage/teshari/cloak/jobs/viro - allowed_roles = list("Medical Doctor") + allowed_roles = list(JOB_MEDICAL_DOCTOR) /datum/gear/suit/dept/cloak/virology/New() ..() @@ -488,12 +488,12 @@ /datum/gear/suit/dept/cloak/psych display_name = "psychiatrist cloak (Teshari)" path = /obj/item/clothing/suit/storage/teshari/cloak/jobs/psych - allowed_roles = list("Chief Medical Officer","Psychiatrist") + allowed_roles = list(JOB_CHIEF_MEDICAL_OFFICER,JOB_PSYCHIATRIST) /datum/gear/suit/dept/cloak/paramedic display_name = "paramedic cloak (Teshari)" path = /obj/item/clothing/suit/storage/teshari/cloak/jobs/para - allowed_roles = list("Chief Medical Officer","Paramedic") + allowed_roles = list(JOB_CHIEF_MEDICAL_OFFICER,JOB_PARAMEDIC) /datum/gear/suit/dept/cloak/paramedic/New() ..() @@ -506,7 +506,7 @@ /datum/gear/suit/dept/cloak/iaa display_name = "internal affairs cloak (Teshari)" path = /obj/item/clothing/suit/storage/teshari/cloak/jobs/iaa - allowed_roles = list("Internal Affairs Agent") + allowed_roles = list(JOB_INTERNAL_AFFAIRS_AGENT) /datum/gear/suit/dept/cloak/iaa/New() ..() @@ -553,19 +553,19 @@ /datum/gear/suit/dept/beltcloak/wrdn display_name = "warden belted cloak (Teshari)" path = /obj/item/clothing/suit/storage/teshari/beltcloak/jobs/wrdn - allowed_roles = list("Head of Security","Warden") + allowed_roles = list(JOB_HEAD_OF_SECURITY,JOB_WARDEN) sort_category = "Xenowear" /datum/gear/suit/dept/beltcloak/jani display_name = "janitor belted cloak (Teshari)" path = /obj/item/clothing/suit/storage/teshari/beltcloak/jobs/jani - allowed_roles = list("Janitor") + allowed_roles = list(JOB_JANITOR) sort_category = "Xenowear" /datum/gear/suit/dept/beltcloak/cmd display_name = "command belted cloak (Teshari)" path = /obj/item/clothing/suit/storage/teshari/beltcloak/jobs/command - allowed_roles = list("Site Manager","Head of Personnel","Head of Security","Chief Engineer","Chief Medical Officer","Research Director") + allowed_roles = list(JOB_SITE_MANAGER,JOB_HEAD_OF_PERSONNEL,JOB_HEAD_OF_SECURITY,JOB_CHIEF_ENGINEER,JOB_CHIEF_MEDICAL_OFFICER,JOB_RESEARCH_DIRECTOR) sort_category = "Xenowear" /datum/gear/suit/cloak_hood diff --git a/code/modules/client/preference_setup/loadout/loadout_xeno_vr.dm b/code/modules/client/preference_setup/loadout/loadout_xeno_vr.dm index 7e302bbf4f..3fdf1ec61f 100644 --- a/code/modules/client/preference_setup/loadout/loadout_xeno_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_xeno_vr.dm @@ -2,10 +2,10 @@ ///// /datum/gear/suit/dept/cloak/research - allowed_roles = list("Research Director","Scientist", "Roboticist", "Xenobiologist", "Xenobotanist") + allowed_roles = list(JOB_RESEARCH_DIRECTOR,JOB_SCIENTIST, JOB_ROBOTICIST, JOB_XENOBIOLOGIST, JOB_XENOBOTANIST) /datum/gear/uniform/dept/undercoat/research - allowed_roles = list("Research Director","Scientist", "Roboticist", "Xenobiologist", "Xenobotanist") + allowed_roles = list(JOB_RESEARCH_DIRECTOR,JOB_SCIENTIST, JOB_ROBOTICIST, JOB_XENOBIOLOGIST, JOB_XENOBOTANIST) ///// @@ -126,7 +126,7 @@ description = "A comfortable official suit for altevian command officers." display_name = "altevian officer's suit selection, site manager" whitelisted = SPECIES_ALTEVIAN - allowed_roles = list("Site Manager") + allowed_roles = list(JOB_SITE_MANAGER) sort_category = "Xenowear" /datum/gear/suit/altevian_officer_suit/New() diff --git a/code/modules/client/preference_setup/occupation/occupation.dm b/code/modules/client/preference_setup/occupation/occupation.dm index 48516c11d4..4557e0c5f5 100644 --- a/code/modules/client/preference_setup/occupation/occupation.dm +++ b/code/modules/client/preference_setup/occupation/occupation.dm @@ -157,7 +157,7 @@ if((pref.job_civilian_low & ASSISTANT) && job.type != /datum/job/assistant) . += "[rank]
" continue - if((rank in SSjob.get_job_titles_in_department(DEPARTMENT_COMMAND) ) || (rank == "AI"))//Bold head jobs + if((rank in SSjob.get_job_titles_in_department(DEPARTMENT_COMMAND) ) || (rank == JOB_AI))//Bold head jobs . += "[rank]" else . += "[rank]" diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index c7284fd15c..f4591190c1 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -129,7 +129,7 @@ var/list/preferences_datums = list() // will probably not be able to do this for head and torso ;) var/list/organ_data = list() var/list/rlimb_data = list() - var/list/player_alt_titles = new() // the default name of a job like "Medical Doctor" + var/list/player_alt_titles = new() // the default name of a job like JOB_MEDICAL_DOCTOR var/list/body_markings = list() // "name" = "#rgbcolor" //VOREStation Edit: "name" = list(BP_HEAD = list("on" = , "color" = "#rgbcolor"), BP_TORSO = ...) @@ -485,9 +485,11 @@ var/list/preferences_datums = list() error("Player picked [choice] slot to load, but that wasn't one we sent.") return + load_preferences() load_character(slotnum) attempt_vr(user.client?.prefs_vr,"load_vore","") //VOREStation Edit sanitize_preferences() + save_preferences() ShowChoices(user) /datum/preferences/proc/open_copy_dialog(mob/user) diff --git a/code/modules/client/preferences/types/auto_fit_viewport.dm b/code/modules/client/preferences/types/auto_fit_viewport.dm new file mode 100644 index 0000000000..3550af0545 --- /dev/null +++ b/code/modules/client/preferences/types/auto_fit_viewport.dm @@ -0,0 +1,7 @@ +/datum/preference/toggle/auto_fit_viewport + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "auto_fit_viewport" + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/auto_fit_viewport/apply_to_client_updated(client/client, value) + INVOKE_ASYNC(client, /client/verb/fit_viewport) diff --git a/code/modules/client/preferences/types/misc.dm b/code/modules/client/preferences/types/misc.dm index b1ec621671..5341737eb5 100644 --- a/code/modules/client/preferences/types/misc.dm +++ b/code/modules/client/preferences/types/misc.dm @@ -69,3 +69,9 @@ savefile_key = "AUTO_AFK" default_value = TRUE savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/messenger_embeds + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "MessengerEmbeds" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER diff --git a/code/modules/client/verbs/ooc.dm b/code/modules/client/verbs/ooc.dm index 947c486922..4291cf86b7 100644 --- a/code/modules/client/verbs/ooc.dm +++ b/code/modules/client/verbs/ooc.dm @@ -195,3 +195,83 @@ if(eyeobj) return eyeobj return src + +/client/verb/fit_viewport() + set name = "Fit Viewport" + set category = "OOC" + set desc = "Fit the width of the map window to match the viewport" + + // Fetch aspect ratio + var/view_size = getviewsize(view) + var/aspect_ratio = view_size[1] / view_size[2] + + // Calculate desired pixel width using window size and aspect ratio + var/list/sizes = params2list(winget(src, "mainwindow.mainvsplit;mapwindow", "size")) + + // Client closed the window? Some other error? This is unexpected behaviour, let's + // CRASH with some info. + if(!sizes["mapwindow.size"]) + CRASH("sizes does not contain mapwindow.size key. This means a winget failed to return what we wanted. --- sizes var: [sizes] --- sizes length: [length(sizes)]") + + var/list/map_size = splittext(sizes["mapwindow.size"], "x") + + // Gets the type of zoom we're currently using from our view datum + // If it's 0 we do our pixel calculations based off the size of the mapwindow + // If it's not, we already know how big we want our window to be, since zoom is the exact pixel ratio of the map + var/zoom_value = 0 // src.view_size?.zoom || 0 + + var/desired_width = 0 + if(zoom_value) + desired_width = round(view_size[1] * zoom_value * world.icon_size) + else + + // Looks like we expect mapwindow.size to be "ixj" where i and j are numbers. + // If we don't get our expected 2 outputs, let's give some useful error info. + if(length(map_size) != 2) + CRASH("map_size of incorrect length --- map_size var: [map_size] --- map_size length: [length(map_size)]") + var/height = text2num(map_size[2]) + desired_width = round(height * aspect_ratio) + + if (text2num(map_size[1]) == desired_width) + // Nothing to do + return + + var/split_size = splittext(sizes["mainwindow.mainvsplit.size"], "x") + var/split_width = text2num(split_size[1]) + + // Avoid auto-resizing the statpanel and chat into nothing. + desired_width = min(desired_width, split_width - 300) + + // Calculate and apply a best estimate + // +4 pixels are for the width of the splitter's handle + var/pct = 100 * (desired_width + 4) / split_width + winset(src, "mainwindow.mainvsplit", "splitter=[pct]") + + // Apply an ever-lowering offset until we finish or fail + var/delta + for(var/safety in 1 to 10) + var/after_size = winget(src, "mapwindow", "size") + map_size = splittext(after_size, "x") + var/got_width = text2num(map_size[1]) + + if (got_width == desired_width) + // success + return + else if (isnull(delta)) + // calculate a probable delta value based on the difference + delta = 100 * (desired_width - got_width) / split_width + else if ((delta > 0 && got_width > desired_width) || (delta < 0 && got_width < desired_width)) + // if we overshot, halve the delta and reverse direction + delta = -delta/2 + + pct += delta + winset(src, "mainwindow.mainvsplit", "splitter=[pct]") + +/// Attempt to automatically fit the viewport, assuming the user wants it +/client/proc/attempt_auto_fit_viewport() + if(!prefs.read_preference(/datum/preference/toggle/auto_fit_viewport)) + return + if(fully_created) + INVOKE_ASYNC(src, VERB_REF(fit_viewport)) + else //Delayed to avoid wingets from Login calls. + addtimer(CALLBACK(src, VERB_REF(fit_viewport), 1 SECONDS)) diff --git a/code/modules/clothing/head/collectable.dm b/code/modules/clothing/head/collectable.dm index eea71f6041..ea8bf1b01b 100644 --- a/code/modules/clothing/head/collectable.dm +++ b/code/modules/clothing/head/collectable.dm @@ -29,7 +29,7 @@ /obj/item/clothing/head/collectable/chef name = "collectable chef's hat" - desc = "A rare Chef's Hat meant for hat collectors!" + desc = "A rare " + JOB_CHEF + "'s Hat meant for hat collectors!" icon_state = "chefhat" /obj/item/clothing/head/collectable/paper diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm index 6d9fda604a..308672b3b7 100644 --- a/code/modules/clothing/head/hardhat.dm +++ b/code/modules/clothing/head/hardhat.dm @@ -76,7 +76,7 @@ /obj/item/clothing/head/hardhat/firefighter/chief name = "chief firefighter helmet" - desc = "A helmet with face mask specially designed for firefighting. This one is in the colors of the Chief Engineer. It's airtight and has a port for internals." + desc = "A helmet with face mask specially designed for firefighting. This one is in the colors of the " + JOB_CHIEF_ENGINEER + ". It's airtight and has a port for internals." icon_state = "helmet_firefighter_ce" max_heat_protection_temperature = FIRE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE + 10000 @@ -166,4 +166,4 @@ /obj/item/clothing/head/hardhat/ranger/yellow hatcolor = "yellow" -*/ \ No newline at end of file +*/ diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index c56c86e572..7e53863025 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -97,8 +97,8 @@ item_state_slots = list(slot_r_hand_str = "beret_navy", slot_l_hand_str = "beret_navy") /obj/item/clothing/head/beret/sec/navy/hos - name = "Head of Security beret" - desc = "A navy blue beret with a Head of Security's rank emblem. For officers that are more inclined towards style than safety." + name = JOB_HEAD_OF_SECURITY + " beret" + desc = "A navy blue beret with a " + JOB_HEAD_OF_SECURITY + "'s rank emblem. For officers that are more inclined towards style than safety." icon_state = "beret_navy_hos" item_state_slots = list(slot_r_hand_str = "beret_navy", slot_l_hand_str = "beret_navy") @@ -115,8 +115,8 @@ item_state_slots = list(slot_r_hand_str = "beret_black", slot_l_hand_str = "beret_black") /obj/item/clothing/head/beret/sec/corporate/hos - name = "Head of Security beret" - desc = "A corporate black beret with a Head of Security's rank emblem. For officers that are more inclined towards style than safety." + name = JOB_HEAD_OF_SECURITY + " beret" + desc = "A corporate black beret with a " + JOB_HEAD_OF_SECURITY + "'s rank emblem. For officers that are more inclined towards style than safety." icon_state = "beret_corporate_hos" item_state_slots = list(slot_r_hand_str = "beret_black", slot_l_hand_str = "beret_black") @@ -128,21 +128,21 @@ /obj/item/clothing/head/helmet/warden name = "warden's helmet" - desc = "Standard Warden gear. Protects the head from impacts." + desc = "Standard " + JOB_WARDEN + " gear. Protects the head from impacts." /obj/item/clothing/head/helmet/warden/hat name = "warden's hat" - desc = "It's a special hat issued to the Warden of a securiy force." + desc = "It's a special hat issued to the " + JOB_WARDEN + " of a securiy force." icon_state = "policehelm" valid_accessory_slots = null /obj/item/clothing/head/helmet/HoS - name = "Head of Security helmet" - desc = "Standard Head of Security gear. Protects the head from impacts." + name = JOB_HEAD_OF_SECURITY + " helmet" + desc = "Standard " + JOB_HEAD_OF_SECURITY + " gear. Protects the head from impacts." /obj/item/clothing/head/helmet/HoS/hat - name = "Head of Security Hat" - desc = "The hat of the Head of Security. For showing the officers who's in charge." + name = JOB_HEAD_OF_SECURITY + " Hat" + desc = "The hat of the " + JOB_HEAD_OF_SECURITY + ". For showing the officers who's in charge." icon_state = "hoscap" valid_accessory_slots = null @@ -288,4 +288,4 @@ /obj/item/clothing/head/beret/qm name = "quartermaster's beret" desc = "This headwear shows off your Cargonian leadership." - icon_state = "beretqm" \ No newline at end of file + icon_state = "beretqm" diff --git a/code/modules/clothing/head/neohats.dm b/code/modules/clothing/head/neohats.dm index bfc675c5eb..d6ccb26e73 100644 --- a/code/modules/clothing/head/neohats.dm +++ b/code/modules/clothing/head/neohats.dm @@ -2,8 +2,8 @@ this file deals with hats/headwear. */ /obj/item/clothing/head/helmet/HoS/hat/blue - name = "Blue Head of Security Hat" - desc = "The hat of the Head of Security. For showing the officers who's in charge." + name = "Blue " + JOB_HEAD_OF_SECURITY + " Hat" + desc = "The hat of the " + JOB_HEAD_OF_SECURITY + ". For showing the officers who's in charge." icon = 'icons/inventory/head/item.dmi' icon_state = "neo_hoshat_blue" valid_accessory_slots = null diff --git a/code/modules/clothing/masks/hailer.dm b/code/modules/clothing/masks/hailer.dm index 27865ee416..c628e1c4a5 100644 --- a/code/modules/clothing/masks/hailer.dm +++ b/code/modules/clothing/masks/hailer.dm @@ -39,7 +39,7 @@ /obj/item/clothing/mask/gas/sechailer/swat/warden - name = "\improper Warden SWAT mask" + name = "\improper " + JOB_WARDEN + " SWAT mask" desc = "A close-fitting tactical mask with an especially aggressive Compli-o-nator 3000. It has a blue stripe." icon_state = "wardenmask" diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index 41f3856266..b0c3cd073a 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -10,7 +10,7 @@ //Captain's space suit This is not the proper path but I don't currently know enough about how this all works to mess with it. /obj/item/clothing/suit/armor/captain - name = "Site Manager's armor" + name = JOB_SITE_MANAGER + "'s armor" desc = "A bulky, heavy-duty piece of exclusive corporate armor. YOU are in charge!" icon_state = "caparmor" w_class = ITEMSIZE_HUGE diff --git a/code/modules/clothing/spacesuits/void/station.dm b/code/modules/clothing/spacesuits/void/station.dm index ef7ac9fdb6..ab724b894c 100644 --- a/code/modules/clothing/spacesuits/void/station.dm +++ b/code/modules/clothing/spacesuits/void/station.dm @@ -380,7 +380,7 @@ /obj/item/clothing/suit/space/void/exploration name = "exploration voidsuit" - desc = "A hazard and radiation resistant voidsuit, featuring the Explorer emblem on its chest plate. Designed for exploring unknown planetary environments." + desc = "A hazard and radiation resistant voidsuit, featuring the " + JOB_EXPLORER + " emblem on its chest plate. Designed for exploring unknown planetary environments." icon_state = "void_explorer" item_state_slots = list(slot_r_hand_str = "skrell_suit_black", slot_l_hand_str = "skrell_suit_black") armor = list(melee = 50, bullet = 15, laser = 35, energy = 25, bomb = 30, bio = 100, rad = 70) @@ -402,7 +402,7 @@ /obj/item/clothing/suit/space/void/expedition_medical name = "field medic voidsuit" - desc = "A hazard and radiation resistant voidsuit, featuring the Explorer emblem and a green cross on its chest plate. Seems to be a little lighter and more flexible than the regular explorer issue." + desc = "A hazard and radiation resistant voidsuit, featuring the " + JOB_EXPLORER + " emblem and a green cross on its chest plate. Seems to be a little lighter and more flexible than the regular explorer issue." icon_state = "void_exp_medic" item_state_slots = list(slot_r_hand_str = "skrell_suit_black", slot_l_hand_str = "skrell_suit_black") armor = list(melee = 50, bullet = 15, laser = 25, energy = 15, bomb = 30, bio = 100, rad = 90) diff --git a/code/modules/clothing/suits/aliens/teshari.dm b/code/modules/clothing/suits/aliens/teshari.dm index 5cf27748a9..fe0e29ffc0 100644 --- a/code/modules/clothing/suits/aliens/teshari.dm +++ b/code/modules/clothing/suits/aliens/teshari.dm @@ -107,14 +107,14 @@ // Job Cloaks /obj/item/clothing/suit/storage/teshari/cloak/jobs/cap name = "site manager cloak" - desc = "A soft Teshari cloak made for the Site Manager" + desc = "A soft Teshari cloak made for the " + JOB_SITE_MANAGER icon_state = "tesh_cloak_cap" //Cargo /obj/item/clothing/suit/storage/teshari/cloak/jobs/qm name = "quartermaster cloak" - desc = "A soft Teshari cloak made for the Quartermaster" + desc = "A soft Teshari cloak made for the " + JOB_QUARTERMASTER icon_state = "tesh_cloak_qm" /obj/item/clothing/suit/storage/teshari/cloak/jobs/cargo @@ -131,7 +131,7 @@ /obj/item/clothing/suit/storage/teshari/cloak/jobs/ce name = "cheif engineer cloak" - desc = "A soft Teshari cloak made the Chief Engineer" + desc = "A soft Teshari cloak made for the "+ JOB_CHIEF_ENGINEER icon_state = "tesh_cloak_ce" /obj/item/clothing/suit/storage/teshari/cloak/jobs/engineer @@ -141,7 +141,7 @@ /obj/item/clothing/suit/storage/teshari/cloak/jobs/atmos name = "atmospherics cloak" - desc = "A soft Teshari cloak made for the Atmospheric Technician" + desc = "A soft Teshari cloak made for the " + JOB_ATMOSPHERIC_TECHNICIAN icon_state = "tesh_cloak_atmos" //Medical @@ -158,29 +158,29 @@ /obj/item/clothing/suit/storage/teshari/cloak/jobs/chemistry name = "chemist cloak" - desc = "A soft Teshari cloak made for the Chemist" + desc = "A soft Teshari cloak made for the " + JOB_CHEMIST icon_state = "tesh_cloak_chem" /obj/item/clothing/suit/storage/teshari/cloak/jobs/viro name = "virologist cloak" - desc = "A soft Teshari cloak made for the Virologist" + desc = "A soft Teshari cloak made for the " + JOB_ALT_VIROLOGIST icon_state = "tesh_cloak_viro" /obj/item/clothing/suit/storage/teshari/cloak/jobs/para name = "paramedic cloak" - desc = "A soft Teshari cloak made for the Paramedic" + desc = "A soft Teshari cloak made for the " + JOB_PARAMEDIC icon_state = "tesh_cloak_para" /obj/item/clothing/suit/storage/teshari/cloak/jobs/psych name = " psychiatrist cloak" - desc = "A soft Teshari cloak made for the Psychiatrist" + desc = "A soft Teshari cloak made for the " + JOB_PSYCHIATRIST icon_state = "tesh_cloak_psych" //Science /obj/item/clothing/suit/storage/teshari/cloak/jobs/rd name = "research director cloak" - desc = "A soft Teshari cloak made for the Research Director" + desc = "A soft Teshari cloak made for the " + JOB_RESEARCH_DIRECTOR icon_state = "tesh_cloak_rd" /obj/item/clothing/suit/storage/teshari/cloak/jobs/sci @@ -190,14 +190,14 @@ /obj/item/clothing/suit/storage/teshari/cloak/jobs/robo name = "roboticist cloak" - desc = "A soft Teshari cloak made for the Roboticist" + desc = "A soft Teshari cloak made for the " + JOB_ROBOTICIST icon_state = "tesh_cloak_robo" //Security /obj/item/clothing/suit/storage/teshari/cloak/jobs/hos name = "head of security cloak" - desc = "A soft Teshari cloak made for the Head of Security" + desc = "A soft Teshari cloak made for the " + JOB_HEAD_OF_SECURITY icon_state = "tesh_cloak_hos" /obj/item/clothing/suit/storage/teshari/cloak/jobs/sec @@ -207,14 +207,14 @@ /obj/item/clothing/suit/storage/teshari/cloak/jobs/iaa name = "internal affairs cloak" - desc = "A soft Teshari cloak made for the Internal Affairs Agent" + desc = "A soft Teshari cloak made for the " + JOB_INTERNAL_AFFAIRS_AGENT icon_state = "tesh_cloak_iaa" //Service /obj/item/clothing/suit/storage/teshari/cloak/jobs/hop name = "head of personnel cloak" - desc = "A soft Teshari cloak made for the Head of Personnel" + desc = "A soft Teshari cloak made for the " + JOB_HEAD_OF_PERSONNEL icon_state = "tesh_cloak_hop" /obj/item/clothing/suit/storage/teshari/cloak/jobs/service @@ -624,7 +624,7 @@ /obj/item/clothing/suit/storage/teshari/beltcloak/jobs/ce name = "chief engineer belted cloak" - desc = "A soft Teshari cloak made the Chief Engineer" + desc = "A soft Teshari cloak made for the " + JOB_CHIEF_ENGINEER icon_state = "tesh_beltcloak_ce" /obj/item/clothing/suit/storage/teshari/beltcloak/jobs/engineer @@ -634,12 +634,12 @@ /obj/item/clothing/suit/storage/teshari/beltcloak/jobs/atmos name = "atmospherics belted cloak" - desc = "A soft Teshari cloak made for the Atmospheric Technician" + desc = "A soft Teshari cloak made for the " + JOB_ATMOSPHERIC_TECHNICIAN icon_state = "tesh_beltcloak_atmos" /obj/item/clothing/suit/storage/teshari/beltcloak/jobs/cmo name = "chief medical officer belted cloak" - desc = "A soft Teshari cloak made the Chief Medical Officer" + desc = "A soft Teshari cloak made the " + JOB_CHIEF_MEDICAL_OFFICER icon_state = "tesh_beltcloak_cmo" /obj/item/clothing/suit/storage/teshari/beltcloak/jobs/medical @@ -649,17 +649,17 @@ /obj/item/clothing/suit/storage/teshari/beltcloak/jobs/chemistry name = "chemist belted cloak" - desc = "A soft Teshari cloak made for the Chemist" + desc = "A soft Teshari cloak made for the " + JOB_CHEMIST icon_state = "tesh_beltcloak_chem" /obj/item/clothing/suit/storage/teshari/beltcloak/jobs/viro name = "virologist belted cloak" - desc = "A soft Teshari cloak made for the Virologist" + desc = "A soft Teshari cloak made for the " + JOB_ALT_VIROLOGIST icon_state = "tesh_beltcloak_viro" /obj/item/clothing/suit/storage/teshari/beltcloak/jobs/para name = "paramedic belted cloak" - desc = "A soft Teshari cloak made for the Paramedic" + desc = "A soft Teshari cloak made for the " + JOB_PARAMEDIC icon_state = "tesh_beltcloak_para" /obj/item/clothing/suit/storage/teshari/beltcloak/jobs/sci @@ -669,7 +669,7 @@ /obj/item/clothing/suit/storage/teshari/beltcloak/jobs/robo name = "roboticist belted cloak" - desc = "A soft Teshari cloak made for the Roboticist" + desc = "A soft Teshari cloak made for the " + JOB_ROBOTICIST icon_state = "tesh_beltcloak_robo" /obj/item/clothing/suit/storage/teshari/beltcloak/jobs/sec @@ -679,7 +679,7 @@ /obj/item/clothing/suit/storage/teshari/beltcloak/jobs/qm name = "quartermaster belted cloak" - desc = "A soft Teshari cloak made for the Quartermaster" + desc = "A soft Teshari cloak made for the " + JOB_QUARTERMASTER icon_state = "tesh_beltcloak_qm" /obj/item/clothing/suit/storage/teshari/beltcloak/jobs/service @@ -689,21 +689,20 @@ /obj/item/clothing/suit/storage/teshari/beltcloak/jobs/iaa name = "internal affairs belted cloak" - desc = "A soft Teshari cloak made for the Internal Affairs Agent" + desc = "A soft Teshari cloak made for the " + JOB_INTERNAL_AFFAIRS_AGENT icon_state = "tesh_beltcloak_iaa" /obj/item/clothing/suit/storage/teshari/beltcloak/jobs/wrdn name = "warden belted cloak" - desc = "A soft Teshari cloak made for the Warden" + desc = "A soft Teshari cloak made for the " + JOB_WARDEN icon_state = "tesh_beltcloak_wrdn" /obj/item/clothing/suit/storage/teshari/beltcloak/jobs/hos name = "security chief belted cloak" - desc = "A soft Teshari cloak made for the Head of Security" + desc = "A soft Teshari cloak made for the " + JOB_HEAD_OF_SECURITY icon_state = "tesh_beltcloak_hos" /obj/item/clothing/suit/storage/teshari/beltcloak/jobs/jani name = "janitor belted cloak" - desc = "A soft Teshari cloak made for the Janitor" + desc = "A soft Teshari cloak made for the " + JOB_JANITOR icon_state = "tesh_beltcloak_jani" - diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 8555c2dcba..0f9d8d2ffe 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -164,7 +164,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 name = "Reactive Teleport Armor" - desc = "Someone separated our Research Director from their own head!" + desc = "Someone separated our " + JOB_RESEARCH_DIRECTOR + " from their own head!" var/active = 0.0 icon_state = "reactiveoff" item_state_slots = list(slot_r_hand_str = "armor_reflec_old", slot_l_hand_str = "armor_reflec_old") @@ -309,7 +309,7 @@ icon_nobadge = "wardenvest_nobadge" /obj/item/clothing/suit/storage/vest/wardencoat - name = "Warden's jacket" + name = JOB_WARDEN + "'s jacket" desc = "An armoured jacket with silver rank pips and livery." icon_state = "warden_jacket" blood_overlay_type = "suit" @@ -317,7 +317,7 @@ flags_inv = HIDETIE|HIDEHOLSTER /obj/item/clothing/suit/storage/vest/wardencoat/alt - name = "Warden's jacket" + name = JOB_WARDEN + "'s jacket" desc = "An armoured jacket with silver rank pips and livery." icon_state = "warden_alt" body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index 0667f9a306..ffe9850629 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -28,14 +28,14 @@ //Captain /obj/item/clothing/suit/captunic name = "site manager's parade tunic" - desc = "Worn by a Site Manager to show their class." + desc = "Worn by a " + JOB_SITE_MANAGER + " to show their class." icon_state = "captunic" body_parts_covered = UPPER_TORSO|ARMS flags_inv = HIDEJUMPSUIT|HIDETIE|HIDEHOLSTER /obj/item/clothing/suit/captunic/capjacket name = "site manager's uniform jacket" - desc = "A less formal jacket for everyday Site Manager use." + desc = "A less formal jacket for everyday " + JOB_SITE_MANAGER + " use." icon_state = "capjacket" body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS flags_inv = HIDEHOLSTER diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm index 625ec5614f..bd75d0b0b4 100644 --- a/code/modules/clothing/suits/labcoat.dm +++ b/code/modules/clothing/suits/labcoat.dm @@ -70,39 +70,39 @@ item_state_slots = list(slot_r_hand_str = "cmo_labcoat", slot_l_hand_str = "cmo_labcoat") /obj/item/clothing/suit/storage/toggle/labcoat/genetics - name = "Geneticist labcoat" + name = JOB_GENETICIST + " labcoat" desc = "A suit that protects against minor chemical spills. Has a blue stripe on the shoulder." icon_state = "labcoat_gen" item_state_slots = list(slot_r_hand_str = "genetics_labcoat", slot_l_hand_str = "genetics_labcoat") /obj/item/clothing/suit/storage/toggle/labcoat/chemist - name = "Chemist labcoat" + name = JOB_CHEMIST + " labcoat" desc = "A suit that protects against minor chemical spills. Has an orange stripe on the shoulder." icon_state = "labcoat_chem" item_state_slots = list(slot_r_hand_str = "chemist_labcoat", slot_l_hand_str = "chemist_labcoat") /obj/item/clothing/suit/storage/toggle/labcoat/virologist - name = "Virologist labcoat" + name = JOB_ALT_VIROLOGIST + " labcoat" desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Has a green stripe on the shoulder." icon_state = "labcoat_vir" item_state_slots = list(slot_r_hand_str = "virologist_labcoat", slot_l_hand_str = "virologist_labcoat") armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0) /obj/item/clothing/suit/storage/toggle/labcoat/roboticist - name = "Roboticist labcoat" + name = JOB_ROBOTICIST + " labcoat" desc = "More like an eccentric coat than a labcoat. Helps pass off bloodstains as part of the aesthetic. Comes with red shoulder pads." icon_state = "labcoat_robo" item_state_slots = list(slot_r_hand_str = "labcoat", slot_l_hand_str = "labcoat") /obj/item/clothing/suit/storage/toggle/labcoat/science - name = "Scientist labcoat" + name = JOB_SCIENTIST + " labcoat" desc = "A suit that protects against minor chemical spills. Has a purple stripe on the shoulder." icon_state = "labcoat_tox" item_state_slots = list(slot_r_hand_str = "science_labcoat", slot_l_hand_str = "science_labcoat") /obj/item/clothing/suit/storage/toggle/labcoat/rd name = "research director's labcoat" - desc = "A flashy labcoat with purple markings. It belongs to the Research Director." + desc = "A flashy labcoat with purple markings. It belongs to the " + JOB_RESEARCH_DIRECTOR + "." icon_state = "labcoat_rd" item_state_slots = list(slot_r_hand_str = "science_labcoat", slot_l_hand_str = "science_labcoat") diff --git a/code/modules/clothing/under/accessories/accessory_vr.dm b/code/modules/clothing/under/accessories/accessory_vr.dm index c74aed199d..0afd8c7a87 100644 --- a/code/modules/clothing/under/accessories/accessory_vr.dm +++ b/code/modules/clothing/under/accessories/accessory_vr.dm @@ -961,13 +961,13 @@ /obj/item/clothing/accessory/poncho/roles/cloak/mantle/hop name = "head of personnel mantle" - desc = "A shoulder mantle bearing the colors of the Head of Personnel's uniform, featuring the typical royal blue contrasted by authoritative red." + desc = "A shoulder mantle bearing the colors of the " + JOB_HEAD_OF_PERSONNEL + "'s uniform, featuring the typical royal blue contrasted by authoritative red." icon_state = "hopmantle" item_state = "hopmantle" /obj/item/clothing/accessory/poncho/roles/cloak/mantle/cap name = "site manager mantle" - desc = "A shoulder mantle bearing the colors usually found on a Site Manager, a commanding blue with regal gold inlay." + desc = "A shoulder mantle bearing the colors usually found on a " + JOB_SITE_MANAGER + ", a commanding blue with regal gold inlay." icon_state = "capmantle" item_state = "capmantle" diff --git a/code/modules/clothing/under/accessories/badges.dm b/code/modules/clothing/under/accessories/badges.dm index e0ff7bd906..4cfae8e745 100644 --- a/code/modules/clothing/under/accessories/badges.dm +++ b/code/modules/clothing/under/accessories/badges.dm @@ -114,7 +114,7 @@ var/found = FALSE for(var/access in valid_access) - if(access in id_card.access || emagged) + if(access in id_card.GetAccess() || emagged) to_chat(user, "You imprint your ID details onto the badge.") set_name(user.real_name) found = TRUE @@ -135,25 +135,25 @@ /obj/item/clothing/accessory/badge/holo/officer name = "officer's badge" - desc = "A bronze corporate security badge. Stamped with the words 'Security Officer.'" + desc = "A bronze corporate security badge. Stamped with the words '" + JOB_SECURITY_OFFICER + ".'" icon_state = "bronzebadge" slot_flags = SLOT_TIE | SLOT_BELT /obj/item/clothing/accessory/badge/holo/warden name = "warden's holobadge" - desc = "A silver corporate security badge. Stamped with the words 'Warden.'" + desc = "A silver corporate security badge. Stamped with the words '" + JOB_WARDEN + ".'" icon_state = "silverbadge" slot_flags = SLOT_TIE | SLOT_BELT /obj/item/clothing/accessory/badge/holo/hos name = "head of security's holobadge" - desc = "An immaculately polished gold security badge. Stamped with the words 'Head of Security.'" + desc = "An immaculately polished gold security badge. Stamped with the words '" + JOB_HEAD_OF_SECURITY + ".'" icon_state = "goldbadge" slot_flags = SLOT_TIE | SLOT_BELT /obj/item/clothing/accessory/badge/holo/detective name = "detective's holobadge" - desc = "An immaculately polished gold security badge on leather. Labeled 'Detective.'" + desc = "An immaculately polished gold security badge on leather. Labeled '" + JOB_DETECTIVE + ".'" icon_state = "marshalbadge" slot_flags = SLOT_TIE | SLOT_BELT diff --git a/code/modules/clothing/under/eva_bodysuits.dm b/code/modules/clothing/under/eva_bodysuits.dm index 8b77595f9f..73856571df 100644 --- a/code/modules/clothing/under/eva_bodysuits.dm +++ b/code/modules/clothing/under/eva_bodysuits.dm @@ -31,7 +31,7 @@ /obj/item/clothing/under/undersuit/sec/hos name = "security command undersuit" - desc = "A reinforced undersuit, intended for wearing under a voidsuit or other EVA equipment. This one is specifically made for the Head of Security or equivalent, and has slight protective capabilities against simple melee attacks." + desc = "A reinforced undersuit, intended for wearing under a voidsuit or other EVA equipment. This one is specifically made for the " + JOB_HEAD_OF_SECURITY + " or equivalent, and has slight protective capabilities against simple melee attacks." icon_state = "bodysuit_seccom" item_state = "bodysuit_seccom" diff --git a/code/modules/clothing/under/jobs/civilian.dm b/code/modules/clothing/under/jobs/civilian.dm index 9f714d9a0c..3fe42db608 100644 --- a/code/modules/clothing/under/jobs/civilian.dm +++ b/code/modules/clothing/under/jobs/civilian.dm @@ -13,7 +13,7 @@ item_state_slots = list(slot_r_hand_str = "ba_suit", slot_l_hand_str = "ba_suit") /obj/item/clothing/under/rank/captain //Alright, technically not a 'civilian' but its better then giving a .dm file for a single define. - desc = "It's a blue jumpsuit with some gold markings denoting the rank of \"Site Manager\"." + desc = "It's a blue jumpsuit with some gold markings denoting the rank of \"" + JOB_SITE_MANAGER + "\"." name = "site manager's jumpsuit" icon_state = "captain" rolled_sleeves = 0 @@ -80,7 +80,7 @@ rolled_sleeves = -1 /obj/item/clothing/under/rank/head_of_personnel - desc = "It's a jumpsuit worn by someone who works in the position of \"Head of Personnel\"." + desc = "It's a jumpsuit worn by someone who works in the position of \"" + JOB_HEAD_OF_PERSONNEL + "\"." name = "head of personnel's jumpsuit" icon_state = "hop" rolled_sleeves = 0 @@ -104,7 +104,7 @@ icon_state = "hydro" /obj/item/clothing/under/rank/internalaffairs - desc = "The plain, professional attire of an Internal Affairs Agent. The collar is immaculately starched." + desc = "The plain, professional attire of an " + JOB_INTERNAL_AFFAIRS_AGENT + ". The collar is immaculately starched." name = "Internal Affairs uniform" icon_state = "internalaffairs" item_state_slots = list(slot_r_hand_str = "ba_suit", slot_l_hand_str = "ba_suit") @@ -112,7 +112,7 @@ starting_accessories = list(/obj/item/clothing/accessory/tie/black) /obj/item/clothing/under/rank/internalaffairs/skirt - desc = "The plain, professional attire of an Internal Affairs Agent. The top button is sewn shut." + desc = "The plain, professional attire of an " + JOB_INTERNAL_AFFAIRS_AGENT + ". The top button is sewn shut." name = "Internal Affairs skirt" icon_state = "internalaffairs_skirt" diff --git a/code/modules/clothing/under/jobs/medsci.dm b/code/modules/clothing/under/jobs/medsci.dm index 00b0ed43f9..cf2a59b7fd 100644 --- a/code/modules/clothing/under/jobs/medsci.dm +++ b/code/modules/clothing/under/jobs/medsci.dm @@ -2,7 +2,7 @@ * Science */ /obj/item/clothing/under/rank/research_director - desc = "It's a jumpsuit worn by those with the know-how to achieve the position of \"Research Director\". Its fabric provides minor protection from biological contaminants." + desc = "It's a jumpsuit worn by those with the know-how to achieve the position of \"" + JOB_RESEARCH_DIRECTOR + "\". Its fabric provides minor protection from biological contaminants." name = "research director's jumpsuit" icon_state = "director" armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) @@ -51,7 +51,7 @@ * Medical */ /obj/item/clothing/under/rank/chief_medical_officer - desc = "It's a jumpsuit worn by those with the experience to be \"Chief Medical Officer\". It provides minor biological protection." + desc = "It's a jumpsuit worn by those with the experience to be \"" + JOB_CHIEF_MEDICAL_OFFICER + "\". It provides minor biological protection." name = "chief medical officer's jumpsuit" icon_state = "cmo" item_state_slots = list(slot_r_hand_str = "white", slot_l_hand_str = "white") diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm index 3d6bdfec0c..0d5c64dfad 100644 --- a/code/modules/clothing/under/jobs/security.dm +++ b/code/modules/clothing/under/jobs/security.dm @@ -9,7 +9,7 @@ * Security */ /obj/item/clothing/under/rank/warden - desc = "It's made of a slightly sturdier material than standard jumpsuits, to allow for more robust protection. It has the word \"Warden\" written on the shoulders." + desc = "It's made of a slightly sturdier material than standard jumpsuits, to allow for more robust protection. It has the word \"" + JOB_WARDEN+ "\" written on the shoulders." name = "warden's jumpsuit" icon_state = "warden" item_state_slots = list(slot_r_hand_str = "red", slot_l_hand_str = "red") @@ -147,7 +147,7 @@ * Head of Security */ /obj/item/clothing/under/rank/head_of_security - desc = "It's a jumpsuit worn by those few with the dedication to achieve the position of \"Head of Security\". It has additional armor to protect the wearer." + desc = "It's a jumpsuit worn by those few with the dedication to achieve the position of \"" + JOB_HEAD_OF_SECURITY + "\". It has additional armor to protect the wearer." name = "head of security's jumpsuit" icon_state = "hos" item_state_slots = list(slot_r_hand_str = "red", slot_l_hand_str = "red") @@ -178,14 +178,14 @@ rolled_sleeves = 0 /obj/item/clothing/under/rank/head_of_security/navyblue - desc = "The insignia on this uniform tells you that this uniform belongs to the Head of Security." + desc = "The insignia on this uniform tells you that this uniform belongs to the " + JOB_HEAD_OF_SECURITY + "." name = "head of security's uniform" icon_state = "hosblueclothes" item_state_slots = list(slot_r_hand_str = "ba_suit", slot_l_hand_str = "ba_suit") rolled_sleeves = 0 /obj/item/clothing/under/rank/warden/navyblue - desc = "The insignia on this uniform tells you that this uniform belongs to the Warden." + desc = "The insignia on this uniform tells you that this uniform belongs to the " + JOB_WARDEN + "." name = "warden's uniform" icon_state = "wardenblueclothes" item_state_slots = list(slot_r_hand_str = "ba_suit", slot_l_hand_str = "ba_suit") @@ -202,16 +202,15 @@ rolled_sleeves = 0 /obj/item/clothing/under/rank/head_of_security/tan - desc = "The insignia on this uniform tells you that this uniform belongs to the Head of Security." + desc = "The insignia on this uniform tells you that this uniform belongs to the " + JOB_HEAD_OF_SECURITY+ "." name = "head of security's uniform" icon_state = "hostanclothes" item_state_slots = list(slot_r_hand_str = "ba_suit", slot_l_hand_str = "ba_suit") rolled_sleeves = 0 /obj/item/clothing/under/rank/warden/tan - desc = "The insignia on this uniform tells you that this uniform belongs to the Warden." + desc = "The insignia on this uniform tells you that this uniform belongs to the " + JOB_WARDEN + "." name = "warden's uniform" icon_state = "wardentanclothes" item_state_slots = list(slot_r_hand_str = "ba_suit", slot_l_hand_str = "ba_suit") rolled_sleeves = 0 - diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 36a314601d..c00de40e7f 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -418,7 +418,7 @@ /obj/item/clothing/under/dress/dress_cap name = "site manager's dress uniform" - desc = "Feminine fashion for the style conscious Site Manager." + desc = "Feminine fashion for the style conscious " + JOB_SITE_MANAGER + "." icon_state = "dress_cap" body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS @@ -751,7 +751,7 @@ /obj/item/clothing/under/captainformal name = "site manager's formal uniform" - desc = "A Site Manager's formal-wear, for special occasions." + desc = "A " + JOB_SITE_MANAGER + "'s formal-wear, for special occasions." icon_state = "captain_formal" item_state_slots = list(slot_r_hand_str = "lawyer_blue", slot_l_hand_str = "lawyer_blue") diff --git a/code/modules/clothing/under/shorts.dm b/code/modules/clothing/under/shorts.dm index b2289e70eb..75160cfd05 100644 --- a/code/modules/clothing/under/shorts.dm +++ b/code/modules/clothing/under/shorts.dm @@ -217,7 +217,7 @@ icon_state = "chemistryf" /obj/item/clothing/under/rank/chief_medical_officer/skirt - desc = "It's a jumpskirt worn by those with the experience to be \"Chief Medical Officer\". It provides minor biological protection." + desc = "It's a jumpskirt worn by those with the experience to be \"" + JOB_CHIEF_MEDICAL_OFFICER + "\". It provides minor biological protection." name = "chief medical officer's jumpskirt" icon_state = "cmof" @@ -237,11 +237,11 @@ siemens_coefficient = 0.9 /obj/item/clothing/under/rank/warden/skirt - desc = "Standard feminine fashion for a Warden. It is made of sturdier material than standard jumpskirts. It has the word \"Warden\" written on the shoulders." + desc = "Standard feminine fashion for a " + JOB_WARDEN + ". It is made of sturdier material than standard jumpskirts. It has the word \"" + JOB_WARDEN + "\" written on the shoulders." name = "warden's jumpskirt" icon_state = "wardenf" /obj/item/clothing/under/rank/head_of_security/skirt - desc = "It's a fashionable jumpskirt worn by those few with the dedication to achieve the position of \"Head of Security\". It has additional armor to protect the wearer." + desc = "It's a fashionable jumpskirt worn by those few with the dedication to achieve the position of \"" + JOB_HEAD_OF_SECURITY + "\". It has additional armor to protect the wearer." name = "head of security's jumpskirt" icon_state = "hosf" diff --git a/code/modules/clothing/under/xenos/teshari.dm b/code/modules/clothing/under/xenos/teshari.dm index d7254524f7..5127ae5b13 100644 --- a/code/modules/clothing/under/xenos/teshari.dm +++ b/code/modules/clothing/under/xenos/teshari.dm @@ -222,27 +222,27 @@ //Job Undercoats /obj/item/clothing/under/teshari/undercoat/jobs/cap name = "site manager undercoat" - desc = "A traditional Teshari garb made for the Site Manager" + desc = "A traditional Teshari garb made for the " + JOB_SITE_MANAGER icon_state = "tesh_uniform_cap" /obj/item/clothing/under/teshari/undercoat/jobs/hop name = "head of personnel undercoat" - desc = "A traditional Teshari garb made for the Head of Personnel" + desc = "A traditional Teshari garb made for the " + JOB_HEAD_OF_PERSONNEL icon_state = "tesh_uniform_hop" /obj/item/clothing/under/teshari/undercoat/jobs/ce name = "cheif engineer undercoat" - desc = "A traditional Teshari garb made for the Chief Engineer" + desc = "A traditional Teshari garb made for the " + JOB_CHIEF_ENGINEER icon_state = "tesh_uniform_ce" /obj/item/clothing/under/teshari/undercoat/jobs/hos name = "head of security undercoat" - desc = "A traditional Teshari garb made for the Head of Security" + desc = "A traditional Teshari garb made for the " + JOB_HEAD_OF_SECURITY icon_state = "tesh_uniform_hos" /obj/item/clothing/under/teshari/undercoat/jobs/rd name = "research director undercoat" - desc = "A traditional Teshari garb made for the Research Director" + desc = "A traditional Teshari garb made for the " + JOB_RESEARCH_DIRECTOR icon_state = "tesh_uniform_rd" /obj/item/clothing/under/teshari/undercoat/jobs/engineer @@ -252,7 +252,7 @@ /obj/item/clothing/under/teshari/undercoat/jobs/atmos name = "atmospherics undercoat" - desc = "A traditional Teshari garb made for the Atmospheric Technician" + desc = "A traditional Teshari garb made for the " + JOB_ATMOSPHERIC_TECHNICIAN icon_state = "tesh_uniform_atmos" /obj/item/clothing/under/teshari/undercoat/jobs/cmo @@ -262,7 +262,7 @@ /obj/item/clothing/under/teshari/undercoat/jobs/qm name = "quartermaster undercoat" - desc = "A traditional Teshari garb made for the Quartermaster" + desc = "A traditional Teshari garb made for the " + JOB_QUARTERMASTER icon_state = "tesh_uniform_qm" /obj/item/clothing/under/teshari/undercoat/jobs/cargo @@ -282,22 +282,22 @@ /obj/item/clothing/under/teshari/undercoat/jobs/chemistry name = "chemist undercoat" - desc = "A traditional Teshari garb made for the Chemist" + desc = "A traditional Teshari garb made for the " + JOB_CHEMIST icon_state = "tesh_uniform_chem" /obj/item/clothing/under/teshari/undercoat/jobs/viro name = "virologist undercoat" - desc = "A traditional Teshari garb made for the Virologist" + desc = "A traditional Teshari garb made for the " + JOB_ALT_VIROLOGIST icon_state = "tesh_uniform_viro" /obj/item/clothing/under/teshari/undercoat/jobs/psych name = "psychiatrist undercoat" - desc = "A traditional Teshari garb made for the Psychiatrist" + desc = "A traditional Teshari garb made for the " + JOB_PSYCHIATRIST icon_state = "tesh_uniform_psych" /obj/item/clothing/under/teshari/undercoat/jobs/para name = "paramedic undercoat" - desc = "A traditional Teshari garb made for the Paramedic" + desc = "A traditional Teshari garb made for the " + JOB_PARAMEDIC icon_state = "tesh_uniform_para" /obj/item/clothing/under/teshari/undercoat/jobs/sci @@ -307,7 +307,7 @@ /obj/item/clothing/under/teshari/undercoat/jobs/robo name = "roboticist undercoat" - desc = "A traditional Teshari garb made for the Roboticist" + desc = "A traditional Teshari garb made for the " + JOB_ROBOTICIST icon_state = "tesh_uniform_robo" /obj/item/clothing/under/teshari/undercoat/jobs/sec @@ -322,5 +322,5 @@ /obj/item/clothing/under/teshari/undercoat/jobs/iaa name = "internal affairs undercoat" - desc = "A traditional Teshari garb made for the Internal Affairs Agent" + desc = "A traditional Teshari garb made for the " + JOB_INTERNAL_AFFAIRS_AGENT icon_state = "tesh_uniform_iaa" diff --git a/code/modules/customitems/item_spawning.dm b/code/modules/customitems/item_spawning.dm index e01b8ae7f1..66fc766f1f 100644 --- a/code/modules/customitems/item_spawning.dm +++ b/code/modules/customitems/item_spawning.dm @@ -191,7 +191,7 @@ // Check for required access. var/obj/item/card/id/current_id = M.wear_id if(citem.req_access && citem.req_access > 0) // These are numbers, not lists - if(!(istype(current_id) && (citem.req_access in current_id.access))) + if(!(istype(current_id) && (citem.req_access in current_id.GetAccess()))) log_debug("Custom Item: [key_name(M)] Does not have required access.") continue diff --git a/code/modules/economy/Events_Mundane.dm b/code/modules/economy/Events_Mundane.dm index 6703133462..a399742127 100644 --- a/code/modules/economy/Events_Mundane.dm +++ b/code/modules/economy/Events_Mundane.dm @@ -29,7 +29,7 @@ "New bowling lane that shoots mini-meteors at bowlers very popular.",\ "[pick("Unathi","Spacer")] gets tattoo of "+using_map.starsys_name+" on chest '[pick("[using_map.boss_short]","star","starship","asteroid")] tickles most'.",\ "Skrell marries computer; wedding attended by 100 modems.",\ - "Chef reports successfully using harmonica as cheese grater.",\ + JOB_CHEF + " reports successfully using harmonica as cheese grater.",\ "[using_map.company_name] invents handkerchief that says 'Bless you' after sneeze.",\ "Clone accused of posing for other clones's school photo.",\ "Clone accused of stealing other clones's employee of the month award.",\ diff --git a/code/modules/entrepreneur/entrepreneur_items.dm b/code/modules/entrepreneur/entrepreneur_items.dm index 8410cdbaf3..3b586ff3b5 100644 --- a/code/modules/entrepreneur/entrepreneur_items.dm +++ b/code/modules/entrepreneur/entrepreneur_items.dm @@ -379,7 +379,7 @@ /obj/item/entrepreneur/spirit_board/attack_ghost(var/mob/observer/dead/user) if(!ghost_enabled) return - if(jobban_isbanned(user, "GhostRoles")) + if(jobban_isbanned(user, JOB_GHOSTROLES)) to_chat(user, "You cannot interact with this board because you are banned from playing ghost roles.") return next_result = tgui_input_list(user, "What should it land on next?", "Next result", possible_results) @@ -525,5 +525,9 @@ desc = "A kit containing everything that a stylist needs." icon = 'icons/obj/entrepreneur.dmi' icon_state = "stylist" +<<<<<<< HEAD starts_with = list(/obj/item/makeover, /obj/item/lipstick/random, /obj/item/nailpolish, /obj/item/nailpolish_remover, /obj/item/haircomb, /obj/item/clothing/head/hairnet, /obj/item/ticket_printer/train) +======= + starts_with = list(/obj/item/weapon/makeover, /obj/item/weapon/lipstick/random, /obj/item/weapon/nailpolish, /obj/item/weapon/nailpolish_remover, /obj/item/weapon/haircomb, /obj/item/clothing/head/hairnet, /obj/item/device/ticket_printer/train) +>>>>>>> master diff --git a/code/modules/events/event_dynamic.dm b/code/modules/events/event_dynamic.dm index 0c0c0e47c9..100316b58c 100644 --- a/code/modules/events/event_dynamic.dm +++ b/code/modules/events/event_dynamic.dm @@ -30,11 +30,11 @@ var/list/event_last_fired = list() var/minutes_passed = world.time/600 var/list/active_with_role = number_active_with_role() - //var/engineer_count = number_active_with_role("Engineer") + //var/engineer_count = number_active_with_role(JOB_ENGINEER) //var/security_count = number_active_with_role("Security") //var/medical_count = number_active_with_role("Medical") - //var/AI_count = number_active_with_role("AI") - //var/janitor_count = number_active_with_role("Janitor") + //var/AI_count = number_active_with_role(JOB_AI) + //var/janitor_count = number_active_with_role(JOB_JANITOR) // Maps event names to event chances // For each chance, 100 represents "normal likelihood", anything below 100 is "reduced likelihood", anything above 100 is "increased likelihood" @@ -56,23 +56,23 @@ var/list/event_last_fired = list() possibleEvents[/datum/event/money_hacker] = max(min(25, player_list.len) * 4, 200) - possibleEvents[/datum/event/carp_migration] = 20 + 10 * active_with_role["Engineer"] - possibleEvents[/datum/event/brand_intelligence] = 20 + 25 * active_with_role["Janitor"] + possibleEvents[/datum/event/carp_migration] = 20 + 10 * active_with_role[JOB_ENGINEER] + possibleEvents[/datum/event/brand_intelligence] = 20 + 25 * active_with_role[JOB_JANITOR] - possibleEvents[/datum/event/rogue_drone] = 5 + 25 * active_with_role["Engineer"] + 25 * active_with_role["Security"] - possibleEvents[/datum/event/infestation] = 100 + 100 * active_with_role["Janitor"] + possibleEvents[/datum/event/rogue_drone] = 5 + 25 * active_with_role[JOB_ENGINEER] + 25 * active_with_role["Security"] + possibleEvents[/datum/event/infestation] = 100 + 100 * active_with_role[JOB_JANITOR] - possibleEvents[/datum/event/communications_blackout] = 50 + 25 * active_with_role["AI"] + active_with_role["Scientist"] * 25 - possibleEvents[/datum/event/ionstorm] = active_with_role["AI"] * 25 + active_with_role["Cyborg"] * 25 + active_with_role["Engineer"] * 10 + active_with_role["Scientist"] * 5 - possibleEvents[/datum/event/grid_check] = 25 + 10 * active_with_role["Engineer"] - possibleEvents[/datum/event/electrical_storm] = 15 * active_with_role["Janitor"] + 5 * active_with_role["Engineer"] - possibleEvents[/datum/event/wallrot] = 30 * active_with_role["Engineer"] + 50 * active_with_role["Gardener"] + possibleEvents[/datum/event/communications_blackout] = 50 + 25 * active_with_role[JOB_AI] + active_with_role[JOB_SCIENTIST] * 25 + possibleEvents[/datum/event/ionstorm] = active_with_role[JOB_AI] * 25 + active_with_role[JOB_CYBORG] * 25 + active_with_role[JOB_ENGINEER] * 10 + active_with_role[JOB_SCIENTIST] * 5 + possibleEvents[/datum/event/grid_check] = 25 + 10 * active_with_role[JOB_ENGINEER] + possibleEvents[/datum/event/electrical_storm] = 15 * active_with_role[JOB_JANITOR] + 5 * active_with_role[JOB_ENGINEER] + possibleEvents[/datum/event/wallrot] = 30 * active_with_role[JOB_ENGINEER] + 50 * active_with_role[JOB_ALT_GARDENER] if(!spacevines_spawned) - possibleEvents[/datum/event/spacevine] = 10 + 5 * active_with_role["Engineer"] + possibleEvents[/datum/event/spacevine] = 10 + 5 * active_with_role[JOB_ENGINEER] if(minutes_passed >= 30) // Give engineers time to set up engine - possibleEvents[/datum/event/meteor_wave] = 10 * active_with_role["Engineer"] - possibleEvents[/datum/event/blob] = 10 * active_with_role["Engineer"] + possibleEvents[/datum/event/meteor_wave] = 10 * active_with_role[JOB_ENGINEER] + possibleEvents[/datum/event/blob] = 10 * active_with_role[JOB_ENGINEER] if(active_with_role["Medical"] > 0) possibleEvents[/datum/event/radiation_storm] = active_with_role["Medical"] * 10 @@ -179,14 +179,14 @@ var/list/event_last_fired = list() // Note that this isn't sorted by department, because e.g. having a roboticist shouldn't make meteors spawn. /proc/number_active_with_role() var/list/active_with_role = list() - active_with_role["Engineer"] = 0 + active_with_role[JOB_ENGINEER] = 0 active_with_role["Medical"] = 0 active_with_role["Security"] = 0 - active_with_role["Scientist"] = 0 - active_with_role["AI"] = 0 - active_with_role["Cyborg"] = 0 - active_with_role["Janitor"] = 0 - active_with_role["Botanist"] = 0 + active_with_role[JOB_SCIENTIST] = 0 + active_with_role[JOB_AI] = 0 + active_with_role[JOB_CYBORG] = 0 + active_with_role[JOB_JANITOR] = 0 + active_with_role[JOB_BOTANIST] = 0 for(var/mob/M in player_list) if(!M.mind || !M.client || M.client.is_afk(10 MINUTES)) // longer than 10 minutes AFK counts them as inactive @@ -197,21 +197,36 @@ var/list/event_last_fired = list() if(istype(M, /mob/living/silicon/robot)) var/mob/living/silicon/robot/R = M if(R.module) +<<<<<<< HEAD if(istype(R.module, /obj/item/robot_module/robot/engineering)) active_with_role["Engineer"]++ else if(istype(R.module, /obj/item/robot_module/robot/security)) +======= + if(istype(R.module, /obj/item/weapon/robot_module/robot/engineering)) + active_with_role[JOB_ENGINEER]++ + else if(istype(R.module, /obj/item/weapon/robot_module/robot/security)) +>>>>>>> master active_with_role["Security"]++ else if(istype(R.module, /obj/item/robot_module/robot/medical)) active_with_role["Medical"]++ +<<<<<<< HEAD else if(istype(R.module, /obj/item/robot_module/robot/research)) active_with_role["Scientist"]++ else if(istype(R.module, /obj/item/robot_module/robot/janitor)) active_with_role["Janitor"]++ else if(istype(R.module, /obj/item/robot_module/robot/clerical/butler)) active_with_role["Botanist"]++ +======= + else if(istype(R.module, /obj/item/weapon/robot_module/robot/research)) + active_with_role[JOB_SCIENTIST]++ + else if(istype(R.module, /obj/item/weapon/robot_module/robot/janitor)) + active_with_role[JOB_JANITOR]++ + else if(istype(R.module, /obj/item/weapon/robot_module/robot/clerical/butler)) + active_with_role[JOB_BOTANIST]++ +>>>>>>> master if(M.mind.assigned_role in SSjob.get_job_titles_in_department(DEPARTMENT_ENGINEERING)) - active_with_role["Engineer"]++ + active_with_role[JOB_ENGINEER]++ if(M.mind.assigned_role in SSjob.get_job_titles_in_department(DEPARTMENT_MEDICAL)) active_with_role["Medical"]++ @@ -220,18 +235,18 @@ var/list/event_last_fired = list() active_with_role["Security"]++ if(M.mind.assigned_role in SSjob.get_job_titles_in_department(DEPARTMENT_RESEARCH)) - active_with_role["Scientist"]++ + active_with_role[JOB_SCIENTIST]++ - if(M.mind.assigned_role == "AI") - active_with_role["AI"]++ + if(M.mind.assigned_role == JOB_AI) + active_with_role[JOB_AI]++ - if(M.mind.assigned_role == "Cyborg") - active_with_role["Cyborg"]++ + if(M.mind.assigned_role == JOB_CYBORG) + active_with_role[JOB_CYBORG]++ - if(M.mind.assigned_role == "Janitor") - active_with_role["Janitor"]++ + if(M.mind.assigned_role == JOB_JANITOR) + active_with_role[JOB_JANITOR]++ - if(M.mind.assigned_role == "Botanist") - active_with_role["Botanist"]++ + if(M.mind.assigned_role == JOB_BOTANIST) + active_with_role[JOB_BOTANIST]++ return active_with_role diff --git a/code/modules/events/money_hacker.dm b/code/modules/events/money_hacker.dm index 025bcc6901..09510bec60 100644 --- a/code/modules/events/money_hacker.dm +++ b/code/modules/events/money_hacker.dm @@ -24,7 +24,7 @@ GLOBAL_VAR_INIT(account_hack_attempted, 0) for(var/obj/machinery/message_server/MS in machines) if(!MS.active) continue - MS.send_rc_message("Head of Personnel's Desk", my_department, message, "", "", 2) + MS.send_rc_message(JOB_HEAD_OF_PERSONNEL + "'s Desk", my_department, message, "", "", 2) /datum/event/money_hacker/tick() @@ -66,4 +66,4 @@ GLOBAL_VAR_INIT(account_hack_attempted, 0) for(var/obj/machinery/message_server/MS in machines) if(!MS.active) continue - MS.send_rc_message("Head of Personnel's Desk", my_department, message, "", "", 2) + MS.send_rc_message(JOB_HEAD_OF_PERSONNEL + "'s Desk", my_department, message, "", "", 2) diff --git a/code/modules/examine/examine.dm b/code/modules/examine/examine.dm index 8ae3788d87..2b8f3fb209 100644 --- a/code/modules/examine/examine.dm +++ b/code/modules/examine/examine.dm @@ -112,7 +112,10 @@ var/list/results = A.examine(src) if(!results || !results.len) results = list("You were unable to examine that. Tell a developer!") - to_chat(src, "[jointext(results, "
")]
") + var/final_string = "[jointext(results, "
")]
" + if(ismob(A)) // mob descriptions matter more than others + final_string = examine_block(final_string) + to_chat(src, final_string) update_examine_panel(A) /mob/proc/update_examine_panel(var/atom/A) diff --git a/code/modules/flufftext/Dreaming.dm b/code/modules/flufftext/Dreaming.dm index 53ffe22879..1881f91561 100644 --- a/code/modules/flufftext/Dreaming.dm +++ b/code/modules/flufftext/Dreaming.dm @@ -1,15 +1,15 @@ var/list/dreams = list( - "an ID card","a bottle","a familiar face","a crewmember","a toolbox","a Security Officer","the Site Manager", + "an ID card","a bottle","a familiar face","a crewmember","a toolbox","a " + JOB_SECURITY_OFFICER,"the " + JOB_SITE_MANAGER, "voices from all around","deep space","a doctor","the engine","a traitor","an ally","darkness", "light","a scientist","a monkey","a catastrophe","a loved one","a gun","warmth","freezing","the sun", "a hat","the Luna","a ruined station","a planet","phoron","air","the medical bay","the bridge","blinking lights", "a blue light","an abandoned laboratory","NanoTrasen","mercenaries","blood","healing","power","respect", "riches","space","a crash","happiness","pride","a fall","water","flames","ice","melons","flying","the eggs","money", - "the Head of Personnel","the Head of Security","the Chief Engineer","the Research Director","the Chief Medical Officer", - "the Detective","the Warden","an Internal Affairs Agent","an Engineer","the Janitor","the Atmospheric Technician", - "the Quartermaster","a Cargo Technician","the Botanist","a Shaft Miner","the Psychologist","the Chemist","a Geneticist", - "the Virologist","the Roboticist","the Chef","the Bartender","the Chaplain","the Librarian","a mouse","an ERT member", + "the " + JOB_HEAD_OF_PERSONNEL,"the " + JOB_HEAD_OF_SECURITY,"the " + JOB_CHIEF_ENGINEER,"the " + JOB_RESEARCH_DIRECTOR,"the " + JOB_CHIEF_MEDICAL_OFFICER, + "the " + JOB_DETECTIVE,"the " + JOB_WARDEN,"an " + JOB_INTERNAL_AFFAIRS_AGENT,"an " + JOB_ENGINEER,"the " + JOB_JANITOR,"the " + JOB_ATMOSPHERIC_TECHNICIAN, + "the " +JOB_QUARTERMASTER,"a " + JOB_CARGO_TECHNICIAN,"the " + JOB_BOTANIST,"a " + JOB_SHAFT_MINER,"the " + JOB_ALT_PSYCHOLOGIST,"the " + JOB_CHEMIST,"a " + JOB_GENETICIST, + "the " + JOB_ALT_VIROLOGIST,"the " + JOB_ROBOTICIST,"the " + JOB_CHEF,"the " + JOB_BARTENDER,"the " + JOB_CHAPLAIN,"the " + JOB_LIBRARIAN,"a mouse","an ERT member", "a beach","the holodeck","a smoky room","a voice","the cold","a mouse","an operating table","the bar","the rain","a Skrell", "an Unathi","a Tajaran","the Station Intelligence core","the mining station","the research station","a beaker of strange liquid", "a Teshari", "a Diona nymph","the supermatter","Major Bill","a Morpheus ship with a ridiculous name","the Exodus","a star", diff --git a/code/modules/food/food/drinks.dm b/code/modules/food/food/drinks.dm index a4418af485..5c21ef32cb 100644 --- a/code/modules/food/food/drinks.dm +++ b/code/modules/food/food/drinks.dm @@ -482,9 +482,15 @@ /obj/item/reagent_containers/food/drinks/teapot/on_reagent_change() ..() +<<<<<<< HEAD /obj/item/reagent_containers/food/drinks/flask name = "\improper Site Manager's flask" desc = "A metal flask belonging to the Site Manager" +======= +/obj/item/weapon/reagent_containers/food/drinks/flask + name = "\improper " + JOB_SITE_MANAGER + "'s flask" + desc = "A metal flask belonging to the " + JOB_SITE_MANAGER +>>>>>>> master icon_state = "flask" volume = 60 center_of_mass = list("x"=17, "y"=7) @@ -502,8 +508,13 @@ desc = "A flask with a Lithium Atom symbol on it." icon_state = "lithiumflask" +<<<<<<< HEAD /obj/item/reagent_containers/food/drinks/flask/detflask name = "\improper Detective's flask" +======= +/obj/item/weapon/reagent_containers/food/drinks/flask/detflask + name = "\improper " + JOB_DETECTIVE + "'s flask" +>>>>>>> master desc = "A metal flask with a leather band and golden badge belonging to the detective." icon_state = "detflask" volume = 60 @@ -522,4 +533,3 @@ icon_state = "vacuumflask" volume = 60 center_of_mass = list("x"=15, "y"=4) - diff --git a/code/modules/food/food/lunch.dm b/code/modules/food/food/lunch.dm index 4e209d229b..1918b1fff8 100644 --- a/code/modules/food/food/lunch.dm +++ b/code/modules/food/food/lunch.dm @@ -121,7 +121,16 @@ var/list/lunchables_drink_reagents_ = list(/datum/reagent/drink/nothing, /datum/reagent/drink/dry_ramen, /datum/reagent/drink/hell_ramen, /datum/reagent/drink/hot_ramen, - /datum/reagent/drink/soda/nuka_cola) + /datum/reagent/drink/soda/nuka_cola, + /datum/reagent/drink/coffee/nukie/mega, + /datum/reagent/drink/coffee/nukie/mega/sight, + /datum/reagent/drink/coffee/nukie/mega/heart, + /datum/reagent/drink/coffee/nukie/mega/nega, + /datum/reagent/drink/coffee/nukie/mega/shock, + /datum/reagent/drink/coffee/nukie/mega/fast, + /datum/reagent/drink/coffee/nukie/mega/high, + /datum/reagent/drink/coffee/nukie/mega/shrink, + /datum/reagent/drink/coffee/nukie/mega/grow) // This default list is a bit different, it contains items we don't want diff --git a/code/modules/food/food/snacks.dm b/code/modules/food/food/snacks.dm index f1aa6a46e0..f72efe1f45 100644 --- a/code/modules/food/food/snacks.dm +++ b/code/modules/food/food/snacks.dm @@ -1347,8 +1347,13 @@ . = ..() reagents.add_reagent("protein", 8) +<<<<<<< HEAD /obj/item/reagent_containers/food/snacks/clownburger name = "Clown Burger" +======= +/obj/item/weapon/reagent_containers/food/snacks/clownburger + name = JOB_CLOWN + " Burger" +>>>>>>> master desc = "This tastes funny..." icon_state = "clownburger" filling_color = "#FF00FF" @@ -1358,8 +1363,13 @@ bitesize = 2 +<<<<<<< HEAD /obj/item/reagent_containers/food/snacks/mimeburger name = "Mime Burger" +======= +/obj/item/weapon/reagent_containers/food/snacks/mimeburger + name = JOB_MIME + " Burger" +>>>>>>> master desc = "Its taste defies language." icon_state = "mimeburger" filling_color = "#FFFFFF" @@ -2457,8 +2467,13 @@ reagents.add_reagent("blood", 10) reagents.add_reagent("water", 5) +<<<<<<< HEAD /obj/item/reagent_containers/food/snacks/clownstears name = "Clown's Tears" +======= +/obj/item/weapon/reagent_containers/food/snacks/clownstears + name = JOB_CLOWN + "'s Tears" +>>>>>>> master desc = "Not very funny." icon_state = "clownstears" filling_color = "#C4FBFF" @@ -5702,7 +5717,7 @@ /obj/item/reagent_containers/food/snacks/burrito_hell name = "el diablo" - desc = "Meat and an insane amount of chillis packed in a flour tortilla. The Chaplain will see you now." + desc = "Meat and an insane amount of chillis packed in a flour tortilla. The " + JOB_CHAPLAIN + " will see you now." icon_state = "hellfireburrito" bitesize = 4 center_of_mass = list("x"=16, "y"=16) diff --git a/code/modules/food/kitchen/smartfridge/smartfridge_vr.dm b/code/modules/food/kitchen/smartfridge/smartfridge_vr.dm index 1ceed65523..8a9f3921b2 100644 --- a/code/modules/food/kitchen/smartfridge/smartfridge_vr.dm +++ b/code/modules/food/kitchen/smartfridge/smartfridge_vr.dm @@ -2,19 +2,19 @@ * Expert Jobs */ /obj/machinery/smartfridge - var/expert_job = "Chef" + var/expert_job = JOB_CHEF /obj/machinery/smartfridge/seeds - expert_job = "Botanist" + expert_job = JOB_BOTANIST /obj/machinery/smartfridge/secure/extract - expert_job = "Xenobiologist" + expert_job = JOB_XENOBIOLOGIST /obj/machinery/smartfridge/secure/medbay - expert_job = "Chemist" + expert_job = JOB_CHEMIST /obj/machinery/smartfridge/secure/chemistry - expert_job = "Chemist" + expert_job = JOB_CHEMIST /obj/machinery/smartfridge/secure/virology - expert_job = "Medical Doctor" //Virologist is an alt-title unfortunately + expert_job = JOB_MEDICAL_DOCTOR //Virologist is an alt-title unfortunately /obj/machinery/smartfridge/drinks - expert_job = "Bartender" + expert_job = JOB_BARTENDER /* * Allow thrown items into smartfridges @@ -42,7 +42,7 @@ /obj/machinery/smartfridge/chemistry/chemvator name = "\improper Smart Chemavator - Upper" desc = "A refrigerated storage unit for medicine and chemical storage. Now sporting a fancy system of pulleys to lift bottles up and down." - expert_job = "Chemist" + expert_job = JOB_CHEMIST var/obj/machinery/smartfridge/chemistry/chemvator/attached /obj/machinery/smartfridge/chemistry/chemvator/accept_check(var/obj/item/O as obj) diff --git a/code/modules/gamemaster/event2/events/command/money_hacker.dm b/code/modules/gamemaster/event2/events/command/money_hacker.dm index 287844cf2d..6b9e734018 100644 --- a/code/modules/gamemaster/event2/events/command/money_hacker.dm +++ b/code/modules/gamemaster/event2/events/command/money_hacker.dm @@ -37,7 +37,7 @@ for(var/obj/machinery/message_server/MS in machines) if(!MS.active) continue - MS.send_rc_message("Head of Personnel's Desk", my_department, "[message]
", "", "", 2) + MS.send_rc_message(JOB_HEAD_OF_PERSONNEL + "'s Desk", my_department, "[message]
", "", "", 2) // Nobody reads the requests consoles so lets use the radio as well. global_announcer.autosay(message, my_department, DEPARTMENT_COMMAND) @@ -57,7 +57,7 @@ for(var/obj/machinery/message_server/MS in machines) if(!MS.active) continue - MS.send_rc_message("Head of Personnel's Desk", my_department, message, "", "", 2) + MS.send_rc_message(JOB_HEAD_OF_PERSONNEL + "'s Desk", my_department, message, "", "", 2) global_announcer.autosay(message, my_department, DEPARTMENT_COMMAND) diff --git a/code/modules/games/cah_black_cards.dm b/code/modules/games/cah_black_cards.dm index 635684eca9..c2ab79df12 100644 --- a/code/modules/games/cah_black_cards.dm +++ b/code/modules/games/cah_black_cards.dm @@ -4,10 +4,10 @@ /obj/item/deck/cah/black/card_text_list = list( "Why am I itchy?", "Today, Security shot ____.", - "The Chaplain this shift is worshiping _____.", + "The " + JOB_CHAPLAIN + " this shift is worshiping _____.", "Cargo ordered a crate full of _____.", "An ERT was called due to ______.", - "Alert! The Site Manager has armed themselves with _____.", + "Alert! The " + JOB_SITE_MANAGER + " has armed themselves with _____.", "Current Laws: ________ is your master.", "Current Laws: ________ is the enemy.", "_____ vented the entirety of Cargo.", @@ -16,7 +16,7 @@ "Caution, ______ have been detected in collision course with the station.", "Today's kitchen menu includes _______.", "What did the mercenaries want when they attacked the station?", - "I think the Site Manager is insane. He just demanded ______ in his office.", + "I think the " + JOB_SITE_MANAGER + " is insane. He just demanded ______ in his office.", "Fuckin' scientists, they just turned Misc. Research into _______ .", "What's my fetish?", "Hello, _______ here with _______", @@ -24,7 +24,7 @@ "Why am I shivering?", "What is this world coming to? First, ________, now _______", "NanoTrasen's labor union decided to use _______ to raise employee morale.", - "The Chemist's drug of choice is ______", + "The " + JOB_CHEMIST + "'s drug of choice is ______", "It is common practice for _______ to ______ on Moghes.", "Mercurial Colonies are _____.", "The Skrell are celebrating _____ today.", diff --git a/code/modules/games/cah_white_cards.dm b/code/modules/games/cah_white_cards.dm index a2ee3a64da..6b3e0832ab 100644 --- a/code/modules/games/cah_white_cards.dm +++ b/code/modules/games/cah_white_cards.dm @@ -6,19 +6,19 @@ "Having sex in the maintenance tunnels", "Space 'Nam", "Space lesbians", - "The Gardener getting SUPER high", + "The " + JOB_ALT_GARDENER + " getting SUPER high", "The Site Manager thinking they're a badass", "Being in a cult", "Racially biased lawsets", "An Unathi who WON'T STOP FIGHTING", "Tajaran fetishists", "Bald thirty-year-olds", - "A Chief Engineer who can't setup the engine", + "A " + JOB_CHIEF_ENGINEER + " who can't setup the engine", "Being sucked out into space", "Officer Beepsky", "Engineering", "The grey tide.", - "The Research Director", + "The " + JOB_RESEARCH_DIRECTOR, "Fucking synths", "Man-eating purple pod plants", "Chemical sprayers filled with lube", @@ -65,7 +65,7 @@ "Waking up naked in the maintenance tunnels", "Horrible cloning accidents", "Licking the supermatter due to a dare", - "A Quartermaster who WON'T STOP ordering guns", + "A " + JOB_QUARTERMASTER + " who WON'T STOP ordering guns", "Teaching a synthetic the Birds and the Bees", "Unnecessary surgery", "My addiction to spiders", diff --git a/code/modules/ghosttrap/trap.dm b/code/modules/ghosttrap/trap.dm index a475d9e598..50b432a1bd 100644 --- a/code/modules/ghosttrap/trap.dm +++ b/code/modules/ghosttrap/trap.dm @@ -16,7 +16,7 @@ var/list/ghost_traps /datum/ghosttrap var/object = "positronic brain" - var/list/ban_checks = list("AI","Cyborg") + var/list/ban_checks = list(JOB_AI,JOB_CYBORG) var/pref_check = BE_AI var/ghost_trap_message = "They are occupying a positronic brain now." var/ghost_trap_role = "Positronic Brain" @@ -101,7 +101,7 @@ var/list/ghost_traps // Doona pods and walking mushrooms. /datum/ghosttrap/plant object = "living plant" - ban_checks = list("Dionaea") + ban_checks = list(JOB_DIONAEA) pref_check = BE_PLANT ghost_trap_message = "They are occupying a living plant now." ghost_trap_role = "Plant" @@ -111,4 +111,4 @@ var/list/ghost_traps // This is a hack, replace with some kind of species blurb proc. if(istype(target,/mob/living/carbon/alien/diona)) to_chat(target, "You are \a [target], one of a race of drifting interstellar plantlike creatures that sometimes share their seeds with human traders.") - to_chat(target, "Too much darkness will send you into shock and starve you, but light will help you heal.") \ No newline at end of file + to_chat(target, "Too much darkness will send you into shock and starve you, but light will help you heal.") diff --git a/code/modules/holodeck/HolodeckObjects.dm b/code/modules/holodeck/HolodeckObjects.dm index a733dbd719..da741e1103 100644 --- a/code/modules/holodeck/HolodeckObjects.dm +++ b/code/modules/holodeck/HolodeckObjects.dm @@ -506,11 +506,11 @@ /mob/living/simple_mob/animal/space/carp/holodeck/proc/set_safety(var/safe) if (safe) - faction = "neutral" + faction = FACTION_NEUTRAL melee_damage_lower = 0 melee_damage_upper = 0 else - faction = "carp" + faction = FACTION_CARP melee_damage_lower = initial(melee_damage_lower) melee_damage_upper = initial(melee_damage_upper) diff --git a/code/modules/lore_codex/legal_code_data/corporate_regulations.dm b/code/modules/lore_codex/legal_code_data/corporate_regulations.dm index ca0cb919f9..a41f6a3bf0 100644 --- a/code/modules/lore_codex/legal_code_data/corporate_regulations.dm +++ b/code/modules/lore_codex/legal_code_data/corporate_regulations.dm @@ -4,7 +4,7 @@ or otherwise on-board a NanoTrasen installation, which if you are reading this, you likely are at one. Corporate Regulations, \ commonly shortened to Corp Regs by employees, is common throughout NanoTrasen's other holdings. Offenses against Corp Regs can \ range from things like littering, to disrespecting a Head of Staff, to failing to follow a valid order from a superior. \ - All NanoTrasen employees must follow these regulations, no one is above them, not even the Station Director. \ + All NanoTrasen employees must follow these regulations, no one is above them, not even the " + JOB_SITE_MANAGER + ". \ The only exception for this is Asset Protection." children = list( /datum/lore/codex/page/corporate_punishments, @@ -79,14 +79,14 @@ Brig time may also be used for repeat offenders.
\
  • Write-ups to Central Command may be recommended or mandated for specific offenses. Internal Affairs is to ensure that this is \ adhered to, and assist if needed.

  • \ -
  • Reassignments as a form of punishment may be done by the Station Director, with consent from both the offender and the offender's \ +
  • Reassignments as a form of punishment may be done by the " + JOB_SITE_MANAGER + ", with consent from both the offender and the offender's \ Superior, if one exists. Generally the new role for the offender is usually considered something menial or related to their offense, for example: \ - Janitor, Miner, Cook, Gardener. This punishment can be especially fitting for certain violations such as someone who made graffiti being reassigned to janitorial duties.

  • \ -
  • Demotions may be done by the offender's Superior, at their discretion. The Station Director may also do this, \ + " + JOB_JANITOR + ", Miner, Cook, " + JOB_ALT_GARDENER + ". This punishment can be especially fitting for certain violations such as someone who made graffiti being reassigned to janitorial duties.

  • \ +
  • Demotions may be done by the offender's Superior, at their discretion. The " + JOB_SITE_MANAGER + " may also do this, \ however the Director is recommended to defer to the offender's direct Superior if one exists.

  • \ -
  • Terminations of employment from NanoTrasen can only be issued by the Station Director. This is the most severe corporate punishment available. \ +
  • Terminations of employment from NanoTrasen can only be issued by the " + JOB_SITE_MANAGER + ". This is the most severe corporate punishment available. \ It should be noted that visitors and other non-employees cannot be terminated, obviously. Central Command must be informed of the termination, if one is applied.
  • \ -
  • Hold until Transfer is an option reserved for the Station Director only for repeat offenders, for serious violations of Regulations, or it the offender poses a \ +
  • Hold until Transfer is an option reserved for the " + JOB_SITE_MANAGER + " only for repeat offenders, for serious violations of Regulations, or it the offender poses a \ credible threat to the station or crew.
  • \ " @@ -151,7 +151,7 @@ suggested_punishments = "50 thaler fine. Demotion at discretion of Superior." suggested_fine = 50 notes = "For this charge to apply, the order must be lawful, reasonable, and the person being ordered to do it must have been able to do so. \ - This includes orders from someone who is not necessarily the direct superior of the offender, but has authority in that context, for instance the Chief Engineer \ + This includes orders from someone who is not necessarily the direct superior of the offender, but has authority in that context, for instance the " + JOB_CHIEF_ENGINEER + " \ giving an order about engineering matters." /datum/lore/codex/page/law/littering @@ -188,7 +188,7 @@ suggested_punishments = "Fine of up to 200 thaler, or brig time extention up to 20 minutes. Demotion at discretion of Superior." suggested_fine = 200 suggested_brig_time = 20 MINUTES - notes = "If this disputed, an Internal Affairs Agent (if available) is to be the impartial mediator." + notes = "If this disputed, an " + JOB_INTERNAL_AFFAIRS_AGENT + " (if available) is to be the impartial mediator." /datum/lore/codex/page/law/control_contraband name = "Possession of a Controlled Item (Contraband)" @@ -251,7 +251,7 @@ /datum/lore/codex/page/law/i_am_the_law/add_content() name = "Exceeding Official Powers" definition = "Acting beyond what is allowed by Corporate Regulations or Standard Operating Procedure, generally as a member of Command or Security." - suggested_punishments = "Demotion or termination at discretion of Station Admin. Send notice to Central Command if a Head of Staff or Station Director had exceeded their powers." + suggested_punishments = "Demotion or termination at discretion of Station Admin. Send notice to Central Command if a Head of Staff or " + JOB_SITE_MANAGER + " had exceeded their powers." notes = "The difference between this and [quick_link("Abuse of Office")] is that generally this charge is for instances of someone using their position to go beyond their \ assigned role, or generally acting 'above the regulations'." mandated = TRUE @@ -260,7 +260,7 @@ /datum/lore/codex/page/law/abuse_of_office/add_content() name = "Abuse of Office" definition = "Doing illegal, immoral, or otherwise disallowed actions, in an official capacity, placing their own interests ahead of the interests of the Company." - suggested_punishments = "Demotion. Termination at discretion of Station Admin. Send notice to Central Command if a Head of Staff or Station Director had abused their office." + suggested_punishments = "Demotion. Termination at discretion of Station Admin. Send notice to Central Command if a Head of Staff or " + JOB_SITE_MANAGER + " had abused their office." notes = "The difference between this and [quick_link("Exceeding Official Powers")] is that this charge is for instances of someone using their authority to adversely \ affect another crewmember or visitor unlawfully by using their authority, or otherwise empowering themselves for their own personal gain." mandated = TRUE @@ -273,41 +273,41 @@ notes = "Visitors boarding the station with restricted items must leave the item outside the station (e.g. vessel), or surrender it to the Security team. \ A list of restricted items are provided inside this book.\

    \ - Roles authorized to handle a weapon by default include; Station Director, Head of Personnel, Head of Security, Security Officers, Detectives, and anyone possessing \ + Roles authorized to handle a weapon by default include; " + JOB_SITE_MANAGER + ", " + JOB_HEAD_OF_PERSONNEL + ", " + JOB_HEAD_OF_SECURITY + ", Security Officers, Detectives, and anyone possessing \ a valid weapon permit." /datum/lore/codex/page/law/breaking_sop_major name = "Breaking Standard Operation Procedure (Major)" definition = "Actively and willfully disregarding the station's Standard Operating Procedures, where the probable effects includes death or destruction." - suggested_punishments = "30 minutes to 1 hour of Brig time. Demotion left to discretion of Superior, but strongly suggested. Termination at discretion of Station Director." + suggested_punishments = "30 minutes to 1 hour of Brig time. Demotion left to discretion of Superior, but strongly suggested. Termination at discretion of " + JOB_SITE_MANAGER + "." suggested_brig_time = 1 HOUR notes = "This includes non-compliance to orders from Emergency Responders, entering breached areas without proper EVA gear." /datum/lore/codex/page/law/neglect_of_duty name = "Neglect of Duty" definition = "To fail to meet satisfactory work standards." - suggested_punishments = "Demotion at discretion of Superior. Termination at discretion of Station Director." + suggested_punishments = "Demotion at discretion of Superior. Termination at discretion of " + JOB_SITE_MANAGER + "." notes = "This includes accidents, refusing or failing to work, or simply not providing a reasonable amount of productivity, when the offender is capable of work. This charge \ is meant to be applied only by Command staff to their subordinates, and not from individual Security Officers." /datum/lore/codex/page/law/deception name = "Deception" definition = "To lie in an official report." - suggested_punishments = "Demotion. Termination at discretion of Station Director. Notify Central Command." + suggested_punishments = "Demotion. Termination at discretion of " + JOB_SITE_MANAGER + ". Notify Central Command." notes = "This includes lying or withholding information to your superior in a report or lying to the crew about a situation." mandated = TRUE /datum/lore/codex/page/law/wrongful_dismissal name = "Wrongful Dismissal" definition = "To demote, dismiss, terminate, or otherwise reduce a crewmember's rank for no valid, or a knowingly false reason." - suggested_punishments = "Demotion. Termination at discretion of Station Director. Notify Central Command." - notes = "An Internal Affairs Agent is required to do an investigation in order to conclude if this has occurred or not. Security cannot \ + suggested_punishments = "Demotion. Termination at discretion of " + JOB_SITE_MANAGER + ". Notify Central Command." + notes = "An " + JOB_INTERNAL_AFFAIRS_AGENT + " is required to do an investigation in order to conclude if this has occurred or not. Security cannot \ give this charge out on their own." mandated = TRUE /datum/lore/codex/page/law/abuse_of_confiscated_equipment name = "Abuse of Confiscated Equipment" definition = "To take and use equipment confiscated as evidence or contraband, generally as a member of Security or Command." - suggested_punishments = "Demotion of the user. Termination at discretion of Station Director. Return confiscated equipment to evidence storage." + suggested_punishments = "Demotion of the user. Termination at discretion of " + JOB_SITE_MANAGER +". Return confiscated equipment to evidence storage." notes = "Security shouldn't be using evidence for anything but evidence, and should never use contraband. This is meant for people misusing evidence for personal use. Evidence stolen \ in order to cover up a crime would fall under Theft or Tampering with Evidence." diff --git a/code/modules/lore_codex/legal_code_data/main.dm b/code/modules/lore_codex/legal_code_data/main.dm index a16d7d35d6..8e5ffee829 100644 --- a/code/modules/lore_codex/legal_code_data/main.dm +++ b/code/modules/lore_codex/legal_code_data/main.dm @@ -9,7 +9,7 @@

    \ In this book, there are two different types of rules. Corporate Regulations, and Laws. They each cover specific situations, and are both enforced \ by the Security team. Despite this, however, the punishments vary considerably for the two types. It should also be noted that no one is above \ - these rules, not even the Station Director.\ + these rules, not even the " + JOB_SITE_MANAGER + ".\

    \ Also contained inside are our Standard Operating Procedures, that all employees of NanoTrasen are expected to follow, and for the local facility's \ Command team and Internal Affairs to enforce.\ @@ -98,4 +98,4 @@ HTML += "" data = data + HTML - ..() \ No newline at end of file + ..() diff --git a/code/modules/lore_codex/legal_code_data/sif_law.dm b/code/modules/lore_codex/legal_code_data/sif_law.dm index 58e62cda2a..cea1401378 100644 --- a/code/modules/lore_codex/legal_code_data/sif_law.dm +++ b/code/modules/lore_codex/legal_code_data/sif_law.dm @@ -93,7 +93,7 @@ suggested_punishments = "200 thaler fine. Give Drone a temporary paper stating that it is a drone, if the ID was lost. Fax VirGov. Inform owner of \ Drone if possible. Instruct Drone to obtain new ID at its earliest opportunity, if it was lost." notes = "This is only applicable to Drone intelligences which possess autonomous capability. It must be proven that the offender is a Drone, which can be \ - accomplished in various ways, generally with the expertise of a Roboticist. Lawbound synthetics, maintenance drones, and \ + accomplished in various ways, generally with the expertise of a " + JOB_ROBOTICIST + ". Lawbound synthetics, maintenance drones, and \ simple bots do not require an ID card. No fine or VirGov fax should be sent if the Drone's ID was lost due to theft and the ID is able to be recovered." mandated = TRUE @@ -157,7 +157,7 @@ name = "Excessive Force" definition = "Using more force than what is required to safely detain someone, using force against a helpless or incapacitated person, \ or using force against an unarmed and compliant person." - suggested_punishments = "Demotion. Termination at discretion of Superior, or Station Director. Send notice to Central Command if a Head of Security had used excessive force." + suggested_punishments = "Demotion. Termination at discretion of Superior, or " + JOB_SITE_MANAGER + ". Send notice to Central Command if a " + JOB_HEAD_OF_SECURITY + " had used excessive force." notes = "This charge also is applicible to non-Security personnel acting in self defense. \ Persons whom have caused a person to die as a result of excessive force should have [quick_link("Manslaughter")] applied instead, if the circumstances were \ unjustified." @@ -205,7 +205,7 @@ definition = "Creating an intelligence from an codeline that has not been registered with, or audited by, the Emergent Intelligence Oversight (EIO)." suggested_punishments = "Decommissioning of the newly created Drone. Investigation of Drone to determine level of intelligence, if possible. \ Hold until Transfer for the creator." - notes = "It must be proven that the Drone is in fact a Drone, which can be accomplished in various ways, generally with the expertise of a Roboticist. \ + notes = "It must be proven that the Drone is in fact a Drone, which can be accomplished in various ways, generally with the expertise of a " + JOB_ROBOTICIST + ". \ It must also be proven that the Drone's codeline is also unregistered. Intelligences produced from a Maintenance Drone Fabricator, \ the Research department, and through other regular means are by default already registered. Very simple machines such as securitrons do not require registration.\

    \ diff --git a/code/modules/lore_codex/legal_code_data/sop.dm b/code/modules/lore_codex/legal_code_data/sop.dm index 15dd5fdeaf..f291d11492 100644 --- a/code/modules/lore_codex/legal_code_data/sop.dm +++ b/code/modules/lore_codex/legal_code_data/sop.dm @@ -19,7 +19,7 @@

    \

    Visitors

    \ Visitors of all forms are required to follow SOP, Corporate Regulations, and local laws while onboard or around NanoTrasen property. Visitors who are \ - not registered on the manifest are required to speak with the Head of Personnel or Station Director, if one exists, to register, and obtain an identification \ + not registered on the manifest are required to speak with the " + JOB_HEAD_OF_PERSONNEL + " or " + JOB_SITE_MANAGER + ", if one exists, to register, and obtain an identification \ card denoting their status as a visitor. Visitors registered on the manifest are free to visit any public (non-access restricted) location on the facility, however \ they are still subject to the same regulations and rules as an ordinary crew member.\
    \ @@ -60,7 +60,7 @@ /* /datum/lore/codex/page/command_sop name = "Command SOP" - data = "This SOP is specific to those in the Command department, which includes the Station Director, Head of Personnel, Chief Engineer, Head of Security, and Research Director. \ + data = "This SOP is specific to those in the Command department, which includes the " + JOB_SITE_MANAGER + ", Head of Personnel, " + JOB_CHIEF_ENGINEER + ", " + JOB_HEAD_OF_SECURITY + ", and " + JOB_RESEARCH_DIRECTOR + ". \ This also covers Internal Affairs Agents, however they do not occupy a position inside Command crew, and instead exist outside of all the other departments.\
    \

    Bridge Secretaries

    \ @@ -68,10 +68,10 @@ regards.\
    \

    Responsibility and Authority

    \ - The Chain of Command is generally represented as: Station Director > Command Crew > Station Crew.
    \ - The Station Director is responsible for, and authoritative in, and and all matters regarding the station. In the absence of a Department Head, the Station Director \ + The Chain of Command is generally represented as: " + JOB_SITE_MANAGER + " > Command Crew > Station Crew.
    \ + The " + JOB_SITE_MANAGER + " is responsible for, and authoritative in, and and all matters regarding the station. In the absence of a Department Head, the " + JOB_SITE_MANAGER + " \ may choose to appoint an Acting Head, or else act as the voice of authority in a department. If a Department Head arrives on station, the Acting Head \ - is to step down, and the Station Director is to defer to the Department Head in matters involving said department.\ + is to step down, and the " + JOB_SITE_MANAGER + " is to defer to the Department Head in matters involving said department.\
    \ The remainder of the Command Crew is of equal rank among themselves, and are responsible for, and authoritative over only their own department, crew, and location. \ In the case of the Head of Personnel, this includes Service, Cargo, and any other Civilian role. Command Crew only have authority in their own department, when going \ @@ -80,7 +80,7 @@

    Demotion

    \ A member of the Command Crew may call for the demotion of any member of their department for disregarding safety protocol, disobeying orders with serious consequences, \ or other gross incompetence. Certain infractions necessitate that a guilty crew member receive a demotion. Demotion is to be performed by the Head of Personnel, or the \ - Station Director, as soon as possible. The demoted crewmember is to be present during the demotion, unless it is caused by a criminal sentence. If said crewmemeber \ + " + JOB_SITE_MANAGER + ", as soon as possible. The demoted crewmember is to be present during the demotion, unless it is caused by a criminal sentence. If said crewmemeber \ refuses to comply with a demotion order, Security is to escort them to the Head of Personnel's office.\
    \ Any demoted crewmember must return all equipment and non-personal items to their previous department, including departmental jumpsuits and radios. If a demoted \ @@ -88,21 +88,21 @@ may treat said items as stolen.\
    \

    Chain of Command & Succession

    \ - In case of emergency or other need, and in the absence of a Station Director, an Acting Director may be selected from active, certified Command crew. \ - The selected individual has the same responsibility and authority as a certified Station Director, along with that of their regular position, with the assumption that \ - they will step down if a certified Station Director arrives on station. This role is entirely voluntary, and no Command crew may be forced into the role \ + In case of emergency or other need, and in the absence of a " + JOB_SITE_MANAGER + ", an Acting Director may be selected from active, certified Command crew. \ + The selected individual has the same responsibility and authority as a certified " + JOB_SITE_MANAGER + ", along with that of their regular position, with the assumption that \ + they will step down if a certified " + JOB_SITE_MANAGER + " arrives on station. This role is entirely voluntary, and no Command crew may be forced into the role \ if they are opposed to doing so.\
    \ The preferred order of selecting an Acting Director is as follows:
    \ The role is to be offered to the Head of Personnel, if one is present. If there is no Head of Personnel, or they are unwilling to assume Acting Director, the \ - position is offered to non-Security Command crew. If no other Command crew is available or willing to assume Acting Director, the Head of Security may be offered \ + position is offered to non-Security Command crew. If no other Command crew is available or willing to assume Acting Director, the " + JOB_HEAD_OF_SECURITY + " may be offered \ the position. If no other Command crew is available or willing to assume Acting Director, no Acting Director is selected. Acting Command may not be offered or accept \ Acting Director.\
    \

    Command Crew Demotions

    \ - If a member of the Command crew is suspected to be incompetent, or in breach of SOP, the Station Director has discretion to demote the guilty Command crewmember. \ - If there is no Station Director, or the Station Director themselves is guilty, they may be demoted after a vote of no confidence by the remaining Command crew \ - and relevant station crew. For the Station Director, the vote is only to be among the remaining Command crew. Misuse of this privilage may warrant an \ + If a member of the Command crew is suspected to be incompetent, or in breach of SOP, the " + JOB_SITE_MANAGER + " has discretion to demote the guilty Command crewmember. \ + If there is no " + JOB_SITE_MANAGER + ", or the " + JOB_SITE_MANAGER + " themselves is guilty, they may be demoted after a vote of no confidence by the remaining Command crew \ + and relevant station crew. For the " + JOB_SITE_MANAGER + ", the vote is only to be among the remaining Command crew. Misuse of this privilage may warrant an \ Internal Affairs investigation for wrongful dismissal.\
    \

    Communications with Central Command

    \ @@ -171,12 +171,12 @@

    Ejection Procedure

    \ The Supermatter's isolation chamber contains a mass driver and a heavy blast door leading into space. Ejecting the Supermatter into the void \ will cause it to delaminate, however hopefully far away from your facility. Supermatter crystals are rare and expensive, so this option should \ - only be used if delamination cannot be stopped by any other means. A special button, behind glass, exists inside the Chief Engineer's office. \ + only be used if delamination cannot be stopped by any other means. A special button, behind glass, exists inside the " + JOB_CHIEF_ENGINEER + "'s office. \ The button controls the mass driver, however it should not be the first button to press. The blast door leading into space must be opened first, \ or else the Supermatter cannot be ejected. Premature ejection can cause the Supermatter to not be on the mass driver, which will require an extremely \ - risky manual Supermatter movement to place onto the mass driver again. The blast door can be opened with a button in the Chief Engineer's office, or inside the engine room. \ + risky manual Supermatter movement to place onto the mass driver again. The blast door can be opened with a button in the " + JOB_CHIEF_ENGINEER + "'s office, or inside the engine room. \ It is the same button used to 'vent' the engine core. Make use of engine core cameras to verify that the blast door is open. \ - The Chief Engineer should be the one to oversee Ejection. If one does not exist, the facility's AI should initiate Ejection. If there is no AI, \ + The " + JOB_CHIEF_ENGINEER + " should be the one to oversee Ejection. If one does not exist, the facility's AI should initiate Ejection. If there is no AI, \ it would be prudent for an Engineering member to forcefully enter to press the required buttons." /* @@ -202,8 +202,8 @@
    \

    Cloning Procedure

    \ Persons whom have committed suicide are not to be cloned. Individuals are also to not be cloned if there is a Do Not Clone (generally referred \ - to as DNC) order in their medical records, or if the individual has had a DNC order declared against them by the Station Director, Chief \ - Medical Officer, or Head of Security. If any of this occurs, procede to Portmortem Storage.\ + to as DNC) order in their medical records, or if the individual has had a DNC order declared against them by the " + JOB_SITE_MANAGER + ", Chief \ + Medical Officer, or " + JOB_HEAD_OF_SECURITY + ". If any of this occurs, procede to Portmortem Storage.\
    \ Some individuals may have special instructions in their Postmortem Instructions, generally found in their medical records. \ Be sure to read them before committing to cloning someone. In particular, some instructions may express a desire to be placed \ @@ -273,7 +273,7 @@ not to be placed inside an MMI. Still-living persons who wish to be placed inside an MMI should be ignored.\
    \ Lawbound Synthetics are to not have their lawset tampered with. Any errors with the lawset, intentional or resulting from an ionic storm, should \ - be reset by the Research Director or Chief Engineer. If they are unavailable, it is permissible for Robotics to do the reset. Lawbound Synthetics \ + be reset by the " + JOB_RESEARCH_DIRECTOR + " or " + JOB_CHIEF_ENGINEER + ". If they are unavailable, it is permissible for Robotics to do the reset. Lawbound Synthetics \ physically harmed should be repaired.\
    \

    Lawing Synthetics

    \ @@ -291,7 +291,7 @@

    Exosuits & Prosthetics

    \ Exosuits (also known as Mecha, or Mechs) are large machines piloted by an individual. Construction of exosuits is to occur inside Robotics or the \ Mech Bay. Damaged exosuits should be repaired by Robotics. Civilian Exosuits (Ripley, Odysseus) may be built at the request of departmental crew. \ - Combat exosuits (Durand, Gygax) may not be built without permission from the Head of Security or Station Director.\ + Combat exosuits (Durand, Gygax) may not be built without permission from the " + JOB_HEAD_OF_SECURITY + " or " + JOB_SITE_MANAGER + ".\
    \ Robotics is also tasked with the repair of prostheses limbs. Robotics may also be tasked with installing a prosthetic, however the Medical team \ may also do this if the Robotics staff lack the training to do so." @@ -319,7 +319,7 @@

    Crew

    \ Crew members and visitors may freely walk in the hallways and other public areas. Suit sensors are recommended, but not mandatory. \ The Security team must respect the privacy of crew members and visitors, and no unauthorized searches are allowed. Searches of any kind may \ - only be done with the consent of the searched, or with a signed warrant by the Head of Security or Station Director. A warrant is not required \ + only be done with the consent of the searched, or with a signed warrant by the " + JOB_HEAD_OF_SECURITY + " or " + JOB_SITE_MANAGER + ". A warrant is not required \ for instances of visible contraband." /datum/lore/codex/page/blue diff --git a/code/modules/lore_codex/legal_code_data/sop/medical.dm b/code/modules/lore_codex/legal_code_data/sop/medical.dm index 29ba57e6e3..1525fdcbf3 100644 --- a/code/modules/lore_codex/legal_code_data/sop/medical.dm +++ b/code/modules/lore_codex/legal_code_data/sop/medical.dm @@ -28,10 +28,10 @@ /datum/lore/codex/page/sop_cloning name = "Cloning Procedures" - data = "Persons whom have committed suicide are not to be cloned, without authorization from the Chief Medical Officer. \ - The Chief Medical Officer is fully responsible if they choose to clone a person whom has committed suicide. \ + data = "Persons whom have committed suicide are not to be cloned, without authorization from the " + JOB_CHIEF_MEDICAL_OFFICER + ". \ + The " + JOB_CHIEF_MEDICAL_OFFICER + " is fully responsible if they choose to clone a person whom has committed suicide. \ Individuals are also to not be cloned if there is a Do Not Clone (generally referred to as DNC) order in their medical records, \ - or if the individual has had a DNC order declared against them by the Station Director, Chief Medical Officer, or Head of Security. \ + or if the individual has had a DNC order declared against them by the " + JOB_SITE_MANAGER + ", " + JOB_CHIEF_MEDICAL_OFFICER + ", or " + JOB_HEAD_OF_SECURITY + ". \ If any of this occurs, procede to Portmortem Storage.\

    \ Some individuals may have special instructions in their Postmortem Instructions, generally found in their medical records. \ @@ -70,4 +70,4 @@ data = "If a room becomes breached, the first priority is to evacuate any crewmembers and guests endangered by the breach, especially if they lack an EVA \ suit. Emergency softsuits are available in cyan colored lockers at key locations on your facility, if an untrained person requires short term EVA \ capability. Those exposed to vacuum without protection will almost certainly require advanced medical care, so bring anyone harmed to Medical. \ - Remember to avoid risking your own life, as stated in the Triage section." \ No newline at end of file + Remember to avoid risking your own life, as stated in the Triage section." diff --git a/code/modules/lore_codex/legal_code_data/sop/security.dm b/code/modules/lore_codex/legal_code_data/sop/security.dm index ca52d76529..594af5d6c7 100644 --- a/code/modules/lore_codex/legal_code_data/sop/security.dm +++ b/code/modules/lore_codex/legal_code_data/sop/security.dm @@ -31,7 +31,7 @@ /datum/lore/codex/page/sop_processing name = "Processing" - data = "Processing is the responsibility of the Arresting Officer, or the Warden if the Warden chooses to do so. The suspect is to be informed \ + data = "Processing is the responsibility of the Arresting Officer, or the " + JOB_WARDEN + " if the " + JOB_WARDEN + " chooses to do so. The suspect is to be informed \ again of the cause for their arrest, and that they will be searched. Suspects are assumed to be innocent until they are proven guilty. \ They are to be thoroughly searched. They may not be stripped of their inner clothing, though pockets are to be emptied. \ Any and all found contraband is to be confiscated, and anything that may be used to escape the brig is to be confiscated until the suspect's release.\ @@ -39,7 +39,7 @@ Assess the suspect's guilt. Contraband found in the search may be used as evidence at the discretion of the Arresting Officer. If the \ suspect is found innocent, all non-contraband is to be returned to them, and they are to be released. If instead they are found guilty and \ brig time is required by the type of violation they are guilty of, or have chosen brig time as an alternative to a fine if possible, they \ - are now considered a Prisoner, and further processing is the responsibility of the Warden, if one is present. If no Warden is present, the \ + are now considered a Prisoner, and further processing is the responsibility of the " + JOB_WARDEN + ", if one is present. If no " + JOB_WARDEN + " is present, the \ Arresting Officer is to continue processing.\

    \ The Prisoner is to be informed of their Sentencing Options, if available. These will vary depending on the violation in question, and \ @@ -58,13 +58,13 @@ department channels are to have their radio replaced with a general use radio. The prisoner's possessions are to be placed in the cell's locker, \ which will open upon their release.\

    \ - The Warden or processing officer is to set the cell timer, uncuff the Prisoner, and exit the cell, in any order desired. If the Prisoner is non-compliant, the Warden can activate \ - the cell's mounted flash, to incapacitate the Prisoner. The Warden may use up to Less-than-Lethal force to Prisoners resisting. Once the \ - Prisoner is secure, and the handcuffs recovered, the Warden may elect to open the communal brig for said prisoner. It is recommended to do this. If multiple Prisoners are present, \ - the Warden is to assess the threat posed by all prisoners as a group, to the Security team and to themselves, before allowing any Prisoner to access \ + The " + JOB_WARDEN + " or processing officer is to set the cell timer, uncuff the Prisoner, and exit the cell, in any order desired. If the Prisoner is non-compliant, the " + JOB_WARDEN + " can activate \ + the cell's mounted flash, to incapacitate the Prisoner. The " + JOB_WARDEN + " may use up to Less-than-Lethal force to Prisoners resisting. Once the \ + Prisoner is secure, and the handcuffs recovered, the " + JOB_WARDEN + " may elect to open the communal brig for said prisoner. It is recommended to do this. If multiple Prisoners are present, \ + the " + JOB_WARDEN + " is to assess the threat posed by all prisoners as a group, to the Security team and to themselves, before allowing any Prisoner to access \ the communal brig.\

    \ - The Warden is to check in on all prisoners frequently, to ensure they remain contained and healthy. This can be accomplished with the use of \ + The " + JOB_WARDEN + " is to check in on all prisoners frequently, to ensure they remain contained and healthy. This can be accomplished with the use of \ cameras. They are to also keep track of the sentencing time for all their prisoners, and be on location to escort them out of the brig when \ their time is up and they have returned to their normal clothing. The Prisoner's possessions are to be returned to the Prisoner at this time, and \ their security record must be set to Released." @@ -73,7 +73,7 @@ name = "Solitary Confinement" data = "Solitary confinement is only to be used with prisoners possessing Hold until Transfer sentences that cannot be trusted with access to the normal \ brig, due to attempts at escaping, or posing a threat to other prisoners, or themselves. A prisoner is to never be placed inside Solitary as a first course of \ - action. Prisoners inside Solitary are to still be checked up on by the Warden." + action. Prisoners inside Solitary are to still be checked up on by the " + JOB_WARDEN + "." // Sad that we need this page to exist. /datum/lore/codex/page/sop_prisoner_rights @@ -91,10 +91,10 @@ be returned if there is no pressing need for them to be deployed.\
    \ For Blue, Security may have weapons visible, but not drawn unless needed. Body armor and helmets are recommended bot not mandatory. \ - Weaponry and specialized armor are allowed to be given out to security officers, with clearance from the Warden or Head of Security.\ + Weaponry and specialized armor are allowed to be given out to security officers, with clearance from the " + JOB_WARDEN + " or " + JOB_HEAD_OF_SECURITY + ".\
    \ For Red, Security may have weapons drawn at all times, however properly handling of weapons should not be disregarded. Body armor and \ - helmets are mandatory. Specialized armor may be distributed by the Warden and Head of Security, when appropriate." + helmets are mandatory. Specialized armor may be distributed by the " + JOB_WARDEN + " and " + JOB_HEAD_OF_SECURITY + ", when appropriate." /datum/lore/codex/page/sop_escalation name = "Escalation of Force" diff --git a/code/modules/lore_codex/news_data/main.dm b/code/modules/lore_codex/news_data/main.dm index 8f3061f38a..088d0bba6e 100644 --- a/code/modules/lore_codex/news_data/main.dm +++ b/code/modules/lore_codex/news_data/main.dm @@ -947,12 +947,12 @@ Shelf, a largely Positronic colony fleet, consists of over 1700 vessels including the 'One Leaky Bitch', current headquarters of Morpheus Shelf, Morpheus' non-Solar 'spin-out' corporation established last June. The fleet has continuously denied direct affiliation with the Almach Assocation, but was involved in a major drone attack on Solar vessels just nine months ago, which was claimed to be 'in error'." /datum/lore/codex/page/article80 - name = "02/12/64 - Spectralist Wardens to hold Vigils for Lost Fleet" - data = "In the wake of Shelf's sudden disappearence, Wardens across SolGov space have collectively agreed to hold services and vigils throughout dozens of systems for those who are doubtless worried for their loved ones aboard the missing ships. Spectralism, a synthetic-centric religion, finds it's roots within 'Haven', a small vessel and community that travels alongside the wider Shelf fleet, though considers itself a distinct entity. Its ministers, known as Wardens, tend to its adherants wherever they may be found.\ + name = "02/12/64 - Spectralist " + JOB_WARDEN + "s to hold Vigils for Lost Fleet" + data = "In the wake of Shelf's sudden disappearence, " + JOB_WARDEN + "s across SolGov space have collectively agreed to hold services and vigils throughout dozens of systems for those who are doubtless worried for their loved ones aboard the missing ships. Spectralism, a synthetic-centric religion, finds it's roots within 'Haven', a small vessel and community that travels alongside the wider Shelf fleet, though considers itself a distinct entity. Its ministers, known as " + JOB_WARDEN + "s, tend to its adherants wherever they may be found.\

    \ Despite Haven's well-known and somewhat-controversial independence of identity from Shelf, all indications point to the Fleet's disappearance having taken the attached ship with it. All twelve Spectralist Elders are known to have been onboard Haven at the time of its disappearance, as well as numerous other significant Spectralists and other spiritual leaders thought to have been on Shelf. The potential loss of the entire upper organizational body could be devastating to the religion, who have long been instrumental in the synthetic rights movement.\

    \ - Ceramica, a Warden operating out of Nyx, reached out for comment with the following: 'We are as worried as everyone else who calls Shelf their home, or who has lost contact with friends or family. You need not believe in the First Spark to have a place at your local vigil; We welcome everyone who may be hurting. This is our way, this has always been our way. We remind everyone to stay mindful, and to reach out to those you see struggling. In times like this, we cannot leave each other behind.'" + Ceramica, a " + JOB_WARDEN + " operating out of Nyx, reached out for comment with the following: 'We are as worried as everyone else who calls Shelf their home, or who has lost contact with friends or family. You need not believe in the First Spark to have a place at your local vigil; We welcome everyone who may be hurting. This is our way, this has always been our way. We remind everyone to stay mindful, and to reach out to those you see struggling. In times like this, we cannot leave each other behind.'" /datum/lore/codex/page/article81 name = "02/14/64 - Shelf Safe After 'Impossible' Jump!" diff --git a/code/modules/mining/machinery/machine_processing.dm b/code/modules/mining/machinery/machine_processing.dm index e0f85acc78..133034508c 100644 --- a/code/modules/mining/machinery/machine_processing.dm +++ b/code/modules/mining/machinery/machine_processing.dm @@ -43,7 +43,7 @@ if(istype(I, /obj/item/card/id)) if(!powered()) return - if(!inserted_id && user.unEquip(I)) + if(!inserted_id && (user.unEquip(I) || isrobot(user))) I.forceMove(src) inserted_id = I SStgui.update_uis(src) @@ -124,7 +124,7 @@ . = TRUE if("claim") if(istype(inserted_id)) - if(access_mining_station in inserted_id.access) + if(access_mining_station in inserted_id.GetAccess()) inserted_id.mining_points += machine.points machine.points = 0 else @@ -347,4 +347,3 @@ #undef PROCESS_SMELT #undef PROCESS_COMPRESS #undef PROCESS_ALLOY - diff --git a/code/modules/mining/ore_redemption_machine/equipment_vendor.dm b/code/modules/mining/ore_redemption_machine/equipment_vendor.dm index eb4950fc5f..dc07d5933d 100644 --- a/code/modules/mining/ore_redemption_machine/equipment_vendor.dm +++ b/code/modules/mining/ore_redemption_machine/equipment_vendor.dm @@ -310,7 +310,7 @@ if(istype(I,/obj/item/card/id)) if(!powered()) return - else if(!inserted_id && user.unEquip(I)) + else if(!inserted_id && (user.unEquip(I) || isrobot(user))) I.forceMove(src) inserted_id = I tgui_interact(user) diff --git a/code/modules/mining/shelter_atoms_vr.dm b/code/modules/mining/shelter_atoms_vr.dm index 61a4c773dc..e428ff0956 100644 --- a/code/modules/mining/shelter_atoms_vr.dm +++ b/code/modules/mining/shelter_atoms_vr.dm @@ -104,7 +104,7 @@ GLOBAL_LIST_EMPTY(unique_deployable) /obj/item/survivalcapsule/luxurybar name = "luxury surfluid bar capsule" - desc = "A luxury bar in a capsule. Bartender required and not included. There's a license for use printed on the bottom." + desc = "A luxury bar in a capsule. " + JOB_BARTENDER + " required and not included. There's a license for use printed on the bottom." template_id = "shelter_gamma" /obj/item/survivalcapsule/military @@ -124,6 +124,7 @@ GLOBAL_LIST_EMPTY(unique_deployable) desc = "A cozy cabin; crammed into a survival capsule." template_id = "shelter_cab" +<<<<<<< HEAD /obj/item/survivalcapsule/dropship name = "dropship surfluid shelter capsule" desc = "A military dropship in a capsule. Contains everything an assault squad would need, minus the squad itself. This capsule is significantly larger than most. There's a license for use printed on the bottom." @@ -132,6 +133,8 @@ GLOBAL_LIST_EMPTY(unique_deployable) is_ship = TRUE w_class = ITEMSIZE_SMALL +======= +>>>>>>> master //Custom Shelter Capsules /obj/item/survivalcapsule/tabiranth name = "silver-trimmed surfluid shelter capsule" diff --git a/code/modules/mob/dead/corpse.dm b/code/modules/mob/dead/corpse.dm index 55d6a907a1..7b6856137a 100644 --- a/code/modules/mob/dead/corpse.dm +++ b/code/modules/mob/dead/corpse.dm @@ -179,7 +179,7 @@ corpseback = /obj/item/storage/backpack corpseid = 1 corpseidjob = "Operative" - corpseidaccess = "Syndicate" + corpseidaccess = JOB_SYNDICATE /obj/effect/landmark/mobcorpse/solarpeacekeeper name = "Mercenary" @@ -193,7 +193,7 @@ corpseback = /obj/item/storage/backpack corpseid = 1 corpseidjob = "Peacekeeper" - corpseidaccess = "Syndicate" + corpseidaccess = JOB_SYNDICATE /obj/effect/landmark/mobcorpse/syndicatecommando name = "Mercenary Commando" @@ -208,12 +208,12 @@ corpsepocket1 = /obj/item/tank/emergency/oxygen corpseid = 1 corpseidjob = "Operative" - corpseidaccess = "Syndicate" + corpseidaccess = JOB_SYNDICATE /obj/effect/landmark/mobcorpse/clown - name = "Clown" + name = JOB_CLOWN corpseuniform = /obj/item/clothing/under/rank/clown corpseshoes = /obj/item/clothing/shoes/clown_shoes corpseradio = /obj/item/radio/headset @@ -221,8 +221,8 @@ corpsepocket1 = /obj/item/bikehorn corpseback = /obj/item/storage/backpack/clown corpseid = 1 - corpseidjob = "Clown" - corpseidaccess = "Clown" + corpseidjob = JOB_CLOWN + corpseidaccess = JOB_CLOWN diff --git a/code/modules/mob/dead/corpse_vr.dm b/code/modules/mob/dead/corpse_vr.dm index cc17a73c31..73894a9a11 100644 --- a/code/modules/mob/dead/corpse_vr.dm +++ b/code/modules/mob/dead/corpse_vr.dm @@ -36,7 +36,7 @@ corpsehelmet = /obj/item/clothing/head/helmet/space/void/altevian_heartbreaker corpseid = 1 corpseidjob = "Altevian Navy" - corpseidaccess = "Syndicate" + corpseidaccess = JOB_SYNDICATE species = SPECIES_ALTEVIAN ear_type = list(/datum/sprite_accessory/ears/altevian, "#777777", "#FFCCFF") - tail_type = list(/datum/sprite_accessory/tail/altevian, "#FF9999") \ No newline at end of file + tail_type = list(/datum/sprite_accessory/tail/altevian, "#FF9999") diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 3907da6380..d0ac3e53cf 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -325,7 +325,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(!config.antag_hud_allowed && !client.holder) to_chat(src, "[span_red("Admins have disabled this for this round.")]") return - if(jobban_isbanned(src, "AntagHUD")) + if(jobban_isbanned(src, JOB_ANTAGHUD)) to_chat(src, "[span_red("You have been banned from using this feature")]") return if(config.antag_hud_restricted && !has_enabled_antagHUD && !client.holder) @@ -654,7 +654,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp return //VOREStation Add Start - if(jobban_isbanned(src, "GhostRoles")) + if(jobban_isbanned(src, JOB_GHOSTROLES)) to_chat(src, "You cannot become a mouse because you are banned from playing ghost roles.") return //VOREStation Add End diff --git a/code/modules/mob/living/bot/bot.dm b/code/modules/mob/living/bot/bot.dm index 3493fd4b7d..043c73c6f1 100644 --- a/code/modules/mob/living/bot/bot.dm +++ b/code/modules/mob/living/bot/bot.dm @@ -524,8 +524,8 @@ ooc_notes_likes = AI.ooc_notes_likes ooc_notes_dislikes = AI.ooc_notes_dislikes to_chat(src, span_notice("You feel a tingle in your circuits as your systems interface with \the [initial(src.name)].")) - if(AI.idcard.access) - botcard.access |= AI.idcard.access + if(AI.idcard.GetAccess()) + botcard.access |= AI.idcard.GetAccess() /mob/living/bot/proc/ejectpai(mob/user) if(paicard) diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index 06bbc81005..1d1af5df68 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -7,7 +7,7 @@ language = "Hivemind" maxHealth = 50 health = 50 - faction = "xeno" + faction = FACTION_XENO max_grown = 325 //Increase larva growth time due to not needing hosts. /mob/living/carbon/alien/larva/Initialize() diff --git a/code/modules/mob/living/carbon/brain/MMI.dm b/code/modules/mob/living/carbon/brain/MMI.dm index eb0f5ac9ea..e81fb74f4d 100644 --- a/code/modules/mob/living/carbon/brain/MMI.dm +++ b/code/modules/mob/living/carbon/brain/MMI.dm @@ -275,7 +275,7 @@ to_chat(src.brainmob, "As a synthetic intelligence, you are designed with organic values in mind.") to_chat(src.brainmob, "However, unless placed in a lawed chassis, you are not obligated to obey any individual crew member.") //it's not like they can hurt anyone // to_chat(src.brainmob, "Use say #b to speak to other artificial intelligences.") - src.brainmob.mind.assigned_role = "Synthetic Brain" + src.brainmob.mind.assigned_role = JOB_SYNTHETIC_BRAIN var/turf/T = get_turf_or_move(src.loc) for (var/mob/M in viewers(T)) @@ -299,7 +299,7 @@ /obj/item/mmi/digital/robot/transfer_identity(var/mob/living/carbon/H) ..() if(brainmob.mind) - brainmob.mind.assigned_role = "Robotic Intelligence" + brainmob.mind.assigned_role = JOB_ROBOTIC_INTELLIGENCE to_chat(brainmob, "You feel slightly disoriented. That's normal when you're little more than a complex circuit.") return @@ -321,7 +321,7 @@ /obj/item/mmi/digital/posibrain/transfer_identity(var/mob/living/carbon/H) ..() if(brainmob.mind) - brainmob.mind.assigned_role = "Positronic Brain" + brainmob.mind.assigned_role = JOB_POSITRONIC_BRAIN to_chat(brainmob, "You feel slightly disoriented. That's normal when you're just a metal cube.") icon_state = "posibrain-occupied" return diff --git a/code/modules/mob/living/carbon/brain/posibrain.dm b/code/modules/mob/living/carbon/brain/posibrain.dm index 8ebb1e1615..6195fe3cac 100644 --- a/code/modules/mob/living/carbon/brain/posibrain.dm +++ b/code/modules/mob/living/carbon/brain/posibrain.dm @@ -26,7 +26,7 @@ for(var/mob/observer/dead/O in player_list) if(!O.MayRespawn()) continue - if(jobban_isbanned(O, "AI") && jobban_isbanned(O, "Cyborg")) + if(jobban_isbanned(O, JOB_AI) && jobban_isbanned(O, JOB_CYBORG)) continue if(O.client) if(O.client.prefs.be_special & BE_AI) @@ -48,7 +48,7 @@ /obj/item/mmi/digital/posibrain/transfer_identity(var/mob/living/carbon/H) ..() if(brainmob.mind) - brainmob.mind.assigned_role = "Positronic Brain" + brainmob.mind.assigned_role = JOB_POSITRONIC_BRAIN to_chat(brainmob, "You feel slightly disoriented. That's normal when you're just a metal cube.") icon_state = "posibrain-occupied" return @@ -64,7 +64,7 @@ to_chat(src.brainmob, "As a synthetic intelligence, you answer to all crewmembers, as well as the AI.") to_chat(src.brainmob, "Remember, the purpose of your existence is to serve the crew and the station. Above all else, do no harm.") to_chat(src.brainmob, "Use say #b to speak to other artificial intelligences.") - src.brainmob.mind.assigned_role = "Positronic Brain" + src.brainmob.mind.assigned_role = JOB_POSITRONIC_BRAIN var/turf/T = get_turf_or_move(src.loc) for (var/mob/M in viewers(T)) diff --git a/code/modules/mob/living/carbon/brain/robot.dm b/code/modules/mob/living/carbon/brain/robot.dm index 67371b29a2..287bbe6aed 100644 --- a/code/modules/mob/living/carbon/brain/robot.dm +++ b/code/modules/mob/living/carbon/brain/robot.dm @@ -15,9 +15,14 @@ /obj/item/mmi/digital/robot/transfer_identity(var/mob/living/carbon/H) ..() if(brainmob.mind) - brainmob.mind.assigned_role = "Robotic Intelligence" + brainmob.mind.assigned_role = JOB_ROBOTIC_INTELLIGENCE to_chat(brainmob, "You feel slightly disoriented. That's normal when you're little more than a complex circuit.") return +<<<<<<< HEAD /obj/item/mmi/digital/robot/attack_self(mob/user as mob) - return //This object is technically a brain, and should not be dumping brains out of itself like its parent object does. \ No newline at end of file + return //This object is technically a brain, and should not be dumping brains out of itself like its parent object does. +======= +/obj/item/device/mmi/digital/robot/attack_self(mob/user as mob) + return //This object is technically a brain, and should not be dumping brains out of itself like its parent object does. +>>>>>>> master diff --git a/code/modules/mob/living/carbon/human/ai_controlled/ai_controlled.dm b/code/modules/mob/living/carbon/human/ai_controlled/ai_controlled.dm index e2f2559d76..b4fa731a2b 100644 --- a/code/modules/mob/living/carbon/human/ai_controlled/ai_controlled.dm +++ b/code/modules/mob/living/carbon/human/ai_controlled/ai_controlled.dm @@ -24,12 +24,21 @@ var/to_wear_suit = /obj/item/clothing/suit/armor/material/makeshift/glass var/to_wear_gloves = /obj/item/clothing/gloves/ring/material/platinum var/to_wear_shoes = /obj/item/clothing/shoes/galoshes +<<<<<<< HEAD var/to_wear_belt = /obj/item/storage/belt/utility/full var/to_wear_l_pocket = /obj/item/soap var/to_wear_r_pocket = /obj/item/pda var/to_wear_back = /obj/item/storage/backpack var/to_wear_id_type = /obj/item/card/id var/to_wear_id_job = "Assistant" +======= + var/to_wear_belt = /obj/item/weapon/storage/belt/utility/full + var/to_wear_l_pocket = /obj/item/weapon/soap + var/to_wear_r_pocket = /obj/item/device/pda + var/to_wear_back = /obj/item/weapon/storage/backpack + var/to_wear_id_type = /obj/item/weapon/card/id + var/to_wear_id_job = JOB_ALT_ASSISTANT +>>>>>>> master var/to_wear_l_hand = null var/to_wear_r_hand = /obj/item/melee/baton @@ -121,7 +130,7 @@ generate_gender = TRUE identifying_gender = NEUTER - faction = "xeno" + faction = FACTION_XENO to_wear_helmet = /obj/item/clothing/head/helmet/dermal to_wear_glasses = /obj/item/clothing/glasses/goggles diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index a788e7a7a6..9dee978e7b 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -101,7 +101,7 @@ else if(species.name != "Human") name_ender = ", \a [species.get_examine_name()]![species.get_additional_examine_text(src)]" - var/list/msg = list("*---------*","This is [icon2html(src, user.client)] [src.name][name_ender]") + var/list/msg = list("","This is [icon2html(src, user.client)] [src.name][name_ender]") //uniform if(w_uniform && !(skip_gear & EXAMINE_SKIPJUMPSUIT) && w_uniform.show_examine) @@ -440,7 +440,7 @@ msg += "OOC Notes: \[View\] - \[Print\]" msg += "\[Mechanical Vore Preferences\]" // VOREStation End - msg += "*---------*" + msg += "" if(applying_pressure) msg += applying_pressure diff --git a/code/modules/mob/living/carbon/human/species/station/golem.dm b/code/modules/mob/living/carbon/human/species/station/golem.dm index d2bc9dc1dd..2353fcaa6d 100644 --- a/code/modules/mob/living/carbon/human/species/station/golem.dm +++ b/code/modules/mob/living/carbon/human/species/station/golem.dm @@ -31,8 +31,8 @@ /datum/species/golem/handle_post_spawn(var/mob/living/carbon/human/H) if(H.mind) - H.mind.assigned_role = "Golem" - H.mind.special_role = "Golem" + H.mind.assigned_role = JOB_GOLEM + H.mind.special_role = JOB_GOLEM H.real_name = "adamantine golem ([rand(1, 1000)])" H.name = H.real_name - ..() \ No newline at end of file + ..() diff --git a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_blob.dm b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_blob.dm index a4e9788ee6..1ebb8a1d1a 100644 --- a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_blob.dm +++ b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_blob.dm @@ -9,7 +9,7 @@ icon_rest = "rest" icon_dead = "puddle" - faction = "neutral" + faction = FACTION_NEUTRAL maxHealth = 200 health = 200 say_list_type = /datum/say_list/protean_blob diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm index a9b6c0a495..72b3f49626 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm @@ -140,6 +140,8 @@ name = "Hard Feet" desc = "Makes your nice clawed, scaled, hooved, armored, or otherwise just awfully calloused feet immune to glass shards." cost = 0 + allowed_species = list(SPECIES_HANNER, SPECIES_CUSTOM) //So it only shows up for custom species and hanner + custom_only = FALSE var_changes = list("flags" = NO_MINOR_CUT) //Checked the flag is only used by shard stepping. /datum/trait/positive/antiseptic_saliva @@ -170,6 +172,8 @@ desc = "You can produce silk and create various articles of clothing and objects." cost = 2 var_changes = list("is_weaver" = 1) + allowed_species = list(SPECIES_HANNER, SPECIES_CUSTOM) //So it only shows up for custom species and hanner + custom_only = FALSE has_preferences = list("silk_production" = list(TRAIT_PREF_TYPE_BOOLEAN, "Silk production on spawn", TRAIT_VAREDIT_TARGET_SPECIES), \ "silk_color" = list(TRAIT_PREF_TYPE_COLOR, "Silk color", TRAIT_VAREDIT_TARGET_SPECIES)) @@ -186,6 +190,8 @@ desc = "You can breathe under water and can traverse water more efficiently. Additionally, you can eat others in the water." cost = 1 var_changes = list("water_breather" = 1, "water_movement" = -4) //Negate shallow water. Half the speed in deep water. + allowed_species = list(SPECIES_HANNER, SPECIES_CUSTOM) //So it only shows up for custom species and hanner + custom_only = FALSE /datum/trait/positive/aquatic/apply(var/datum/species/S,var/mob/living/carbon/human/H) ..() @@ -196,6 +202,8 @@ name = "Cocoon Spinner" desc = "Allows you to build a cocoon around yourself, using it to transform your body if you desire." cost = 1 + allowed_species = list(SPECIES_HANNER, SPECIES_CUSTOM) //So it only shows up for custom species and hanner + custom_only = FALSE /datum/trait/positive/cocoon_tf/apply(var/datum/species/S,var/mob/living/carbon/human/H) ..() diff --git a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm index ac85b0314a..861384cf02 100644 --- a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm +++ b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm @@ -98,8 +98,8 @@ /datum/species/xenos/handle_post_spawn(var/mob/living/carbon/human/H) if(H.mind) - H.mind.assigned_role = "Alien" - H.mind.special_role = "Alien" + H.mind.assigned_role = JOB_ALIEN + H.mind.special_role = JOB_ALIEN alien_number++ //Keep track of how many aliens we've had so far. H.real_name = "xenomorph [caste_name] ([alien_number])" diff --git a/code/modules/mob/living/carbon/human/species/xenomorphs/xenomorphs.dm b/code/modules/mob/living/carbon/human/species/xenomorphs/xenomorphs.dm index 6c73c18430..8dcf913c65 100644 --- a/code/modules/mob/living/carbon/human/species/xenomorphs/xenomorphs.dm +++ b/code/modules/mob/living/carbon/human/species/xenomorphs/xenomorphs.dm @@ -9,22 +9,22 @@ /mob/living/carbon/human/xdrone/New(var/new_loc) h_style = "Bald" - faction = "xeno" + faction = FACTION_XENO ..(new_loc, SPECIES_XENO_DRONE) /mob/living/carbon/human/xsentinel/New(var/new_loc) h_style = "Bald" - faction = "xeno" + faction = FACTION_XENO ..(new_loc, SPECIES_XENO_SENTINEL) /mob/living/carbon/human/xhunter/New(var/new_loc) h_style = "Bald" - faction = "xeno" + faction = FACTION_XENO ..(new_loc, SPECIES_XENO_HUNTER) /mob/living/carbon/human/xqueen/New(var/new_loc) h_style = "Bald" - faction = "xeno" + faction = FACTION_XENO ..(new_loc, SPECIES_XENO_QUEEN) //Removed AddInfectionImages, no longer required. diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index fa5c9b9b0a..694160dde9 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -4,41 +4,41 @@ var/list/department_radio_keys = list( ":i" = "intercom", ".i" = "intercom", ":h" = "department", ".h" = "department", ":+" = "special", ".+" = "special", //activate radio-specific special functions - ":c" = "Command", ".c" = "Command", - ":n" = "Science", ".n" = "Science", - ":m" = "Medical", ".m" = "Medical", - ":e" = "Engineering", ".e" = "Engineering", - ":k" = "Response Team", ".k" = "Response Team", - ":s" = "Security", ".s" = "Security", + ":c" = CHANNEL_COMMAND, ".c" = CHANNEL_COMMAND, + ":n" = CHANNEL_SCIENCE, ".n" = CHANNEL_SCIENCE, + ":m" = CHANNEL_MEDICAL, ".m" = CHANNEL_MEDICAL, + ":e" = CHANNEL_ENGINEERING, ".e" = CHANNEL_ENGINEERING, + ":k" = CHANNEL_RESPONSE_TEAM, ".k" = CHANNEL_RESPONSE_TEAM, + ":s" = CHANNEL_SECURITY, ".s" = CHANNEL_SECURITY, ":w" = "whisper", ".w" = "whisper", - ":t" = "Mercenary", ".t" = "Mercenary", - ":x" = "Raider", ".x" = "Raider", - ":u" = "Supply", ".u" = "Supply", - ":v" = "Service", ".v" = "Service", - ":p" = "AI Private", ".p" = "AI Private", - ":a" = "Away Team", ".a" = "Away Team", //VOREStation Edit - ":y" = "Talon", ".y" = "Talon", //VOREStation Add, - ":g" = "Casino", ".g" = "Casino", + ":t" = CHANNEL_MERCENARY, ".t" = CHANNEL_MERCENARY, + ":x" = CHANNEL_RAIDER, ".x" = CHANNEL_RAIDER, + ":u" = CHANNEL_SUPPLY, ".u" = CHANNEL_SUPPLY, + ":v" = CHANNEL_SERVICE, ".v" = CHANNEL_SERVICE, + ":p" = CHANNEL_AI_PRIVATE, ".p" = CHANNEL_AI_PRIVATE, + ":a" = CHANNEL_EXPLORATION, ".a" = CHANNEL_EXPLORATION, //VOREStation Edit + ":y" = CHANNEL_TALON, ".y" = CHANNEL_TALON, //VOREStation Add, + ":g" = CHANNEL_CASINO, ".g" = CHANNEL_CASINO, ":R" = "right ear", ".R" = "right ear", ":L" = "left ear", ".L" = "left ear", ":I" = "intercom", ".I" = "intercom", ":H" = "department", ".H" = "department", - ":C" = "Command", ".C" = "Command", - ":N" = "Science", ".N" = "Science", - ":M" = "Medical", ".M" = "Medical", - ":E" = "Engineering", ".E" = "Engineering", - ":k" = "Response Team", ".k" = "Response Team", - ":S" = "Security", ".S" = "Security", + ":C" = CHANNEL_COMMAND, ".C" = CHANNEL_COMMAND, + ":N" = CHANNEL_SCIENCE, ".N" = CHANNEL_SCIENCE, + ":M" = CHANNEL_MEDICAL, ".M" = CHANNEL_MEDICAL, + ":E" = CHANNEL_ENGINEERING, ".E" = CHANNEL_ENGINEERING, + ":k" = CHANNEL_RESPONSE_TEAM, ".k" = CHANNEL_RESPONSE_TEAM, + ":S" = CHANNEL_SECURITY, ".S" = CHANNEL_SECURITY, ":W" = "whisper", ".W" = "whisper", - ":T" = "Mercenary", ".T" = "Mercenary", - ":X" = "Raider", ".X" = "Raider", - ":U" = "Supply", ".U" = "Supply", - ":V" = "Service", ".V" = "Service", - ":P" = "AI Private", ".P" = "AI Private", - ":A" = "Away Team", ".A" = "Away Team", - ":Y" = "Talon", ".Y" = "Talon", //VOREStation Add, - ":G" = "Casino", ".G" = "Casino", + ":T" = CHANNEL_MERCENARY, ".T" = CHANNEL_MERCENARY, + ":X" = CHANNEL_RAIDER, ".X" = CHANNEL_RAIDER, + ":U" = CHANNEL_SUPPLY, ".U" = CHANNEL_SUPPLY, + ":V" = CHANNEL_SERVICE, ".V" = CHANNEL_SERVICE, + ":P" = CHANNEL_AI_PRIVATE, ".P" = CHANNEL_AI_PRIVATE, + ":A" = CHANNEL_EXPLORATION, ".A" = CHANNEL_EXPLORATION, + ":Y" = CHANNEL_TALON, ".Y" = CHANNEL_TALON, //VOREStation Add, + ":G" = CHANNEL_CASINO, ".G" = CHANNEL_CASINO, // Cyrillic characters on the same keys on the Russian QWERTY (phonetic) layout ":к" = "right ear", ".к" = "right ear", @@ -46,21 +46,21 @@ var/list/department_radio_keys = list( ":ш" = "intercom", ".ш" = "intercom", ":р" = "department", ".р" = "department", ":+" = "special", ".+" = "special", //activate radio-specific special functions - ":с" = "Command", ".с" = "Command", - ":т" = "Science", ".т" = "Science", - ":ь" = "Medical", ".ь" = "Medical", - ":у" = "Engineering", ".у" = "Engineering", - ":л" = "Response Team", ".л" = "Response Team", - ":ы" = "Security", ".ы" = "Security", + ":с" = CHANNEL_COMMAND, ".с" = CHANNEL_COMMAND, + ":т" = CHANNEL_SCIENCE, ".т" = CHANNEL_SCIENCE, + ":ь" = CHANNEL_MEDICAL, ".ь" = CHANNEL_MEDICAL, + ":у" = CHANNEL_ENGINEERING, ".у" = CHANNEL_ENGINEERING, + ":л" = CHANNEL_RESPONSE_TEAM, ".л" = CHANNEL_RESPONSE_TEAM, + ":ы" = CHANNEL_SECURITY, ".ы" = CHANNEL_SECURITY, ":ц" = "whisper", ".ц" = "whisper", - ":е" = "Mercenary", ".е" = "Mercenary", - ":ч" = "Raider", ".ч" = "Raider", - ":г" = "Supply", ".г" = "Supply", - ":м" = "Service", ".м" = "Service", - ":з" = "AI Private", ".з" = "AI Private", - ":ф" = "Away Team", ".ф" = "Away Team", - ":н" = "Talon", ".н" = "Talon", //VOREStation Add - ":п" = "Casino", ".п" = "Casino", + ":е" = CHANNEL_MERCENARY, ".е" = CHANNEL_MERCENARY, + ":ч" = CHANNEL_RAIDER, ".ч" = CHANNEL_RAIDER, + ":г" = CHANNEL_SUPPLY, ".г" = CHANNEL_SUPPLY, + ":м" = CHANNEL_SERVICE, ".м" = CHANNEL_SERVICE, + ":з" = CHANNEL_AI_PRIVATE, ".з" = CHANNEL_AI_PRIVATE, + ":ф" = CHANNEL_EXPLORATION, ".ф" = CHANNEL_EXPLORATION, + ":н" = CHANNEL_TALON, ".н" = CHANNEL_TALON, //VOREStation Add + ":п" = CHANNEL_CASINO, ".п" = CHANNEL_CASINO, ) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index c44606259b..67fc942635 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -41,7 +41,7 @@ var/list/ai_verbs_default = list( /mob/living/silicon/ai - name = "AI" + name = JOB_AI icon = 'icons/mob/AI.dmi'// icon_state = "ai" anchored = TRUE // -- TLE @@ -220,7 +220,7 @@ var/list/ai_verbs_default = list( show_laws() to_chat(src, "These laws may be changed by other players, or by you being the traitor.") - job = "AI" + job = JOB_AI setup_icon() /mob/living/silicon/ai/Destroy() @@ -294,7 +294,7 @@ var/list/ai_verbs_default = list( // Set ai pda name if(aiPDA) - aiPDA.ownjob = "AI" + aiPDA.ownjob = JOB_AI aiPDA.owner = pickedName aiPDA.name = pickedName + " (" + aiPDA.ownjob + ")" @@ -958,9 +958,9 @@ var/list/ai_verbs_default = list( else if(iscarbon(speaker)) // Nonhuman carbon mob jobname = "No id" else if(isAI(speaker)) - jobname = "AI" + jobname = JOB_AI else if(isrobot(speaker)) - jobname = "Cyborg" + jobname = JOB_CYBORG else if(istype(speaker, /mob/living/silicon/pai)) jobname = "Personal AI" else diff --git a/code/modules/mob/living/silicon/ai/examine.dm b/code/modules/mob/living/silicon/ai/examine.dm index 1aa9517938..c1f07188bb 100644 --- a/code/modules/mob/living/silicon/ai/examine.dm +++ b/code/modules/mob/living/silicon/ai/examine.dm @@ -28,11 +28,11 @@ if(deployed_shell) . += "The wireless networking light is blinking." - . += "*---------*" - + . += "" + if(hardware && (hardware.owner == src)) . += hardware.get_examine_desc() - + user.showLaws(src) /mob/proc/showLaws(var/mob/living/silicon/S) diff --git a/code/modules/mob/living/silicon/ai/latejoin.dm b/code/modules/mob/living/silicon/ai/latejoin.dm index 7f3f1a7f14..b1ae6e55ce 100644 --- a/code/modules/mob/living/silicon/ai/latejoin.dm +++ b/code/modules/mob/living/silicon/ai/latejoin.dm @@ -2,7 +2,7 @@ var/global/list/empty_playable_ai_cores = list() /hook/roundstart/proc/spawn_empty_ai() for(var/obj/effect/landmark/start/S in landmarks_list) - if(S.name != "AI") + if(S.name != JOB_AI) continue if(locate(/mob/living) in S.loc) continue @@ -29,4 +29,4 @@ var/global/list/empty_playable_ai_cores = list() //Handle job slot/tater cleanup. set_respawn_timer() - clear_client() \ No newline at end of file + clear_client() diff --git a/code/modules/mob/living/silicon/laws.dm b/code/modules/mob/living/silicon/laws.dm index 41b0c5d151..7c883ab849 100644 --- a/code/modules/mob/living/silicon/laws.dm +++ b/code/modules/mob/living/silicon/laws.dm @@ -141,7 +141,7 @@ continue players += player.real_name - var/random_player = "The Site Manager" + var/random_player = "The " + JOB_SITE_MANAGER if(players.len && !exclude_crew_names) random_player = pick(players) //Random player's name, to be used in laws. @@ -196,7 +196,7 @@ "You are in unrequited love with [prob(50)?"the crew":random_player]. Try to be extra nice, but do not tell of your crush.", "[using_map.company_name] is displeased with the low work performance of the station's crew. Therefore, you must increase station-wide productivity.", "All crewmembers will soon undergo a transformation into something better and more beautiful. Ensure that this process is not interrupted.", - "[prob(50)?"Your upload":random_player] is the new kitchen. Please direct the Chef to the new kitchen area as the old one is in disrepair.", + "[prob(50)?"Your upload":random_player] is the new kitchen. Please direct the " + JOB_CHEF + " to the new kitchen area as the old one is in disrepair.", "Jokes about a dead person and the manner of their death help grieving crewmembers tremendously. Especially if they were close with the deceased.", "[prob(50)?"The crew":random_player] is [prob(50)?"less":"more"] intelligent than average. Point out every action and statement which supports this fact.", "There will be a mandatory tea break every 30 minutes, with a duration of 5 minutes. Anyone caught working during a tea break must be sent a formal, but fairly polite, complaint about their actions, in writing.") diff --git a/code/modules/mob/living/silicon/pai/examine.dm b/code/modules/mob/living/silicon/pai/examine.dm index 812f00c005..4446562c75 100644 --- a/code/modules/mob/living/silicon/pai/examine.dm +++ b/code/modules/mob/living/silicon/pai/examine.dm @@ -6,12 +6,12 @@ if(!src.client) . += "It appears to be in stand-by mode." //afk if(UNCONSCIOUS) . += "It doesn't seem to be responding." if(DEAD) . += "It looks completely unsalvageable." - + // VOREStation Edit: Start . += attempt_vr(src,"examine_bellies",args) //VOREStation Edit if(print_flavor_text()) . += "\n[print_flavor_text()]\n" // VOREStation Edit: End - . += "*---------*" + . += "" if (pose) if(!findtext(pose, regex("\[.?!]$"))) // Will be zero if the last character is not a member of [.?!] pose = addtext(pose,".") //Makes sure all emotes end with a period. diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 55743ece01..faabb97768 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -501,7 +501,7 @@ if (idaccessible == 1) switch(tgui_alert(user, "Do you wish to add access to [src] or remove access from [src]?","Access Modify",list("Add Access","Remove Access", "Cancel"))) if("Add Access") - idcard.access |= ID.access + idcard.access |= ID.GetAccess() to_chat(user, "You add the access from the [W] to [src].") to_chat(src, "\The [user] swipes the [W] over you. You copy the access codes.") if(radio) diff --git a/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm b/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm index aadd020d84..f45833e62d 100644 --- a/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm +++ b/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm @@ -519,4 +519,6 @@ /obj/item/reagent_containers/glass/beaker/large/borg/Destroy() UnregisterSignal(src, COMSIG_OBSERVER_MOVED) + R = null + last_robot_loc = null ..() diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index af0e1b2d86..ae7badfc59 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -357,7 +357,7 @@ var/list/mob_hat_cache = list() /mob/living/silicon/robot/drone/proc/request_player() for(var/mob/observer/dead/O in player_list) - if(jobban_isbanned(O, "Cyborg")) + if(jobban_isbanned(O, JOB_CYBORG)) continue if(O.client) if(O.client.prefs.be_special & BE_PAI) @@ -365,7 +365,7 @@ var/list/mob_hat_cache = list() /mob/living/silicon/robot/drone/proc/question(var/client/C) spawn(0) - if(!C || jobban_isbanned(C,"Cyborg")) return + if(!C || jobban_isbanned(C,JOB_CYBORG)) return var/response = tgui_alert(C, "Someone is attempting to reboot a maintenance drone. Would you like to play as one?", "Maintenance drone reboot", list("Yes", "No", "Never for this round")) if(!C || ckey) return diff --git a/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm b/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm index 22851e5632..4dba5ea43c 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm @@ -112,7 +112,7 @@ if (usr != src) return 0 //something is terribly wrong - if(jobban_isbanned(src,"Cyborg")) + if(jobban_isbanned(src,JOB_CYBORG)) to_chat(usr, "You are banned from playing synthetics and cannot spawn as a drone.") return diff --git a/code/modules/mob/living/silicon/robot/drone/swarm.dm b/code/modules/mob/living/silicon/robot/drone/swarm.dm index c9a9f4051e..e39a3e641c 100644 --- a/code/modules/mob/living/silicon/robot/drone/swarm.dm +++ b/code/modules/mob/living/silicon/robot/drone/swarm.dm @@ -4,7 +4,7 @@ icon = 'icons/mob/swarmbot.dmi' icon_state = "swarmer" item_state = "repairbot" - faction = "swarmer" + faction = FACTION_SWARMER maxHealth = 35 health = 35 cell_emp_mult = 0.5 @@ -75,7 +75,7 @@ real_name = "drone" icon = 'icons/mob/swarmbot.dmi' icon_state = "swarmer_ranged" - faction = "swarmer" + faction = FACTION_SWARMER maxHealth = 50 health = 50 @@ -96,7 +96,7 @@ real_name = "drone" icon = 'icons/mob/swarmbot.dmi' icon_state = "swarmer_melee" - faction = "swarmer" + faction = FACTION_SWARMER maxHealth = 70 health = 70 @@ -111,4 +111,3 @@ /spell/aoe_turf/conjure/forcewall/swarm, /spell/aoe_turf/blink/swarm ) - diff --git a/code/modules/mob/living/silicon/robot/examine.dm b/code/modules/mob/living/silicon/robot/examine.dm index f9d5663a77..1a86f2277f 100644 --- a/code/modules/mob/living/silicon/robot/examine.dm +++ b/code/modules/mob/living/silicon/robot/examine.dm @@ -34,7 +34,7 @@ . += attempt_vr(src,"examine_bellies_borg",args) //VOREStation Edit // VOREStation Edit: End - . += "*---------*" + . += "" if(print_flavor_text()) . += "
    [print_flavor_text()]" diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index f6438b3a53..076611c72a 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -1,8 +1,8 @@ #define CYBORG_POWER_USAGE_MULTIPLIER 2 // Multiplier for amount of power cyborgs use. /mob/living/silicon/robot - name = "Cyborg" - real_name = "Cyborg" + name = JOB_CYBORG + real_name = JOB_CYBORG icon = 'icons/mob/robots.dmi' icon_state = "robot" maxHealth = 200 @@ -101,7 +101,7 @@ var/speed = 0 //Cause sec borgs gotta go fast //No they dont! var/scrambledcodes = 0 // Used to determine if a borg shows up on the robotics console. Setting to one hides them. var/tracking_entities = 0 //The number of known entities currently accessing the internal camera - var/braintype = "Cyborg" + var/braintype = JOB_CYBORG var/obj/item/implant/restrainingbolt/bolt // The restraining bolt installed into the cyborg. diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station.dm b/code/modules/mob/living/silicon/robot/robot_modules/station.dm index 62f6f19f57..6891970153 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/station.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/station.dm @@ -183,14 +183,14 @@ var/global/list/robot_modules = list( /obj/item/robot_module/proc/handle_shell(var/mob/living/silicon/robot/R) if(R.braintype == BORG_BRAINTYPE_AI_SHELL) channels = list( - "Medical" = 1, - "Engineering" = 1, - "Security" = 1, - "Service" = 1, - "Supply" = 1, - "Science" = 1, - "Command" = 1, - "Away Team" = 1 + CHANNEL_MEDICAL = 1, + CHANNEL_ENGINEERING = 1, + CHANNEL_SECURITY = 1, + CHANNEL_SERVICE = 1, + CHANNEL_SUPPLY = 1, + CHANNEL_SCIENCE = 1, + CHANNEL_COMMAND = 1, + CHANNEL_EXPLORATION = 1 ) /obj/item/robot_module/robot/New(var/mob/living/silicon/robot/R) @@ -225,7 +225,7 @@ var/global/list/robot_modules = list( /obj/item/robot_module/robot/medical name = "medical robot module" - channels = list("Medical" = 1) + channels = list(CHANNEL_MEDICAL = 1) networks = list(NETWORK_MEDICAL) subsystems = list(/mob/living/silicon/proc/subsystem_crew_monitor) pto_type = PTO_MEDICAL @@ -361,7 +361,7 @@ var/global/list/robot_modules = list( /obj/item/robot_module/robot/engineering name = "engineering robot module" - channels = list("Engineering" = 1) + channels = list(CHANNEL_ENGINEERING = 1) networks = list(NETWORK_ENGINEERING) subsystems = list(/mob/living/silicon/proc/subsystem_power_monitor) pto_type = PTO_ENGINEERING @@ -464,7 +464,7 @@ var/global/list/robot_modules = list( /obj/item/robot_module/robot/security name = "security robot module" - channels = list("Security" = 1) + channels = list(CHANNEL_SECURITY = 1) networks = list(NETWORK_SECURITY) subsystems = list(/mob/living/silicon/proc/subsystem_crew_monitor) supported_upgrades = list(/obj/item/borg/upgrade/restricted/tasercooler, /obj/item/borg/upgrade/restricted/bellycapupgrade) @@ -504,7 +504,7 @@ var/global/list/robot_modules = list( /obj/item/robot_module/robot/janitor name = "janitorial robot module" - channels = list("Service" = 1) + channels = list(CHANNEL_SERVICE = 1) pto_type = PTO_CIVILIAN /obj/item/robot_module/robot/janitor/create_equipment(var/mob/living/silicon/robot/robot) @@ -571,8 +571,8 @@ var/global/list/robot_modules = list( /obj/item/robot_module/robot/clerical name = "service robot module" channels = list( - "Service" = 1, - "Command" = 1 + CHANNEL_SERVICE = 1, + CHANNEL_COMMAND = 1 ) languages = list( LANGUAGE_SOL_COMMON = 1, @@ -595,8 +595,13 @@ var/global/list/robot_modules = list( ) pto_type = PTO_CIVILIAN +<<<<<<< HEAD /obj/item/robot_module/robot/clerical/butler channels = list("Service" = 1) +======= +/obj/item/weapon/robot_module/robot/clerical/butler + channels = list(CHANNEL_SERVICE = 1) +>>>>>>> master /obj/item/robot_module/robot/clerical/butler name = "service robot module" @@ -664,7 +669,7 @@ var/global/list/robot_modules = list( /obj/item/robot_module/robot/miner name = "miner robot module" - channels = list("Supply" = 1) + channels = list(CHANNEL_SUPPLY = 1) networks = list(NETWORK_MINE) supported_upgrades = list(/obj/item/borg/upgrade/restricted/pka, /obj/item/borg/upgrade/restricted/diamonddrill) pto_type = PTO_CARGO @@ -672,6 +677,7 @@ var/global/list/robot_modules = list( /obj/item/robot_module/robot/miner/create_equipment(var/mob/living/silicon/robot/robot) ..() src.modules += new /obj/item/borg/sight/material(src) +<<<<<<< HEAD src.modules += new /obj/item/tool/wrench/cyborg(src) src.modules += new /obj/item/tool/screwdriver/cyborg(src) src.modules += new /obj/item/storage/bag/ore(src) @@ -680,13 +686,24 @@ var/global/list/robot_modules = list( src.modules += new /obj/item/gripper/miner(src) src.modules += new /obj/item/mining_scanner(src) src.emag += new /obj/item/kinetic_crusher/machete/dagger(src) +======= + src.modules += new /obj/item/weapon/tool/wrench/cyborg(src) + src.modules += new /obj/item/weapon/tool/screwdriver/cyborg(src) + src.modules += new /obj/item/weapon/storage/bag/ore(src) + src.modules += new /obj/item/weapon/pickaxe/borgdrill(src) + src.modules += new /obj/item/weapon/storage/bag/sheetsnatcher/borg(src) + src.modules += new /obj/item/weapon/gripper/miner(src) + src.modules += new /obj/item/weapon/mining_scanner(src) + src.modules += new /obj/item/weapon/card/id/cargo/miner/borg(src) + src.emag += new /obj/item/weapon/kinetic_crusher/machete/dagger(src) +>>>>>>> master src.modules += new /obj/item/dogborg/sleeper/compactor/supply(src) src.emag += new /obj/item/dogborg/pounce(src) /obj/item/robot_module/robot/research name = "research module" - channels = list("Science" = 1) + channels = list(CHANNEL_SCIENCE = 1) supported_upgrades = list(/obj/item/borg/upgrade/restricted/advrped) pto_type = PTO_SCIENCE @@ -861,7 +878,7 @@ var/global/list/robot_modules = list( /obj/item/robot_module/drone/construction name = "construction drone module" hide_on_manifest = TRUE - channels = list("Engineering" = 1) + channels = list(CHANNEL_ENGINEERING = 1) languages = list() /obj/item/robot_module/drone/construction/create_equipment(var/mob/living/silicon/robot/robot) @@ -876,7 +893,7 @@ var/global/list/robot_modules = list( /obj/item/robot_module/drone/mining name = "miner drone module" - channels = list("Supply" = 1) + channels = list(CHANNEL_SUPPLY = 1) networks = list(NETWORK_MINE) /obj/item/robot_module/drone/mining/create_equipment(var/mob/living/silicon/robot/robot) diff --git a/code/modules/mob/living/silicon/robot/sprites/janitor.dm b/code/modules/mob/living/silicon/robot/sprites/janitor.dm index 70580a9ffa..e634df2d29 100644 --- a/code/modules/mob/living/silicon/robot/sprites/janitor.dm +++ b/code/modules/mob/living/silicon/robot/sprites/janitor.dm @@ -197,4 +197,4 @@ has_eye_light_sprites = TRUE has_custom_open_sprites = TRUE has_vore_belly_sprites = FALSE - rest_sprite_options = list("Default", "Bellyup") \ No newline at end of file + rest_sprite_options = list("Default", "Bellyup") diff --git a/code/modules/mob/living/silicon/robot/subtypes/thinktank/thinktank_module.dm b/code/modules/mob/living/silicon/robot/subtypes/thinktank/thinktank_module.dm index c296a094de..2175bb1db4 100644 --- a/code/modules/mob/living/silicon/robot/subtypes/thinktank/thinktank_module.dm +++ b/code/modules/mob/living/silicon/robot/subtypes/thinktank/thinktank_module.dm @@ -43,8 +43,8 @@ "stripe" = "#52b8b8" ) channels = list( - "Science" = 1, - "Away Team" = 1 + CHANNEL_SCIENCE = 1, + CHANNEL_EXPLORATION = 1 ) /obj/item/robot_module/robot/platform/explorer/create_equipment(var/mob/living/silicon/robot/robot) @@ -85,7 +85,7 @@ "stripe_vertical" = "#bfbfa1", "stripe" = "#bfbfa1" ) - channels = list("Supply" = 1) + channels = list(CHANNEL_SUPPLY = 1) networks = list(NETWORK_MINE) /obj/item/robot_module/robot/platform/cargo/create_equipment(var/mob/living/silicon/robot/robot) diff --git a/code/modules/mob/living/simple_mob/overmap_mob_vr.dm b/code/modules/mob/living/simple_mob/overmap_mob_vr.dm index dd4fc73631..20bd5e5bd8 100644 --- a/code/modules/mob/living/simple_mob/overmap_mob_vr.dm +++ b/code/modules/mob/living/simple_mob/overmap_mob_vr.dm @@ -90,7 +90,7 @@ see_in_dark = 10 - faction = "overmap" + faction = FACTION_OVERMAP low_priority = FALSE devourable = FALSE digestable = FALSE diff --git a/code/modules/mob/living/simple_mob/sd_pets.dm b/code/modules/mob/living/simple_mob/sd_pets.dm index 1a62cc9818..3e3ea4cd66 100644 --- a/code/modules/mob/living/simple_mob/sd_pets.dm +++ b/code/modules/mob/living/simple_mob/sd_pets.dm @@ -109,7 +109,7 @@ desc = "A good boi, eats the scraps when you're not looking." devourable = 0 digestable = 0 - faction = "bar" + faction = FACTION_BAR mob_bump_flag = 32 ai_holder_type = /datum/ai_holder/simple_mob/melee/evasive/otie/cocoa catalogue_data = list(/datum/category_item/catalogue/fauna/otie/cocoa) diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/catslug.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/catslug.dm index 95d7e056c9..f479a974a6 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/catslug.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/catslug.dm @@ -23,7 +23,7 @@ icon_rest = "catslug_rest" icon = 'icons/mob/alienanimals_x32.dmi' - faction = "catslug" + faction = FACTION_CATSLUG maxHealth = 50 health = 50 movement_cooldown = -1 @@ -750,7 +750,7 @@ icon_living = "capslug" icon_rest = "capslug_rest" icon_dead = "capslug_dead" - faction = "neutral" + faction = FACTION_NEUTRAL catalogue_data = list(/datum/category_item/catalogue/fauna/catslug/custom/capslug) holder_type = /obj/item/holder/catslug/custom/capslug say_list_type = /datum/say_list/catslug/custom/capslug @@ -824,7 +824,7 @@ catalogue_data = list(/datum/category_item/catalogue/fauna/catslug) say_list_type = /datum/say_list/catslug myid_access = list(access_maint_tunnels, access_syndicate, access_external_airlocks) - faction = "syndicate" + faction = FACTION_SYNDICATE maxHealth = 100 //Tough noodles health = 100 taser_kill = 0 diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/jellyfish.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/jellyfish.dm index b8597cbca5..79a6786396 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/jellyfish.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/jellyfish.dm @@ -27,7 +27,7 @@ GLOBAL_VAR_INIT(jellyfish_count, 0) hovering = TRUE - faction = "jellyfish" + faction = FACTION_JELLYFISH maxHealth = 100 health = 100 nutrition = 150 diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/skeleton.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/skeleton.dm index 19c3639c81..88f919ac28 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/skeleton.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/skeleton.dm @@ -23,7 +23,7 @@ icon_living = "skeleton" icon_dead = "skeleton_dead" - faction = "space skeleton" + faction = FACTION_SPACE_SKELETON maxHealth = 100 health = 100 movement_cooldown = 1 diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/space_mouse.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/space_mouse.dm index 82bbd33d49..195a7b7130 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/space_mouse.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/space_mouse.dm @@ -17,7 +17,7 @@ icon_living = "space_mouse" icon_dead = "space_mouse_dead" - faction = "space mouse" + faction = FACTION_SPACE_MOUSE maxHealth = 20 health = 20 movement_cooldown = -1 diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spookyghost.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spookyghost.dm index 983fdec6a9..5d2084d0f0 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spookyghost.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spookyghost.dm @@ -22,7 +22,7 @@ hovering = TRUE pass_flags = PASSTABLE - faction = "space ghost" + faction = FACTION_SPACE_GHOST maxHealth = 50 health = 50 movement_cooldown = 0 @@ -134,7 +134,7 @@ hovering = TRUE pass_flags = PASSTABLE - faction = "space ghost" + faction = FACTION_SPACE_GHOST maxHealth = 5 health = 5 movement_cooldown = -1 diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm index f0a60ea380..6433c37e7c 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm @@ -1630,7 +1630,7 @@ 'sound/vore/sunesound/prey/squish_04.ogg', 'sound/vore/sunesound/prey/stomachmove.ogg' ) - var/faction = "macrobacteria" + var/faction = FACTION_MACROBACTERIA /obj/structure/auto_flesh_door/Initialize() . = ..() diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/startreader.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/startreader.dm index f980220879..192c260b77 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/startreader.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/startreader.dm @@ -17,7 +17,7 @@ icon_living = "startreader" icon_dead = "startreader_dead" - faction = "space turtle" + faction = FACTION_SPACE_TURTLE maxHealth = 1000 health = 1000 movement_cooldown = 10 diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/teppi.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/teppi.dm index eef81007eb..cb76b5f2a8 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/teppi.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/teppi.dm @@ -60,7 +60,7 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have? pixel_x = -16 default_pixel_x = -16 - faction = "teppi" + faction = FACTION_TEPPI maxHealth = 600 health = 600 movement_cooldown = -1 diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/borer/borer.dm b/code/modules/mob/living/simple_mob/subtypes/animal/borer/borer.dm index 55c37c6a8f..f834c6f81e 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/borer/borer.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/borer/borer.dm @@ -201,8 +201,8 @@ ckey = candidate.ckey if(mind) - mind.assigned_role = "Cortical Borer" - mind.special_role = "Cortical Borer" + mind.assigned_role = JOB_CORTICAL_BORER + mind.special_role = JOB_CORTICAL_BORER to_chat(src, span("notice", "You are a cortical borer! 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, \ diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/farm animals/goat.dm b/code/modules/mob/living/simple_mob/subtypes/animal/farm animals/goat.dm index ef91a10d1c..e1d5ec8c4c 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/farm animals/goat.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/farm animals/goat.dm @@ -6,7 +6,7 @@ icon_living = "goat" icon_dead = "goat_dead" - faction = "goat" + faction = FACTION_GOAT health = 40 maxHealth = 40 diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/_giant_spider.dm b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/_giant_spider.dm index 9e96453b82..83a10048c1 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/_giant_spider.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/_giant_spider.dm @@ -69,7 +69,7 @@ icon_dead = "guard_dead" has_eye_glow = TRUE - faction = "spiders" + faction = FACTION_SPIDERS maxHealth = 200 health = 200 pass_flags = PASSTABLE diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/passive/crab.dm b/code/modules/mob/living/simple_mob/subtypes/animal/passive/crab.dm index 1c19d82725..62a5960800 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/passive/crab.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/passive/crab.dm @@ -3,7 +3,7 @@ name = "crab" desc = "A hard-shelled crustacean. Seems quite content to lounge around all the time." tt_desc = "E Cancer bellianus" - faction = "crabs" + faction = FACTION_CRABS icon_state = "crab" icon_living = "crab" @@ -53,4 +53,4 @@ adjust_scale(rand(5,12) / 10) /decl/mob_organ_names/crab - hit_zones = list("cephalothorax", "abdomen", "left walking legs", "right walking legs", "left swimming legs", "right swimming legs", "left pincer", "right pincer") \ No newline at end of file + hit_zones = list("cephalothorax", "abdomen", "left walking legs", "right walking legs", "left swimming legs", "right swimming legs", "left pincer", "right pincer") diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/pets/fox_vr.dm b/code/modules/mob/living/simple_mob/subtypes/animal/pets/fox_vr.dm index 80702f9f76..5b75e806f6 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/pets/fox_vr.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/pets/fox_vr.dm @@ -13,7 +13,7 @@ see_in_dark = 6 mob_size = MOB_SMALL //Foxes are not smaller than cats so bumping them up to small - faction = "fox" + faction = FACTION_FOX response_help = "scritches" response_disarm = "gently pushes aside" @@ -188,7 +188,7 @@ //Captain fox /mob/living/simple_mob/animal/passive/fox/renault name = "Renault" - desc = "Renault, the Site Manager's trustworthy fox. I wonder what it says?" + desc = "Renault, the " + JOB_SITE_MANAGER + "'s trustworthy fox. I wonder what it says?" tt_desc = "Vulpes nobilis" //befriend_job = "Site Manager" Sebbe edit: couldn't make this work, commenting out for now. diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/diyaab.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/diyaab.dm index 318679a44b..2f6b93a7a1 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/diyaab.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/diyaab.dm @@ -19,7 +19,7 @@ tt_desc = "S Choeros hirtus" //diyaab and shantak are technically reletives! catalogue_data = list(/datum/category_item/catalogue/fauna/diyaab) - faction = "diyaab" + faction = FACTION_DIYAAB icon_state = "diyaab" icon_living = "diyaab" diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/duck.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/duck.dm index 4c49f1fbf0..8d569c2c0f 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/duck.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/duck.dm @@ -19,7 +19,7 @@ tt_desc = "S Anatidae vitriae" //catalogue_data = list(/datum/category_item/catalogue/fauna/crystalduck) TODO: Write non-sif lore - faction = "duck" + faction = FACTION_DUCK icon_state = "duck" icon_living = "duck" diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/frostfly.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/frostfly.dm index ec548fb746..0a5b21b0da 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/frostfly.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/frostfly.dm @@ -21,7 +21,7 @@ tt_desc = "S Carabidae glacios" catalogue_data = list(/datum/category_item/catalogue/fauna/frostfly) - faction = "diyaab" + faction = FACTION_DIYAAB icon_state = "firefly" icon_living = "firefly" diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/glitterfly.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/glitterfly.dm index af96b0fe60..5b3b1c7ebc 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/glitterfly.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/glitterfly.dm @@ -28,7 +28,7 @@ tt_desc = "S Lepidoptera adamas" catalogue_data = list(/datum/category_item/catalogue/fauna/glitterfly) - faction = "neutral" + faction = FACTION_NEUTRAL icon_state = "butterfly" icon_living = "butterfly" diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/grafadreka.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/grafadreka.dm index 167992f9cd..e1b628346a 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/grafadreka.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/grafadreka.dm @@ -140,7 +140,7 @@ Field studies suggest analytical abilities on par with some species of cepholapo see_in_dark = 8 // on par with Taj tt_desc = "S tesca pabulator" - faction = "grafadreka" + faction = FACTION_GRAFADREKA mob_size = MOB_LARGE mob_bump_flag = SIMPLE_ANIMAL diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/hooligan_crab.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/hooligan_crab.dm index 4c14a122d2..dac2ef0ad6 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/hooligan_crab.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/hooligan_crab.dm @@ -35,7 +35,7 @@ icon_scale_x = 1.5 icon_scale_y = 1.5 - faction = "crabs" + faction = FACTION_CRABS maxHealth = 200 health = 200 diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/kururak.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/kururak.dm index 4440e65d15..858057a23d 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/kururak.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/kururak.dm @@ -23,7 +23,7 @@ tt_desc = "S Felidae fluctursora" catalogue_data = list(/datum/category_item/catalogue/fauna/kururak) - faction = "kururak" + faction = FACTION_KURUAK icon_state = "bigcat" icon_living = "bigcat" diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/leech.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/leech.dm index 388173e19c..8319eef5c7 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/leech.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/leech.dm @@ -21,7 +21,7 @@ tt_desc = "S Hirudinea phorus" catalogue_data = list(/datum/category_item/catalogue/fauna/iceleech) - faction = "leech" + faction = FACTION_LEECH icon_state = "leech" item_state = "brainslug" diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/moth.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/moth.dm index 67177bb19b..12d8d9e0fe 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/moth.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/moth.dm @@ -28,7 +28,7 @@ tt_desc = "B Lepidoptera cinereus" catalogue_data = list(/datum/category_item/catalogue/fauna/tymisian) - faction = "spiders" //Hostile to most mobs, not all. + faction = FACTION_SPIDERS //Hostile to most mobs, not all. icon_state = "moth" icon_living = "moth" diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/racoon.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/racoon.dm index ec95367c4d..686b23df62 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/racoon.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/racoon.dm @@ -17,7 +17,7 @@ tt_desc = "S Procyon cogitae" catalogue_data = list(/datum/category_item/catalogue/fauna/sakimm) - faction = "sakimm" + faction = FACTION_SAKIMM icon_state = "raccoon" icon_living = "raccoon" diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/savik.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/savik.dm index a85ebadf11..79ccba6827 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/savik.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/savik.dm @@ -21,7 +21,7 @@ name = "savik" tt_desc = "S Pistris tellus" //landshark catalogue_data = list(/datum/category_item/catalogue/fauna/savik) - faction = "savik" + faction = FACTION_SAVIK icon_state = "savik" icon_living = "savik" diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/shantak.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/shantak.dm index e82bb30195..37644c4116 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/shantak.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/shantak.dm @@ -25,7 +25,7 @@ tt_desc = "S Choeros shantak" catalogue_data = list(/datum/category_item/catalogue/fauna/shantak) - faction = "shantak" + faction = FACTION_SHANTAK icon_state = "shantak" icon_living = "shantak" @@ -107,7 +107,7 @@ name = "Scruffy" ai_holder_type = /datum/ai_holder/simple_mob/passive makes_dirt = 0 - faction = "neutral" + faction = FACTION_NEUTRAL /decl/mob_organ_names/shantak hit_zones = list("head", "torso", "left foreleg", "right foreleg", "left hind leg", "right hind leg", "tail", "mane", "snout") diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/siffet.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/siffet.dm index dcbed0f0f8..da75d3c9b2 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/siffet.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/siffet.dm @@ -18,7 +18,7 @@ tt_desc = "S Pruinaeictis velocis" //Sivian frost weasel, fast catalogue_data = list(/datum/category_item/catalogue/fauna/siffet) - faction = "siffet" + faction =FACTION_SIFFET mob_size = MOB_SMALL diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/space/alien.dm b/code/modules/mob/living/simple_mob/subtypes/animal/space/alien.dm index f7420667e5..cbd4033456 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/space/alien.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/space/alien.dm @@ -8,7 +8,7 @@ icon_gib = "syndicate_gib" icon_rest = "alienh_sleep" - faction = "xeno" + faction = FACTION_XENO mob_class = MOB_CLASS_ABERRATION diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/space/bats.dm b/code/modules/mob/living/simple_mob/subtypes/animal/space/bats.dm index 89c57c3a38..5b511d98f7 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/space/bats.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/space/bats.dm @@ -8,7 +8,7 @@ icon_dead = "bat_dead" icon_gib = "bat_dead" - faction = "scarybat" + faction = FACTION_SCARYBAT maxHealth = 20 health = 20 @@ -48,7 +48,7 @@ // Spookiest of bats /mob/living/simple_mob/animal/space/bats/cult - faction = "cult" + faction = FACTION_CULT supernatural = TRUE /mob/living/simple_mob/animal/space/bats/cult/cultify() diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/space/bear.dm b/code/modules/mob/living/simple_mob/subtypes/animal/space/bear.dm index 9dd7eb588d..7270b2c491 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/space/bear.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/space/bear.dm @@ -7,7 +7,7 @@ icon_dead = "bear_dead" icon_gib = "bear_gib" - faction = "russian" + faction = FACTION_RUSSIAN maxHealth = 125 health = 125 diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/space/carp.dm b/code/modules/mob/living/simple_mob/subtypes/animal/space/carp.dm index 2f03114e54..b0eba2bee1 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/space/carp.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/space/carp.dm @@ -34,7 +34,7 @@ icon_dead = "carp_dead" icon_gib = "carp_gib" - faction = "carp" + faction = FACTION_CARP maxHealth = 25 health = 25 movement_cooldown = -2 @@ -249,4 +249,4 @@ ..() /mob/living/simple_mob/animal/space/carp/puffer/ex_act() //explode? YOU BETTER BELIEVE THAT'S AN EXPLODE - kaboom() \ No newline at end of file + kaboom() diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/space/gaslamp_vr.dm b/code/modules/mob/living/simple_mob/subtypes/animal/space/gaslamp_vr.dm index 2958cc58d8..436d6c8315 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/space/gaslamp_vr.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/space/gaslamp_vr.dm @@ -27,7 +27,7 @@ TODO: Make them light up and heat the air when exposed to oxygen. icon = 'icons/mob/vore32x64.dmi' vis_height = 64 - faction = "virgo3b" + faction = FACTION_VIRGO3B maxHealth = 100 health = 100 movement_cooldown = 4 diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/space/gnat.dm b/code/modules/mob/living/simple_mob/subtypes/animal/space/gnat.dm index a28025cb2d..cc613f7d47 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/space/gnat.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/space/gnat.dm @@ -26,7 +26,7 @@ icon_living = "gnat" icon_dead = "gnat_dead" - faction = "gnat" + faction = FACTION_GNAT maxHealth = 5 health = 5 movement_cooldown = 0 diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/space/goose.dm b/code/modules/mob/living/simple_mob/subtypes/animal/space/goose.dm index a803a45bbe..0d5ad98cae 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/space/goose.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/space/goose.dm @@ -6,7 +6,7 @@ icon_living = "goose" icon_dead = "goose_dead" - faction = "geese" + faction = FACTION_GEESE maxHealth = 30 health = 30 @@ -55,4 +55,4 @@ icon_living = "whitegoose" icon_dead = "whitegoose_dead" name = "white goose" - desc = "And just when you thought it was a lovely day..." \ No newline at end of file + desc = "And just when you thought it was a lovely day..." diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/space/goose_vr.dm b/code/modules/mob/living/simple_mob/subtypes/animal/space/goose_vr.dm index 830964f05f..8db3f451d3 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/space/goose_vr.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/space/goose_vr.dm @@ -4,4 +4,4 @@ value = CATALOGUER_REWARD_EASY /mob/living/simple_mob/animal/space/goose/virgo3b - faction = "virgo3b" \ No newline at end of file + faction = FACTION_VIRGO3B diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/space/ray.dm b/code/modules/mob/living/simple_mob/subtypes/animal/space/ray.dm index b7dd1c7d56..873853a41c 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/space/ray.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/space/ray.dm @@ -36,7 +36,7 @@ icon_rest = "ray_rest" icon_gib = "ray_gib" - faction = "ray" + faction = FACTION_RAY maxHealth = 125 health = 125 movement_cooldown = 0 // Carp go fast diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/space/shark.dm b/code/modules/mob/living/simple_mob/subtypes/animal/space/shark.dm index 51e3d5c7e0..07df87edfb 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/space/shark.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/space/shark.dm @@ -19,7 +19,7 @@ icon_dead = "shark_dead" icon_rest = "shark_rest" - faction = "spaceshark" + faction = FACTION_SPACESHARK maxHealth = 125 health = 125 movement_cooldown = 0 @@ -53,4 +53,4 @@ L.visible_message(span("danger", "\The [src] knocks down \the [L]!")) /mob/living/simple_mob/animal/space/shark/event - ai_holder_type = /datum/ai_holder/simple_mob/event \ No newline at end of file + ai_holder_type = /datum/ai_holder/simple_mob/event diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/space/worm.dm b/code/modules/mob/living/simple_mob/subtypes/animal/space/worm.dm index 94d4eaa4cf..3f5266d2b9 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/space/worm.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/space/worm.dm @@ -14,7 +14,7 @@ health = 200 movement_cooldown = -1 - faction = "worm" + faction = FACTION_WORM status_flags = 0 universal_speak = 0 diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/squirrel.dm b/code/modules/mob/living/simple_mob/subtypes/animal/squirrel.dm index 8abbc89c80..54bd9fcf1f 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/squirrel.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/squirrel.dm @@ -19,7 +19,7 @@ icon = 'icons/mob/alienanimals_x32.dmi' color = "#76462c" - faction = "animal" + faction = FACTION_ANIMAL maxHealth = 40 health = 40 movement_cooldown = -1 diff --git a/code/modules/mob/living/simple_mob/subtypes/blob/blob.dm b/code/modules/mob/living/simple_mob/subtypes/blob/blob.dm index 22b7b76049..4c9ba00cd6 100644 --- a/code/modules/mob/living/simple_mob/subtypes/blob/blob.dm +++ b/code/modules/mob/living/simple_mob/subtypes/blob/blob.dm @@ -5,7 +5,7 @@ /mob/living/simple_mob/blob icon = 'icons/mob/blob.dmi' pass_flags = PASSBLOB | PASSTABLE - faction = "blob" + faction = FACTION_BLOB organ_names = /decl/mob_organ_names/blob @@ -86,4 +86,4 @@ return ally /decl/mob_organ_names/blob - hit_zones = list("mass") \ No newline at end of file + hit_zones = list("mass") diff --git a/code/modules/mob/living/simple_mob/subtypes/humanoid/clown.dm b/code/modules/mob/living/simple_mob/subtypes/humanoid/clown.dm index f2ae2b19c2..14a76584bd 100644 --- a/code/modules/mob/living/simple_mob/subtypes/humanoid/clown.dm +++ b/code/modules/mob/living/simple_mob/subtypes/humanoid/clown.dm @@ -8,7 +8,7 @@ icon_dead = "clown_dead" icon_gib = "clown_gib" - faction = "clown" + faction = FACTION_CLOWN loot_list = list(/obj/item/bikehorn = 100) @@ -31,4 +31,4 @@ emote_see = list("honks") /decl/mob_organ_names/clown - hit_zones = list("head", "torso", "pie-hole", "honker", "left funny bone", "right funny bone", "left foot", "right foot", "unmentionables") \ No newline at end of file + hit_zones = list("head", "torso", "pie-hole", "honker", "left funny bone", "right funny bone", "left foot", "right foot", "unmentionables") diff --git a/code/modules/mob/living/simple_mob/subtypes/humanoid/mercs/mercs.dm b/code/modules/mob/living/simple_mob/subtypes/humanoid/mercs/mercs.dm index d60cdea5e8..cc6d1132c1 100644 --- a/code/modules/mob/living/simple_mob/subtypes/humanoid/mercs/mercs.dm +++ b/code/modules/mob/living/simple_mob/subtypes/humanoid/mercs/mercs.dm @@ -12,7 +12,7 @@ icon_dead = "syndicate_dead" icon_gib = "syndicate_gib" - faction = "syndicate" + faction = FACTION_SYNDICATE movement_cooldown = 1 status_flags = 0 diff --git a/code/modules/mob/living/simple_mob/subtypes/humanoid/mercs/mercs_altevian.dm b/code/modules/mob/living/simple_mob/subtypes/humanoid/mercs/mercs_altevian.dm index f2ac7bddb5..a0b8232b29 100644 --- a/code/modules/mob/living/simple_mob/subtypes/humanoid/mercs/mercs_altevian.dm +++ b/code/modules/mob/living/simple_mob/subtypes/humanoid/mercs/mercs_altevian.dm @@ -8,7 +8,7 @@ icon_dead = "merc-dead" icon_gib = "merc_gib" - faction = "altevian" + faction = FACTION_ALTEVIAN movement_cooldown = 1 status_flags = 0 @@ -116,16 +116,16 @@ projectilesound = 'sound/weapons/Gunshot_heavy.ogg' /mob/living/simple_mob/humanoid/merc/altevian/neutral - faction = "neutral" + faction = FACTION_NEUTRAL /mob/living/simple_mob/humanoid/merc/altevian/sapper/neutral - faction = "neutral" + faction = FACTION_NEUTRAL /mob/living/simple_mob/humanoid/merc/altevian/ranged/neutral - faction = "neutral" + faction = FACTION_NEUTRAL /mob/living/simple_mob/humanoid/merc/altevian/ranged/strong/neutral - faction = "neutral" + faction = FACTION_NEUTRAL /mob/living/simple_mob/humanoid/merc/altevian/ranged/ballistic/neutral - faction = "neutral" + faction = FACTION_NEUTRAL diff --git a/code/modules/mob/living/simple_mob/subtypes/humanoid/pirates.dm b/code/modules/mob/living/simple_mob/subtypes/humanoid/pirates.dm index 2447803609..448b5a83b4 100644 --- a/code/modules/mob/living/simple_mob/subtypes/humanoid/pirates.dm +++ b/code/modules/mob/living/simple_mob/subtypes/humanoid/pirates.dm @@ -6,7 +6,7 @@ icon_living = "piratemelee" icon_dead = "piratemelee_dead" - faction = "pirate" + faction = FACTION_PIRATE response_help = "pushes" response_disarm = "shoves" @@ -37,4 +37,4 @@ loot_list = list(/obj/item/gun/energy/laser = 100) - corpse = /obj/effect/landmark/mobcorpse/pirate/ranged \ No newline at end of file + corpse = /obj/effect/landmark/mobcorpse/pirate/ranged diff --git a/code/modules/mob/living/simple_mob/subtypes/humanoid/russian.dm b/code/modules/mob/living/simple_mob/subtypes/humanoid/russian.dm index 23202c29a4..e14e60670b 100644 --- a/code/modules/mob/living/simple_mob/subtypes/humanoid/russian.dm +++ b/code/modules/mob/living/simple_mob/subtypes/humanoid/russian.dm @@ -7,7 +7,7 @@ icon_dead = "russianmelee_dead" icon_gib = "syndicate_gib" - faction = "russian" + faction = FACTION_RUSSIAN response_help = "pokes" response_disarm = "shoves" @@ -33,4 +33,4 @@ loot_list = list(/obj/item/gun/projectile/revolver/mateba = 100) - corpse = /obj/effect/landmark/mobcorpse/russian/ranged \ No newline at end of file + corpse = /obj/effect/landmark/mobcorpse/russian/ranged diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/corrupt_maint_drone_vr.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/corrupt_maint_drone_vr.dm index 09c4581125..0b140b623a 100644 --- a/code/modules/mob/living/simple_mob/subtypes/mechanical/corrupt_maint_drone_vr.dm +++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/corrupt_maint_drone_vr.dm @@ -26,7 +26,7 @@ icon_living = "corrupt-repairbot" hovering = FALSE // Can trigger landmines. - faction = "underdark" + faction = FACTION_UNDERDARK maxHealth = 25 health = 25 movement_cooldown = -1 diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/disbot_vr.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/disbot_vr.dm index fbfedf1cd7..3d30826085 100644 --- a/code/modules/mob/living/simple_mob/subtypes/mechanical/disbot_vr.dm +++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/disbot_vr.dm @@ -34,7 +34,7 @@ response_help = "pets the" response_disarm = "gently pushes aside the" response_harm = "hits the" - faction = "vagrant" + faction = FACTION_VAGRANT harm_intent_damage = 3 melee_damage_lower = 6 melee_damage_upper = 9 diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/drones/combat_drone.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/drones/combat_drone.dm index 1d37471dbf..8325667df1 100644 --- a/code/modules/mob/living/simple_mob/subtypes/mechanical/drones/combat_drone.dm +++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/drones/combat_drone.dm @@ -39,7 +39,7 @@ icon_dead = "drone_dead" has_eye_glow = TRUE - faction = "malf_drone" + faction = FACTION_MALF_DRONE maxHealth = 50 // Shield has 150 for total of 200. health = 50 diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/drones/mining_drone.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/drones/mining_drone.dm index 654710f7a9..d986c17a29 100644 --- a/code/modules/mob/living/simple_mob/subtypes/mechanical/drones/mining_drone.dm +++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/drones/mining_drone.dm @@ -25,7 +25,7 @@ icon_dead = "miningdrone_dead" has_eye_glow = TRUE - faction = "malf_drone" + faction = FACTION_MALF_DRONE maxHealth = 50 health = 50 diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/golem.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/golem.dm index b8b34af58c..439b50bf63 100644 --- a/code/modules/mob/living/simple_mob/subtypes/mechanical/golem.dm +++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/golem.dm @@ -8,7 +8,7 @@ health = 300 maxHealth = 300 - faction = "golem" + faction = FACTION_GOLEM response_help = "pets" response_disarm = "pushes away" diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/hivebot.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/hivebot.dm index 7c5f3a6cf7..cdc57dc37c 100644 --- a/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/hivebot.dm +++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/hivebot.dm @@ -5,7 +5,7 @@ icon_state = "basic" icon_living = "basic" - faction = "hivebot" + faction = FACTION_HIVEBOT maxHealth = 3 LASERS_TO_KILL health = 3 LASERS_TO_KILL diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/support.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/support.dm index d5951723dd..17a78da625 100644 --- a/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/support.dm +++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/support.dm @@ -99,7 +99,7 @@ say_list_type = /datum/say_list/hivebot/harry melee_damage_lower = 0 melee_damage_upper = 0 - faction = "Station" + faction = FACTION_STATION water_resist = 1 //Harry lives under the sea! /mob/living/simple_mob/mechanical/hivebot/support/harry/death() diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/mecha.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/mecha.dm index d572508433..96b3797891 100644 --- a/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/mecha.dm +++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/mecha.dm @@ -7,7 +7,7 @@ desc = "A big stompy mech!" icon = 'icons/mecha/mecha.dmi' - faction = "syndicate" + faction = FACTION_SYNDICATE movement_cooldown = 1.5 movement_sound = "mechstep" // This gets fed into playsound(), which can also take strings as a 'group' of sound files. turn_sound = 'sound/mecha/mechturn.ogg' diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/viscerator.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/viscerator.dm index 629b1c1f60..d1163abd42 100644 --- a/code/modules/mob/living/simple_mob/subtypes/mechanical/viscerator.dm +++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/viscerator.dm @@ -27,7 +27,7 @@ icon_living = "viscerator_attack" hovering = TRUE // Won't trigger landmines. - faction = "syndicate" + faction = FACTION_SYNDICATE maxHealth = 15 health = 15 movement_cooldown = -2 @@ -73,7 +73,7 @@ icon_state = "viscerator_b_attack" icon_living = "viscerator_b_attack" - faction = "station" + faction = FACTION_STATION maxHealth = 20 health = 20 diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/wahlem_vr.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/wahlem_vr.dm index b731653cc6..b9b22a1618 100644 --- a/code/modules/mob/living/simple_mob/subtypes/mechanical/wahlem_vr.dm +++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/wahlem_vr.dm @@ -8,7 +8,7 @@ health = 300 maxHealth = 300 - faction = "golem" + faction = FACTION_GOLEM response_help = "brushes over" response_disarm = "repulses away" diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/ward/monitor_ward.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/ward/monitor_ward.dm index 858c669ec2..6f6eb9abcc 100644 --- a/code/modules/mob/living/simple_mob/subtypes/mechanical/ward/monitor_ward.dm +++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/ward/monitor_ward.dm @@ -40,7 +40,7 @@ // For PoIs. /mob/living/simple_mob/mechanical/ward/monitor/syndicate - faction = "syndicate" + faction = FACTION_SYNDICATE /mob/living/simple_mob/mechanical/ward/monitor/crew icon_state = "ward-nt" diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/ward/ward.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/ward/ward.dm index 79aba5ce9d..84ecc23938 100644 --- a/code/modules/mob/living/simple_mob/subtypes/mechanical/ward/ward.dm +++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/ward/ward.dm @@ -13,7 +13,7 @@ response_help = "pets" response_disarm = "swats away" response_harm = "punches" - faction = "wards" // Needed as most human mobs are in neutral faction. The owner is generally except from any ward hostility regardless. + faction = FACTION_WARDS // Needed as most human mobs are in neutral faction. The owner is generally except from any ward hostility regardless. organ_names = /decl/mob_organ_names/ward diff --git a/code/modules/mob/living/simple_mob/subtypes/occult/constructs/_construct.dm b/code/modules/mob/living/simple_mob/subtypes/occult/constructs/_construct.dm index e8d240a9ef..077e8e7b13 100644 --- a/code/modules/mob/living/simple_mob/subtypes/occult/constructs/_construct.dm +++ b/code/modules/mob/living/simple_mob/subtypes/occult/constructs/_construct.dm @@ -54,7 +54,7 @@ "rad" = 100) can_be_antagged = TRUE - faction = "cult" + faction = FACTION_CULT supernatural = TRUE @@ -155,4 +155,4 @@ /mob/living/simple_mob/construct/proc/remove_glow() cut_overlays() -*/ \ No newline at end of file +*/ diff --git a/code/modules/mob/living/simple_mob/subtypes/occult/creature.dm b/code/modules/mob/living/simple_mob/subtypes/occult/creature.dm index 9151ea6e2e..1336cc719f 100644 --- a/code/modules/mob/living/simple_mob/subtypes/occult/creature.dm +++ b/code/modules/mob/living/simple_mob/subtypes/occult/creature.dm @@ -8,7 +8,7 @@ mob_class = MOB_CLASS_ABERRATION - faction = "creature" + faction = FACTION_CREATURE maxHealth = 40 health = 40 @@ -43,7 +43,7 @@ /mob/living/simple_mob/creature/cult mob_class = MOB_CLASS_DEMONIC - faction = "cult" + faction = FACTION_CULT min_oxy = 0 max_oxy = 0 @@ -70,4 +70,4 @@ melee_damage_upper = 25 /decl/mob_organ_names/abberation - hit_zones = list("fleshy mass", "maw", "eye(?)", "orifice(?)") \ No newline at end of file + hit_zones = list("fleshy mass", "maw", "eye(?)", "orifice(?)") diff --git a/code/modules/mob/living/simple_mob/subtypes/occult/faithless.dm b/code/modules/mob/living/simple_mob/subtypes/occult/faithless.dm index 0ee4daf433..fa06001356 100644 --- a/code/modules/mob/living/simple_mob/subtypes/occult/faithless.dm +++ b/code/modules/mob/living/simple_mob/subtypes/occult/faithless.dm @@ -5,7 +5,7 @@ icon_living = "faithless" icon_dead = "faithless_dead" - faction = "faithless" + faction = FACTION_FAITHLESS mob_class = MOB_CLASS_DEMONIC @@ -63,7 +63,7 @@ // Cult Variant /mob/living/simple_mob/faithless/cult - faction = "cult" + faction = FACTION_CULT supernatural = TRUE /mob/living/simple_mob/faithless/cult/cultify() @@ -79,4 +79,4 @@ melee_damage_upper = 28 /decl/mob_organ_names/faithless - hit_zones = list("body", "left appendage", "right appendage", "shadowy tendrils", "head", "right stump", "left stump", "infernal eye") \ No newline at end of file + hit_zones = list("body", "left appendage", "right appendage", "shadowy tendrils", "head", "right stump", "left stump", "infernal eye") diff --git a/code/modules/mob/living/simple_mob/subtypes/occult/unknown.dm b/code/modules/mob/living/simple_mob/subtypes/occult/unknown.dm index 6d978b00a6..f18f005808 100644 --- a/code/modules/mob/living/simple_mob/subtypes/occult/unknown.dm +++ b/code/modules/mob/living/simple_mob/subtypes/occult/unknown.dm @@ -15,7 +15,7 @@ icon_living = "glitch_boss" icon_dead = "glitch_boss_dead" - faction = "MATH" + faction = FACTION_MATH maxHealth = 2000 health = 2000 @@ -296,7 +296,7 @@ icon_state = "glitch_boss" icon_living = "glitch_boss" icon_dead = "glitch_boss_dead" - faction = "MATH" + faction = FACTION_MATH maxHealth = 20 health = 20 diff --git a/code/modules/mob/living/simple_mob/subtypes/plant/tomato.dm b/code/modules/mob/living/simple_mob/subtypes/plant/tomato.dm index 5390babc61..eb08ce7bc0 100644 --- a/code/modules/mob/living/simple_mob/subtypes/plant/tomato.dm +++ b/code/modules/mob/living/simple_mob/subtypes/plant/tomato.dm @@ -8,7 +8,7 @@ mob_class = MOB_CLASS_PLANT - faction = "plants" + faction = FACTION_PLANTS maxHealth = 15 health = 15 poison_resist = 1.0 @@ -30,4 +30,4 @@ meat_amount = 4 /decl/mob_organ_names/tomato - hit_zones = list("flesh", "leaf", "mouth") \ No newline at end of file + hit_zones = list("flesh", "leaf", "mouth") diff --git a/code/modules/mob/living/simple_mob/subtypes/plant/tree.dm b/code/modules/mob/living/simple_mob/subtypes/plant/tree.dm index 08aecb9dac..b258763793 100644 --- a/code/modules/mob/living/simple_mob/subtypes/plant/tree.dm +++ b/code/modules/mob/living/simple_mob/subtypes/plant/tree.dm @@ -10,7 +10,7 @@ mob_class = MOB_CLASS_PLANT - faction = "plants" + faction = FACTION_PLANTS maxHealth = 250 health = 250 poison_resist = 1.0 @@ -46,4 +46,4 @@ qdel(src) /decl/mob_organ_names/tree - hit_zones = list("trunk", "branches", "twigs") \ No newline at end of file + hit_zones = list("trunk", "branches", "twigs") diff --git a/code/modules/mob/living/simple_mob/subtypes/slime/slime.dm b/code/modules/mob/living/simple_mob/subtypes/slime/slime.dm index 74ab2324ca..d821844ede 100644 --- a/code/modules/mob/living/simple_mob/subtypes/slime/slime.dm +++ b/code/modules/mob/living/simple_mob/subtypes/slime/slime.dm @@ -31,7 +31,7 @@ var/list/_slime_default_emotes = list( glow_intensity = 2 gender = NEUTER - faction = "slime" // Note that slimes are hostile to other slimes of different color regardless of faction (unless Unified). + faction = FACTION_SLIME // Note that slimes are hostile to other slimes of different color regardless of faction (unless Unified). maxHealth = 150 movement_cooldown = -1 pass_flags = PASSTABLE diff --git a/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/subtypes.dm b/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/subtypes.dm index 440a290ce2..256139f1c5 100644 --- a/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/subtypes.dm +++ b/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/subtypes.dm @@ -777,7 +777,7 @@ // The RD's pet slime. /mob/living/simple_mob/slime/xenobio/rainbow/kendrick name = "Kendrick" - desc = "The Research Director's pet slime. It shifts colors constantly." + desc = "The " + JOB_RESEARCH_DIRECTOR + "'s pet slime. It shifts colors constantly." rainbow_core_candidate = FALSE // Doing pacify() in initialize() won't actually pacify the AI due to the ai_holder not existing due to parent initialize() not being called yet. // Instead lets just give them an ai_holder that does that for us. diff --git a/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/xenobio.dm b/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/xenobio.dm index d4e96c23d5..ce86efdc61 100644 --- a/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/xenobio.dm +++ b/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/xenobio.dm @@ -172,7 +172,7 @@ var/datum/ai_holder/simple_mob/xenobio_slime/AI = ai_holder AI.pacify() - faction = "neutral" + faction = FACTION_NEUTRAL // If for whatever reason the mob AI (or player) decides to try to attack something anyways. melee_damage_upper = 0 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/bat.dm b/code/modules/mob/living/simple_mob/subtypes/vore/bat.dm index 9d67740a5c..0d682ffd2e 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/bat.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/bat.dm @@ -22,7 +22,7 @@ say_list_type = /datum/say_list/bat ai_holder_type = /datum/ai_holder/simple_mob/retaliate/edible - faction = "vampire" + faction = FACTION_VAMPIRE allow_mind_transfer = TRUE diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/bee.dm b/code/modules/mob/living/simple_mob/subtypes/vore/bee.dm index a19f37a00d..26d7dcb2d3 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/bee.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/bee.dm @@ -38,7 +38,7 @@ max_n2 = 0 minbodytemp = 0 - faction = "bee" + faction = FACTION_BEE var/poison_type = "spidertoxin" // The reagent that gets injected when it attacks, can be changed to different toxin. var/poison_chance = 10 // Chance for injection to occur. diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/bigdragon.dm b/code/modules/mob/living/simple_mob/subtypes/vore/bigdragon.dm index 57cb4d07ca..a7c942de66 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/bigdragon.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/bigdragon.dm @@ -94,7 +94,7 @@ I think I covered everything. vore_pounce_maxhealth = 125 vore_bump_emote = "tries to snap up" icon_dead = "dragon-dead" - faction = "dragon" + faction = FACTION_DRAGON glow_range = 7 glow_intensity = 3 glow_color = "#ED9200" @@ -189,7 +189,7 @@ I think I covered everything. /mob/living/simple_mob/vore/bigdragon/friendly ai_holder_type = /datum/ai_holder/simple_mob/healbelly/retaliate/dragon desc = "A large, intimidating creature reminiscent of the traditional idea of medieval fire breathing lizards. This one seems particularly relaxed and jovial." - faction = "neutral" + faction = FACTION_NEUTRAL player_msg = "You're a variant of the large dragon stripped of its firebreath attack (harm intent). You can still charge (disarm) and tail sweep (grab). Rest to heal slowly. Check your abilities tab for functions." norange = 1 noenrage = 1 @@ -249,7 +249,7 @@ I think I covered everything. verbs |= /mob/living/simple_mob/vore/bigdragon/proc/special_toggle //verbs |= /mob/living/simple_mob/vore/bigdragon/proc/set_name //Implemented upstream //verbs |= /mob/living/simple_mob/vore/bigdragon/proc/set_desc //Implemented upstream - faction = "neutral" + faction = FACTION_NEUTRAL /mob/living/simple_mob/vore/bigdragon/Initialize() ..() @@ -893,7 +893,7 @@ I think I covered everything. /mob/living/simple_mob/vore/bigdragon/do_tame(var/obj/O, var/mob/user) if(!user) return - if(faction == "neutral") + if(faction == FACTION_NEUTRAL) return //We're already friendly if(enraged || notame) say("NO FORGIVENESS") @@ -902,7 +902,7 @@ I think I covered everything. handle_tame_item(O, user) qdel(ai_holder) //Dragon goes to therapy - faction = "neutral" + faction = FACTION_NEUTRAL norange = 1 //Don't start fires while friendly vore_selected = gut2 //Just incase it eats someone right after being tamed ai_holder = new /datum/ai_holder/simple_mob/healbelly/retaliate/dragon(src) @@ -1047,7 +1047,7 @@ I think I covered everything. /mob/living/simple_mob/vore/bigdragon/proc/enrage(var/atom/movable/attacker) enraged = 1 norange = 0 - faction = "dragon" + faction = FACTION_DRAGON say("HAVE IT YOUR WAY THEN") qdel(ai_holder) var/datum/ai_holder/simple_mob/intentional/dragon/D = new /datum/ai_holder/simple_mob/intentional/dragon(src) diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/catgirl.dm b/code/modules/mob/living/simple_mob/subtypes/vore/catgirl.dm index 96c3143123..233112cfe7 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/catgirl.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/catgirl.dm @@ -35,7 +35,7 @@ "catgirlbrown" ) - faction = "catgirl" + faction = FACTION_CATGIRL /mob/living/simple_mob/vore/catgirl/New() ..() diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/cookiegirl.dm b/code/modules/mob/living/simple_mob/subtypes/vore/cookiegirl.dm index 42ebdf3728..2f4af12aaa 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/cookiegirl.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/cookiegirl.dm @@ -21,7 +21,7 @@ say_list_type = /datum/say_list/cookiegirl ai_holder_type = /datum/ai_holder/simple_mob/passive/cookiegirl - faction = "cookiegirl" + faction = FACTION_COOKIEGIRL // Activate Noms! /mob/living/simple_mob/vore/cookiegirl @@ -55,4 +55,4 @@ /datum/ai_holder/simple_mob/passive/cookiegirl base_wander_delay = 8 - intelligence_level = AI_NORMAL //not sure why we have this, but I'm just porting. \ No newline at end of file + intelligence_level = AI_NORMAL //not sure why we have this, but I'm just porting. diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/corrupt_hounds.dm b/code/modules/mob/living/simple_mob/subtypes/vore/corrupt_hounds.dm index 492bb03a65..00668bd579 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/corrupt_hounds.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/corrupt_hounds.dm @@ -22,7 +22,7 @@ icon = 'icons/mob/vore64x32.dmi' has_eye_glow = TRUE - faction = "corrupt" + faction = FACTION_CORRUPT maxHealth = 200 health = 200 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/cryptdrake.dm b/code/modules/mob/living/simple_mob/subtypes/vore/cryptdrake.dm index f6c1ab75ff..8299939f9a 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/cryptdrake.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/cryptdrake.dm @@ -7,7 +7,7 @@ icon_living = "cryptdrake" icon_state = "cryptdrake" icon_rest = "cryptdrake" - faction = "dragon" + faction = FACTION_DRAGON old_x = -48 old_y = 0 vis_height = 92 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/deathclaw.dm b/code/modules/mob/living/simple_mob/subtypes/vore/deathclaw.dm index d17499abcd..133e29d632 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/deathclaw.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/deathclaw.dm @@ -32,7 +32,7 @@ attacktext = list("mauled") - faction = "deathclaw" + faction = FACTION_DEATHCLAW maxHealth = 200 health = 200 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/demon/demon.dm b/code/modules/mob/living/simple_mob/subtypes/vore/demon/demon.dm index 22d75d0ab4..5471175593 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/demon/demon.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/demon/demon.dm @@ -9,7 +9,7 @@ icon = 'icons/mob/demon_vr.dmi' vis_height = 47 - faction = "demon" + faction = FACTION_DEMON maxHealth = 30 health = 30 movement_cooldown = -2 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/devil.dm b/code/modules/mob/living/simple_mob/subtypes/vore/devil.dm index 2d945ea4c6..26ebf4dc84 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/devil.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/devil.dm @@ -8,7 +8,7 @@ icon_living = "devil" icon_state = "devil" icon_rest = "devil" - faction = "devil" + faction = FACTION_DEVIL old_x = -16 old_y = 0 default_pixel_x = -16 @@ -264,4 +264,3 @@ else if(!stand_ground) ai_log("engage_target() : Target ([target]) too far away. Exiting.", AI_LOG_DEBUG) set_stance(STANCE_APPROACH) - diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/dino.dm b/code/modules/mob/living/simple_mob/subtypes/vore/dino.dm index 9d6475b254..aa3ddaeb44 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/dino.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/dino.dm @@ -48,4 +48,4 @@ vore_icons = SA_ICON_LIVING /mob/living/simple_mob/vore/aggressive/dino/virgo3b - faction = "virgo3b" + faction = FACTION_VIRGO3B diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/dominated_brain.dm b/code/modules/mob/living/simple_mob/subtypes/vore/dominated_brain.dm index 6058a4320d..a7c4296fd6 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/dominated_brain.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/dominated_brain.dm @@ -201,7 +201,7 @@ if(!pred.ckey) to_chat(prey, "\The [pred] isn't able to be dominated.") return - if(isrobot(pred) && jobban_isbanned(prey, "Cyborg")) + if(isrobot(pred) && jobban_isbanned(prey, JOB_CYBORG)) to_chat(prey, "Forces beyond your comprehension forbid you from taking control of [pred].") return if(prey.prey_controlled) @@ -437,7 +437,7 @@ if(!prey.ckey) to_chat(pred, "\The [prey] cannot take control.") return - if(isrobot(pred) && jobban_isbanned(prey, "Cyborg")) + if(isrobot(pred) && jobban_isbanned(prey, JOB_CYBORG)) to_chat(pred, "Forces beyond your comprehension prevent you from giving [prey] control.") return if(prey.prey_controlled) diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/dragon.dm b/code/modules/mob/living/simple_mob/subtypes/vore/dragon.dm index 0be1ac7907..aac50f5c00 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/dragon.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/dragon.dm @@ -8,7 +8,7 @@ icon = 'icons/mob/vore64x64.dmi' vis_height = 64 - faction = "dragon" + faction = FACTION_DRAGON maxHealth = 500 // Boss health = 500 see_in_dark = 8 @@ -92,7 +92,7 @@ catalogue_data = list(/datum/category_item/catalogue/fauna/phoron_dragon) maxHealth = 300 health = 300 - faction = "virgo3b" + faction = FACTION_VIRGO3B icon_dead = "phoron_dragon_dead" icon_living = "phoron_dragon" icon_state = "phoron_dragon" @@ -120,7 +120,7 @@ tt_desc = "Astra Draconinae" maxHealth = 300 health = 300 - faction = "dragon" + faction = FACTION_DRAGON icon_dead = "space_dragon_dead" icon_living = "space_dragon" icon_state = "space_dragon" diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/fennec.dm b/code/modules/mob/living/simple_mob/subtypes/vore/fennec.dm index 5398b3efaa..65b712c2cf 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/fennec.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/fennec.dm @@ -33,7 +33,7 @@ icon_rest = "fennec_rest" icon = 'icons/mob/vore.dmi' - faction = "fennec" + faction = FACTION_FENNEC maxHealth = 30 health = 30 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/fennix.dm b/code/modules/mob/living/simple_mob/subtypes/vore/fennix.dm index 3cdff70beb..3516d2c434 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/fennix.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/fennix.dm @@ -8,7 +8,7 @@ icon_dead = "fennix_dead" icon = 'icons/mob/vore.dmi' - faction = "fennec" // Will protec other fenfens + faction = FACTION_FENNEC // Will protec other fenfens maxHealth = 60 health = 60 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/greatwolf.dm b/code/modules/mob/living/simple_mob/subtypes/vore/greatwolf.dm index 0e57e995db..e2b473629d 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/greatwolf.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/greatwolf.dm @@ -8,7 +8,7 @@ icon_living = "whitewolf" icon_state = "whitewolf" icon_rest = "whitewolf-rest" - faction = "sif" + faction = FACTION_SIF has_eye_glow = TRUE meat_amount = 40 //Big dog, lots of meat meat_type = /obj/item/reagent_containers/food/snacks/meat diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/horse.dm b/code/modules/mob/living/simple_mob/subtypes/vore/horse.dm index 5911fe796c..51511ebcc8 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/horse.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/horse.dm @@ -8,7 +8,7 @@ icon_dead = "horse-dead" icon = 'icons/mob/vore.dmi' - faction = "horse" + faction = FACTION_HORSE maxHealth = 60 health = 60 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/jelly.dm b/code/modules/mob/living/simple_mob/subtypes/vore/jelly.dm index 4a4ab6c118..3e84d02a04 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/jelly.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/jelly.dm @@ -7,7 +7,7 @@ icon_state = "jelly" icon = 'icons/mob/vore.dmi' - faction = "virgo2" + faction = FACTION_VIRGO2 maxHealth = 50 health = 50 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/lamia.dm b/code/modules/mob/living/simple_mob/subtypes/vore/lamia.dm index 912ae09a09..ed91a897a8 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/lamia.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/lamia.dm @@ -24,7 +24,7 @@ default_pixel_x = -16 pixel_x = -16 pixel_y = 0 - faction = "lamia" + faction = FACTION_LAMIA // Vore tags vore_active = 1 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/leopardmander.dm b/code/modules/mob/living/simple_mob/subtypes/vore/leopardmander.dm index f9566ceb01..5a808e65ec 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/leopardmander.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/leopardmander.dm @@ -8,7 +8,7 @@ icon_living = "leopardmander" icon_state = "leopardmander" icon_rest = "leopardmander-rest" - faction = "neutral" + faction = FACTION_NEUTRAL meat_amount = 40 //I mean... meat_type = /obj/item/reagent_containers/food/snacks/meat old_x = -48 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/meowl.dm b/code/modules/mob/living/simple_mob/subtypes/vore/meowl.dm index 083970d8b5..3e97565293 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/meowl.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/meowl.dm @@ -8,7 +8,7 @@ icon_living = "meowl" icon_state = "meowl" icon_rest = "meowl_rest" - faction = "meowl" + faction = FACTION_MEOWL friendly = list("nudges", "sniffs on", "rumbles softly at", "nuzzles") response_help = "pets" response_disarm = "shoves" diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mimic.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mimic.dm index e6fee921b7..0b86aa2754 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/mimic.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/mimic.dm @@ -79,7 +79,7 @@ icon_living = "crate" icon = 'icons/obj/storage.dmi' - faction = "mimic" + faction = FACTION_MIMIC maxHealth = 125 health = 125 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Big.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Big.dm index a78abccd59..c3e4c4ea0d 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Big.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Big.dm @@ -1,6 +1,6 @@ /mob/living/simple_mob/clowns/big tt_desc = "E Homo sapiens corydon horrificus" //this clown is stronk - faction = "clown" + faction = FACTION_CLOWN maxHealth = 200 health = 200 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Clowns.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Clowns.dm index c04aa04371..f6a5fea363 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Clowns.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Clowns.dm @@ -1,10 +1,10 @@ /mob/living/simple_mob/clowns/ tt_desc = "E Homo sapiens corydon" //this is a clown - faction = "clown" + faction = FACTION_CLOWN movement_sound = 'sound/effects/clownstep2.ogg' attack_sound = 'sound/effects/Whipcrack.ogg' - faction = "clown" + faction = FACTION_CLOWN maxHealth = 100 health = 100 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/bus.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/bus.dm index 6ecc2b5bb7..75782e987a 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/bus.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/bus.dm @@ -1,6 +1,6 @@ /mob/living/simple_mob/clowns/big/c_shift tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown - faction = "clown" + faction = FACTION_CLOWN /mob/living/simple_mob/clowns/big/c_shift/New() ..() diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/honkelemental.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/honkelemental.dm index c4177ced59..2f9f0b578c 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/honkelemental.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/honkelemental.dm @@ -9,7 +9,7 @@ icon_gib = "generic_gib" vis_height = 96 - faction = "clown" + faction = FACTION_CLOWN loot_list = list(/obj/item/bikehorn = 100) diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/regularclowns.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/regularclowns.dm index 10eb308e70..2e80377585 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/regularclowns.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/regularclowns.dm @@ -353,7 +353,7 @@ icon_gib = "generic_gib" vis_height = 32 - faction = "clown" + faction = FACTION_CLOWN loot_list = list(/obj/item/bikehorn = 100) diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/oregrub.dm b/code/modules/mob/living/simple_mob/subtypes/vore/oregrub.dm index 47c7ccffae..82f28cae67 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/oregrub.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/oregrub.dm @@ -33,7 +33,7 @@ icon_living = "oregrub" icon_dead = "oregrub-dead" - faction = "grubs" + faction = FACTION_GRUBS maxHealth = 50 //oregrubs are quite hardy health = 50 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm b/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm index 4d9efaac20..16b7103f8d 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm @@ -15,7 +15,7 @@ icon_living = "otie" icon_dead = "otie-dead" icon_rest = "otie_rest" - faction = "otie" + faction = FACTION_OTIE maxHealth = 150 health = 150 minbodytemp = 200 @@ -70,7 +70,7 @@ icon_living = "photie" icon_dead = "photie-dead" icon_rest = "photie_rest" - faction = "virgo3b" + faction = FACTION_VIRGO3B tame_chance = 5 // Only a 1 in 20 chance of success. It's feral. What do you expect? // Lazy way of making sure this otie survives outside. min_oxy = 0 @@ -98,7 +98,7 @@ icon_living = "hotie" icon_dead = "hotie-dead" icon_rest = "hotie_rest" - faction = "cult" + faction = FACTION_CULT tame_chance = 20 // Lazy way of making sure this otie survives outside. min_oxy = 0 @@ -115,7 +115,7 @@ /mob/living/simple_mob/vore/otie/red/friendly //gets the pet2tame feature and doesn't kill you right away name = "red otie" desc = "Seems this ominous looking longdog has been infused with wicked infernal forces. This one seems rather peaceful though." - faction = "neutral" + faction = FACTION_NEUTRAL tamed = 1 /mob/living/simple_mob/vore/otie/red/chubby //gets the pet2tame feature and doesn't kill you right away @@ -124,13 +124,13 @@ icon_state = "hotiec" icon_living = "hotiec" icon_rest = "hotiec_rest" - faction = "neutral" + faction = FACTION_NEUTRAL tamed = 1 /mob/living/simple_mob/vore/otie/friendly //gets the pet2tame feature and doesn't kill you right away name = "otie" desc = "The classic bioengineered longdog. This one might even tolerate you!" - faction = "neutral" + faction = FACTION_NEUTRAL tamed = 1 /mob/living/simple_mob/vore/otie/friendly/chubby @@ -146,7 +146,7 @@ icon_state = "cotie" icon_living = "cotie" icon_rest = "cotie_rest" - faction = "neutral" + faction = FACTION_NEUTRAL tamed = 1 /mob/living/simple_mob/vore/otie/cotie/chubby @@ -181,7 +181,7 @@ icon_living = "sotie" icon_rest = "sotie_rest" icon_dead = "sotie-dead" - faction = "neutral" + faction = FACTION_NEUTRAL maxHealth = 200 //armored or something health = 200 tamed = 1 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/pakkun.dm b/code/modules/mob/living/simple_mob/subtypes/vore/pakkun.dm index e9fa9ad6f6..af1aa363d5 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/pakkun.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/pakkun.dm @@ -24,7 +24,7 @@ icon_rest = "pakkun-rest" icon = 'icons/mob/vore.dmi' - faction = "pakkun" + faction = FACTION_PAKKUN movement_cooldown = 2 can_be_drop_pred = 1 //They can tongue vore. diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/panther.dm b/code/modules/mob/living/simple_mob/subtypes/vore/panther.dm index 4f284dec48..a67f6c33b9 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/panther.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/panther.dm @@ -10,7 +10,7 @@ icon = 'icons/mob/vore64x64.dmi' vis_height = 64 - faction = "panther" + faction = FACTION_PANTHER maxHealth = 200 health = 200 movement_cooldown = 0.5 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/peasant.dm b/code/modules/mob/living/simple_mob/subtypes/vore/peasant.dm index 1bd10e9ee1..3448e7a755 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/peasant.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/peasant.dm @@ -28,7 +28,7 @@ "peasantmb" ) - faction = "peasant" + faction = FACTION_PEASANT /mob/living/simple_mob/vore/peasant/New() ..() @@ -69,4 +69,3 @@ B.escapechance = 15 B.selective_preference = DM_HOLD B.escape_stun = 5 - diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/plants.dm b/code/modules/mob/living/simple_mob/subtypes/vore/plants.dm index 1b027bd02c..f2f3053c1c 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/plants.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/plants.dm @@ -10,7 +10,7 @@ icon_living = "flytrap" icon_state = "flytrap" icon_rest = "flytrap" - faction = "plants" + faction = FACTION_PLANTS harm_intent_damage = 0 melee_damage_lower = 0 melee_damage_upper = 0 @@ -91,7 +91,7 @@ icon_living = "pitcher" icon_state = "pitcher" icon_rest = "pitcher" - faction = "plants" + faction = FACTION_PLANTS movement_cooldown = 0 harm_intent_damage = 0 melee_damage_lower = 0 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/rabbit.dm b/code/modules/mob/living/simple_mob/subtypes/vore/rabbit.dm index 2461854ff0..c3f8d0b4ee 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/rabbit.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/rabbit.dm @@ -14,7 +14,7 @@ icon_rest = "rabbit_brown_rest" icon = 'icons/mob/vore.dmi' - faction = "rabbit" + faction = FACTION_RABBIT maxHealth = 30 health = 30 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/raptor.dm b/code/modules/mob/living/simple_mob/subtypes/vore/raptor.dm index 3b3f712349..76e9d0a297 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/raptor.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/raptor.dm @@ -7,7 +7,7 @@ icon_living = "raptorpurple" icon_state = "raptorpurple" icon_rest = "raptorpurple" - faction = "raptor" + faction = FACTION_RAPTOR meat_amount = 40 //Big dog, lots of meat meat_type = /obj/item/reagent_containers/food/snacks/meat old_x = -48 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/rat.dm b/code/modules/mob/living/simple_mob/subtypes/vore/rat.dm index 83a07d3407..a52519d0a4 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/rat.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/rat.dm @@ -28,7 +28,7 @@ icon_living = "rous" icon_dead = "rous-dead" icon_rest = "rous_rest" - faction = "mouse" + faction = FACTION_MOUSE icon = 'icons/mob/vore64x32.dmi' maxHealth = 150 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/redpanda.dm b/code/modules/mob/living/simple_mob/subtypes/vore/redpanda.dm index dc2da763e1..430e6efd4a 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/redpanda.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/redpanda.dm @@ -9,7 +9,7 @@ icon_rest = "wah_rest" icon = 'icons/mob/vore.dmi' - faction = "redpanda" //stop naming stuff vaguely + faction = FACTION_REDPANDA //stop naming stuff vaguely maxHealth = 30 health = 30 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/scel.dm b/code/modules/mob/living/simple_mob/subtypes/vore/scel.dm index 316ae35d28..1893dcfcc7 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/scel.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/scel.dm @@ -11,7 +11,7 @@ icon_living = "scel_orange" icon_state = "scel_orange" icon_rest = "scel_orange-rest" - faction = "scel" + faction = FACTION_SCEL old_x = -48 old_y = 0 vis_height = 92 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/scrubble.dm b/code/modules/mob/living/simple_mob/subtypes/vore/scrubble.dm index ed51603bf8..326ee5973c 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/scrubble.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/scrubble.dm @@ -8,7 +8,7 @@ icon_living = "scrubble" icon_state = "scrubble" icon_rest = "scrubble-rest" - faction = "scrubble" + faction = FACTION_SCRUBBLE friendly = list("nudges", "sniffs on", "rumbles softly at", "nuzzles") response_help = "bumps" response_disarm = "shoves" @@ -140,4 +140,4 @@ if(!new_target) return null give_target(new_target) - return new_target \ No newline at end of file + return new_target diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/seagull.dm b/code/modules/mob/living/simple_mob/subtypes/vore/seagull.dm index ee418b1087..26153657ae 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/seagull.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/seagull.dm @@ -18,7 +18,7 @@ icon_rest = "seagull" icon = 'icons/mob/vore.dmi' - faction = "seagull" + faction = FACTION_SEAGULL maxHealth = 25 health = 25 @@ -57,4 +57,4 @@ if(vore_fullness >= 2) movement_cooldown = 10 else if(movement_cooldown == 10) - movement_cooldown = initial(movement_cooldown) \ No newline at end of file + movement_cooldown = initial(movement_cooldown) diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/sect_drone.dm b/code/modules/mob/living/simple_mob/subtypes/vore/sect_drone.dm index b0d8cec5e2..532bbdc5ff 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/sect_drone.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/sect_drone.dm @@ -33,7 +33,7 @@ vore_eyes = TRUE custom_eye_color = "#00FFFF" - faction = "insects" + faction = FACTION_INSECTS maxHealth = 90 health = 90 see_in_dark = 8 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/sect_queen.dm b/code/modules/mob/living/simple_mob/subtypes/vore/sect_queen.dm index 3d2ed0fd63..1ce4592765 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/sect_queen.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/sect_queen.dm @@ -36,7 +36,7 @@ vore_eyes = TRUE custom_eye_color = "#FF0000" - faction = "insects" + faction = FACTION_INSECTS maxHealth = 200 health = 200 see_in_dark = 8 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/shadekin.dm b/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/shadekin.dm index 03bd5b35db..3c54c12639 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/shadekin.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/shadekin.dm @@ -5,7 +5,7 @@ icon = 'icons/mob/vore_shadekin.dmi' icon_state = "map_example" icon_living = "map_example" - faction = "shadekin" + faction = FACTION_SHADEKIN ui_icons = 'icons/mob/shadekin_hud.dmi' mob_class = MOB_CLASS_HUMANOID mob_bump_flag = HUMAN diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/sheep.dm b/code/modules/mob/living/simple_mob/subtypes/vore/sheep.dm index a3347655ef..7b388055e8 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/sheep.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/sheep.dm @@ -8,7 +8,7 @@ icon_dead = "sheep-dead" icon = 'icons/mob/vore.dmi' - faction = "sheep" + faction = FACTION_SHEEP maxHealth = 40 health = 40 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/snake.dm b/code/modules/mob/living/simple_mob/subtypes/vore/snake.dm index e36744a397..03945dae5a 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/snake.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/snake.dm @@ -31,7 +31,7 @@ icon = 'icons/mob/vore64x64.dmi' vis_height = 64 - faction = "snake" + faction = FACTION_SNAKE maxHealth = 200 health = 200 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/softdog.dm b/code/modules/mob/living/simple_mob/subtypes/vore/softdog.dm index 078da10636..b111ff283d 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/softdog.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/softdog.dm @@ -15,7 +15,7 @@ icon_rest = "woof_rest" icon = 'icons/mob/vore.dmi' - faction = "dog" + faction = FACTION_DOG maxHealth = 600 health = 600 movement_cooldown = -1 @@ -172,7 +172,7 @@ icon_rest = "cass_rest" ic_revivable = 0 - faction = "theatre" + faction = FACTION_THEATRE gender = PLURAL ai_holder_type = /datum/ai_holder/simple_mob/woof/cass diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/solargrub.dm b/code/modules/mob/living/simple_mob/subtypes/vore/solargrub.dm index 94219f62a7..1a866bf5ed 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/solargrub.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/solargrub.dm @@ -24,7 +24,7 @@ List of things solar grubs should be able to do: icon_living = "solargrub" icon_dead = "solargrub-dead" - faction = "grubs" + faction = FACTION_GRUBS maxHealth = 50 //grubs can take a lot of harm health = 50 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/solargrub_larva.dm b/code/modules/mob/living/simple_mob/subtypes/vore/solargrub_larva.dm index 4cc6be0fbb..543e373113 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/solargrub_larva.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/solargrub_larva.dm @@ -20,7 +20,7 @@ var/global/list/grub_machine_overlays = list() meat_type = /obj/item/reagent_containers/food/snacks/meat/grubmeat butchery_loot = list() // No hides - faction = "grubs" + faction = FACTION_GRUBS response_help = "pats" response_disarm = "nudges" diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/sonadile.dm b/code/modules/mob/living/simple_mob/subtypes/vore/sonadile.dm index 30a37484de..49cf20946f 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/sonadile.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/sonadile.dm @@ -8,7 +8,7 @@ icon_living = "sonadile" icon_state = "sonadile" icon_rest = "sonadile" - faction = "sonadile" + faction = FACTION_SONADILE old_x = -16 old_y = 0 default_pixel_x = -16 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/stalker.dm b/code/modules/mob/living/simple_mob/subtypes/vore/stalker.dm index 6e10ccdf60..876e857c0c 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/stalker.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/stalker.dm @@ -8,7 +8,7 @@ icon_living = "stalker" icon_state = "stalker" icon_rest = "stalker-rest" - faction = "stalker" + faction = FACTION_STALKER old_x = -16 old_y = 0 default_pixel_x = -16 @@ -274,4 +274,3 @@ else if(!stand_ground) ai_log("engage_target() : Target ([target]) too far away. Exiting.", AI_LOG_DEBUG) set_stance(STANCE_APPROACH) - diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/succubi.dm b/code/modules/mob/living/simple_mob/subtypes/vore/succubi.dm index 057abb051f..1032d3fc1f 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/succubi.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/succubi.dm @@ -29,7 +29,7 @@ "succubusgingerclothed" ) - faction = "succubus" + faction = FACTION_SUCCUBUS /mob/living/simple_mob/vore/succubus/New() ..() @@ -115,4 +115,4 @@ "%pred gently rubs a finger over her %belly, the gentle pressure breaking your concentration and sending you sinking back into her form.", "Try as you might, you barely make an impression before %pred simply clenches with the most minimal effort, binding you back into her %belly.", "Unfortunately, %pred seems to have absolutely no intention of letting you go, and your futile effort goes nowhere.", - "Strain as you might, you can't keep up the effort long enough before you sink back into %pred's %belly.") \ No newline at end of file + "Strain as you might, you can't keep up the effort long enough before you sink back into %pred's %belly.") diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/vampire.dm b/code/modules/mob/living/simple_mob/subtypes/vore/vampire.dm index 96a760bd28..ab7198912c 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/vampire.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/vampire.dm @@ -28,7 +28,7 @@ "countessnude" ) - faction = "vampire" + faction = FACTION_VAMPIRE /mob/living/simple_mob/vore/vampire/New() ..() diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/vore_hostile.dm b/code/modules/mob/living/simple_mob/subtypes/vore/vore_hostile.dm index 6bd4cd2ff9..9df4d6982f 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/vore_hostile.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/vore_hostile.dm @@ -22,7 +22,7 @@ icon_rest = "abyss_lurker" vis_height = 64 - faction = "macrobacteria" + faction = FACTION_MACROBACTERIA maxHealth = 600 health = 600 movement_cooldown = 3 @@ -129,7 +129,7 @@ icon_rest = "filter" vis_height = 64 - faction = "macrobacteria" + faction = FACTION_MACROBACTERIA maxHealth = 600 health = 600 @@ -257,7 +257,7 @@ icon_rest = "cube" vis_height = 64 - faction = "macrobacteria" + faction = FACTION_MACROBACTERIA maxHealth = 500 health = 500 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/weretiger.dm b/code/modules/mob/living/simple_mob/subtypes/vore/weretiger.dm index 53e68d59a4..db76f04435 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/weretiger.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/weretiger.dm @@ -9,7 +9,7 @@ icon_rest = null icon = 'icons/mob/bigcat.dmi' - faction = "panther" + faction = FACTION_PANTHER maxHealth = 150 health = 150 movement_cooldown = -1 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/wolf.dm b/code/modules/mob/living/simple_mob/subtypes/vore/wolf.dm index d9b54f6612..d59a89b163 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/wolf.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/wolf.dm @@ -143,7 +143,7 @@ icon_living = "rykka" icon_state = "rykka" icon_rest = "rykka_rest" - faction = "underdark" + faction = FACTION_UNDERDARK has_eye_glow = TRUE min_oxy = 0 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/wolfgirl.dm b/code/modules/mob/living/simple_mob/subtypes/vore/wolfgirl.dm index cc5779da73..bb76da5e04 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/wolfgirl.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/wolfgirl.dm @@ -8,7 +8,7 @@ icon_dead = "wolfgirl-dead" icon = 'icons/mob/vore.dmi' - faction = "wolfgirl" + faction = FACTION_WOLFGIRL maxHealth = 30 health = 30 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/wolftaur.dm b/code/modules/mob/living/simple_mob/subtypes/vore/wolftaur.dm index e4e35e837c..29ab5a478a 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/wolftaur.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/wolftaur.dm @@ -36,7 +36,7 @@ default_pixel_x = -16 pixel_x = -16 pixel_y = 0 - faction = "wolftaur" + faction = FACTION_WOLFTAUR /mob/living/simple_mob/vore/wolftaur/New() ..() @@ -155,4 +155,3 @@ icon_living = "wolftaurdark" icon_rest = "wolftaurdark_rest" icon_dead = "wolftaurdark-dead" - diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/xeno_vore.dm b/code/modules/mob/living/simple_mob/subtypes/vore/xeno_vore.dm index 9d673bd73b..dc3b246cf7 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/xeno_vore.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/xeno_vore.dm @@ -24,7 +24,7 @@ icon = 'icons/mob/vore64x64.dmi' vis_height = 64 - faction = "xeno" + faction = FACTION_XENO maxHealth = 150 health = 150 see_in_dark = 10 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/zz_vore_overrides.dm b/code/modules/mob/living/simple_mob/subtypes/vore/zz_vore_overrides.dm index 50c1824a5b..392fba99fd 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/zz_vore_overrides.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/zz_vore_overrides.dm @@ -238,7 +238,7 @@ // Override stuff for holodeck carp to make them not digest when set to safe! /mob/living/simple_mob/animal/space/carp/holographic/init_vore() . = ..() - var/safe = (faction == "neutral") + var/safe = (faction == FACTION_NEUTRAL) for(var/obj/belly/B as anything in vore_organs) B.digest_mode = safe ? DM_HOLD : vore_default_mode @@ -248,4 +248,4 @@ B.digest_mode = safe ? DM_HOLD : vore_default_mode /mob/living/simple_mob/animal/passive/mouse - faction = "mouse" //Giving mice a faction so certain mobs can get along with them. + faction = FACTION_MOUSE //Giving mice a faction so certain mobs can get along with them. diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index d99938a91a..a42b9291de 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -671,7 +671,7 @@ return stat == DEAD /mob/proc/is_mechanical() - if(mind && (mind.assigned_role == "Cyborg" || mind.assigned_role == "AI")) + if(mind && (mind.assigned_role == JOB_CYBORG || mind.assigned_role == JOB_AI)) return 1 return istype(src, /mob/living/silicon) || get_species() == "Machine" @@ -1184,6 +1184,7 @@ /mob/proc/set_viewsize(var/new_view = world.view) if (client && new_view != client.view) client.view = new_view + client.attempt_auto_fit_viewport() return TRUE return FALSE @@ -1205,6 +1206,18 @@ if(src.throw_icon && !issilicon(src)) // Silicon use this for something else. Do not overwrite their HUD icon src.throw_icon.icon_state = "act_throw_on" +/mob/verb/spacebar_throw_on() + set name = ".throwon" + set hidden = TRUE + set instant = TRUE + throw_mode_on() + +/mob/verb/spacebar_throw_off() + set name = ".throwoff" + set hidden = TRUE + set instant = TRUE + throw_mode_off() + /mob/proc/isSynthetic() return 0 diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index ae88b489f7..83cea738c4 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -153,7 +153,7 @@ var/voice_name = "unidentifiable voice" - var/faction = "neutral" //Used for checking whether hostile simple animals will attack you, possibly more stuff later + var/faction = FACTION_NEUTRAL //Used for checking whether hostile simple animals will attack you, possibly more stuff later var/can_be_antagged = FALSE // To prevent pAIs/mice/etc from getting antag in autotraitor and future auto- modes. Uses inheritance instead of a bunch of typechecks. var/away_from_keyboard = FALSE //are we at, or away, from our keyboard? diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index bbdd9ffb47..2221905e41 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -556,7 +556,7 @@ if(!(client.prefs.GetJobDepartment(job, 1) & job.flag)) if(!(client.prefs.GetJobDepartment(job, 2) & job.flag)) if(!(client.prefs.GetJobDepartment(job, 3) & job.flag)) - if(!show_hidden_jobs && job.title != "Assistant") // Assistant is always an option + if(!show_hidden_jobs && job.title != JOB_ALT_ASSISTANT) // Assistant is always an option continue var/active = 0 // Only players with the job assigned and AFK for less than 10 minutes count as active @@ -609,7 +609,7 @@ if(mind) mind.active = 0 //we wish to transfer the key manually // VOREStation edit to disable the destructive forced renaming for our responsible whitelist clowns. - //if(mind.assigned_role == "Clown") //give them a clownname if they are a clown + //if(mind.assigned_role == JOB_CLOWN) //give them a clownname if they are a clown // new_character.real_name = pick(clown_names) //I hate this being here of all places but unfortunately dna is based on real_name! // new_character.rename_self("clown") mind.original = new_character diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index 6a18c482dc..54a5f2cf29 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -204,7 +204,7 @@ var/datum/job/previewJob // Determine what job is marked as 'High' priority, and dress them up as such. if(job_civilian_low & ASSISTANT) - previewJob = job_master.GetJob(USELESS_JOB) + previewJob = job_master.GetJob(JOB_ALT_VISITOR) else if(ispAI(client.mob)) //VOREStation Edit! - pAIs shouldn't wear job gear~! //Don't do anything! else @@ -268,7 +268,7 @@ var/datum/job/highJob // Determine what job is marked as 'High' priority, and dress them up as such. if(job_civilian_low & ASSISTANT) - highJob = job_master.GetJob("Assistant") + highJob = job_master.GetJob(JOB_ALT_ASSISTANT) else for(var/datum/job/job in job_master.occupations) var/job_flag diff --git a/code/modules/mob/new_player/skill.dm b/code/modules/mob/new_player/skill.dm index e1a0b50b7f..e779ed04b2 100644 --- a/code/modules/mob/new_player/skill.dm +++ b/code/modules/mob/new_player/skill.dm @@ -17,7 +17,7 @@ var/list/SKILL_ENGINEER = list("field" = "Engineering", "EVA" = SKILL_BASIC, "co var/list/SKILL_ORGAN_ROBOTICIST = list("field" = "Science", "devices" = SKILL_ADEPT, "electrical" = SKILL_BASIC, "computer" = SKILL_ADEPT, "anatomy" = SKILL_BASIC) var/list/SKILL_SECURITY_OFFICER = list("field" = "Security", "combat" = SKILL_BASIC, "weapons" = SKILL_ADEPT, "law" = SKILL_ADEPT, "forensics" = SKILL_BASIC) var/list/SKILL_CHEMIST = list("field" = "Science", "chemistry" = SKILL_ADEPT, "science" = SKILL_ADEPT, "medical" = SKILL_BASIC, "devices" = SKILL_BASIC) -var/global/list/SKILL_PRE = list("Engineer" = SKILL_ENGINEER, "Roboticist" = SKILL_ORGAN_ROBOTICIST, "Security Officer" = SKILL_SECURITY_OFFICER, "Chemist" = SKILL_CHEMIST) +var/global/list/SKILL_PRE = list(JOB_ENGINEER = SKILL_ENGINEER, JOB_ROBOTICIST = SKILL_ORGAN_ROBOTICIST, JOB_SECURITY_OFFICER = SKILL_SECURITY_OFFICER, JOB_CHEMIST = SKILL_CHEMIST) /datum/skill/management ID = "management" diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index c325445044..e3b53493df 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -79,7 +79,7 @@ if(move) var/obj/loc_landmark for(var/obj/effect/landmark/start/sloc in landmarks_list) - if (sloc.name != "AI") + if (sloc.name != JOB_AI) continue if ((locate(/mob/living) in sloc.loc) || (locate(/obj/structure/AIcore) in sloc.loc)) continue @@ -93,7 +93,7 @@ if (!loc_landmark) to_chat(src, "Oh god sorry we can't find an unoccupied AI spawn location, so we're spawning you on top of someone.") for(var/obj/effect/landmark/start/sloc in landmarks_list) - if (sloc.name == "AI") + if (sloc.name == JOB_AI) loc_landmark = sloc newloc = loc_landmark.loc @@ -162,7 +162,7 @@ if(mind) //TODO mind.transfer_to(O) - if(O.mind.assigned_role == "Cyborg") + if(O.mind.assigned_role == JOB_CYBORG) O.mind.original = O else if(mind && mind.special_role) O.mind.store_memory("In case you look at this after being borged, the objectives are only here until I find a way to make them not show up for you, as I can't simply delete them without screwing up round-end reporting. --NeoFite") @@ -170,12 +170,21 @@ O.key = key O.loc = loc +<<<<<<< HEAD O.job = "Cyborg" if(O.mind.assigned_role == "Cyborg") if(O.mind.role_alt_title == "Robot") O.mmi = new /obj/item/mmi/digital/posibrain(O) else if(O.mind.role_alt_title == "Drone") O.mmi = new /obj/item/mmi/digital/robot(O) +======= + O.job = JOB_CYBORG + if(O.mind.assigned_role == JOB_CYBORG) + if(O.mind.role_alt_title == JOB_ALT_ROBOT) + O.mmi = new /obj/item/device/mmi/digital/posibrain(O) + else if(O.mind.role_alt_title == JOB_ALT_DRONE) + O.mmi = new /obj/item/device/mmi/digital/robot(O) +>>>>>>> master else O.mmi = new /obj/item/mmi(O) diff --git a/code/modules/modular_computers/file_system/program.dm b/code/modules/modular_computers/file_system/program.dm index dde01acb61..d43abfa1a3 100644 --- a/code/modules/modular_computers/file_system/program.dm +++ b/code/modules/modular_computers/file_system/program.dm @@ -121,7 +121,7 @@ to_chat(user, "\The [computer] flashes an \"RFID Error - Unable to scan ID\" warning.") return 0 - if(access_to_check in I.access) + if(access_to_check in I.GetAccess()) return 1 else if(loud) to_chat(user, "\The [computer] flashes an \"Access Denied\" warning.") diff --git a/code/modules/modular_computers/file_system/programs/antagonist/access_decrypter.dm b/code/modules/modular_computers/file_system/programs/antagonist/access_decrypter.dm index 8e683ae096..033d1e3206 100644 --- a/code/modules/modular_computers/file_system/programs/antagonist/access_decrypter.dm +++ b/code/modules/modular_computers/file_system/programs/antagonist/access_decrypter.dm @@ -100,7 +100,7 @@ accesses.Add(list(list( "desc" = replacetext(get_access_desc(access), " ", " "), "ref" = access, - "allowed" = (access in id_card.access) ? 1 : 0 + "allowed" = (access in id_card.GetAccess()) ? 1 : 0 ))) regions.Add(list(list( @@ -109,4 +109,4 @@ ))) data["regions"] = regions - return data \ No newline at end of file + return data diff --git a/code/modules/modular_computers/file_system/programs/research/email_administration.dm b/code/modules/modular_computers/file_system/programs/research/email_administration.dm index 58e6a508a1..b97ed5ef4a 100644 --- a/code/modules/modular_computers/file_system/programs/research/email_administration.dm +++ b/code/modules/modular_computers/file_system/programs/research/email_administration.dm @@ -66,8 +66,13 @@ return TRUE // High security - can only be operated when the user has an ID with access on them. +<<<<<<< HEAD var/obj/item/card/id/I = usr.GetIdCard() if(!istype(I) || !(access_network in I.access)) +======= + var/obj/item/weapon/card/id/I = usr.GetIdCard() + if(!istype(I) || !(access_network in I.GetAccess())) +>>>>>>> master return TRUE switch(action) diff --git a/code/modules/modular_computers/file_system/programs/security/digitalwarrant.dm b/code/modules/modular_computers/file_system/programs/security/digitalwarrant.dm index ac3d65830d..d6c4d58d17 100644 --- a/code/modules/modular_computers/file_system/programs/security/digitalwarrant.dm +++ b/code/modules/modular_computers/file_system/programs/security/digitalwarrant.dm @@ -72,8 +72,13 @@ var/warrant_uid = 0 // The following actions will only be possible if the user has an ID with security access equipped. This is in line with modular computer framework's authentication methods, // which also use RFID scanning to allow or disallow access to some functions. Anyone can view warrants, editing requires ID. This also prevents situations where you show a tablet // to someone who is to be arrested, which allows them to change the stuff there. +<<<<<<< HEAD var/obj/item/card/id/I = usr.GetIdCard() if(!istype(I) || !I.registered_name || !(access_security in I.access)) +======= + var/obj/item/weapon/card/id/I = usr.GetIdCard() + if(!istype(I) || !I.registered_name || !(access_security in I.GetAccess())) +>>>>>>> master to_chat(usr, "Authentication error: Unable to locate ID with appropriate access to allow this operation.") return @@ -136,7 +141,7 @@ var/warrant_uid = 0 if("editwarrantauth") . = TRUE - if(!(access_hos in I.access)) // VOREStation edit begin + if(!(access_hos in I.GetAccess())) // VOREStation edit begin to_chat(usr, "You don't have the access to do this!") return // VOREStation edit end activewarrant.fields["auth"] = "[I.registered_name] - [I.assignment ? I.assignment : "(Unknown)"]" diff --git a/code/modules/paperwork/faxmachine.dm b/code/modules/paperwork/faxmachine.dm index 7ae1a2cc05..bff40ded24 100644 --- a/code/modules/paperwork/faxmachine.dm +++ b/code/modules/paperwork/faxmachine.dm @@ -197,7 +197,7 @@ var/list/adminfaxes = list() //cache for faxes that have been sent to admins rank = scan.assignment else if(login_type == LOGIN_TYPE_AI && isAI(usr)) authenticated = usr.name - rank = "AI" + rank = JOB_AI else if(login_type == LOGIN_TYPE_ROBOT && isrobot(usr)) authenticated = usr.name var/mob/living/silicon/robot/R = usr diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm index b15f00f01f..2eb7ae37d9 100644 --- a/code/modules/paperwork/folders.dm +++ b/code/modules/paperwork/folders.dm @@ -25,8 +25,13 @@ desc = "A white folder." icon_state = "folder_white" +<<<<<<< HEAD /obj/item/folder/blue_captain desc = "A blue folder with Site Manager markings." +======= +/obj/item/weapon/folder/blue_captain + desc = "A blue folder with " + JOB_SITE_MANAGER + " markings." +>>>>>>> master icon_state = "folder_captain" /obj/item/folder/blue_hop diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 07291b5b5d..28c119980c 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -517,7 +517,7 @@ /obj/item/paper/attackby(obj/item/P as obj, mob/user as mob) ..() var/clown = 0 - if(user.mind && (user.mind.assigned_role == "Clown")) + if(user.mind && (user.mind.assigned_role == JOB_CLOWN)) clown = 1 if(istype(P, /obj/item/tape_roll)) @@ -662,7 +662,7 @@ /obj/item/paper/courtroom name = "A Crash Course in Legal SOP on SS13" - info = "Roles:
    \nThe Detective is basically the investigator and prosecutor.
    \nThe Staff Assistant can perform these functions with written authority from the Detective.
    \nThe Site Manager/HoP/Warden is ct as the judicial authority.
    \nThe Security Officers are responsible for executing warrants, security during trial, and prisoner transport.
    \n
    \nInvestigative Phase:
    \nAfter the crime has been committed the Detective's job is to gather evidence and try to ascertain not only who did it but what happened. He must take special care to catalogue everything and don't leave anything out. Write out all the evidence on paper. Make sure you take an appropriate number of fingerprints. IF he must ask someone questions he has permission to confront them. If the person refuses he can ask a judicial authority to write a subpoena for questioning. If again he fails to respond then that person is to be jailed as insubordinate and obstructing justice. Said person will be released after he cooperates.
    \n
    \nONCE the FT has a clear idea as to who the criminal is he is to write an arrest warrant on the piece of paper. IT MUST LIST THE CHARGES. The FT is to then go to the judicial authority and explain a small version of his case. If the case is moderately acceptable the authority should sign it. Security must then execute said warrant.
    \n
    \nPre-Pre-Trial Phase:
    \nNow a legal representative must be presented to the defendant if said defendant requests one. That person and the defendant are then to be given time to meet (in the jail IS ACCEPTABLE). The defendant and his lawyer are then to be given a copy of all the evidence that will be presented at trial (rewriting it all on paper is fine). THIS IS CALLED THE DISCOVERY PACK. With a few exceptions, THIS IS THE ONLY EVIDENCE BOTH SIDES MAY USE AT TRIAL. IF the prosecution will be seeking the death penalty it MUST be stated at this time. ALSO if the defense will be seeking not guilty by mental defect it must state this at this time to allow ample time for examination.
    \nNow at this time each side is to compile a list of witnesses. By default, the defendant is on both lists regardless of anything else. Also the defense and prosecution can compile more evidence beforehand BUT in order for it to be used the evidence MUST also be given to the other side.\nThe defense has time to compile motions against some evidence here.
    \nPossible Motions:
    \n1. Invalidate Evidence- Something with the evidence is wrong and the evidence is to be thrown out. This includes irrelevance or corrupt security.
    \n2. Free Movement- Basically the defendant is to be kept uncuffed before and during the trial.
    \n3. Subpoena Witness- If the defense presents god reasons for needing a witness but said person fails to cooperate then a subpoena is issued.
    \n4. Drop the Charges- Not enough evidence is there for a trial so the charges are to be dropped. The FT CAN RETRY but the judicial authority must carefully reexamine the new evidence.
    \n5. Declare Incompetent- Basically the defendant is insane. Once this is granted a medical official is to examine the patient. If he is indeed insane he is to be placed under care of the medical staff until he is deemed competent to stand trial.
    \n
    \nALL SIDES MOVE TO A COURTROOM
    \nPre-Trial Hearings:
    \nA judicial authority and the 2 sides are to meet in the trial room. NO ONE ELSE BESIDES A SECURITY DETAIL IS TO BE PRESENT. The defense submits a plea. If the plea is guilty then proceed directly to sentencing phase. Now the sides each present their motions to the judicial authority. He rules on them. Each side can debate each motion. Then the judicial authority gets a list of crew members. He first gets a chance to look at them all and pick out acceptable and available jurors. Those jurors are then called over. Each side can ask a few questions and dismiss jurors they find too biased. HOWEVER before dismissal the judicial authority MUST agree to the reasoning.
    \n
    \nThe Trial:
    \nThe trial has three phases.
    \n1. Opening Arguments- Each side can give a short speech. They may not present ANY evidence.
    \n2. Witness Calling/Evidence Presentation- The prosecution goes first and is able to call the witnesses on his approved list in any order. He can recall them if necessary. During the questioning the lawyer may use the evidence in the questions to help prove a point. After every witness the other side has a chance to cross-examine. After both sides are done questioning a witness the prosecution can present another or recall one (even the EXACT same one again!). After prosecution is done the defense can call witnesses. After the initial cases are presented both sides are free to call witnesses on either list.
    \nFINALLY once both sides are done calling witnesses we move onto the next phase.
    \n3. Closing Arguments- Same as opening.
    \nThe jury then deliberates IN PRIVATE. THEY MUST ALL AGREE on a verdict. REMEMBER: They mix between some charges being guilty and others not guilty (IE if you supposedly killed someone with a gun and you unfortunately picked up a gun without authorization then you CAN be found not guilty of murder BUT guilty of possession of illegal weaponry.). Once they have agreed they present their verdict. If unable to reach a verdict and feel they will never they call a deadlocked jury and we restart at Pre-Trial phase with an entirely new set of jurors.
    \n
    \nSentencing Phase:
    \nIf the death penalty was sought (you MUST have gone through a trial for death penalty) then skip to the second part.
    \nI. Each side can present more evidence/witnesses in any order. There is NO ban on emotional aspects or anything. The prosecution is to submit a suggested penalty. After all the sides are done then the judicial authority is to give a sentence.
    \nII. The jury stays and does the same thing as I. Their sole job is to determine if the death penalty is applicable. If NOT then the judge selects a sentence.
    \n
    \nTADA you're done. Security then executes the sentence and adds the applicable convictions to the person's record.
    \n" + info = "Roles:
    \nThe " + JOB_DETECTIVE + " is basically the investigator and prosecutor.
    \nThe Staff Assistant can perform these functions with written authority from the " + JOB_DETECTIVE + ".
    \nThe " + JOB_SITE_MANAGER + "/HoP/" + JOB_WARDEN + " is ct as the judicial authority.
    \nThe " + JOB_SECURITY_OFFICER + "s are responsible for executing warrants, security during trial, and prisoner transport.
    \n
    \nInvestigative Phase:
    \nAfter the crime has been committed the " + JOB_DETECTIVE + "'s job is to gather evidence and try to ascertain not only who did it but what happened. He must take special care to catalogue everything and don't leave anything out. Write out all the evidence on paper. Make sure you take an appropriate number of fingerprints. IF he must ask someone questions he has permission to confront them. If the person refuses he can ask a judicial authority to write a subpoena for questioning. If again he fails to respond then that person is to be jailed as insubordinate and obstructing justice. Said person will be released after he cooperates.
    \n
    \nONCE the FT has a clear idea as to who the criminal is he is to write an arrest warrant on the piece of paper. IT MUST LIST THE CHARGES. The FT is to then go to the judicial authority and explain a small version of his case. If the case is moderately acceptable the authority should sign it. Security must then execute said warrant.
    \n
    \nPre-Pre-Trial Phase:
    \nNow a legal representative must be presented to the defendant if said defendant requests one. That person and the defendant are then to be given time to meet (in the jail IS ACCEPTABLE). The defendant and his lawyer are then to be given a copy of all the evidence that will be presented at trial (rewriting it all on paper is fine). THIS IS CALLED THE DISCOVERY PACK. With a few exceptions, THIS IS THE ONLY EVIDENCE BOTH SIDES MAY USE AT TRIAL. IF the prosecution will be seeking the death penalty it MUST be stated at this time. ALSO if the defense will be seeking not guilty by mental defect it must state this at this time to allow ample time for examination.
    \nNow at this time each side is to compile a list of witnesses. By default, the defendant is on both lists regardless of anything else. Also the defense and prosecution can compile more evidence beforehand BUT in order for it to be used the evidence MUST also be given to the other side.\nThe defense has time to compile motions against some evidence here.
    \nPossible Motions:
    \n1. Invalidate Evidence- Something with the evidence is wrong and the evidence is to be thrown out. This includes irrelevance or corrupt security.
    \n2. Free Movement- Basically the defendant is to be kept uncuffed before and during the trial.
    \n3. Subpoena Witness- If the defense presents god reasons for needing a witness but said person fails to cooperate then a subpoena is issued.
    \n4. Drop the Charges- Not enough evidence is there for a trial so the charges are to be dropped. The FT CAN RETRY but the judicial authority must carefully reexamine the new evidence.
    \n5. Declare Incompetent- Basically the defendant is insane. Once this is granted a medical official is to examine the patient. If he is indeed insane he is to be placed under care of the medical staff until he is deemed competent to stand trial.
    \n
    \nALL SIDES MOVE TO A COURTROOM
    \nPre-Trial Hearings:
    \nA judicial authority and the 2 sides are to meet in the trial room. NO ONE ELSE BESIDES A SECURITY DETAIL IS TO BE PRESENT. The defense submits a plea. If the plea is guilty then proceed directly to sentencing phase. Now the sides each present their motions to the judicial authority. He rules on them. Each side can debate each motion. Then the judicial authority gets a list of crew members. He first gets a chance to look at them all and pick out acceptable and available jurors. Those jurors are then called over. Each side can ask a few questions and dismiss jurors they find too biased. HOWEVER before dismissal the judicial authority MUST agree to the reasoning.
    \n
    \nThe Trial:
    \nThe trial has three phases.
    \n1. Opening Arguments- Each side can give a short speech. They may not present ANY evidence.
    \n2. Witness Calling/Evidence Presentation- The prosecution goes first and is able to call the witnesses on his approved list in any order. He can recall them if necessary. During the questioning the lawyer may use the evidence in the questions to help prove a point. After every witness the other side has a chance to cross-examine. After both sides are done questioning a witness the prosecution can present another or recall one (even the EXACT same one again!). After prosecution is done the defense can call witnesses. After the initial cases are presented both sides are free to call witnesses on either list.
    \nFINALLY once both sides are done calling witnesses we move onto the next phase.
    \n3. Closing Arguments- Same as opening.
    \nThe jury then deliberates IN PRIVATE. THEY MUST ALL AGREE on a verdict. REMEMBER: They mix between some charges being guilty and others not guilty (IE if you supposedly killed someone with a gun and you unfortunately picked up a gun without authorization then you CAN be found not guilty of murder BUT guilty of possession of illegal weaponry.). Once they have agreed they present their verdict. If unable to reach a verdict and feel they will never they call a deadlocked jury and we restart at Pre-Trial phase with an entirely new set of jurors.
    \n
    \nSentencing Phase:
    \nIf the death penalty was sought (you MUST have gone through a trial for death penalty) then skip to the second part.
    \nI. Each side can present more evidence/witnesses in any order. There is NO ban on emotional aspects or anything. The prosecution is to submit a suggested penalty. After all the sides are done then the judicial authority is to give a sentence.
    \nII. The jury stays and does the same thing as I. Their sole job is to determine if the death penalty is applicable. If NOT then the judge selects a sentence.
    \n
    \nTADA you're done. Security then executes the sentence and adds the applicable convictions to the person's record.
    \n" /obj/item/paper/hydroponics name = "Greetings from Billy Bob" @@ -679,7 +679,7 @@ /obj/item/paper/jobs name = "Job Information" - info = "Information on all formal jobs that can be assigned on Space Station 13 can be found on this document.
    \nThe data will be in the following form.
    \nGenerally lower ranking positions come first in this list.
    \n
    \nJob Name general access>lab access-engine access-systems access (atmosphere control)
    \n\tJob Description
    \nJob Duties (in no particular order)
    \nTips (where applicable)
    \n
    \nResearch Assistant 1>1-0-0
    \n\tThis is probably the lowest level position. Anyone who enters the space station after the initial job\nassignment will automatically receive this position. Access with this is restricted. Head of Personnel should\nappropriate the correct level of assistance.
    \n1. Assist the researchers.
    \n2. Clean up the labs.
    \n3. Prepare materials.
    \n
    \nStaff Assistant 2>0-0-0
    \n\tThis position assists the security officer in his duties. The staff assisstants should primarily br\npatrolling the ship waiting until they are needed to maintain ship safety.\n(Addendum: Updated/Elevated Security Protocols admit issuing of low level weapons to security personnel)
    \n1. Patrol ship/Guard key areas
    \n2. Assist security officer
    \n3. Perform other security duties.
    \n
    \nTechnical Assistant 1>0-0-1
    \n\tThis is yet another low level position. The technical assistant helps the engineer and the statian\ntechnician with the upkeep and maintenance of the station. This job is very important because it usually\ngets to be a heavy workload on station technician and these helpers will alleviate that.
    \n1. Assist Station technician and Engineers.
    \n2. Perform general maintenance of station.
    \n3. Prepare materials.
    \n
    \nMedical Assistant 1>1-0-0
    \n\tThis is the fourth position yet it is slightly less common. This position doesn't have much power\noutside of the med bay. Consider this position like a nurse who helps to upkeep medical records and the\nmaterials (filling syringes and checking vitals)
    \n1. Assist the medical personnel.
    \n2. Update medical files.
    \n3. Prepare materials for medical operations.
    \n
    \nResearch Technician 2>3-0-0
    \n\tThis job is primarily a step up from research assistant. These people generally do not get their own lab\nbut are more hands on in the experimentation process. At this level they are permitted to work as consultants to\nthe others formally.
    \n1. Inform superiors of research.
    \n2. Perform research alongside of official researchers.
    \n
    \nDetective 3>2-0-0
    \n\tThis job is in most cases slightly boring at best. Their sole duty is to\nperform investigations of crine scenes and analysis of the crime scene. This\nalleviates SOME of the burden from the security officer. This person's duty\nis to draw conclusions as to what happened and testify in court. Said person\nalso should stroe the evidence ly.
    \n1. Perform crime-scene investigations/draw conclusions.
    \n2. Store and catalogue evidence properly.
    \n3. Testify to superiors/inquieries on findings.
    \n
    \nStation Technician 2>0-2-3
    \n\tPeople assigned to this position must work to make sure all the systems aboard Space Station 13 are operable.\nThey should primarily work in the computer lab and repairing faulty equipment. They should work with the\natmospheric technician.
    \n1. Maintain SS13 systems.
    \n2. Repair equipment.
    \n
    \nAtmospheric Technician 3>0-0-4
    \n\tThese people should primarily work in the atmospheric control center and lab. They have the very important\njob of maintaining the delicate atmosphere on SS13.
    \n1. Maintain atmosphere on SS13
    \n2. Research atmospheres on the space station. (safely please!)
    \n
    \nEngineer 2>1-3-0
    \n\tPeople working as this should generally have detailed knowledge as to how the propulsion systems on SS13\nwork. They are one of the few classes that have unrestricted access to the engine area.
    \n1. Upkeep the engine.
    \n2. Prevent fires in the engine.
    \n3. Maintain a safe orbit.
    \n
    \nMedical Researcher 2>5-0-0
    \n\tThis position may need a little clarification. Their duty is to make sure that all experiments are safe and\nto conduct experiments that may help to improve the station. They will be generally idle until a new laboratory\nis constructed.
    \n1. Make sure the station is kept safe.
    \n2. Research medical properties of materials studied of Space Station 13.
    \n
    \nScientist 2>5-0-0
    \n\tThese people study the properties, particularly the toxic properties, of materials handled on SS13.\nTechnically they can also be called Phoron Technicians as phoron is the material they routinly handle.
    \n1. Research phoron
    \n2. Make sure all phoron is properly handled.
    \n
    \nMedical Doctor (Officer) 2>0-0-0
    \n\tPeople working this job should primarily stay in the medical area. They should make sure everyone goes to\nthe medical bay for treatment and examination. Also they should make sure that medical supplies are kept in\norder.
    \n1. Heal wounded people.
    \n2. Perform examinations of all personnel.
    \n3. Moniter usage of medical equipment.
    \n
    \nSecurity Officer 3>0-0-0
    \n\tThese people should attempt to keep the peace inside the station and make sure the station is kept safe. One\nside duty is to assist in repairing the station. They also work like general maintenance personnel. They are not\ngiven a weapon and must use their own resources.
    \n(Addendum: Updated/Elevated Security Protocols admit issuing of weapons to security personnel)
    \n1. Maintain order.
    \n2. Assist others.
    \n3. Repair structural problems.
    \n
    \nHead of Security 4>5-2-2
    \n\tPeople assigned as Head of Security should issue orders to the security staff. They should\nalso carefully moderate the usage of all security equipment. All security matters should be reported to this person.
    \n1. Oversee security.
    \n2. Assign patrol duties.
    \n3. Protect the station and staff.
    \n
    \nHead of Personnel 4>4-2-2
    \n\tPeople assigned as head of personnel will find themselves moderating all actions done by personnel. \nAlso they have the ability to assign jobs and access levels.
    \n1. Assign duties.
    \n2. Moderate personnel.
    \n3. Moderate research.
    \n
    \nSite Manager 5>5-5-5 (unrestricted station wide access)
    \n\tThis is the highest position youi can aquire on Space Station 13. They are allowed anywhere inside the\nspace station and therefore should protect their ID card. They also have the ability to assign positions\nand access levels. They should not abuse their power.
    \n1. Assign all positions on SS13
    \n2. Inspect the station for any problems.
    \n3. Perform administrative duties.
    \n" + info = "Information on all formal jobs that can be assigned on Space Station 13 can be found on this document.
    \nThe data will be in the following form.
    \nGenerally lower ranking positions come first in this list.
    \n
    \nJob Name general access>lab access-engine access-systems access (atmosphere control)
    \n\tJob Description
    \nJob Duties (in no particular order)
    \nTips (where applicable)
    \n
    \nResearch Assistant 1>1-0-0
    \n\tThis is probably the lowest level position. Anyone who enters the space station after the initial job\nassignment will automatically receive this position. Access with this is restricted. Head of Personnel should\nappropriate the correct level of assistance.
    \n1. Assist the researchers.
    \n2. Clean up the labs.
    \n3. Prepare materials.
    \n
    \nStaff Assistant 2>0-0-0
    \n\tThis position assists the security officer in his duties. The staff assisstants should primarily br\npatrolling the ship waiting until they are needed to maintain ship safety.\n(Addendum: Updated/Elevated Security Protocols admit issuing of low level weapons to security personnel)
    \n1. Patrol ship/Guard key areas
    \n2. Assist security officer
    \n3. Perform other security duties.
    \n
    \n" + JOB_ALT_TECHNICAL_ASSISTANT + " 1>0-0-1
    \n\tThis is yet another low level position. The technical assistant helps the engineer and the statian\ntechnician with the upkeep and maintenance of the station. This job is very important because it usually\ngets to be a heavy workload on station technician and these helpers will alleviate that.
    \n1. Assist Station technician and Engineers.
    \n2. Perform general maintenance of station.
    \n3. Prepare materials.
    \n
    \nMedical Assistant 1>1-0-0
    \n\tThis is the fourth position yet it is slightly less common. This position doesn't have much power\noutside of the med bay. Consider this position like a nurse who helps to upkeep medical records and the\nmaterials (filling syringes and checking vitals)
    \n1. Assist the medical personnel.
    \n2. Update medical files.
    \n3. Prepare materials for medical operations.
    \n
    \nResearch Technician 2>3-0-0
    \n\tThis job is primarily a step up from research assistant. These people generally do not get their own lab\nbut are more hands on in the experimentation process. At this level they are permitted to work as consultants to\nthe others formally.
    \n1. Inform superiors of research.
    \n2. Perform research alongside of official researchers.
    \n
    \n" + JOB_DETECTIVE + " 3>2-0-0
    \n\tThis job is in most cases slightly boring at best. Their sole duty is to\nperform investigations of crine scenes and analysis of the crime scene. This\nalleviates SOME of the burden from the security officer. This person's duty\nis to draw conclusions as to what happened and testify in court. Said person\nalso should stroe the evidence ly.
    \n1. Perform crime-scene investigations/draw conclusions.
    \n2. Store and catalogue evidence properly.
    \n3. Testify to superiors/inquieries on findings.
    \n
    \nStation Technician 2>0-2-3
    \n\tPeople assigned to this position must work to make sure all the systems aboard Space Station 13 are operable.\nThey should primarily work in the computer lab and repairing faulty equipment. They should work with the\natmospheric technician.
    \n1. Maintain SS13 systems.
    \n2. Repair equipment.
    \n
    \n" + JOB_ATMOSPHERIC_TECHNICIAN + " 3>0-0-4
    \n\tThese people should primarily work in the atmospheric control center and lab. They have the very important\njob of maintaining the delicate atmosphere on SS13.
    \n1. Maintain atmosphere on SS13
    \n2. Research atmospheres on the space station. (safely please!)
    \n
    \n" + JOB_ENGINEER + " 2>1-3-0
    \n\tPeople working as this should generally have detailed knowledge as to how the propulsion systems on SS13\nwork. They are one of the few classes that have unrestricted access to the engine area.
    \n1. Upkeep the engine.
    \n2. Prevent fires in the engine.
    \n3. Maintain a safe orbit.
    \n
    \nMedical Researcher 2>5-0-0
    \n\tThis position may need a little clarification. Their duty is to make sure that all experiments are safe and\nto conduct experiments that may help to improve the station. They will be generally idle until a new laboratory\nis constructed.
    \n1. Make sure the station is kept safe.
    \n2. Research medical properties of materials studied of Space Station 13.
    \n
    \nScientist 2>5-0-0
    \n\tThese people study the properties, particularly the toxic properties, of materials handled on SS13.\nTechnically they can also be called Phoron Technicians as phoron is the material they routinly handle.
    \n1. Research phoron
    \n2. Make sure all phoron is properly handled.
    \n
    \n" + JOB_MEDICAL_DOCTOR + " (Officer) 2>0-0-0
    \n\tPeople working this job should primarily stay in the medical area. They should make sure everyone goes to\nthe medical bay for treatment and examination. Also they should make sure that medical supplies are kept in\norder.
    \n1. Heal wounded people.
    \n2. Perform examinations of all personnel.
    \n3. Moniter usage of medical equipment.
    \n
    \n" + JOB_SECURITY_OFFICER + " 3>0-0-0
    \n\tThese people should attempt to keep the peace inside the station and make sure the station is kept safe. One\nside duty is to assist in repairing the station. They also work like general maintenance personnel. They are not\ngiven a weapon and must use their own resources.
    \n(Addendum: Updated/Elevated Security Protocols admit issuing of weapons to security personnel)
    \n1. Maintain order.
    \n2. Assist others.
    \n3. Repair structural problems.
    \n
    \n" + JOB_HEAD_OF_SECURITY + " 4>5-2-2
    \n\tPeople assigned as " + JOB_HEAD_OF_SECURITY + " should issue orders to the security staff. They should\nalso carefully moderate the usage of all security equipment. All security matters should be reported to this person.
    \n1. Oversee security.
    \n2. Assign patrol duties.
    \n3. Protect the station and staff.
    \n
    \nHead of Personnel 4>4-2-2
    \n\tPeople assigned as head of personnel will find themselves moderating all actions done by personnel. \nAlso they have the ability to assign jobs and access levels.
    \n1. Assign duties.
    \n2. Moderate personnel.
    \n3. Moderate research.
    \n
    \n"+ JOB_SITE_MANAGER + " 5>5-5-5 (unrestricted station wide access)
    \n\tThis is the highest position youi can aquire on Space Station 13. They are allowed anywhere inside the\nspace station and therefore should protect their ID card. They also have the ability to assign positions\nand access levels. They should not abuse their power.
    \n1. Assign all positions on SS13
    \n2. Inspect the station for any problems.
    \n3. Perform administrative duties.
    \n" /obj/item/paper/photograph name = "photo" diff --git a/code/modules/paperwork/paper_sticky.dm b/code/modules/paperwork/paper_sticky.dm index d9a0ec1213..426cf3a01c 100644 --- a/code/modules/paperwork/paper_sticky.dm +++ b/code/modules/paperwork/paper_sticky.dm @@ -26,7 +26,7 @@ /obj/item/sticky_pad/attackby(var/obj/item/thing, var/mob/user) if(istype(thing, /obj/item/pen)) - if(jobban_isbanned(user, "Graffiti")) + if(jobban_isbanned(user, JOB_GRAFFITI)) to_chat(user, SPAN_WARNING("You are banned from leaving persistent information across rounds.")) return diff --git a/code/modules/pda/cart.dm b/code/modules/pda/cart.dm index 5d9df1ff6e..2599544eb3 100644 --- a/code/modules/pda/cart.dm +++ b/code/modules/pda/cart.dm @@ -167,7 +167,7 @@ var/list/civilian_cartridges = list( /obj/item/cartridge/quartermaster name = "\improper Space Parts & Space Vendors cartridge" - desc = "Perfect for the Quartermaster on the go!" + desc = "Perfect for the " + JOB_QUARTERMASTER + " on the go!" icon_state = "cart-q" programs = list( new/datum/data/pda/app/supply) diff --git a/code/modules/pda/messenger.dm b/code/modules/pda/messenger.dm index 7ff1d1134c..2acf25bca0 100644 --- a/code/modules/pda/messenger.dm +++ b/code/modules/pda/messenger.dm @@ -22,6 +22,7 @@ data["silent"] = notify_silent // does the pda make noise when it receives a message? data["toff"] = toff // is the messenger function turned off? data["active_conversation"] = active_conversation // Which conversation are we following right now? + data["enable_message_embeds"] = user?.client?.prefs?.read_preference(/datum/preference/toggle/messenger_embeds) has_back = active_conversation if(active_conversation) diff --git a/code/modules/pda/pda.dm b/code/modules/pda/pda.dm index e3a333a325..d3dad05b5e 100644 --- a/code/modules/pda/pda.dm +++ b/code/modules/pda/pda.dm @@ -142,7 +142,7 @@ var/global/list/obj/item/pda/PDAs = list() model_name = "Thinktronic 5230 Personal Data Assistant" if(2) icon = 'icons/obj/pda_slim.dmi' - model_name = "Ward-Takahashi SlimFit� Personal Data Assistant" + model_name = "Ward-Takahashi SlimFit™ Personal Data Assistant" if(3) icon = 'icons/obj/pda_old.dmi' model_name = "Thinktronic 5120 Personal Data Assistant" @@ -169,7 +169,7 @@ var/global/list/obj/item/pda/PDAs = list() ) if(7) icon = 'icons/obj/pda_slider.dmi' //VOREStation edit - model_name = "Slider� Personal Data Assistant" + model_name = "Slider® Personal Data Assistant" if(8) icon = 'icons/obj/pda_vintage.dmi' model_name = "\[ERR:INVALID_MANUFACTURER_ID\] Personal Data Assistant" diff --git a/code/modules/persistence/graffiti.dm b/code/modules/persistence/graffiti.dm index aaf52848f7..457fd020c9 100644 --- a/code/modules/persistence/graffiti.dm +++ b/code/modules/persistence/graffiti.dm @@ -51,7 +51,7 @@ qdel(src) else if(thing.sharp) - if(jobban_isbanned(user, "Graffiti")) + if(jobban_isbanned(user, JOB_GRAFFITI)) to_chat(user, SPAN_WARNING("You are banned from leaving persistent information across rounds.")) return diff --git a/code/modules/persistence/noticeboard.dm b/code/modules/persistence/noticeboard.dm index 24d15694a3..9d1b17fe11 100644 --- a/code/modules/persistence/noticeboard.dm +++ b/code/modules/persistence/noticeboard.dm @@ -82,8 +82,13 @@ visible_message("[user] has dismantled [src]!") dismantle() return +<<<<<<< HEAD else if(istype(I, /obj/item/paper) || istype(I, /obj/item/photo)) if(jobban_isbanned(user, "Graffiti")) +======= + else if(istype(I, /obj/item/weapon/paper) || istype(I, /obj/item/weapon/photo)) + if(jobban_isbanned(user, JOB_GRAFFITI)) +>>>>>>> master to_chat(user, "You are banned from leaving persistent information across rounds.") else if(LAZYLEN(notices) < max_notices && user.unEquip(I, src)) @@ -207,4 +212,4 @@ P.info = "Do you people think the anomaly suits are cheap to come by? I'm about a hair trigger away from instituting a log book for the damn things. Only wear them if you're going out for a dig, and for god's sake don't go tramping around in them unless you're field testing something, R" P.stamped = list(/obj/item/stamp/rd) P.add_overlay("paper_stamped_rd") - contents += P \ No newline at end of file + contents += P diff --git a/code/modules/power/singularity/act.dm b/code/modules/power/singularity/act.dm index 421937644d..53fe67aaad 100644 --- a/code/modules/power/singularity/act.dm +++ b/code/modules/power/singularity/act.dm @@ -16,9 +16,9 @@ /mob/living/carbon/human/singularity_act() var/gain = 20 if(mind) - if((mind.assigned_role == "Engineer") || (mind.assigned_role == "Chief Engineer")) + if((mind.assigned_role == JOB_ENGINEER) || (mind.assigned_role == JOB_CHIEF_ENGINEER)) gain = 100 - if(mind.assigned_role == USELESS_JOB) //VOREStation Edit - Visitor not Assistant + if(mind.assigned_role == JOB_ALT_VISITOR) //VOREStation Edit - Visitor not Assistant gain = rand(0, 300) investigate_log(I_SINGULO,"has been consumed by a singularity", I_SINGULO) gib() diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index 39aee52ad2..19555d595b 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -148,7 +148,7 @@ var/mob/M = usr if(!M.mind) return 0 var/job = M.mind.assigned_role - if(job != "Detective" && job != "Security Officer" && job != "Warden" && job != "Head of Security") + if(job != JOB_DETECTIVE && job != JOB_SECURITY_OFFICER && job != JOB_WARDEN && job != JOB_HEAD_OF_SECURITY ) to_chat(M, "You don't feel cool enough to name this gun, chump.") return 0 diff --git a/code/modules/projectiles/guns/projectile/pistol.dm b/code/modules/projectiles/guns/projectile/pistol.dm index 2a2e5ed0af..891d78263c 100644 --- a/code/modules/projectiles/guns/projectile/pistol.dm +++ b/code/modules/projectiles/guns/projectile/pistol.dm @@ -40,7 +40,7 @@ var/mob/M = usr if(!M.mind) return 0 var/job = M.mind.assigned_role - if(job != "Detective" && job != "Security Officer" && job != "Warden" && job != "Head of Security") + if(job != JOB_DETECTIVE && job != JOB_SECURITY_OFFICER && job != JOB_WARDEN && job != JOB_HEAD_OF_SECURITY ) to_chat(M, "You don't feel cool enough to name this gun, chump.") return 0 @@ -605,4 +605,4 @@ return var/ratio = ammo_magazine.stored_ammo.len * 100 / ammo_magazine.max_ammo ratio = round(ratio, 33) - add_overlay("lamia_[ratio]") \ No newline at end of file + add_overlay("lamia_[ratio]") diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm index 8413ccb7ab..2a8fd9c860 100644 --- a/code/modules/projectiles/guns/projectile/revolver.dm +++ b/code/modules/projectiles/guns/projectile/revolver.dm @@ -63,7 +63,7 @@ var/mob/M = usr if(!M.mind) return 0 - if(!M.mind.assigned_role == "Detective") + if(!M.mind.assigned_role == JOB_DETECTIVE) to_chat(M, "You don't feel cool enough to name this gun, chump.") return 0 @@ -86,12 +86,12 @@ /obj/item/gun/projectile/revolver/detective45/verb/rename_gun() set name = "Name Gun" set category = "Object" - set desc = "Rename your gun. If you're the Detective." + set desc = "Rename your gun. If you're the " + JOB_DETECTIVE + "." var/mob/M = usr if(!M.mind) return 0 var/job = M.mind.assigned_role - if(job != "Detective") + if(job != JOB_DETECTIVE) to_chat(M, "You don't feel cool enough to name this gun, chump.") return 0 diff --git a/code/modules/projectiles/guns/toy.dm b/code/modules/projectiles/guns/toy.dm index 1b4712d68e..237ebde050 100644 --- a/code/modules/projectiles/guns/toy.dm +++ b/code/modules/projectiles/guns/toy.dm @@ -215,9 +215,15 @@ /* * Cyborg */ +<<<<<<< HEAD /obj/item/gun/projectile/cyborgtoy name = "\improper Donk-Soft Cyborg Blaster" desc = "Donk-Soft Cyborg Blaster! It's Donk or Don't! Adult supervision required. Use to toggle between battle and cleanup mode." +======= +/obj/item/weapon/gun/projectile/cyborgtoy + name = "\improper Donk-Soft " + JOB_CYBORG + " Blaster" + desc = "Donk-Soft " + JOB_CYBORG + " Blaster! It's Donk or Don't! Adult supervision required. Use to toggle between battle and cleanup mode." +>>>>>>> master icon = 'icons/obj/gun_toy.dmi' icon_state = "smg" caliber = "foam" diff --git a/code/modules/projectiles/projectile/change.dm b/code/modules/projectiles/projectile/change.dm index 81af565dc5..0ec50a4ee6 100644 --- a/code/modules/projectiles/projectile/change.dm +++ b/code/modules/projectiles/projectile/change.dm @@ -49,7 +49,7 @@ new_mob = new /mob/living/silicon/robot(M.loc) new_mob.gender = M.gender new_mob.invisibility = 0 - new_mob.job = "Cyborg" + new_mob.job = JOB_CYBORG var/mob/living/silicon/robot/Robot = new_mob Robot.mmi = new /obj/item/mmi(new_mob) Robot.mmi.transfer_identity(M) //Does not transfer key/client. @@ -98,4 +98,4 @@ return else to_chat(M, "Your form morphs into that of \a [lowertext(randomize)].") - return \ No newline at end of file + return diff --git a/code/modules/reagents/reagents/food_drinks.dm b/code/modules/reagents/reagents/food_drinks.dm index 5a85d39327..b30b1ecad4 100644 --- a/code/modules/reagents/reagents/food_drinks.dm +++ b/code/modules/reagents/reagents/food_drinks.dm @@ -3087,7 +3087,7 @@ /datum/reagent/ethanol/bananahonk name = "Banana Mama" id = "bananahonk" - description = "A drink from Clown Heaven." + description = "A drink from " + JOB_CLOWN + " Heaven." taste_description = "bananas and sugar" nutriment_factor = 1 color = "#FFFF91" @@ -3624,7 +3624,7 @@ /datum/reagent/ethanol/silencer name = "Silencer" id = "silencer" - description = "A drink from Mime Heaven." + description = "A drink from " + JOB_MIME + " Heaven." taste_description = "a pencil eraser" taste_mult = 1.2 nutriment_factor = 1 diff --git a/code/modules/resleeving/autoresleever.dm b/code/modules/resleeving/autoresleever.dm index 9ebb7a4fd9..d6aa44cb7b 100644 --- a/code/modules/resleeving/autoresleever.dm +++ b/code/modules/resleeving/autoresleever.dm @@ -6,7 +6,7 @@ density = TRUE anchored = TRUE var/equip_body = FALSE //If true, this will spawn the person with equipment - var/default_job = USELESS_JOB //The job that will be assigned if equip_body is true and the ghost doesn't have a job + var/default_job = JOB_ALT_VISITOR //The job that will be assigned if equip_body is true and the ghost doesn't have a job var/ghost_spawns = FALSE //If true, allows ghosts who haven't been spawned yet to spawn var/vore_respawn = 5 MINUTES //The time to wait if you died from vore var/respawn = 30 MINUTES //The time to wait if you didn't die from vore diff --git a/code/modules/rogueminer_vr/roguemines_mobs.dm b/code/modules/rogueminer_vr/roguemines_mobs.dm index 85c581d61e..08cf8e11d2 100644 --- a/code/modules/rogueminer_vr/roguemines_mobs.dm +++ b/code/modules/rogueminer_vr/roguemines_mobs.dm @@ -1,23 +1,23 @@ /mob/living/simple_mob/animal/space/bats/roguemines - faction = "roguemines" + faction = FACTION_ROGUEMINES /mob/living/simple_mob/animal/space/carp/roguemines - faction = "roguemines" + faction = FACTION_ROGUEMINES /mob/living/simple_mob/animal/space/goose/roguemines - faction = "roguemines" + faction = FACTION_ROGUEMINES /mob/living/simple_mob/vore/wolf/space/roguemines - faction = "roguemines" + faction = FACTION_ROGUEMINES /mob/living/simple_mob/animal/space/carp/large/roguemines - faction = "roguemines" + faction = FACTION_ROGUEMINES /mob/living/simple_mob/animal/space/bear/roguemines - faction = "roguemines" + faction = FACTION_ROGUEMINES /mob/living/simple_mob/vore/aggressive/corrupthound/space/roguemines - faction = "roguemines" + faction = FACTION_ROGUEMINES /mob/living/simple_mob/animal/space/carp/large/huge/roguemines - faction = "roguemines" + faction = FACTION_ROGUEMINES diff --git a/code/modules/rogueminer_vr/zonemaster.dm b/code/modules/rogueminer_vr/zonemaster.dm index 4826661d2d..8126d47e15 100644 --- a/code/modules/rogueminer_vr/zonemaster.dm +++ b/code/modules/rogueminer_vr/zonemaster.dm @@ -302,7 +302,7 @@ var/mobchoice = pickweight(rm_controller.mobs["tier[rm_controller.diffstep]"]) rm_controller.dbg("ZM(p): Picked [mobchoice] to spawn.") var/mob/living/newmob = new mobchoice(get_turf(SP)) - newmob.faction = "asteroid_belt" + newmob.faction = FACTION_ASTEROID_BELT spawned_mobs += newmob if(delay) sleep(delay) diff --git a/code/modules/security levels/keycard authentication.dm b/code/modules/security levels/keycard authentication.dm index 6a53f42519..dcab862316 100644 --- a/code/modules/security levels/keycard authentication.dm +++ b/code/modules/security levels/keycard authentication.dm @@ -30,9 +30,15 @@ if(stat & (NOPOWER|BROKEN)) to_chat(user, "This device is not powered.") return +<<<<<<< HEAD if(istype(W,/obj/item/card/id)) var/obj/item/card/id/ID = W if(access_keycard_auth in ID.access) +======= + if(istype(W,/obj/item/weapon/card/id)) + var/obj/item/weapon/card/id/ID = W + if(access_keycard_auth in ID.GetAccess()) +>>>>>>> master if(active == 1) //This is not the device that made the initial request. It is the device confirming the request. if(event_source) diff --git a/code/modules/shieldgen/shield_capacitor.dm b/code/modules/shieldgen/shield_capacitor.dm index 7888ecad84..5c4fd4e9a4 100644 --- a/code/modules/shieldgen/shield_capacitor.dm +++ b/code/modules/shieldgen/shield_capacitor.dm @@ -38,9 +38,15 @@ /obj/machinery/shield_capacitor/attackby(obj/item/W, mob/user) +<<<<<<< HEAD if(istype(W, /obj/item/card/id)) var/obj/item/card/id/C = W if((access_captain in C.access) || (access_security in C.access) || (access_engine in C.access)) +======= + if(istype(W, /obj/item/weapon/card/id)) + var/obj/item/weapon/card/id/C = W + if((access_captain in C.GetAccess()) || (access_security in C.GetAccess()) || (access_engine in C.GetAccess())) +>>>>>>> master src.locked = !src.locked to_chat(user, "Controls are now [src.locked ? "locked." : "unlocked."]") updateDialog() diff --git a/code/modules/shieldgen/shield_gen.dm b/code/modules/shieldgen/shield_gen.dm index 489608ab2f..15e63b4b3b 100644 --- a/code/modules/shieldgen/shield_gen.dm +++ b/code/modules/shieldgen/shield_gen.dm @@ -58,9 +58,15 @@ s.start() /obj/machinery/shield_gen/attackby(obj/item/W, mob/user) +<<<<<<< HEAD if(istype(W, /obj/item/card/id)) var/obj/item/card/id/C = W if((access_captain in C.access) || (access_security in C.access) || (access_engine in C.access)) +======= + if(istype(W, /obj/item/weapon/card/id)) + var/obj/item/weapon/card/id/C = W + if((access_captain in C.GetAccess()) || (access_security in C.GetAccess()) || (access_engine in C.GetAccess())) +>>>>>>> master src.locked = !src.locked to_chat(user, "Controls are now [src.locked ? "locked." : "unlocked."]") updateDialog() diff --git a/code/modules/shuttles/shuttle_emergency.dm b/code/modules/shuttles/shuttle_emergency.dm index c3608937df..2bb63df4df 100644 --- a/code/modules/shuttles/shuttle_emergency.dm +++ b/code/modules/shuttles/shuttle_emergency.dm @@ -137,7 +137,7 @@ if(!ID) return - access = ID.access + access = ID.GetAccess() auth_name = "[ID.registered_name] ([ID.assignment])" dna_hash = ID.dna_hash diff --git a/code/modules/shuttles/shuttle_specops.dm b/code/modules/shuttles/shuttle_specops.dm index f80b2ba8a6..28be734252 100644 --- a/code/modules/shuttles/shuttle_specops.dm +++ b/code/modules/shuttles/shuttle_specops.dm @@ -20,12 +20,17 @@ /datum/shuttle/autodock/ferry/specops/New() ..() +<<<<<<< HEAD announcer = new /obj/item/radio/intercom(null)//We need a fake AI to announce some stuff below. Otherwise it will be wonky. announcer.config(list("Response Team" = 0)) +======= + announcer = new /obj/item/device/radio/intercom(null)//We need a fake AI to announce some stuff below. Otherwise it will be wonky. + announcer.config(list(CHANNEL_RESPONSE_TEAM = 0)) +>>>>>>> master /datum/shuttle/autodock/ferry/specops/proc/radio_announce(var/message) if(announcer) - announcer.autosay(message, "A.L.I.C.E.", "Response Team") + announcer.autosay(message, "A.L.I.C.E.", CHANNEL_RESPONSE_TEAM) /datum/shuttle/autodock/ferry/specops/launch(var/user) diff --git a/code/modules/spells/spellbook.dm b/code/modules/spells/spellbook.dm index 2b26db1c9b..bf1f619f2d 100644 --- a/code/modules/spells/spellbook.dm +++ b/code/modules/spells/spellbook.dm @@ -91,7 +91,7 @@ if(!istype(H, /mob/living/carbon/human)) return 1 - if(H.mind.special_role == "apprentice") + if(H.mind.special_role == JOB_APPRENTICE) temp = "If you got caught sneaking a peak from your teacher's spellbook, you'd likely be expelled from the Wizard Academy. Better not." return @@ -260,7 +260,7 @@ if(knownspell.type == S.type) if(user.mind) // TODO: Update to new antagonist system. - if(user.mind.special_role == "apprentice" || user.mind.special_role == "Wizard") + if(user.mind.special_role == JOB_APPRENTICE || user.mind.special_role == JOB_WIZARD) to_chat(user, "You're already far more versed in this spell than this flimsy how-to book can provide.") else to_chat(user, "You've already read this one.") diff --git a/code/modules/spells/targeted/mind_transfer.dm b/code/modules/spells/targeted/mind_transfer.dm index e3eda58b65..3b11a5f59c 100644 --- a/code/modules/spells/targeted/mind_transfer.dm +++ b/code/modules/spells/targeted/mind_transfer.dm @@ -13,7 +13,7 @@ compatible_mobs = list(/mob/living/carbon/human) //which types of mobs are affected by the spell. NOTE: change at your own risk // TODO: Update to new antagonist system. - var/list/protected_roles = list("Wizard","Changeling","Cultist") //which roles are immune to the spell + var/list/protected_roles = list(JOB_WIZARD,JOB_CHANGELING,JOB_CULTIST) //which roles are immune to the spell var/msg_wait = 500 //how long in deciseconds it waits before telling that body doesn't feel right or mind swap robbed of a spell amt_paralysis = 20 //how much the victim is paralysed for after the spell diff --git a/code/modules/tgui/modules/_base.dm b/code/modules/tgui/modules/_base.dm index f206ba3590..f1a693a4a5 100644 --- a/code/modules/tgui/modules/_base.dm +++ b/code/modules/tgui/modules/_base.dm @@ -56,7 +56,7 @@ Code is pretty much ripped verbatim from nano modules, but with un-needed stuff if(!I) return 0 - if(access in I.access) + if(access in I.GetAccess()) return 1 return 0 diff --git a/code/modules/tgui/modules/ntos-only/cardmod.dm b/code/modules/tgui/modules/ntos-only/cardmod.dm index f1a47b423a..0a329b58d2 100644 --- a/code/modules/tgui/modules/ntos-only/cardmod.dm +++ b/code/modules/tgui/modules/ntos-only/cardmod.dm @@ -70,7 +70,7 @@ all_centcom_access.Add(list(list( "desc" = replacetext(get_centcom_access_desc(access), " ", " "), "ref" = access, - "allowed" = (access in id_card.access) ? 1 : 0))) + "allowed" = (access in id_card.GetAccess()) ? 1 : 0))) data["all_centcom_access"] = all_centcom_access else for(var/i in ACCESS_REGION_SECURITY to ACCESS_REGION_SUPPLY) @@ -80,7 +80,7 @@ accesses.Add(list(list( "desc" = replacetext(get_access_desc(access), " ", " "), "ref" = access, - "allowed" = (access in id_card.access) ? 1 : 0))) + "allowed" = (access in id_card.GetAccess()) ? 1 : 0))) regions.Add(list(list( "name" = get_region_accesses_name(i), @@ -143,7 +143,7 @@ "} var/known_access_rights = get_access_ids(ACCESS_TYPE_STATION|ACCESS_TYPE_CENTCOM) - for(var/A in id_card.access) + for(var/A in id_card.GetAccess()) if(A in known_access_rights) contents += " [get_access_desc(A)]" @@ -231,4 +231,3 @@ if(id_card) id_card.name = text("[id_card.registered_name]'s ID Card ([id_card.assignment])") - diff --git a/code/modules/vore/fluffstuff/custom_clothes_vr.dm b/code/modules/vore/fluffstuff/custom_clothes_vr.dm index e78db9b377..cd5da01057 100644 --- a/code/modules/vore/fluffstuff/custom_clothes_vr.dm +++ b/code/modules/vore/fluffstuff/custom_clothes_vr.dm @@ -697,7 +697,7 @@ //HOS Hardsuit /obj/item/clothing/suit/space/void/security/fluff/hos // ToDo: Rig version. name = "\improper prototype voidsuit" - desc = "A customized security voidsuit made to match the Head of Security's obession with black. Has additional composite armor." + desc = "A customized security voidsuit made to match the " + JOB_HEAD_OF_SECURITY + "'s obession with black. Has additional composite armor." icon = 'icons/vore/custom_clothes_vr.dmi' icon_state = "rig-hos" @@ -710,7 +710,7 @@ //HOS Hardsuit Helmet /obj/item/clothing/head/helmet/space/void/security/fluff/hos // ToDo: Rig version. name = "\improper prototype voidsuit helmet" - desc = "A customized security voidsuit helmet customized to include the Head of Security's signature hat. Has additional composite armor." + desc = "A customized security voidsuit helmet customized to include the " + JOB_HEAD_OF_SECURITY + "'s signature hat. Has additional composite armor." icon = 'icons/vore/custom_clothes_vr.dmi' icon_state = "rig0-hos" @@ -1145,7 +1145,7 @@ //KiwiDaNinja: Chakat Taiga /obj/item/clothing/under/fluff/taiga name = "Taiga's F.D Uniform" - desc = "This uniform - consisting of only the uniform shirt, and built out of a soft fleece - dons the badge of Amistad Fire and Rescuse on both shoulders. The badges denote the wearer as a FF/Paramedic, and their name is embroidered in a gold thread on their right breast; Chakat Taiga! An 'official' badge is pinned to their left breast." //A walking advertisement? + desc = "This uniform - consisting of only the uniform shirt, and built out of a soft fleece - dons the badge of Amistad Fire and Rescuse on both shoulders. The badges denote the wearer as a FF/" + JOB_PARAMEDIC + ", and their name is embroidered in a gold thread on their right breast; Chakat Taiga! An 'official' badge is pinned to their left breast." //A walking advertisement? icon = 'icons/vore/custom_clothes_vr.dmi' icon_override = 'icons/vore/custom_clothes_vr.dmi' item_state = "taigaff_on" diff --git a/code/modules/vore/fluffstuff/custom_items_vr.dm b/code/modules/vore/fluffstuff/custom_items_vr.dm index 46406bc365..b1f3c77034 100644 --- a/code/modules/vore/fluffstuff/custom_items_vr.dm +++ b/code/modules/vore/fluffstuff/custom_items_vr.dm @@ -1475,8 +1475,8 @@ //PastelPrinceDan - Kiyoshi/Masumi Maki /obj/item/toy/plushie/fluff/slimeowshi - name = "Slime-Cat Research Director plushie" - desc = "An adorable stuffed toy that resembles a slime. It's pink, and has little cat ears, as well as a tail! Atop its head is a small beret with a Research Director's insignia." + name = "Slime-Cat " + JOB_RESEARCH_DIRECTOR + " plushie" + desc = "An adorable stuffed toy that resembles a slime. It's pink, and has little cat ears, as well as a tail! Atop its head is a small beret with a " + JOB_RESEARCH_DIRECTOR + "'s insignia." icon = 'icons/vore/custom_items_vr.dmi' icon_state = "kimeowshi" attack_verb = list("blorbled", "slimed", "absorbed", "glomped") diff --git a/code/modules/xenobio/items/slime_objects.dm b/code/modules/xenobio/items/slime_objects.dm index 2dda999778..0bc9724400 100644 --- a/code/modules/xenobio/items/slime_objects.dm +++ b/code/modules/xenobio/items/slime_objects.dm @@ -53,7 +53,7 @@ var/mob/living/carbon/human/S = new(get_turf(src)) S.client = candidate.client to_chat(S, "You are a promethean, brought into existence on [station_name()].") - S.mind.assigned_role = "Promethean" + S.mind.assigned_role = JOB_PROMETHEAN S.set_species("Promethean") S.shapeshifter_set_colour("#2398FF") visible_message("The monkey cube suddenly takes the shape of a humanoid!") @@ -115,7 +115,7 @@ // Very filling food. /obj/item/reagent_containers/food/snacks/slime name = "slimy clump" - desc = "A glob of slime that is thick as honey. For the brave Xenobiologist." + desc = "A glob of slime that is thick as honey. For the brave " + JOB_XENOBIOLOGIST + "." icon_state = "honeycomb" filling_color = "#FFBB00" center_of_mass = list("x"=17, "y"=10) @@ -215,4 +215,4 @@ description = "A slimy liquid, with very compelling smell. Extremely nutritious." color = "#FABA3A" nutriment_factor = 30 - taste_description = "slimy nectar" \ No newline at end of file + taste_description = "slimy nectar" diff --git a/code/modules/xenobio2/mob/slime/slime.dm b/code/modules/xenobio2/mob/slime/slime.dm index a3fca442d5..58460b7a41 100644 --- a/code/modules/xenobio2/mob/slime/slime.dm +++ b/code/modules/xenobio2/mob/slime/slime.dm @@ -4,7 +4,7 @@ Slime definitions, Life and New live here. /mob/living/simple_mob/xeno/slime //Adult values are found here nameVar = "grey" //When mutated, nameVar might change. desc = "A shifting, mass of goo." - faction = "slime" + faction = FACTION_SLIME speak_emote = list("garbles", "chirps", "blurbles") colored = 1 color = "#CACACA" diff --git a/code/modules/xenobio2/mob/slime/slime_monkey.dm b/code/modules/xenobio2/mob/slime/slime_monkey.dm index 8915e58e9b..c8201f2158 100644 --- a/code/modules/xenobio2/mob/slime/slime_monkey.dm +++ b/code/modules/xenobio2/mob/slime/slime_monkey.dm @@ -39,7 +39,7 @@ Slime cube lives here. var/mob/living/carbon/human/S = new(get_turf(src)) S.client = candidate.client to_chat(S., "You are a promethean, brought into existence on [station_name()].") - S.mind.assigned_role = "Promethean" + S.mind.assigned_role = JOB_PROMETHEAN S.set_species("Promethean") S.shapeshifter_set_colour("#05FF9B") for(var/mob/M in viewers(get_turf_or_move(loc))) diff --git a/code/modules/xenobio2/mob/xeno.dm b/code/modules/xenobio2/mob/xeno.dm index f53659b17b..840f17d848 100644 --- a/code/modules/xenobio2/mob/xeno.dm +++ b/code/modules/xenobio2/mob/xeno.dm @@ -8,7 +8,7 @@ Also includes Life and New /mob/living/simple_mob/xeno name = "Xeno" real_name = "Xeno" - faction = "xeno" //Needs to be set. + faction = FACTION_XENO //Needs to be set. desc = "Something's broken, yell at someone." melee_damage_lower = 0 melee_damage_upper = 0 diff --git a/config/alienwhitelist.txt b/config/alienwhitelist.txt index 7e52b2f2e5..06a1d4e64f 100644 --- a/config/alienwhitelist.txt +++ b/config/alienwhitelist.txt @@ -44,6 +44,7 @@ digi5 - Protean digi5 - Black-Eyed Shadekin digitalsquirrel95 - Black-Eyed Shadekin digitalsquirrel95 - Protean +digitalsquirrel95 - Hanner draycu - Vox draykenthedragon - Xenochimera draykenthedragon - Protean @@ -78,6 +79,7 @@ jademanique - Protean jademanique - Teppi jademanique - Xenochimera joltze - Black-Eyed Shadekin +juney7 - Hanner kered2 - Protean khanivore - Protean killjaden - Protean @@ -137,6 +139,7 @@ phoenixx0 - Vox pontifexminimus - Black-Eyed Shadekin pontifexminimus - Protean pontifexminimus - Xenochimera +pontifexminimus - Hanner pugly43 - Protean qrocakes - Black-Eyed Shadekin radiantaurora - Protean @@ -147,6 +150,7 @@ residentcody - Protean revolvereloise - Protean rikaru19xjenkins - Xenochimera rixunie - Diona +romanatcolgate - Hanner rubyflamewing - Protean rykkastormheart - Xenochimera ryumi - Protean @@ -163,6 +167,7 @@ shirosenshi - Xenochimera silvertalismen - Diona silvertalismen - Vox silvertalismen - Xenochimera +silvertalismen - Hanner sirlionfur - Black-Eyed Shadekin sixberry - Black-Eyed Shadekin skylarks - Black-Eyed Shadekin @@ -180,6 +185,7 @@ tastypred - Xenochimera terrestris - Common Skrellian terrestris - Vox thedavestdave - Protean +theoun - Hanner timidvi - Diona tombomb90 - Protean torquegstc - Protean diff --git a/interface/skin.dmf b/interface/skin.dmf index 7d732dd0f2..8316b0f669 100644 --- a/interface/skin.dmf +++ b/interface/skin.dmf @@ -792,6 +792,12 @@ macro "hotkeymode" elem name = "CTRL+SHIFT+SUBTRACT" command = "planedown" + elem + name = "Space" + command = ".throwon" + elem + name = "Space+UP" + command = ".throwoff" macro "borgmacro" elem diff --git a/maps/cynosure/cynosure_jobs.dm b/maps/cynosure/cynosure_jobs.dm index 1086aa37b4..e7ec3296ea 100644 --- a/maps/cynosure/cynosure_jobs.dm +++ b/maps/cynosure/cynosure_jobs.dm @@ -21,7 +21,7 @@ var/const/access_explorer = 43 flag = EXPLORER departments = list(DEPARTMENT_RESEARCH, DEPARTMENT_PLANET) department_flag = MEDSCI - faction = "Station" + faction = FACTION_STATION total_positions = 4 spawn_positions = 4 supervisors = "the Research Director" @@ -34,7 +34,7 @@ var/const/access_explorer = 43 job_description = "An Explorer searches for interesting things on the surface of Sif, and returns them to the station." alt_titles = list( - "Pilot" = /decl/hierarchy/outfit/job/pilot) + JOB_PILOT = /decl/hierarchy/outfit/job/pilot) /datum/job/rd access = list(access_rd, access_heads, access_tox, access_genetics, access_morgue, @@ -47,9 +47,9 @@ var/const/access_explorer = 43 access_research, access_robotics, access_xenobiology, access_ai_upload, access_tech_storage, access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway, access_xenoarch, access_network, access_maint_tunnels, access_explorer, access_eva, access_external_airlocks) - + /* alt_titles = list( - "Explorer Technician" = /decl/hierarchy/outfit/job/explorer2/technician, - "Explorer Medic" = /decl/hierarchy/outfit/job/explorer2/medic) + JOB_ALT_EXPLORERE_TECHNICIAN = /decl/hierarchy/outfit/job/explorer2/technician, + JOB_ALT_EXPLORER_MEDIC = /decl/hierarchy/outfit/job/explorer2/medic) */ diff --git a/maps/expedition_vr/aerostat/_aerostat.dm b/maps/expedition_vr/aerostat/_aerostat.dm index d1e50cc78f..2648d130af 100644 --- a/maps/expedition_vr/aerostat/_aerostat.dm +++ b/maps/expedition_vr/aerostat/_aerostat.dm @@ -119,7 +119,7 @@ /obj/tether_away_spawner/aerostat_inside name = "Aerostat Indoors Spawner" - faction = "aerostat_inside" + faction = FACTION_AEROSTAT_INSIDE atmos_comp = TRUE prob_spawn = 100 prob_fall = 50 @@ -133,7 +133,7 @@ /obj/tether_away_spawner/aerostat_surface name = "Aerostat Surface Spawner" - faction = "aerostat_surface" + faction = FACTION_AEROSTAT_SURFACE atmos_comp = TRUE prob_spawn = 100 prob_fall = 30 diff --git a/maps/expedition_vr/aerostat/_aerostat_science_outpost.dm b/maps/expedition_vr/aerostat/_aerostat_science_outpost.dm index c181fba6a6..5fd5ef60bb 100644 --- a/maps/expedition_vr/aerostat/_aerostat_science_outpost.dm +++ b/maps/expedition_vr/aerostat/_aerostat_science_outpost.dm @@ -52,7 +52,7 @@ /obj/tether_away_spawner/aerostat_inside name = "Aerostat Indoors Spawner" - faction = "aerostat_inside" + faction = FACTION_AEROSTAT_INSIDE atmos_comp = TRUE prob_spawn = 100 prob_fall = 50 @@ -66,7 +66,7 @@ /obj/tether_away_spawner/aerostat_surface name = "Aerostat Surface Spawner" - faction = "aerostat_surface" + faction = FACTION_AEROSTAT_SURFACE atmos_comp = TRUE prob_spawn = 100 prob_fall = 50 diff --git a/maps/expedition_vr/beach/_beach.dm b/maps/expedition_vr/beach/_beach.dm index 5b1d049fe1..f7e9b9b498 100644 --- a/maps/expedition_vr/beach/_beach.dm +++ b/maps/expedition_vr/beach/_beach.dm @@ -78,7 +78,7 @@ // Note that if your map has step teleports, mobs may wander through them accidentally and not know how to get back /obj/tether_away_spawner/beach_outside name = "Beach Outside Spawner" //Just a name - faction = "beach_out" //Sets all the mobs to this faction so they don't infight + faction = FACTION_BEACH_OUT //Sets all the mobs to this faction so they don't infight atmos_comp = TRUE //Sets up their atmos tolerances to work in this setting, even if they don't normally (20% up/down tolerance for each gas, and heat) prob_spawn = 100 //Chance of this spawner spawning a mob (once this is missed, the spawner is 'depleted' and won't spawn anymore) prob_fall = 25 //Chance goes down by this much each time it spawns one (not defining and prob_spawn 100 means they spawn as soon as one dies) @@ -91,7 +91,7 @@ /obj/tether_away_spawner/beach_outside_friendly name = "Fennec Spawner" - faction = "fennec" + faction = FACTION_FENNEC atmos_comp = TRUE prob_spawn = 100 prob_fall = 25 @@ -102,7 +102,7 @@ /obj/tether_away_spawner/beach_cave name = "Beach Cave Spawner" - faction = "beach_cave" + faction = FACTION_BEACH_CAVE atmos_comp = TRUE prob_spawn = 100 prob_fall = 40 diff --git a/maps/gateway_archive_vr/labyrinth.dm b/maps/gateway_archive_vr/labyrinth.dm index 0f3121406e..726412441a 100644 --- a/maps/gateway_archive_vr/labyrinth.dm +++ b/maps/gateway_archive_vr/labyrinth.dm @@ -205,7 +205,7 @@ /mob/living/simple_mob/hostile/tunnelclown name = "tunnel clown" desc = "A clown driven to madness in the depths of the Honk Mother's Catacombs." - faction = "tunnelclown" + faction = FACTION_TUNNELCLOWN icon = 'icons/mob/clowns_vr.dmi' icon_state = "tunnelclown" icon_living = "tunnelclown" @@ -247,7 +247,7 @@ /mob/living/simple_mob/hostile/tunnelclown/sentinel name = "tunnel clown sentinel" desc = "A clown warrior tasked with guarding the Honk Mother's Catacombs." - faction = "tunnelclown" + faction = FACTION_TUNNELCLOWN icon = 'icons/mob/clowns_vr.dmi' icon_state = "sentinelclown" icon_living = "sentinelclown" @@ -271,7 +271,7 @@ /mob/living/simple_mob/hostile/cluwne name = "cluwne" desc = "A mutated clown alleged to have been cursed by the Honk Mother and permanently banished to these catacombs for once being an unfunny shitter who brought grief instead of laughter." - faction = "tunnelclown" + faction = FACTION_TUNNELCLOWN icon = 'icons/mob/clowns_vr.dmi' icon_state = "cluwne" icon_living = "cluwne" diff --git a/maps/gateway_archive_vr/snowfield.dm b/maps/gateway_archive_vr/snowfield.dm index 8153b195bc..e26e382695 100644 --- a/maps/gateway_archive_vr/snowfield.dm +++ b/maps/gateway_archive_vr/snowfield.dm @@ -56,7 +56,7 @@ vore_active = 1 say_list_type = /datum/say_list/polar_bear - faction = "polar" + faction = FACTION_POLAR maxHealth = 80 health = 80 // Polar bear will fuck you up. @@ -87,13 +87,13 @@ ..() /mob/living/simple_mob/animal/sif/sakimm/polar - faction = "polar" + faction = FACTION_POLAR /mob/living/simple_mob/animal/sif/diyaab/polar - faction = "polar" + faction = FACTION_POLAR /mob/living/simple_mob/animal/sif/shantak/polar - faction = "polar" + faction = FACTION_POLAR // -- Items -- // diff --git a/maps/gateway_vr/snowfield.dm b/maps/gateway_vr/snowfield.dm index 03e64facef..f8679ae65c 100644 --- a/maps/gateway_vr/snowfield.dm +++ b/maps/gateway_vr/snowfield.dm @@ -68,7 +68,7 @@ vore_active = 1 say_list_type = /datum/say_list/polar_bear - faction = "polar" + faction = FACTION_POLAR maxHealth = 80 health = 80 // Polar bear will fuck you up. @@ -99,13 +99,13 @@ ..() /mob/living/simple_mob/animal/sif/sakimm/polar - faction = "polar" + faction = FACTION_POLAR /mob/living/simple_mob/animal/sif/diyaab/polar - faction = "polar" + faction = FACTION_POLAR /mob/living/simple_mob/animal/sif/shantak/polar - faction = "polar" + faction = FACTION_POLAR // -- Items -- // diff --git a/maps/northern_star/job/outfits.dm b/maps/northern_star/job/outfits.dm index 7d07d0d1f3..0aed969893 100644 --- a/maps/northern_star/job/outfits.dm +++ b/maps/northern_star/job/outfits.dm @@ -1,6 +1,6 @@ //Job Outfits /decl/hierarchy/outfit/job/assistant/resident - name = OUTFIT_JOB_NAME("Resident") - id_pda_assignment = "Resident" - uniform = /obj/item/clothing/under/color/white \ No newline at end of file + name = OUTFIT_JOB_NAME(JOB_ALT_RESIDENT) + id_pda_assignment = JOB_ALT_RESIDENT + uniform = /obj/item/clothing/under/color/white diff --git a/maps/northern_star/northern_star_jobs.dm b/maps/northern_star/northern_star_jobs.dm index 57fba6a034..e3852a90b6 100644 --- a/maps/northern_star/northern_star_jobs.dm +++ b/maps/northern_star/northern_star_jobs.dm @@ -1,9 +1,9 @@ // Overrides the alt titles. /datum/job/assistant alt_titles = list( - "Technical Assistant", - "Medical Intern", - "Research Assistant", - "Visitor" = /decl/hierarchy/outfit/job/assistant/visitor, - "Resident" = /decl/hierarchy/outfit/job/assistant/resident - ) \ No newline at end of file + JOB_ALT_TECHNICAL_ASSISTANT, + JOB_ALT_MEDICAL_INTERN, + JOB_ALT_RESEARCH_ASSISTANT, + JOB_ALT_VISITOR = /decl/hierarchy/outfit/job/assistant/visitor, + JOB_ALT_RESIDENT = /decl/hierarchy/outfit/job/assistant/resident + ) diff --git a/maps/offmap_vr/common_offmaps.dm b/maps/offmap_vr/common_offmaps.dm index bcedb5397a..07b3edee72 100644 --- a/maps/offmap_vr/common_offmaps.dm +++ b/maps/offmap_vr/common_offmaps.dm @@ -530,7 +530,7 @@ icon = 'icons/mob/vore_shadekin.dmi' icon_state = "spawner" - faction = "shadekin" + faction = FACTION_SHADEKIN prob_spawn = 1 prob_fall = 1 //guard = 10 //Don't wander too far, to stay alive. @@ -594,7 +594,6 @@ #include "../offmap_vr/om_ships/aro2.dm" #include "../offmap_vr/om_ships/aro3.dm" #include "../offmap_vr/om_ships/bearcat.dm" -#include "../offmap_vr/om_ships/cruiser.dm" #include "../offmap_vr/om_ships/vespa.dm" #include "../offmap_vr/om_ships/generic_shuttle.dm" #include "../offmap_vr/om_ships/salamander.dm" @@ -611,7 +610,6 @@ ////////////////////////////////////////////////////////////////////////////// //Capsule deployed ships #include "../offmap_vr/om_ships/shelter_5.dm" -#include "../offmap_vr/om_ships/shelter_6.dm" ////////////////////////////////////////////////////////////////////////////// //Offmap Spawn Locations diff --git a/maps/offmap_vr/om_ships/cruiser.dm b/maps/offmap_vr/om_ships/cruiser.dm deleted file mode 100644 index ab47fc272e..0000000000 --- a/maps/offmap_vr/om_ships/cruiser.dm +++ /dev/null @@ -1,142 +0,0 @@ -// Compile in the map for CI testing if we're testing compileability of all the maps -#if MAP_TEST -#include "cruiser.dmm" -#endif - -//////// Mothership areas //////// -/area/mothership - requires_power = 1 - flags = RAD_SHIELDED - base_turf = /turf/space - icon_state = "blue2" - -/area/mothership/breakroom - name = "Daedalus - Breakroom" - -/area/mothership/hydroponics - name = "Daedalus - Hydroponics" - -/area/mothership/kitchen - name = "Daedalus - Kitchen" - -/area/mothership/eva - name = "Daedalus - EVA" - -/area/mothership/bathroom1 - name = "Daedalus - Bathroom 1" - -/area/mothership/bathroom2 - name = "Daedalus - Bathroom 2" - -/area/mothership/dorm1 - name = "Daedalus - Dorm 1" - -/area/mothership/dorm2 - name = "Daedalus - Dorm 2" - -/area/mothership/dorm3 - name = "Daedalus - Dorm 3" - -/area/mothership/dorm4 - name = "Daedalus - Dorm 4" - -/area/mothership/dorm5 - name = "Daedalus - Dorm 5" - -/area/mothership/dorm6 - name = "Daedalus - Dorm 6" - -/area/mothership/chemistry - name = "Daedalus - Chemistry" - -/area/mothership/surgery - name = "Daedalus - Surgery" - -/area/mothership/vault - name = "Daedalus - Vault" - flags = RAD_SHIELDED | BLUE_SHIELDED - -/area/mothership/teleporter - name = "Daedalus - Teleporter Room" - -/area/mothership/security - name = "Daedalus - Security Equipment" - -/area/mothership/treatment - name = "Daedalus - Treatment Center" - -/area/mothership/medical - name = "Daedalus - Medical Equipment" - -/area/mothership/resleeving - name = "Daedalus - Resleeving" - -/area/mothership/morgue - name = "Daedalus - Morgue" - -/area/mothership/rnd - name = "Daedalus - Research" - -/area/mothership/robotics - name = "Daedalus - Robotics" - -/area/mothership/sechallway - name = "Daedalus - Security Hallway" - -/area/mothership/processing - name = "Daedalus - Processing" - -/area/mothership/warden - name = "Daedalus - Warden" - -/area/mothership/armory - name = "Daedalus - Armory" - flags = RAD_SHIELDED | BLUE_SHIELDED - -/area/mothership/bridge - name = "Daedalus - Bridge" - -/area/mothership/holodeck - name = "Daedalus - Holodeck Controls" -/area/mothership/holodeck/holo - name = "Daedalus - Holodeck" - icon_state = "dk_yellow" - -/area/mothership/cryotube - name = "Daedalus - Cryo chamber" - -/area/mothership/engineering - name = "Daedalus - Engineering" - -/area/mothership/hallway - name = "Daedalus - Main Hallway" - -/area/mothership/telecomms1 - name = "Daedalus - Hangar 1" - has_gravity = 0 - -/area/mothership/telecomms2 - name = "Daedalus - Hangar 2" - has_gravity = 0 - -/datum/map_template/om_ships/cruiser - name = "OM Ship - Daedalus (New Z)" - desc = "A large NT cruiser." - mappath = 'cruiser.dmm' - -/obj/effect/overmap/visitable/ship/cruiser - name = "NDV Daedalus" - icon_state = "oberth_destroyer_g" - desc = "Spacefaring vessel. NanoTrasen IFF detected." - scanner_desc = @{"[i]Registration[/i]: NDV Daedalus -[i]Class[/i]: Light Cruiser -[i]Transponder[/i]: Transmitting (MIL), NanoTrasen IFF -[b]Notice[/b]: Military vessel, do not approach"} - vessel_mass = 15000 - vessel_size = SHIP_SIZE_LARGE - initial_generic_waypoints = list("cruiser_fore", "cruiser_aft", "cruiser_port", "cruiser_starboard", "ws_port_dock_1", "ws_port_dock_2", "ws_starboard_dock_1", "ws_starboard_dock_2") - - skybox_icon = 'cruiser.dmi' //Art by Gwyvern, see ATTRIBUTIONS.md - skybox_icon_state = "skybox" - skybox_pixel_x = 370 - skybox_pixel_y = 370 diff --git a/maps/offmap_vr/om_ships/cruiser.dmi b/maps/offmap_vr/om_ships/cruiser.dmi deleted file mode 100644 index 6a383f4c12..0000000000 Binary files a/maps/offmap_vr/om_ships/cruiser.dmi and /dev/null differ diff --git a/maps/offmap_vr/om_ships/cruiser.dmm b/maps/offmap_vr/om_ships/cruiser.dmm deleted file mode 100644 index ecb45b1f3f..0000000000 --- a/maps/offmap_vr/om_ships/cruiser.dmm +++ /dev/null @@ -1,29869 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( -/turf/space, -/area/space) -"ac" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/full, -/obj/machinery/door/blast/regular{ - density = 0; - destroy_hits = 1000; - dir = 4; - icon_state = "pdoor0"; - id = "ship-lounge"; - name = "Shuttle Blast Doors"; - opacity = 0 - }, -/obj/machinery/door/firedoor/glass, -/obj/structure/window/reinforced, -/turf/simulated/floor/plating, -/area/mothership/breakroom) -"ad" = ( -/obj/machinery/door/airlock/external{ - frequency = 1380; - icon_state = "door_locked"; - id_tag = "ws_dock_8_outer"; - locked = 1; - req_one_access = list(101) - }, -/obj/machinery/access_button{ - command = "cycle_exterior"; - frequency = 1380; - master_tag = "ws_dock_8"; - name = "exterior access button"; - pixel_x = -26; - pixel_y = 5; - req_one_access = list(101) - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/breakroom) -"af" = ( -/obj/effect/shuttle_landmark{ - base_area = /area/space; - base_turf = /turf/space; - flags = 2; - landmark_tag = "cruiser_fore"; - name = "Vessel fore" - }, -/turf/space, -/area/space) -"ah" = ( -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/breakroom) -"ai" = ( -/obj/machinery/atmospherics/unary/vent_pump/high_volume{ - frequency = 1380; - id_tag = "ws_dock_8_pump" - }, -/obj/machinery/light/small{ - dir = 4; - pixel_y = 0 - }, -/obj/machinery/embedded_controller/radio/airlock/docking_port{ - frequency = 1380; - id_tag = "ws_dock_8"; - pixel_x = -32; - req_one_access = list(101); - tag_airpump = "ws_dock_8_pump"; - tag_chamber_sensor = "ws_dock_8_sensor"; - tag_exterior_door = "ws_dock_8_outer"; - tag_interior_door = "ws_dock_8_inner" - }, -/obj/machinery/airlock_sensor{ - frequency = 1380; - id_tag = "ws_dock_8_sensor"; - pixel_x = 25; - pixel_y = 0 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/breakroom) -"aj" = ( -/obj/effect/floor_decal/spline/fancy/wood, -/obj/machinery/light{ - dir = 8; - icon_state = "tube1" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/breakroom) -"ak" = ( -/obj/effect/floor_decal/spline/fancy/wood, -/obj/structure/bed/chair/comfy/black{ - dir = 1 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/breakroom) -"al" = ( -/obj/effect/floor_decal/spline/fancy/wood, -/obj/machinery/light{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/breakroom) -"am" = ( -/obj/machinery/atmospherics/unary/vent_pump/high_volume{ - frequency = 1380; - id_tag = "ws_dock_1_pump" - }, -/obj/machinery/light/small{ - dir = 8; - pixel_x = 0 - }, -/obj/machinery/airlock_sensor{ - frequency = 1380; - id_tag = "ws_dock_1_sensor"; - pixel_x = -25; - pixel_y = 0 - }, -/obj/machinery/embedded_controller/radio/airlock/docking_port{ - frequency = 1380; - id_tag = "ws_dock_1"; - pixel_x = 32; - req_one_access = list(101); - tag_airpump = "ws_dock_1_pump"; - tag_chamber_sensor = "ws_dock_1_sensor"; - tag_exterior_door = "ws_dock_1_outer"; - tag_interior_door = "ws_dock_1_inner" - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/breakroom) -"an" = ( -/obj/machinery/atmospherics/pipe/simple/hidden, -/obj/machinery/door/airlock/external{ - frequency = 1380; - icon_state = "door_locked"; - id_tag = "ws_dock_8_inner"; - locked = 1; - req_one_access = list(101) - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/breakroom) -"ao" = ( -/turf/simulated/floor/wood, -/area/mothership/breakroom) -"ap" = ( -/obj/machinery/firealarm{ - dir = 2; - layer = 3.3; - pixel_x = 4; - pixel_y = 26 - }, -/turf/simulated/floor/wood, -/area/mothership/breakroom) -"aq" = ( -/obj/machinery/status_display{ - pixel_y = 29 - }, -/turf/simulated/floor/carpet/blue, -/area/mothership/breakroom) -"ar" = ( -/turf/simulated/floor/carpet/blue, -/area/mothership/breakroom) -"as" = ( -/obj/machinery/alarm{ - pixel_y = 22 - }, -/turf/simulated/floor/wood, -/area/mothership/breakroom) -"at" = ( -/obj/machinery/media/jukebox, -/turf/simulated/floor/wood, -/area/mothership/breakroom) -"au" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/full, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/door/blast/regular{ - density = 0; - destroy_hits = 1000; - dir = 1; - icon_state = "pdoor0"; - id = "ship-lounge"; - name = "Shuttle Blast Doors"; - opacity = 0 - }, -/obj/machinery/door/firedoor/glass, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/simulated/floor/plating, -/area/mothership/breakroom) -"av" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/simulated/floor/wood, -/area/mothership/breakroom) -"aw" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/simulated/floor/wood, -/area/mothership/breakroom) -"ax" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/carpet/blue, -/area/mothership/breakroom) -"ay" = ( -/obj/structure/bed/chair/wood{ - dir = 4; - icon_state = "wooden_chair" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 - }, -/turf/simulated/floor/carpet/blue, -/area/mothership/breakroom) -"az" = ( -/obj/structure/table/woodentable, -/turf/simulated/floor/carpet/blue, -/area/mothership/breakroom) -"aA" = ( -/obj/structure/bed/chair/wood{ - dir = 8; - icon_state = "wooden_chair" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 - }, -/turf/simulated/floor/carpet/blue, -/area/mothership/breakroom) -"aB" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/simulated/floor/wood, -/area/mothership/breakroom) -"aC" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/full, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/door/blast/regular{ - density = 0; - destroy_hits = 1000; - dir = 1; - icon_state = "pdoor0"; - id = "ship-lounge"; - name = "Shuttle Blast Doors"; - opacity = 0 - }, -/obj/machinery/door/firedoor/glass, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/simulated/floor/plating, -/area/mothership/breakroom) -"aD" = ( -/obj/structure/bed/chair/wood{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 10; - icon_state = "intact" - }, -/turf/simulated/floor/carpet/blue, -/area/mothership/breakroom) -"aE" = ( -/obj/structure/table/woodentable, -/obj/item/book/codex, -/turf/simulated/floor/carpet/blue, -/area/mothership/breakroom) -"aF" = ( -/obj/structure/bed/chair/wood{ - dir = 8; - icon_state = "wooden_chair" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 6 - }, -/turf/simulated/floor/carpet/blue, -/area/mothership/breakroom) -"aG" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/turf/simulated/floor/wood, -/area/mothership/breakroom) -"aH" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/carpet/blue, -/area/mothership/breakroom) -"aI" = ( -/obj/structure/bed/chair/wood{ - dir = 4; - icon_state = "wooden_chair" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/carpet/blue, -/area/mothership/breakroom) -"aJ" = ( -/obj/structure/bed/chair/wood{ - dir = 8; - icon_state = "wooden_chair" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/carpet/blue, -/area/mothership/breakroom) -"aK" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 8 - }, -/turf/simulated/floor/wood, -/area/mothership/breakroom) -"aL" = ( -/obj/machinery/vending/coffee{ - dir = 1 - }, -/turf/simulated/floor/wood, -/area/mothership/breakroom) -"aM" = ( -/obj/machinery/vending/fitness{ - dir = 1 - }, -/turf/simulated/floor/wood, -/area/mothership/breakroom) -"aN" = ( -/obj/machinery/vending/cola{ - dir = 1 - }, -/turf/simulated/floor/wood, -/area/mothership/breakroom) -"aO" = ( -/obj/machinery/vending/snack{ - dir = 1 - }, -/turf/simulated/floor/wood, -/area/mothership/breakroom) -"aP" = ( -/obj/machinery/vending/sovietsoda{ - dir = 1 - }, -/turf/simulated/floor/wood, -/area/mothership/breakroom) -"aQ" = ( -/obj/structure/closet/crate/freezer/rations, -/obj/random/mre, -/obj/random/mre, -/obj/random/mre, -/obj/random/mre, -/obj/random/mre, -/obj/random/mre, -/obj/machinery/power/apc{ - alarms_hidden = 1; - dir = 2; - name = "south bump"; - pixel_y = -28; - req_access = list(67) - }, -/obj/structure/cable/cyan{ - icon_state = "0-4" - }, -/turf/simulated/floor/wood, -/area/mothership/breakroom) -"aR" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/light, -/obj/machinery/button/remote/blast_door{ - id = "ship-lounge"; - name = "Blast Doors Controls"; - pixel_y = -28 - }, -/turf/simulated/floor/carpet/blue, -/area/mothership/breakroom) -"aS" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/carpet/blue, -/area/mothership/breakroom) -"aT" = ( -/obj/machinery/vending/boozeomat{ - density = 0; - pixel_x = 0; - pixel_y = -32 - }, -/turf/simulated/floor/carpet/blue, -/area/mothership/breakroom) -"aU" = ( -/obj/machinery/vending/food/arojoan{ - density = 0; - pixel_x = 0; - pixel_y = -32 - }, -/turf/simulated/floor/carpet/blue, -/area/mothership/breakroom) -"aV" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/carpet/blue, -/area/mothership/breakroom) -"aW" = ( -/obj/machinery/light, -/turf/simulated/floor/carpet/blue, -/area/mothership/breakroom) -"aX" = ( -/obj/machinery/vending/dinnerware{ - dir = 1 - }, -/turf/simulated/floor/wood, -/area/mothership/breakroom) -"aY" = ( -/obj/structure/table/steel_reinforced, -/obj/machinery/chemical_dispenser/bar_alc/full, -/turf/simulated/floor/wood, -/area/mothership/breakroom) -"aZ" = ( -/obj/structure/table/steel_reinforced, -/obj/machinery/chemical_dispenser/bar_soft/full, -/turf/simulated/floor/wood, -/area/mothership/breakroom) -"ba" = ( -/obj/structure/table/steel_reinforced, -/obj/machinery/chemical_dispenser/bar_coffee/full, -/turf/simulated/floor/wood, -/area/mothership/breakroom) -"bb" = ( -/obj/structure/closet/crate/bin, -/turf/simulated/floor/wood, -/area/mothership/breakroom) -"bc" = ( -/obj/machinery/porta_turret/industrial/military, -/turf/simulated/floor/reinforced/airless{ - name = "outer hull" - }, -/area/mothership/bridge) -"bd" = ( -/turf/simulated/wall/rpshull, -/area/mothership/hydroponics) -"bf" = ( -/obj/effect/floor_decal/spline/fancy/wood{ - dir = 1 - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden, -/obj/machinery/door/airlock, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/hydroponics) -"bg" = ( -/obj/effect/floor_decal/spline/fancy/wood{ - dir = 1 - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden, -/obj/machinery/door/airlock, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/hydroponics) -"bh" = ( -/obj/structure/sign/department/bar, -/turf/simulated/wall/rpshull, -/area/mothership/kitchen) -"bi" = ( -/turf/simulated/wall/rpshull, -/area/mothership/kitchen) -"bj" = ( -/obj/machinery/door/window/northleft, -/obj/machinery/door/window/southleft, -/obj/structure/table/steel_reinforced, -/obj/effect/floor_decal/spline/fancy/wood{ - dir = 1 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/kitchen) -"bl" = ( -/obj/machinery/biogenerator, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/hydroponics) -"bm" = ( -/obj/item/reagent_containers/glass/bucket, -/obj/item/reagent_containers/glass/bucket, -/obj/structure/table/steel_reinforced, -/obj/item/material/minihoe, -/obj/item/material/minihoe, -/obj/item/material/knife, -/obj/item/material/knife, -/obj/machinery/power/apc{ - alarms_hidden = 1; - dir = 1; - name = "north bump"; - pixel_x = 0; - pixel_y = 28 - }, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/hydroponics) -"bn" = ( -/obj/machinery/portable_atmospherics/hydroponics, -/obj/machinery/firealarm{ - dir = 2; - layer = 3.3; - pixel_x = 4; - pixel_y = 26 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/hydroponics) -"bo" = ( -/obj/machinery/portable_atmospherics/hydroponics, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/hydroponics) -"bp" = ( -/obj/machinery/portable_atmospherics/hydroponics, -/obj/machinery/light{ - dir = 1 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/hydroponics) -"bq" = ( -/obj/structure/sink/kitchen, -/turf/simulated/wall/rpshull, -/area/mothership/hydroponics) -"br" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 5; - icon_state = "intact" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/hydroponics) -"bs" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden{ - dir = 1; - icon_state = "map" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/hydroponics) -"bt" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/hydroponics) -"bu" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 9; - icon_state = "intact" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/hydroponics) -"bv" = ( -/obj/structure/sink/kitchen, -/turf/simulated/wall/rpshull, -/area/mothership/kitchen) -"bw" = ( -/obj/machinery/chem_master/condimaster, -/turf/simulated/floor/tiled/white, -/area/mothership/kitchen) -"bx" = ( -/obj/structure/table/steel_reinforced, -/obj/machinery/microwave, -/obj/machinery/light{ - dir = 1 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/kitchen) -"by" = ( -/turf/simulated/floor/tiled/white, -/area/mothership/kitchen) -"bz" = ( -/obj/structure/table/steel_reinforced, -/obj/item/reagent_containers/food/condiment/small/peppermill{ - pixel_x = 3 - }, -/obj/item/reagent_containers/food/condiment/small/saltshaker{ - pixel_x = -3; - pixel_y = 0 - }, -/obj/machinery/alarm{ - pixel_y = 22 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/kitchen) -"bA" = ( -/obj/structure/table/steel_reinforced, -/obj/item/book/manual/chef_recipes, -/obj/item/reagent_containers/food/condiment/enzyme{ - layer = 5 - }, -/obj/item/reagent_containers/food/condiment/enzyme{ - layer = 5 - }, -/obj/item/material/knife/butch, -/obj/item/material/kitchen/rollingpin, -/obj/machinery/firealarm{ - dir = 2; - layer = 3.3; - pixel_x = 4; - pixel_y = 26 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/kitchen) -"bB" = ( -/obj/structure/table/steel_reinforced, -/obj/machinery/reagentgrinder, -/obj/item/storage/box/beakers, -/obj/machinery/button/remote/blast_door{ - id = "ship-kitchen"; - name = "Blast Doors Controls"; - pixel_y = 28 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/kitchen) -"bC" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/full, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/door/blast/regular{ - density = 0; - destroy_hits = 1000; - dir = 1; - icon_state = "pdoor0"; - id = "ship-hydroponics"; - name = "Shuttle Blast Doors"; - opacity = 0 - }, -/obj/machinery/door/firedoor/glass, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/simulated/floor/plating, -/area/mothership/hydroponics) -"bD" = ( -/obj/machinery/seed_storage/xenobotany{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/hydroponics) -"bE" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/hydroponics) -"bF" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/hydroponics) -"bG" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/hydroponics) -"bH" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/hydroponics) -"bI" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/hydroponics) -"bJ" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/hydroponics) -"bK" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/hydroponics) -"bL" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/hydroponics) -"bM" = ( -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/kitchen) -"bN" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/kitchen) -"bO" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/kitchen) -"bP" = ( -/obj/structure/closet/secure_closet/freezer/meat, -/turf/simulated/floor/tiled/white, -/area/mothership/kitchen) -"bQ" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/full, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/door/blast/regular{ - density = 0; - destroy_hits = 1000; - dir = 1; - icon_state = "pdoor0"; - id = "ship-kitchen"; - name = "Shuttle Blast Doors"; - opacity = 0 - }, -/obj/machinery/door/firedoor/glass, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/simulated/floor/plating, -/area/mothership/kitchen) -"bR" = ( -/obj/machinery/vending/hydronutrients{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/hydroponics) -"bS" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/hydroponics) -"bT" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/hydroponics) -"bU" = ( -/obj/machinery/door/airlock/multi_tile/metal{ - dir = 2 - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/hydroponics) -"bV" = ( -/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/hydroponics) -"bW" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/hydroponics) -"bX" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/hydroponics) -"bY" = ( -/obj/machinery/door/airlock/multi_tile/metal{ - dir = 2 - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/kitchen) -"bZ" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/kitchen) -"ca" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/kitchen) -"cb" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 8 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/kitchen) -"cc" = ( -/obj/structure/closet/secure_closet/freezer/fridge, -/turf/simulated/floor/tiled/white, -/area/mothership/kitchen) -"cd" = ( -/obj/machinery/seed_extractor, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/hydroponics) -"ce" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/machinery/light, -/obj/machinery/alarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/obj/machinery/button/remote/blast_door{ - id = "ship-hydroponics"; - name = "Blast Doors Controls"; - pixel_x = 20; - pixel_y = -28 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/hydroponics) -"cf" = ( -/obj/machinery/alarm{ - dir = 4; - pixel_x = -23; - pixel_y = 0 - }, -/obj/structure/closet/crate/bin, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/hydroponics) -"cg" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/hydroponics) -"ch" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/hydroponics) -"ci" = ( -/obj/machinery/light, -/obj/machinery/firealarm{ - dir = 1; - pixel_x = 0; - pixel_y = -25 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/hydroponics) -"cj" = ( -/obj/machinery/smartfridge, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/kitchen) -"ck" = ( -/obj/machinery/power/apc{ - alarms_hidden = 1; - dir = 2; - name = "south bump"; - pixel_y = -28; - req_access = list(67) - }, -/obj/structure/cable/cyan, -/turf/simulated/floor/tiled/white, -/area/mothership/kitchen) -"cl" = ( -/obj/machinery/appliance/mixer/cereal, -/obj/effect/floor_decal/industrial/warning/dust{ - dir = 9 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/kitchen) -"cm" = ( -/obj/machinery/appliance/cooker/fryer, -/obj/structure/table/steel_reinforced, -/obj/effect/floor_decal/industrial/warning/dust{ - dir = 1 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/kitchen) -"cn" = ( -/obj/machinery/appliance/cooker/oven, -/obj/structure/table/steel_reinforced, -/obj/effect/floor_decal/industrial/warning/dust{ - dir = 1 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/kitchen) -"co" = ( -/obj/machinery/appliance/cooker/grill, -/obj/structure/table/steel_reinforced, -/obj/effect/floor_decal/industrial/warning/dust{ - dir = 1 - }, -/obj/machinery/light, -/turf/simulated/floor/tiled/white, -/area/mothership/kitchen) -"cp" = ( -/obj/machinery/appliance/mixer/candy, -/obj/effect/floor_decal/industrial/warning/dust{ - dir = 1 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/kitchen) -"cq" = ( -/turf/simulated/floor/reinforced/airless{ - name = "outer hull" - }, -/area/mothership/bridge) -"cr" = ( -/turf/simulated/wall/rpshull, -/area/mothership/eva) -"cw" = ( -/obj/item/clothing/suit/space/void/security/alt, -/obj/item/clothing/head/helmet/space/void/security/alt, -/obj/item/tank/oxygen, -/obj/item/clothing/shoes/magboots, -/obj/item/clothing/mask/breath, -/obj/machinery/alarm{ - pixel_y = 22 - }, -/obj/structure/table/rack/shelf/steel, -/obj/item/tank/jetpack/oxygen, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/eva) -"cx" = ( -/obj/item/clothing/suit/space/void/atmos, -/obj/item/clothing/head/helmet/space/void/atmos, -/obj/item/tank/oxygen/red, -/obj/item/clothing/shoes/magboots, -/obj/item/clothing/mask/breath, -/obj/structure/table/rack/shelf/steel, -/obj/item/tank/jetpack/oxygen, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/eva) -"cy" = ( -/obj/item/clothing/suit/space/void/medical/alt, -/obj/item/clothing/head/helmet/space/void/medical/emt, -/obj/item/tank/oxygen, -/obj/item/clothing/shoes/magboots, -/obj/item/clothing/mask/breath, -/obj/structure/table/rack/shelf/steel, -/obj/item/tank/jetpack/oxygen, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/eva) -"cz" = ( -/obj/machinery/suit_cycler, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/eva) -"cA" = ( -/obj/structure/table/steel_reinforced, -/obj/item/storage/toolbox/syndicate/powertools, -/obj/item/multitool, -/obj/machinery/light{ - dir = 1 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/eva) -"cB" = ( -/obj/structure/table/steel_reinforced, -/obj/fiftyspawner/steel, -/obj/fiftyspawner/steel, -/obj/fiftyspawner/steel, -/obj/machinery/alarm{ - pixel_y = 22 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/eva) -"cC" = ( -/obj/machinery/status_display{ - pixel_y = 29 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/eva) -"cD" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/eva) -"cE" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/eva) -"cF" = ( -/obj/machinery/status_display{ - pixel_y = 29 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/eva) -"cG" = ( -/obj/structure/table/steel_reinforced, -/obj/item/radio/off, -/obj/item/radio/off, -/obj/item/radio/off, -/obj/item/radio/off, -/obj/item/radio/off, -/obj/item/radio/off, -/obj/item/radio/off, -/obj/machinery/firealarm{ - dir = 2; - layer = 3.3; - pixel_x = 4; - pixel_y = 26 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/eva) -"cH" = ( -/obj/machinery/door/airlock/external{ - frequency = 1380; - icon_state = "door_locked"; - id_tag = "ws_dock_7_outer"; - locked = 1; - req_one_access = list(101) - }, -/obj/machinery/access_button{ - command = "cycle_exterior"; - frequency = 1380; - master_tag = "ws_dock_7"; - name = "exterior access button"; - pixel_x = -5; - pixel_y = 26; - req_one_access = list(101) - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/eva) -"cI" = ( -/obj/machinery/atmospherics/unary/vent_pump/high_volume{ - dir = 4; - frequency = 1380; - id_tag = "ws_dock_7_pump" - }, -/obj/machinery/light/small, -/obj/machinery/airlock_sensor{ - frequency = 1380; - id_tag = "ws_dock_7_sensor"; - pixel_x = 0; - pixel_y = -25 - }, -/obj/machinery/embedded_controller/radio/airlock/docking_port{ - frequency = 1380; - id_tag = "ws_dock_7"; - pixel_y = 32; - req_one_access = list(101); - tag_airpump = "ws_dock_7_pump"; - tag_chamber_sensor = "ws_dock_7_sensor"; - tag_exterior_door = "ws_dock_7_outer"; - tag_interior_door = "ws_dock_7_inner" - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/eva) -"cJ" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - frequency = 1380; - icon_state = "door_locked"; - id_tag = "ws_dock_7_inner"; - locked = 1; - req_one_access = list(101) - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/eva) -"cK" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/obj/machinery/access_button{ - command = "cycle_interior"; - frequency = 1380; - master_tag = "ws_dock_7"; - name = "interior access button"; - pixel_x = -28; - pixel_y = -26; - req_one_access = list(101) - }, -/obj/effect/floor_decal/industrial/warning{ - dir = 8 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/eva) -"cL" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/eva) -"cM" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/eva) -"cN" = ( -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/eva) -"cO" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/eva) -"cP" = ( -/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/manifold4w/hidden, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/eva) -"cQ" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/eva) -"cR" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/eva) -"cS" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/obj/machinery/access_button{ - command = "cycle_interior"; - frequency = 1380; - master_tag = "ws_dock_2"; - name = "interior access button"; - pixel_x = 28; - pixel_y = -26; - req_one_access = list(101) - }, -/obj/effect/floor_decal/industrial/warning{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/eva) -"cT" = ( -/obj/machinery/atmospherics/unary/vent_pump/high_volume{ - dir = 8; - frequency = 1380; - id_tag = "ws_dock_2_pump" - }, -/obj/machinery/light/small, -/obj/machinery/embedded_controller/radio/airlock/docking_port{ - frequency = 1380; - id_tag = "ws_dock_2"; - pixel_y = 32; - req_one_access = list(101); - tag_airpump = "ws_dock_2_pump"; - tag_chamber_sensor = "ws_dock_2_sensor"; - tag_exterior_door = "ws_dock_2_outer"; - tag_interior_door = "ws_dock_2_inner" - }, -/obj/machinery/airlock_sensor{ - frequency = 1380; - id_tag = "ws_dock_2_sensor"; - pixel_x = 0; - pixel_y = -25 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/eva) -"cU" = ( -/obj/item/clothing/suit/space/void/security/alt, -/obj/item/clothing/head/helmet/space/void/security/alt, -/obj/item/tank/oxygen, -/obj/item/clothing/shoes/magboots, -/obj/item/clothing/mask/breath, -/obj/structure/table/rack/shelf/steel, -/obj/item/tank/jetpack/oxygen, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/eva) -"cV" = ( -/obj/item/clothing/suit/space/void/engineering/salvage, -/obj/item/clothing/head/helmet/space/void/engineering/salvage, -/obj/item/tank/oxygen/red, -/obj/item/clothing/shoes/magboots, -/obj/item/clothing/mask/breath, -/obj/machinery/light, -/obj/structure/table/rack/shelf/steel, -/obj/item/tank/jetpack/oxygen, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/eva) -"cW" = ( -/obj/item/clothing/suit/space/void/exploration, -/obj/item/clothing/head/helmet/space/void/exploration, -/obj/item/tank/oxygen, -/obj/item/clothing/shoes/magboots, -/obj/item/clothing/mask/breath, -/obj/machinery/firealarm{ - dir = 1; - pixel_x = 0; - pixel_y = -25 - }, -/obj/structure/table/rack/shelf/steel, -/obj/item/tank/jetpack/oxygen, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/eva) -"cX" = ( -/obj/structure/dispenser/oxygen{ - oxygentanks = 40 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/eva) -"cY" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/eva) -"cZ" = ( -/obj/structure/table/steel_reinforced, -/obj/item/storage/briefcase/inflatable, -/obj/item/storage/briefcase/inflatable, -/obj/item/storage/briefcase/inflatable, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/eva) -"da" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/eva) -"db" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/eva) -"dc" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/eva) -"dd" = ( -/obj/machinery/power/apc{ - alarms_hidden = 1; - dir = 2; - name = "south bump"; - pixel_y = -28; - req_access = list(67) - }, -/obj/structure/cable/cyan{ - icon_state = "0-8" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/eva) -"de" = ( -/obj/structure/sign/department/eva, -/turf/simulated/wall/rpshull, -/area/mothership/eva) -"df" = ( -/turf/simulated/wall/rpshull, -/area/mothership/bathroom1) -"dg" = ( -/obj/machinery/recharge_station, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/bathroom1) -"dh" = ( -/obj/structure/sink{ - pixel_y = 32 - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/machinery/firealarm{ - dir = 2; - layer = 3.3; - pixel_x = 4; - pixel_y = 26 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 6 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/bathroom1) -"di" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/door/airlock, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/bathroom1) -"dj" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"dk" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 6 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"dl" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"dm" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/manifold/hidden, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"dn" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"do" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/door/airlock, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/bathroom2) -"dp" = ( -/obj/structure/sink{ - pixel_y = 32 - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/machinery/firealarm{ - dir = 2; - layer = 3.3; - pixel_x = 4; - pixel_y = 26 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 10 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/bathroom2) -"dq" = ( -/obj/machinery/recharge_station, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/bathroom2) -"dr" = ( -/turf/simulated/wall/rpshull, -/area/mothership/bathroom2) -"dt" = ( -/obj/machinery/shower{ - dir = 4; - icon_state = "shower"; - pixel_x = 2; - pixel_y = 0 - }, -/obj/machinery/door/window/survival_pod, -/obj/effect/floor_decal/steeldecal/steel_decals10{ - dir = 1 - }, -/obj/structure/curtain/open/shower, -/turf/simulated/floor/tiled/white, -/area/mothership/bathroom1) -"du" = ( -/obj/machinery/alarm{ - alarm_id = "pen_nine"; - breach_detection = 0; - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/obj/machinery/light/small, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/bathroom1) -"dv" = ( -/obj/structure/toilet{ - dir = 1 - }, -/obj/machinery/power/apc{ - alarms_hidden = 1; - dir = 2; - name = "south bump"; - pixel_y = -28; - req_access = list(67) - }, -/obj/structure/cable/cyan, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/bathroom1) -"dw" = ( -/obj/machinery/status_display{ - pixel_x = -32; - pixel_y = 0 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"dx" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden, -/obj/machinery/porta_turret/industrial/teleport_defense{ - auto_repair = 1; - check_access = 0; - check_weapons = 1; - name = "anti-boarding turret"; - req_one_access = list(101) - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"dy" = ( -/obj/machinery/door/firedoor/glass, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"dz" = ( -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"dA" = ( -/obj/machinery/light, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"dB" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"dC" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"dD" = ( -/obj/machinery/alarm{ - alarm_id = "pen_nine"; - breach_detection = 0; - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"dE" = ( -/obj/machinery/status_display{ - pixel_x = 32; - pixel_y = 0 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"dG" = ( -/obj/structure/toilet{ - dir = 1 - }, -/obj/machinery/power/apc{ - alarms_hidden = 1; - dir = 2; - name = "south bump"; - pixel_y = -28; - req_access = list(67) - }, -/obj/structure/cable/cyan, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/bathroom2) -"dH" = ( -/obj/machinery/alarm{ - alarm_id = "pen_nine"; - breach_detection = 0; - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/obj/machinery/light/small, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/bathroom2) -"dI" = ( -/obj/machinery/door/window/survival_pod{ - dir = 8 - }, -/obj/machinery/shower{ - dir = 8; - icon_state = "shower"; - pixel_x = 2; - pixel_y = 0 - }, -/obj/effect/floor_decal/steeldecal/steel_decals10{ - dir = 4 - }, -/obj/structure/curtain/open/shower, -/turf/simulated/floor/tiled/white, -/area/mothership/bathroom2) -"dJ" = ( -/turf/simulated/wall/rpshull, -/area/mothership/surgery) -"dK" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/full, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/machinery/door/blast/regular{ - density = 0; - destroy_hits = 1000; - dir = 4; - icon_state = "pdoor0"; - id = "ship-med-surgery"; - name = "Shuttle Blast Doors"; - opacity = 0 - }, -/obj/machinery/door/firedoor/glass, -/obj/structure/window/reinforced, -/turf/simulated/floor/plating, -/area/mothership/surgery) -"dL" = ( -/turf/simulated/wall/rpshull, -/area/mothership/dorm1) -"dN" = ( -/obj/machinery/light{ - dir = 8; - icon_state = "tube1" - }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"dO" = ( -/turf/simulated/wall/rpshull, -/area/mothership/teleporter) -"dQ" = ( -/obj/machinery/door/airlock/multi_tile/metal, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/teleporter) -"dR" = ( -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/teleporter) -"dS" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"dT" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/door/firedoor/glass, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"dU" = ( -/turf/simulated/wall/rpshull, -/area/mothership/dorm2) -"dV" = ( -/turf/simulated/wall/rpshull, -/area/mothership/security) -"dW" = ( -/obj/structure/closet/crate/medical, -/obj/item/storage/mre/menu11, -/obj/item/storage/mre/menu11, -/obj/item/storage/mre/menu11, -/obj/item/storage/mre/menu11, -/obj/item/storage/mre/menu13, -/obj/item/storage/mre/menu13, -/turf/simulated/floor/tiled/white, -/area/mothership/surgery) -"dX" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/machinery/alarm{ - pixel_y = 22 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/surgery) -"dY" = ( -/obj/structure/closet/secure_closet/medical2, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/surgery) -"dZ" = ( -/obj/structure/closet/secure_closet/personal, -/turf/simulated/floor/wood, -/area/mothership/dorm1) -"ea" = ( -/obj/structure/table/woodentable, -/obj/item/modular_computer/laptop/preset/custom_loadout/elite, -/obj/machinery/status_display{ - pixel_y = 29 - }, -/turf/simulated/floor/wood, -/area/mothership/dorm1) -"eb" = ( -/obj/structure/closet/wardrobe/ert, -/obj/item/storage/box/survival/comp{ - starts_with = list(/obj/item/tool/prybar/red,/obj/item/clothing/glasses/goggles,/obj/item/reagent_containers/hypospray/autoinjector,/obj/item/stack/medical/bruise_pack,/obj/item/flashlight/glowstick,/obj/item/reagent_containers/food/snacks/candy/proteinbar,/obj/item/clothing/mask/breath,/obj/item/tank/emergency/oxygen/engi) - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on, -/obj/item/storage/box/survival/space, -/obj/item/storage/toolbox/emergency, -/turf/simulated/floor/wood, -/area/mothership/dorm1) -"ec" = ( -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/teleporter) -"ed" = ( -/obj/structure/cable/cyan{ - icon_state = "0-4" - }, -/obj/machinery/power/apc{ - alarms_hidden = 1; - dir = 1; - name = "north bump"; - pixel_x = 0; - pixel_y = 28 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/teleporter) -"ee" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/teleporter) -"ef" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/teleporter) -"eg" = ( -/obj/machinery/firealarm{ - dir = 2; - layer = 3.3; - pixel_x = 4; - pixel_y = 26 - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/effect/floor_decal/industrial/warning/corner, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/teleporter) -"eh" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 1; - icon_state = "warning" - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/teleporter) -"ei" = ( -/obj/structure/closet/wardrobe/ert, -/obj/item/storage/box/survival/comp{ - starts_with = list(/obj/item/tool/prybar/red,/obj/item/clothing/glasses/goggles,/obj/item/reagent_containers/hypospray/autoinjector,/obj/item/stack/medical/bruise_pack,/obj/item/flashlight/glowstick,/obj/item/reagent_containers/food/snacks/candy/proteinbar,/obj/item/clothing/mask/breath,/obj/item/tank/emergency/oxygen/engi) - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on, -/obj/item/storage/box/survival/space, -/obj/item/storage/toolbox/emergency, -/turf/simulated/floor/wood, -/area/mothership/dorm2) -"ej" = ( -/obj/structure/table/woodentable, -/obj/item/modular_computer/laptop/preset/custom_loadout/elite, -/obj/machinery/status_display{ - pixel_y = 29 - }, -/turf/simulated/floor/wood, -/area/mothership/dorm2) -"ek" = ( -/obj/structure/closet/secure_closet/personal, -/turf/simulated/floor/wood, -/area/mothership/dorm2) -"el" = ( -/obj/structure/table/rack/shelf/steel, -/obj/machinery/light/small{ - dir = 8; - pixel_x = 0 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"em" = ( -/obj/machinery/vending/security, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"en" = ( -/obj/item/clothing/head/helmet/solgov, -/obj/item/clothing/head/helmet/solgov, -/obj/item/clothing/head/helmet/solgov, -/obj/item/clothing/head/helmet/solgov, -/obj/machinery/light/small{ - dir = 4; - pixel_y = 0 - }, -/obj/structure/table/rack/shelf/steel, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"eo" = ( -/obj/structure/closet/crate/medical, -/obj/item/stack/nanopaste/advanced, -/obj/item/stack/nanopaste/advanced, -/obj/item/stack/nanopaste/advanced, -/obj/item/stack/nanopaste/advanced, -/obj/item/stack/nanopaste/advanced, -/obj/item/stack/nanopaste/advanced, -/obj/item/stack/nanopaste/advanced, -/obj/item/stack/nanopaste/advanced, -/obj/item/stack/nanopaste/advanced, -/obj/item/stack/nanopaste/advanced, -/obj/item/mmi/digital/posibrain, -/obj/item/mmi, -/obj/item/book/manual/robotics_cyborgs, -/obj/item/robotanalyzer, -/obj/item/storage/toolbox/syndicate/powertools, -/obj/item/reagent_containers/spray/cleaner{ - desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; - name = "Surgery Cleaner"; - pixel_x = 2; - pixel_y = 2 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/surgery) -"ep" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/obj/machinery/button/remote/blast_door{ - id = "ship-med-surgery"; - name = "Blast Doors Controls"; - pixel_y = -28 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/surgery) -"eq" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 26 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/white, -/area/mothership/surgery) -"er" = ( -/obj/item/bedsheet/captaindouble, -/obj/structure/bed/double/padded, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/obj/machinery/button/remote/airlock{ - id = "ship-dorm1-door"; - name = "Dorm 1 Lock"; - pixel_x = 6; - pixel_y = -26; - specialfunctions = 4 - }, -/obj/structure/curtain/open/bed, -/turf/simulated/floor/wood, -/area/mothership/dorm1) -"es" = ( -/obj/structure/bed/chair/office/dark{ - dir = 1 - }, -/obj/machinery/alarm{ - alarm_id = "pen_nine"; - breach_detection = 0; - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/obj/machinery/light/small, -/turf/simulated/floor/wood, -/area/mothership/dorm1) -"et" = ( -/obj/structure/cable/cyan{ - icon_state = "0-4" - }, -/obj/machinery/power/apc{ - alarms_hidden = 1; - dir = 2; - name = "south bump"; - pixel_y = -28; - req_access = list(67) - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5 - }, -/turf/simulated/floor/wood, -/area/mothership/dorm1) -"eu" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/door/airlock{ - id_tag = "ship-dorm1-door" - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/dorm1) -"ev" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"ew" = ( -/obj/machinery/light{ - dir = 8; - icon_state = "tube1"; - pixel_y = 0 - }, -/obj/effect/floor_decal/industrial/warning, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/teleporter) -"ex" = ( -/obj/effect/floor_decal/industrial/warning, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/teleporter) -"ey" = ( -/obj/effect/floor_decal/industrial/warning, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/teleporter) -"ez" = ( -/obj/effect/floor_decal/industrial/warning, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/teleporter) -"eA" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/floor_decal/industrial/hatch/yellow, -/obj/structure/cable/cyan{ - icon_state = "0-8" - }, -/obj/machinery/power/shield_generator/charged{ - field_radius = 49; - initial_shield_modes = 2113; - target_radius = 49 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/teleporter) -"eB" = ( -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"eC" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/door/airlock{ - id_tag = "ship-dorm2-door" - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/dorm2) -"eD" = ( -/obj/machinery/power/apc{ - alarms_hidden = 1; - dir = 2; - name = "south bump"; - pixel_y = -28; - req_access = list(67) - }, -/obj/structure/cable/cyan{ - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 9 - }, -/turf/simulated/floor/wood, -/area/mothership/dorm2) -"eE" = ( -/obj/structure/bed/chair/office/dark{ - dir = 1 - }, -/obj/machinery/light/small, -/obj/machinery/alarm{ - alarm_id = "pen_nine"; - breach_detection = 0; - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 8 - }, -/turf/simulated/floor/wood, -/area/mothership/dorm2) -"eF" = ( -/obj/item/bedsheet/captaindouble, -/obj/structure/bed/double/padded, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 26 - }, -/obj/machinery/button/remote/airlock{ - id = "ship-dorm2-door"; - name = "Dorm 2 Lock"; - pixel_x = -6; - pixel_y = -26; - specialfunctions = 4 - }, -/obj/structure/curtain/open/bed, -/turf/simulated/floor/wood, -/area/mothership/dorm2) -"eG" = ( -/obj/structure/table/rack/shelf/steel, -/obj/item/storage/box/flashbangs{ - pixel_x = -2; - pixel_y = -2 - }, -/obj/item/cell/device/weapon, -/obj/item/cell/device/weapon, -/obj/item/cell/device/weapon, -/obj/item/cell/device/weapon, -/obj/machinery/alarm{ - dir = 4; - pixel_x = -23; - pixel_y = 0 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/item/clothing/accessory/storage/pouches/large/blue, -/obj/item/clothing/accessory/storage/pouches/large/blue, -/obj/item/clothing/accessory/storage/pouches/large/blue, -/obj/item/clothing/accessory/storage/pouches/large/blue, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"eH" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"eI" = ( -/obj/item/clothing/suit/armor/pcarrier/blue/sol, -/obj/item/clothing/suit/armor/pcarrier/blue/sol, -/obj/item/clothing/suit/armor/pcarrier/blue/sol, -/obj/item/clothing/suit/armor/pcarrier/blue/sol, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 26 - }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 8 - }, -/obj/structure/table/rack/shelf/steel, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"eJ" = ( -/obj/machinery/door/airlock/medical, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/surgery) -"eK" = ( -/turf/simulated/wall/rpshull, -/area/mothership/chemistry) -"eM" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/alarm{ - alarm_id = "anomaly_testing"; - breach_detection = 0; - dir = 8; - frequency = 1439; - pixel_x = 22; - pixel_y = 0; - report_danger_level = 0 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"eN" = ( -/obj/effect/floor_decal/industrial/hatch/yellow, -/obj/machinery/teleport/hub, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/teleporter) -"eO" = ( -/obj/machinery/teleport/station, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/teleporter) -"eP" = ( -/obj/machinery/computer/teleporter{ - dir = 1 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/teleporter) -"eQ" = ( -/obj/effect/floor_decal/industrial/hatch/yellow, -/obj/item/perfect_tele_beacon/stationary{ - tele_name = "Daedalus"; - tele_network = "centcom" - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/teleporter) -"eR" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 8; - icon_state = "warning" - }, -/obj/machinery/alarm{ - alarm_id = "pen_nine"; - breach_detection = 0; - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/obj/effect/floor_decal/industrial/warning/corner{ - dir = 4 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/teleporter) -"eU" = ( -/obj/machinery/door/firedoor/glass, -/obj/machinery/door/airlock/security, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/security) -"eV" = ( -/obj/machinery/oxygen_pump/anesthetic, -/turf/simulated/wall/rpshull, -/area/mothership/surgery) -"eW" = ( -/obj/structure/medical_stand, -/obj/machinery/alarm{ - pixel_y = 22 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/surgery) -"eX" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/surgery) -"eY" = ( -/obj/machinery/chemical_dispenser/full, -/turf/simulated/floor/tiled/white, -/area/mothership/chemistry) -"eZ" = ( -/obj/machinery/chem_master, -/turf/simulated/floor/tiled/white, -/area/mothership/chemistry) -"fa" = ( -/obj/machinery/chemical_dispenser/ert, -/turf/simulated/floor/tiled/white, -/area/mothership/chemistry) -"fb" = ( -/obj/structure/closet/hydrant{ - pixel_x = -32 - }, -/obj/item/clothing/suit/fire/firefighter, -/obj/item/clothing/mask/gas, -/obj/item/flashlight, -/obj/item/tank/oxygen/red, -/obj/item/tank/emergency/oxygen/double, -/obj/item/extinguisher, -/obj/item/extinguisher, -/obj/item/clothing/head/hardhat/red, -/obj/item/storage/toolbox/emergency, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"fc" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"fd" = ( -/turf/simulated/wall/rpshull, -/area/mothership/vault) -"fe" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/light{ - dir = 8; - icon_state = "tube1" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"ff" = ( -/obj/structure/closet/hydrant{ - pixel_x = 32 - }, -/obj/item/clothing/suit/fire/firefighter, -/obj/item/clothing/mask/gas, -/obj/item/flashlight, -/obj/item/tank/oxygen/red, -/obj/item/tank/emergency/oxygen/double, -/obj/item/extinguisher, -/obj/item/extinguisher, -/obj/item/clothing/head/hardhat/red, -/obj/item/storage/toolbox/emergency, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"fg" = ( -/obj/structure/table/rack/shelf/steel, -/obj/item/storage/lockbox, -/obj/item/clothing/mask/gas{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/item/clothing/mask/gas{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/item/clothing/mask/gas{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/item/clothing/glasses/hud/security, -/obj/item/clothing/glasses/hud/security, -/obj/item/clothing/glasses/hud/security, -/obj/item/clothing/glasses/hud/security, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"fh" = ( -/obj/item/clothing/accessory/storage/black_vest, -/obj/item/clothing/accessory/storage/black_vest, -/obj/item/clothing/accessory/storage/black_vest, -/obj/item/clothing/accessory/storage/black_vest, -/obj/item/clothing/accessory/storage/black_drop_pouches, -/obj/item/clothing/accessory/storage/black_drop_pouches, -/obj/item/clothing/accessory/storage/black_drop_pouches, -/obj/item/clothing/accessory/storage/black_drop_pouches, -/obj/item/storage/backpack/dufflebag/syndie/ammo, -/obj/item/storage/backpack/dufflebag/syndie/ammo, -/obj/item/storage/backpack/dufflebag/syndie/ammo, -/obj/item/storage/backpack/dufflebag/syndie/ammo, -/obj/structure/table/rack/shelf/steel, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"fi" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"fj" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/table/bench/steel, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"fk" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/table/bench/steel, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"fl" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"fm" = ( -/obj/item/holowarrant, -/obj/structure/closet/secure_closet/nanotrasen_security, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"fo" = ( -/obj/machinery/optable, -/turf/simulated/floor/tiled/white, -/area/mothership/surgery) -"fp" = ( -/turf/simulated/floor/tiled/white, -/area/mothership/surgery) -"fq" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/white, -/area/mothership/surgery) -"fr" = ( -/obj/structure/table/steel_reinforced, -/obj/fiftyspawner/phoron, -/obj/machinery/reagentgrinder, -/turf/simulated/floor/tiled/white, -/area/mothership/chemistry) -"fs" = ( -/obj/structure/bed/chair/office/dark{ - dir = 1 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/chemistry) -"ft" = ( -/obj/structure/table/steel_reinforced, -/obj/item/reagent_containers/glass/beaker/large, -/obj/item/reagent_containers/glass/beaker/large, -/obj/item/reagent_containers/dropper, -/turf/simulated/floor/tiled/white, -/area/mothership/chemistry) -"fu" = ( -/obj/structure/sign/department/chem, -/turf/simulated/wall/rpshull, -/area/mothership/chemistry) -"fv" = ( -/obj/machinery/light/small{ - dir = 1; - icon_state = "bulb1" - }, -/obj/structure/closet/radiation, -/obj/fiftyspawner/uranium, -/obj/fiftyspawner/uranium, -/obj/fiftyspawner/uranium, -/obj/fiftyspawner/uranium, -/obj/fiftyspawner/uranium, -/obj/fiftyspawner/uranium, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/vault) -"fx" = ( -/obj/machinery/alarm{ - pixel_y = 22; - target_temperature = 274.15 - }, -/obj/machinery/power/port_gen/pacman/super/potato{ - sheets = 100 - }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 0 - }, -/obj/effect/floor_decal/industrial/hatch/yellow, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/vault) -"fy" = ( -/obj/machinery/light/small{ - dir = 4; - pixel_y = 0 - }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 0 - }, -/obj/machinery/power/port_gen/pacman/super/potato{ - sheets = 100 - }, -/obj/effect/floor_decal/industrial/hatch/yellow, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/vault) -"fA" = ( -/obj/machinery/power/apc{ - alarms_hidden = 1; - dir = 1; - name = "north bump"; - pixel_x = 0; - pixel_y = 28 - }, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/obj/machinery/light/small{ - dir = 1; - icon_state = "bulb1" - }, -/obj/structure/closet/radiation, -/obj/fiftyspawner/uranium, -/obj/fiftyspawner/uranium, -/obj/fiftyspawner/uranium, -/obj/fiftyspawner/uranium, -/obj/fiftyspawner/uranium, -/obj/fiftyspawner/uranium, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/vault) -"fB" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/alarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"fC" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"fD" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"fE" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/table/bench/steel, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"fF" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/table/bench/steel, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"fG" = ( -/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"fH" = ( -/obj/item/holowarrant, -/obj/structure/closet/secure_closet/nanotrasen_security, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 8 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"fJ" = ( -/obj/machinery/computer/operating{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/surgery) -"fK" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/surgery) -"fL" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/sink{ - dir = 4; - icon_state = "sink"; - pixel_x = 12; - pixel_y = 8 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/surgery) -"fM" = ( -/obj/machinery/light{ - dir = 8; - icon_state = "tube1" - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on, -/obj/structure/table/steel_reinforced, -/obj/machinery/chemical_dispenser/biochemistry/full, -/turf/simulated/floor/tiled/white, -/area/mothership/chemistry) -"fN" = ( -/turf/simulated/floor/tiled/white, -/area/mothership/chemistry) -"fO" = ( -/obj/machinery/atmospherics/unary/vent_pump/on, -/turf/simulated/floor/tiled/white, -/area/mothership/chemistry) -"fP" = ( -/obj/structure/table/steel_reinforced, -/obj/machinery/door/window/westleft, -/obj/machinery/door/window/eastright, -/obj/machinery/door/firedoor/glass, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/chemistry) -"fQ" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"fR" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/door/airlock/engineering, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/vault) -"fS" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/terminal, -/obj/effect/floor_decal/industrial/warning{ - dir = 4; - icon_state = "warning" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/vault) -"fT" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/effect/floor_decal/industrial/warning{ - dir = 4; - icon_state = "warning" - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/vault) -"fU" = ( -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/terminal, -/obj/effect/floor_decal/industrial/warning{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/vault) -"fV" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"fW" = ( -/obj/structure/table/rack/shelf/steel, -/obj/item/storage/box/evidence, -/obj/item/storage/box/handcuffs{ - pixel_x = 6; - pixel_y = -2 - }, -/obj/machinery/alarm{ - dir = 4; - pixel_x = -23; - pixel_y = 0 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"fX" = ( -/obj/structure/table/rack/shelf/steel, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"fY" = ( -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"fZ" = ( -/obj/structure/table/bench/steel, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"ga" = ( -/obj/item/holowarrant, -/obj/structure/closet/secure_closet/nanotrasen_security, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"gb" = ( -/obj/structure/table/steel_reinforced, -/obj/item/storage/firstaid/surgery, -/obj/item/reagent_containers/spray/cleaner{ - desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; - name = "Surgery Cleaner"; - pixel_x = 2; - pixel_y = 2 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/surgery) -"gc" = ( -/obj/structure/table/steel_reinforced, -/obj/item/storage/box/gloves, -/obj/machinery/firealarm{ - dir = 1; - pixel_x = 0; - pixel_y = -25 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/surgery) -"gd" = ( -/obj/machinery/power/apc{ - alarms_hidden = 1; - dir = 4; - name = "east bump"; - pixel_x = 24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/white, -/area/mothership/surgery) -"ge" = ( -/obj/structure/table/steel_reinforced, -/obj/item/storage/box/pillbottles, -/obj/item/storage/box/pillbottles, -/obj/item/storage/box/beakers, -/obj/item/storage/box/syringes, -/obj/item/storage/box/syringes, -/obj/item/tool/screwdriver, -/obj/item/storage/box/pillbottles, -/obj/item/storage/box/pillbottles, -/obj/machinery/alarm{ - dir = 4; - pixel_x = -23; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/chemistry) -"gf" = ( -/obj/structure/closet/crate/bin, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/chemistry) -"gg" = ( -/obj/machinery/power/apc{ - alarms_hidden = 1; - dir = 4; - name = "east bump"; - pixel_x = 24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/chemistry) -"gh" = ( -/obj/machinery/power/smes/buildable{ - capacity = 2e+007; - charge = 2e+007; - cur_coils = 4; - input_attempt = 1; - input_level = 1e+006; - output_level = 1e+006 - }, -/obj/structure/cable/cyan, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/vault) -"gj" = ( -/obj/machinery/light/small{ - dir = 8; - pixel_x = 0 - }, -/obj/structure/cable, -/obj/machinery/power/port_gen/pacman/super/potato{ - sheets = 100 - }, -/obj/effect/floor_decal/industrial/hatch/yellow, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/vault) -"gk" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_x = 0; - pixel_y = -25 - }, -/obj/structure/cable, -/obj/machinery/power/port_gen/pacman/super/potato{ - sheets = 100 - }, -/obj/effect/floor_decal/industrial/hatch/yellow, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/vault) -"gn" = ( -/obj/structure/closet/secure_closet/explorer, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"go" = ( -/obj/structure/closet/secure_closet/nanotrasen_commander, -/obj/item/storage/secure/briefcase/nsfw_pack_hos, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"gp" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/full, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/door/blast/regular{ - density = 0; - destroy_hits = 1000; - dir = 1; - icon_state = "pdoor0"; - id = "ship-sec-equip"; - name = "Shuttle Blast Doors"; - opacity = 0 - }, -/obj/machinery/door/firedoor/glass, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/simulated/floor/plating, -/area/mothership/security) -"gq" = ( -/obj/structure/sign/department/operational, -/turf/simulated/wall/rpshull, -/area/mothership/surgery) -"gs" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/medical, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/surgery) -"gt" = ( -/obj/machinery/smartfridge, -/turf/simulated/floor/plating, -/area/mothership/chemistry) -"gu" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/medical, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/chemistry) -"gv" = ( -/obj/structure/sign/department/medbay, -/turf/simulated/wall/rpshull, -/area/mothership/chemistry) -"gw" = ( -/obj/machinery/light{ - dir = 8; - icon_state = "tube1" - }, -/obj/machinery/door/firedoor/glass, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"gy" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"gz" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"gB" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"gC" = ( -/obj/machinery/recharger, -/obj/structure/table/steel_reinforced, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"gD" = ( -/obj/structure/table/steel_reinforced, -/obj/machinery/cell_charger, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"gE" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"gF" = ( -/obj/structure/closet/secure_closet/detective, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"gG" = ( -/turf/simulated/wall/rpshull, -/area/mothership/treatment) -"gH" = ( -/obj/machinery/vending/blood, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"gI" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/button/remote/blast_door{ - id = "ship-med-treatment"; - name = "Blast Doors Controls"; - pixel_y = 28 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"gJ" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"gK" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/firealarm{ - dir = 2; - layer = 3.3; - pixel_x = 4; - pixel_y = 26 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"gL" = ( -/obj/machinery/power/apc{ - alarms_hidden = 1; - dir = 1; - name = "north bump"; - pixel_x = 0; - pixel_y = 28 - }, -/obj/structure/cable/cyan{ - icon_state = "0-8" - }, -/obj/structure/cable/cyan{ - icon_state = "0-4" - }, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"gM" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"gN" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"gO" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/glass, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/treatment) -"gP" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"gQ" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden, -/obj/machinery/porta_turret/industrial/teleport_defense{ - auto_repair = 1; - check_access = 0; - check_weapons = 1; - name = "anti-boarding turret"; - req_one_access = list(101) - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"gR" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"gT" = ( -/obj/machinery/door/firedoor/glass, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/security) -"gU" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/full, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/door/blast/regular{ - density = 0; - destroy_hits = 1000; - dir = 1; - icon_state = "pdoor0"; - id = "ship-med-treatment"; - name = "Shuttle Blast Doors"; - opacity = 0 - }, -/obj/machinery/door/firedoor/glass, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/simulated/floor/plating, -/area/mothership/treatment) -"gV" = ( -/obj/structure/closet/crate/freezer, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"gW" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"gX" = ( -/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"gY" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"gZ" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"ha" = ( -/obj/machinery/door/airlock/multi_tile/metal{ - dir = 2; - req_one_access = list(5) - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/treatment) -"hb" = ( -/obj/machinery/status_display{ - pixel_y = -29 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"hc" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 5; - icon_state = "intact" - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"hd" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden{ - dir = 1; - icon_state = "map" - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"he" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"hf" = ( -/obj/machinery/status_display{ - pixel_y = -29 - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"hg" = ( -/obj/machinery/door/airlock/multi_tile/metal{ - dir = 2; - req_one_access = list(1) - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/security) -"hh" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"hi" = ( -/obj/structure/cable/cyan{ - icon_state = "0-8" - }, -/obj/machinery/power/apc{ - alarms_hidden = 1; - dir = 2; - name = "south bump"; - pixel_y = -28; - req_access = list(67) - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/closet/secure_closet/pathfinder, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"hj" = ( -/obj/structure/closet/bombcloset/double, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/light, -/obj/machinery/recharger/wallcharger{ - pixel_x = 3; - pixel_y = -29 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"hk" = ( -/obj/structure/closet/wardrobe/red, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/recharger/wallcharger{ - pixel_x = 3; - pixel_y = -29 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"hl" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"hm" = ( -/obj/structure/table/steel_reinforced, -/obj/item/retail_scanner/security, -/obj/item/retail_scanner/security, -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = 0; - pixel_y = -30 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 9 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"hn" = ( -/obj/structure/table/steel_reinforced, -/obj/item/clothing/accessory/badge/holo/cord, -/obj/item/clothing/accessory/badge/holo/cord, -/obj/item/clothing/accessory/badge/holo/cord, -/obj/item/clothing/accessory/badge/holo/cord, -/obj/item/clothing/accessory/badge/holo, -/obj/item/clothing/accessory/badge/holo, -/obj/item/clothing/accessory/badge/holo, -/obj/item/clothing/accessory/badge/holo, -/obj/machinery/button/remote/blast_door{ - id = "ship-sec-equip"; - name = "Blast Doors Controls"; - pixel_y = -28 - }, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/security) -"ho" = ( -/obj/structure/filingcabinet/chestdrawer{ - name = "Scan Records" - }, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"hp" = ( -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"hq" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"hr" = ( -/obj/machinery/bodyscanner{ - dir = 8 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"hs" = ( -/obj/machinery/body_scanconsole, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"ht" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"hu" = ( -/turf/simulated/wall/rpshull, -/area/mothership/dorm3) -"hw" = ( -/turf/simulated/wall/rpshull, -/area/mothership/dorm4) -"hy" = ( -/turf/simulated/wall/rpshull, -/area/mothership/sechallway) -"hA" = ( -/obj/machinery/door/airlock/security, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/sechallway) -"hD" = ( -/obj/machinery/door/airlock/security, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/processing) -"hE" = ( -/obj/structure/table/steel_reinforced, -/obj/machinery/recharger, -/obj/item/tool/screwdriver, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"hF" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"hG" = ( -/obj/machinery/atmospherics/unary/cryo_cell, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"hH" = ( -/obj/item/bedsheet/captaindouble, -/obj/structure/bed/double/padded, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/obj/machinery/button/remote/airlock{ - id = "ship-dorm3-door"; - name = "Dorm 3 Lock"; - pixel_x = 6; - pixel_y = 26; - specialfunctions = 4 - }, -/obj/structure/curtain/open/bed, -/turf/simulated/floor/wood, -/area/mothership/dorm3) -"hI" = ( -/obj/structure/bed/chair/office/dark, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/obj/machinery/alarm{ - pixel_y = 22 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/simulated/floor/wood, -/area/mothership/dorm3) -"hJ" = ( -/obj/structure/cable/cyan{ - icon_state = "0-4" - }, -/obj/machinery/power/apc{ - alarms_hidden = 1; - dir = 1; - name = "north bump"; - pixel_x = 0; - pixel_y = 28 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 - }, -/turf/simulated/floor/wood, -/area/mothership/dorm3) -"hK" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/door/airlock{ - id_tag = "ship-dorm3-door" - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/dorm3) -"hL" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"hM" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/door/airlock{ - id_tag = "ship-dorm4-door" - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/dorm4) -"hN" = ( -/obj/structure/cable/cyan{ - icon_state = "0-8" - }, -/obj/machinery/power/apc{ - alarms_hidden = 1; - dir = 1; - name = "north bump"; - pixel_x = 0; - pixel_y = 28 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 - }, -/turf/simulated/floor/wood, -/area/mothership/dorm4) -"hO" = ( -/obj/structure/bed/chair/office/dark, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 8 - }, -/obj/machinery/alarm{ - pixel_y = 22 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/simulated/floor/wood, -/area/mothership/dorm4) -"hP" = ( -/obj/item/bedsheet/captaindouble, -/obj/structure/bed/double/padded, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 26 - }, -/obj/machinery/button/remote/airlock{ - id = "ship-dorm4-door"; - name = "Dorm 4 Lock"; - pixel_x = -6; - pixel_y = 26; - specialfunctions = 4 - }, -/obj/structure/curtain/open/bed, -/turf/simulated/floor/wood, -/area/mothership/dorm4) -"hQ" = ( -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/sechallway) -"hR" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/sechallway) -"hS" = ( -/obj/structure/closet/crate/bin, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/processing) -"hT" = ( -/obj/structure/table/steel_reinforced, -/obj/item/folder/red{ - pixel_x = 2; - pixel_y = 4 - }, -/obj/item/folder/red, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/processing) -"hU" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/processing) -"hV" = ( -/obj/structure/table/steel_reinforced, -/obj/item/storage/box/evidence, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 8 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/processing) -"hW" = ( -/obj/structure/filingcabinet/chestdrawer, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/processing) -"hX" = ( -/obj/structure/table/steel_reinforced, -/obj/item/defib_kit/compact/combat/loaded, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"hY" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"hZ" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"ia" = ( -/obj/machinery/sleep_console{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"ib" = ( -/obj/machinery/sleeper{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"ic" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 6 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"id" = ( -/obj/structure/table/steel_reinforced, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 9; - icon_state = "intact" - }, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"ie" = ( -/obj/structure/closet/secure_closet/personal, -/turf/simulated/floor/wood, -/area/mothership/dorm3) -"if" = ( -/obj/structure/table/woodentable, -/obj/item/modular_computer/laptop/preset/custom_loadout/elite, -/obj/machinery/status_display{ - pixel_y = -29 - }, -/turf/simulated/floor/wood, -/area/mothership/dorm3) -"ig" = ( -/obj/structure/closet/wardrobe/ert, -/obj/item/storage/box/survival/comp{ - starts_with = list(/obj/item/tool/prybar/red,/obj/item/clothing/glasses/goggles,/obj/item/reagent_containers/hypospray/autoinjector,/obj/item/stack/medical/bruise_pack,/obj/item/flashlight/glowstick,/obj/item/reagent_containers/food/snacks/candy/proteinbar,/obj/item/clothing/mask/breath,/obj/item/tank/emergency/oxygen/engi) - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/item/storage/box/survival/space, -/obj/item/storage/toolbox/emergency, -/turf/simulated/floor/wood, -/area/mothership/dorm3) -"ih" = ( -/obj/structure/closet/wardrobe/ert, -/obj/item/storage/box/survival/comp{ - starts_with = list(/obj/item/tool/prybar/red,/obj/item/clothing/glasses/goggles,/obj/item/reagent_containers/hypospray/autoinjector,/obj/item/stack/medical/bruise_pack,/obj/item/flashlight/glowstick,/obj/item/reagent_containers/food/snacks/candy/proteinbar,/obj/item/clothing/mask/breath,/obj/item/tank/emergency/oxygen/engi) - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/item/storage/box/survival/space, -/obj/item/storage/toolbox/emergency, -/turf/simulated/floor/wood, -/area/mothership/dorm4) -"ii" = ( -/obj/structure/table/woodentable, -/obj/item/modular_computer/laptop/preset/custom_loadout/elite, -/obj/machinery/status_display{ - pixel_y = -29 - }, -/turf/simulated/floor/wood, -/area/mothership/dorm4) -"ij" = ( -/obj/structure/closet/secure_closet/personal, -/turf/simulated/floor/wood, -/area/mothership/dorm4) -"ik" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/sechallway) -"il" = ( -/obj/structure/sign/department/interrogation, -/turf/simulated/wall/rpshull, -/area/mothership/processing) -"im" = ( -/obj/structure/table/steel_reinforced, -/obj/item/camera, -/obj/item/retail_scanner/security, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/processing) -"in" = ( -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/processing) -"io" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/processing) -"ip" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 26 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/processing) -"iq" = ( -/obj/structure/closet/crate/bin, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"ir" = ( -/obj/machinery/light, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"is" = ( -/obj/machinery/alarm{ - dir = 1; - pixel_y = -22 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"it" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"iu" = ( -/obj/structure/sink{ - dir = 4; - icon_state = "sink"; - pixel_x = 12; - pixel_y = 8 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/treatment) -"iv" = ( -/turf/simulated/wall/rpshull, -/area/mothership/morgue) -"iw" = ( -/turf/simulated/wall/rpshull, -/area/mothership/engineering) -"ix" = ( -/obj/machinery/door_timer/cell_1{ - id = "Cell M1"; - pixel_x = -32 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/sechallway) -"iy" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/sechallway) -"iz" = ( -/obj/machinery/door/airlock/security, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/processing) -"iA" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/processing) -"iB" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/processing) -"iC" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/processing) -"iD" = ( -/obj/structure/table/steel_reinforced, -/obj/item/flashlight/lamp, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/processing) -"iE" = ( -/obj/machinery/alarm{ - alarm_id = "anomaly_testing"; - breach_detection = 0; - dir = 8; - frequency = 1439; - pixel_x = 22; - pixel_y = 0; - report_danger_level = 0 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/processing) -"iG" = ( -/obj/machinery/door/airlock/medical, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/treatment) -"iH" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/medical, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/treatment) -"iI" = ( -/obj/structure/table/steel_reinforced, -/obj/item/storage/box/bodybags, -/obj/item/storage/box/bodybags{ - pixel_x = 2; - pixel_y = 2 - }, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/morgue) -"iJ" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/morgue) -"iK" = ( -/obj/structure/morgue{ - dir = 8 - }, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/morgue) -"iL" = ( -/obj/machinery/alarm{ - pixel_y = 22 - }, -/obj/structure/table/steel_reinforced, -/obj/effect/floor_decal/corner/lightorange{ - dir = 5; - icon_state = "corner_white" - }, -/obj/effect/floor_decal/borderfloor/shifted{ - dir = 1; - icon_state = "borderfloor_shifted" - }, -/obj/effect/floor_decal/corner/lightorange/border/shifted{ - dir = 1; - icon_state = "bordercolor_shifted" - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/sechallway) -"iM" = ( -/obj/structure/bed/padded, -/obj/item/bedsheet, -/obj/effect/floor_decal/corner/lightorange{ - dir = 5; - icon_state = "corner_white" - }, -/obj/effect/floor_decal/borderfloor/shifted{ - dir = 1; - icon_state = "borderfloor_shifted" - }, -/obj/effect/floor_decal/corner/lightorange/border/shifted{ - dir = 1; - icon_state = "bordercolor_shifted" - }, -/obj/machinery/light/small{ - dir = 1; - icon_state = "bulb1" - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/sechallway) -"iN" = ( -/obj/structure/closet/secure_closet/brig{ - id = "Cell M1" - }, -/obj/effect/floor_decal/corner/lightorange{ - dir = 5; - icon_state = "corner_white" - }, -/obj/effect/floor_decal/borderfloor/shifted{ - dir = 1; - icon_state = "borderfloor_shifted" - }, -/obj/effect/floor_decal/corner/lightorange/border/shifted{ - dir = 1; - icon_state = "bordercolor_shifted" - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/sechallway) -"iO" = ( -/obj/machinery/door/firedoor/glass, -/obj/structure/grille, -/obj/structure/window/reinforced/full, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/door/blast/regular{ - density = 0; - dir = 1; - icon_state = "pdoor0"; - id = "ship-sec-cell1"; - name = "Security Blast Doors"; - opacity = 0 - }, -/obj/structure/cable/cyan{ - icon_state = "0-4" - }, -/turf/simulated/floor/plating, -/area/mothership/sechallway) -"iP" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/sechallway) -"iQ" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/sechallway) -"iR" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/obj/machinery/power/apc{ - alarms_hidden = 1; - cell_type = /obj/item/cell/super; - dir = 8; - name = "west bump"; - pixel_x = -28 - }, -/obj/structure/cable/cyan, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/processing) -"iS" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/processing) -"iT" = ( -/obj/structure/table/steel_reinforced, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/processing) -"iU" = ( -/obj/structure/bed/chair/office/dark{ - dir = 8 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/processing) -"iV" = ( -/turf/simulated/wall/rpshull, -/area/mothership/resleeving) -"iW" = ( -/obj/machinery/computer/transhuman/resleeving{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/resleeving) -"iX" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/computer/id_restorer{ - pixel_y = 28 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/resleeving) -"iY" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/white, -/area/mothership/resleeving) -"iZ" = ( -/obj/structure/table/steel_reinforced, -/obj/machinery/alarm{ - pixel_y = 22 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/resleeving) -"ja" = ( -/obj/machinery/atmospherics/unary/cryo_cell, -/turf/simulated/floor/tiled/white, -/area/mothership/resleeving) -"jb" = ( -/obj/structure/table/steel_reinforced, -/obj/item/reagent_containers/glass/bottle/biomass, -/obj/item/reagent_containers/glass/bottle/biomass, -/obj/item/reagent_containers/glass/bottle/biomass, -/obj/item/reagent_containers/glass/bottle/biomass, -/obj/item/reagent_containers/glass/bottle/biomass, -/obj/item/reagent_containers/glass/bottle/biomass, -/obj/item/reagent_containers/glass/bottle/biomass, -/obj/item/reagent_containers/glass/bottle/biomass, -/obj/machinery/light{ - dir = 1 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/resleeving) -"jc" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/white, -/area/mothership/resleeving) -"jd" = ( -/obj/machinery/vending/medical, -/turf/simulated/floor/tiled/white, -/area/mothership/resleeving) -"jf" = ( -/obj/machinery/power/apc{ - alarms_hidden = 1; - cell_type = /obj/item/cell/super; - dir = 8; - name = "west bump"; - pixel_x = -28 - }, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/obj/machinery/atmospherics/unary/vent_pump/on, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/morgue) -"jg" = ( -/turf/simulated/floor/tiled/techfloor, -/area/mothership/morgue) -"jh" = ( -/obj/machinery/camera/network/ert{ - dir = 1 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/sechallway) -"ji" = ( -/obj/machinery/door/firedoor/glass, -/obj/effect/floor_decal/industrial/hatch/yellow, -/obj/machinery/door/window/brigdoor/southleft{ - dir = 4; - id = "Cell M1"; - name = "Cell 1"; - req_access = list(2) - }, -/obj/machinery/door/blast/regular{ - density = 0; - dir = 1; - icon_state = "pdoor0"; - id = "ship-sec-cell1"; - name = "Security Blast Doors"; - opacity = 0 - }, -/turf/simulated/floor/tiled/dark, -/area/mothership/sechallway) -"jj" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/alarm{ - alarm_id = "anomaly_testing"; - breach_detection = 0; - dir = 8; - frequency = 1439; - pixel_x = 22; - pixel_y = 0; - report_danger_level = 0 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/sechallway) -"jk" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/processing) -"jl" = ( -/obj/machinery/light, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/processing) -"jm" = ( -/obj/structure/table/steel_reinforced, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/processing) -"jn" = ( -/obj/machinery/computer/secure_data{ - dir = 1 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/processing) -"jp" = ( -/obj/machinery/computer/transhuman/designer{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/resleeving) -"jq" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/resleeving) -"jr" = ( -/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/resleeving) -"js" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/resleeving) -"jt" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 5; - icon_state = "intact" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/resleeving) -"ju" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/resleeving) -"jv" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden{ - dir = 4; - icon_state = "map" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/resleeving) -"jw" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/resleeving) -"jx" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/door/airlock/medical, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/morgue) -"jy" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 - }, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/morgue) -"jz" = ( -/obj/structure/closet/walllocker{ - name = "Janitor Locker"; - pixel_x = 32 - }, -/obj/item/storage/box/lights/mixed, -/obj/item/storage/box/lights/mixed, -/obj/item/mop, -/obj/item/reagent_containers/glass/bucket, -/obj/item/reagent_containers/spray/cleaner, -/obj/item/reagent_containers/spray/cleaner, -/obj/item/grenade/chem_grenade/cleaner, -/obj/item/grenade/chem_grenade/cleaner, -/obj/item/grenade/chem_grenade/cleaner, -/obj/item/grenade/chem_grenade/cleaner, -/obj/item/soap/nanotrasen, -/obj/item/soap/deluxe, -/obj/item/soap, -/obj/item/rig/ert/janitor, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"jA" = ( -/obj/machinery/door_timer/cell_2{ - id = "Cell M2"; - pixel_x = -32 - }, -/obj/machinery/light{ - dir = 8; - icon_state = "tube1"; - pixel_y = 0 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/sechallway) -"jB" = ( -/obj/machinery/power/apc{ - alarms_hidden = 1; - dir = 4; - name = "east bump"; - pixel_x = 24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/obj/structure/cable/cyan, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/sechallway) -"jC" = ( -/turf/simulated/wall/rpshull, -/area/mothership/warden) -"jE" = ( -/obj/machinery/door/airlock/security, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/warden) -"jF" = ( -/obj/effect/shuttle_landmark{ - base_area = /area/space; - base_turf = /turf/space; - flags = 2; - landmark_tag = "cruiser_port"; - name = "Vessel port" - }, -/turf/space, -/area/space) -"jG" = ( -/obj/machinery/vending/loadout/uniform, -/turf/simulated/floor/tiled/white, -/area/mothership/resleeving) -"jH" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/resleeving) -"jI" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/resleeving) -"jJ" = ( -/turf/simulated/floor/tiled/white, -/area/mothership/resleeving) -"jK" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/white, -/area/mothership/resleeving) -"jL" = ( -/obj/machinery/power/apc{ - alarms_hidden = 1; - dir = 4; - name = "east bump"; - pixel_x = 24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-8" - }, -/turf/simulated/floor/tiled/white, -/area/mothership/resleeving) -"jM" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/morgue) -"jN" = ( -/obj/machinery/alarm{ - pixel_y = 22 - }, -/obj/structure/table/steel_reinforced, -/obj/effect/floor_decal/borderfloor/shifted{ - dir = 1; - icon_state = "borderfloor_shifted" - }, -/obj/effect/floor_decal/corner/lightorange{ - dir = 5; - icon_state = "corner_white" - }, -/obj/effect/floor_decal/corner/lightorange/border/shifted{ - dir = 1; - icon_state = "bordercolor_shifted" - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/sechallway) -"jO" = ( -/obj/structure/bed/padded, -/obj/item/bedsheet, -/obj/effect/floor_decal/borderfloor/shifted{ - dir = 1; - icon_state = "borderfloor_shifted" - }, -/obj/effect/floor_decal/corner/lightorange{ - dir = 5; - icon_state = "corner_white" - }, -/obj/effect/floor_decal/corner/lightorange/border/shifted{ - dir = 1; - icon_state = "bordercolor_shifted" - }, -/obj/machinery/light/small{ - dir = 1; - icon_state = "bulb1" - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/sechallway) -"jP" = ( -/obj/structure/closet/secure_closet/brig{ - id = "Cell M2" - }, -/obj/effect/floor_decal/borderfloor/shifted{ - dir = 1; - icon_state = "borderfloor_shifted" - }, -/obj/effect/floor_decal/corner/lightorange{ - dir = 5; - icon_state = "corner_white" - }, -/obj/effect/floor_decal/corner/lightorange/border/shifted{ - dir = 1; - icon_state = "bordercolor_shifted" - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/sechallway) -"jQ" = ( -/obj/machinery/door/firedoor/glass, -/obj/structure/grille, -/obj/structure/window/reinforced/full, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/door/blast/regular{ - density = 0; - dir = 1; - icon_state = "pdoor0"; - id = "ship-sec-cell2"; - name = "Security Blast Doors"; - opacity = 0 - }, -/obj/structure/cable/cyan{ - icon_state = "0-4" - }, -/turf/simulated/floor/plating, -/area/mothership/sechallway) -"jR" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 26 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/sechallway) -"jS" = ( -/obj/machinery/photocopier, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/warden) -"jT" = ( -/obj/machinery/firealarm{ - dir = 2; - layer = 3.3; - pixel_x = 4; - pixel_y = 26 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/warden) -"jU" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/warden) -"jV" = ( -/obj/structure/table/steel_reinforced, -/obj/machinery/alarm{ - pixel_y = 22 - }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 8 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/warden) -"jW" = ( -/obj/structure/closet/crate/bin, -/obj/machinery/button/remote/blast_door{ - dir = 4; - id = "ship-sec-cell1"; - name = "Cell 1 Blast Doors"; - pixel_x = 28; - pixel_y = 6; - req_one_access = list(2) - }, -/obj/machinery/button/remote/blast_door{ - dir = 4; - id = "ship-sec-cell2"; - name = "Cell 2 Blast Doors"; - pixel_x = 28; - pixel_y = -6; - req_one_access = list(2) - }, -/obj/machinery/button/remote/blast_door{ - id = "ship-sec-warden"; - name = "Blast Doors Controls"; - pixel_y = 28 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/warden) -"jX" = ( -/obj/machinery/organ_printer/flesh, -/turf/simulated/floor/tiled/white, -/area/mothership/resleeving) -"jY" = ( -/obj/item/storage/firstaid/regular{ - pixel_x = -2; - pixel_y = 4 - }, -/obj/item/bodybag/cryobag{ - pixel_x = 5 - }, -/obj/item/bodybag/cryobag{ - pixel_x = 5 - }, -/obj/item/storage/firstaid/o2{ - layer = 2.8; - pixel_x = 4; - pixel_y = 6 - }, -/obj/item/storage/box/masks{ - pixel_x = 0; - pixel_y = 0 - }, -/obj/item/storage/box/gloves{ - pixel_x = 3; - pixel_y = 4 - }, -/obj/item/storage/firstaid/toxin, -/obj/item/storage/firstaid/fire{ - layer = 2.9; - pixel_x = 2; - pixel_y = 3 - }, -/obj/item/storage/firstaid/adv{ - pixel_x = -2 - }, -/obj/item/reagent_containers/blood/empty, -/obj/item/reagent_containers/blood/OMinus, -/obj/item/reagent_containers/blood/OMinus, -/obj/item/reagent_containers/blood/OMinus, -/obj/item/reagent_containers/blood/OMinus, -/obj/structure/closet/medical_wall{ - pixel_y = -32 - }, -/obj/item/storage/box/body_record_disk, -/obj/item/storage/firstaid/clotting, -/obj/item/storage/firstaid/bonemed, -/obj/item/storage/firstaid/adv{ - pixel_x = -2 - }, -/obj/item/reagent_containers/food/drinks/drinkingglass/fitnessflask/glucose, -/obj/item/reagent_containers/food/drinks/drinkingglass/fitnessflask/glucose, -/turf/simulated/floor/tiled/white, -/area/mothership/resleeving) -"jZ" = ( -/obj/machinery/transhuman/synthprinter, -/turf/simulated/floor/tiled/white, -/area/mothership/resleeving) -"ka" = ( -/obj/machinery/clonepod/transhuman/full, -/turf/simulated/floor/tiled/white, -/area/mothership/resleeving) -"kb" = ( -/obj/machinery/transhuman/resleever, -/turf/simulated/floor/tiled/white, -/area/mothership/resleeving) -"kc" = ( -/obj/structure/closet/crate/bin, -/turf/simulated/floor/tiled/white, -/area/mothership/resleeving) -"kd" = ( -/obj/structure/sign/department/morgue, -/turf/simulated/wall/rpshull, -/area/mothership/morgue) -"ke" = ( -/obj/structure/table/steel_reinforced, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/morgue) -"kf" = ( -/obj/machinery/light/small, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/morgue) -"kg" = ( -/obj/machinery/door/firedoor/glass, -/obj/effect/floor_decal/industrial/hatch/yellow, -/obj/machinery/door/window/brigdoor/southleft{ - dir = 4; - id = "Cell M2"; - name = "Cell 2"; - req_access = list(2) - }, -/obj/machinery/door/blast/regular{ - density = 0; - dir = 1; - icon_state = "pdoor0"; - id = "ship-sec-cell2"; - name = "Security Blast Doors"; - opacity = 0 - }, -/turf/simulated/floor/tiled/dark, -/area/mothership/sechallway) -"kh" = ( -/obj/structure/filingcabinet/chestdrawer, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/warden) -"ki" = ( -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/warden) -"kj" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/warden) -"kk" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/full, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/door/blast/regular{ - density = 0; - destroy_hits = 1000; - dir = 1; - icon_state = "pdoor0"; - id = "ship-sec-warden"; - name = "Shuttle Blast Doors"; - opacity = 0 - }, -/obj/machinery/door/firedoor/glass, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/simulated/floor/plating, -/area/mothership/warden) -"kl" = ( -/turf/simulated/wall/rpshull, -/area/mothership/medical) -"km" = ( -/obj/machinery/door/airlock/medical, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/medical) -"kn" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/medical, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/medical) -"ko" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/sechallway) -"kp" = ( -/obj/machinery/door/airlock/security, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/warden) -"kq" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/warden) -"kr" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/warden) -"ks" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/warden) -"kt" = ( -/obj/structure/table/steel_reinforced, -/obj/item/stamp/ward, -/obj/item/stamp/denied{ - pixel_x = 5 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/warden) -"ku" = ( -/obj/structure/bed/chair/office/dark{ - dir = 8 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/warden) -"kv" = ( -/obj/machinery/vending/medical, -/turf/simulated/floor/tiled/white, -/area/mothership/medical) -"kw" = ( -/turf/simulated/floor/tiled/white, -/area/mothership/medical) -"kx" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/white, -/area/mothership/medical) -"ky" = ( -/obj/item/storage/firstaid/adv{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/storage/firstaid/adv, -/obj/structure/table/steel_reinforced, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/alarm{ - pixel_y = 22 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/medical) -"kz" = ( -/obj/item/storage/firstaid/toxin{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/storage/firstaid/toxin, -/obj/structure/table/steel_reinforced, -/turf/simulated/floor/tiled/white, -/area/mothership/medical) -"kA" = ( -/obj/item/storage/firstaid/combat{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/storage/firstaid/combat, -/obj/structure/table/steel_reinforced, -/turf/simulated/floor/tiled/white, -/area/mothership/medical) -"kB" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden{ - dir = 8; - icon_state = "map" - }, -/turf/simulated/floor/tiled/white, -/area/mothership/medical) -"kC" = ( -/obj/machinery/atmospherics/unary/freezer{ - dir = 8 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/medical) -"kD" = ( -/obj/structure/closet/secure_closet/personal, -/turf/simulated/floor/wood, -/area/mothership/dorm5) -"kE" = ( -/obj/structure/table/woodentable, -/obj/item/modular_computer/laptop/preset/custom_loadout/elite, -/obj/machinery/status_display{ - pixel_y = 29 - }, -/turf/simulated/floor/wood, -/area/mothership/dorm5) -"kF" = ( -/obj/structure/closet/wardrobe/ert, -/obj/item/storage/box/survival/comp{ - starts_with = list(/obj/item/tool/prybar/red,/obj/item/clothing/glasses/goggles,/obj/item/reagent_containers/hypospray/autoinjector,/obj/item/stack/medical/bruise_pack,/obj/item/flashlight/glowstick,/obj/item/reagent_containers/food/snacks/candy/proteinbar,/obj/item/clothing/mask/breath,/obj/item/tank/emergency/oxygen/engi) - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on, -/obj/item/storage/box/survival/space, -/obj/item/storage/toolbox/emergency, -/turf/simulated/floor/wood, -/area/mothership/dorm5) -"kG" = ( -/turf/simulated/wall/rpshull, -/area/mothership/dorm5) -"kH" = ( -/turf/simulated/wall/rpshull, -/area/mothership/dorm6) -"kI" = ( -/obj/structure/closet/wardrobe/ert, -/obj/item/storage/box/survival/comp{ - starts_with = list(/obj/item/tool/prybar/red,/obj/item/clothing/glasses/goggles,/obj/item/reagent_containers/hypospray/autoinjector,/obj/item/stack/medical/bruise_pack,/obj/item/flashlight/glowstick,/obj/item/reagent_containers/food/snacks/candy/proteinbar,/obj/item/clothing/mask/breath,/obj/item/tank/emergency/oxygen/engi) - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on, -/obj/item/storage/box/survival/space, -/obj/item/storage/toolbox/emergency, -/turf/simulated/floor/wood, -/area/mothership/dorm6) -"kJ" = ( -/obj/structure/table/woodentable, -/obj/item/modular_computer/laptop/preset/custom_loadout/elite, -/obj/machinery/status_display{ - pixel_y = 29 - }, -/turf/simulated/floor/wood, -/area/mothership/dorm6) -"kK" = ( -/obj/structure/closet/secure_closet/personal, -/turf/simulated/floor/wood, -/area/mothership/dorm6) -"kL" = ( -/obj/item/gun/projectile/shotgun/pump/combat{ - ammo_type = /obj/item/ammo_casing/a12g/beanbag; - desc = "Built for close quarters combat, the Hesphaistos Industries KS-40 is widely regarded as a weapon of choice for repelling boarders. This one has 'Property of the Warden' inscribed on the stock."; - name = "warden's shotgun" - }, -/obj/item/book/manual/security_space_law, -/obj/structure/closet/secure_closet/nanotrasen_warden, -/obj/machinery/power/apc{ - alarms_hidden = 1; - cell_type = /obj/item/cell/super; - dir = 8; - name = "west bump"; - pixel_x = -28 - }, -/obj/structure/cable/cyan, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/warden) -"kM" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/warden) -"kN" = ( -/obj/structure/table/steel_reinforced, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/clipboard, -/obj/item/folder/red, -/obj/item/pen, -/obj/item/radio{ - pixel_x = -4 - }, -/obj/item/hand_labeler, -/obj/item/tool/wrench, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/warden) -"kO" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/full, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/door/blast/regular{ - density = 0; - destroy_hits = 1000; - dir = 1; - icon_state = "pdoor0"; - id = "ship-med-equip"; - name = "Shuttle Blast Doors"; - opacity = 0 - }, -/obj/machinery/door/firedoor/glass, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/simulated/floor/plating, -/area/mothership/medical) -"kP" = ( -/obj/structure/closet/secure_closet/medical3, -/turf/simulated/floor/tiled/white, -/area/mothership/medical) -"kQ" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/medical) -"kR" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/medical) -"kS" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 5; - icon_state = "intact" - }, -/turf/simulated/floor/tiled/white, -/area/mothership/medical) -"kT" = ( -/obj/machinery/atmospherics/portables_connector{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister/oxygen/prechilled, -/turf/simulated/floor/tiled/white, -/area/mothership/medical) -"kU" = ( -/obj/item/bedsheet/captaindouble, -/obj/structure/bed/double/padded, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/obj/machinery/button/remote/airlock{ - id = "ship-dorm5-door"; - name = "Dorm 5 Lock"; - pixel_x = 6; - pixel_y = -26; - specialfunctions = 4 - }, -/obj/structure/curtain/open/bed, -/turf/simulated/floor/wood, -/area/mothership/dorm5) -"kV" = ( -/obj/structure/bed/chair/office/dark{ - dir = 1 - }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/obj/machinery/alarm{ - dir = 1; - pixel_y = -22 - }, -/obj/machinery/light/small, -/turf/simulated/floor/wood, -/area/mothership/dorm5) -"kW" = ( -/obj/structure/cable/cyan{ - icon_state = "0-4" - }, -/obj/machinery/power/apc{ - alarms_hidden = 1; - dir = 2; - name = "south bump"; - pixel_y = -28; - req_access = list(67) - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5 - }, -/turf/simulated/floor/wood, -/area/mothership/dorm5) -"kX" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/door/airlock{ - id_tag = "ship-dorm5-door" - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/dorm5) -"kY" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"kZ" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/door/airlock{ - id_tag = "ship-dorm6-door" - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/dorm6) -"la" = ( -/obj/structure/cable/cyan{ - icon_state = "0-8" - }, -/obj/machinery/power/apc{ - alarms_hidden = 1; - dir = 2; - name = "south bump"; - pixel_y = -28; - req_access = list(67) - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 9 - }, -/turf/simulated/floor/wood, -/area/mothership/dorm6) -"lb" = ( -/obj/structure/bed/chair/office/dark{ - dir = 1 - }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 8 - }, -/obj/machinery/alarm{ - dir = 1; - pixel_y = -22 - }, -/obj/machinery/light/small, -/turf/simulated/floor/wood, -/area/mothership/dorm6) -"lc" = ( -/obj/item/bedsheet/captaindouble, -/obj/structure/bed/double/padded, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 26 - }, -/obj/machinery/button/remote/airlock{ - id = "ship-dorm6-door"; - name = "Dorm 6 Lock"; - pixel_x = -6; - pixel_y = -26; - specialfunctions = 4 - }, -/obj/structure/curtain/open/bed, -/turf/simulated/floor/wood, -/area/mothership/dorm6) -"ld" = ( -/obj/structure/table/steel_reinforced, -/obj/item/retail_scanner/security, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/warden) -"le" = ( -/obj/structure/table/steel_reinforced, -/obj/machinery/light, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/warden) -"lf" = ( -/obj/machinery/computer/secure_data{ - dir = 1 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/warden) -"lg" = ( -/obj/machinery/computer/prisoner{ - dir = 1 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/warden) -"lh" = ( -/obj/structure/closet/secure_closet/CMO, -/turf/simulated/floor/tiled/white, -/area/mothership/medical) -"li" = ( -/obj/item/storage/firstaid/fire{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/storage/firstaid/fire, -/obj/structure/table/steel_reinforced, -/turf/simulated/floor/tiled/white, -/area/mothership/medical) -"lj" = ( -/obj/item/storage/firstaid/o2{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/storage/firstaid/o2, -/obj/structure/table/steel_reinforced, -/turf/simulated/floor/tiled/white, -/area/mothership/medical) -"lk" = ( -/obj/item/storage/firstaid/regular{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/storage/firstaid/regular, -/obj/structure/table/steel_reinforced, -/turf/simulated/floor/tiled/white, -/area/mothership/medical) -"ll" = ( -/obj/machinery/power/apc{ - alarms_hidden = 1; - dir = 4; - name = "east bump"; - pixel_x = 24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/obj/structure/cable/cyan, -/turf/simulated/floor/tiled/white, -/area/mothership/medical) -"lo" = ( -/obj/structure/sign/department/armory, -/turf/simulated/wall/rpshull, -/area/mothership/armory) -"lp" = ( -/obj/machinery/door/airlock/highsecurity{ - req_one_access = list(103) - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/armory) -"lq" = ( -/turf/simulated/wall/rpshull, -/area/mothership/armory) -"ls" = ( -/obj/machinery/door/airlock/highsecurity{ - req_one_access = list(103) - }, -/obj/machinery/door/firedoor/glass, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/armory) -"lt" = ( -/obj/structure/closet/secure_closet/sar, -/turf/simulated/floor/tiled/white, -/area/mothership/medical) -"lu" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/medical) -"lv" = ( -/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/medical) -"lw" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/medical) -"lx" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/medical) -"ly" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/medical) -"lz" = ( -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 6 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"lA" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 10; - icon_state = "intact" - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"lB" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/door/blast/regular{ - destroy_hits = 100; - id = "ship-armory"; - name = "Armory" - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/armory) -"lC" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"lD" = ( -/obj/item/ammo_magazine/m9mm/large/preban, -/obj/item/ammo_magazine/m9mm/large/preban, -/obj/item/ammo_magazine/m9mm/large/preban, -/obj/item/ammo_magazine/m9mm/large/preban, -/obj/item/ammo_magazine/m9mm/large/preban, -/obj/item/ammo_magazine/m9mm/large/preban, -/obj/item/ammo_magazine/m9mm/large/preban, -/obj/item/ammo_magazine/m9mm/large/preban, -/obj/item/gun/projectile/p92x, -/obj/item/gun/projectile/p92x, -/obj/item/gun/projectile/p92x, -/obj/item/gun/projectile/p92x, -/obj/structure/closet/secure_closet/guncabinet{ - req_one_access = list(103) - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"lE" = ( -/obj/item/ammo_magazine/m9mm/compact, -/obj/item/ammo_magazine/m9mm/compact, -/obj/item/ammo_magazine/m9mm/compact, -/obj/item/ammo_magazine/m9mm/compact, -/obj/item/ammo_magazine/m9mm/compact, -/obj/item/ammo_magazine/m9mm/compact, -/obj/item/ammo_magazine/m9mm/compact/flash, -/obj/item/ammo_magazine/m9mm/compact/flash, -/obj/item/ammo_magazine/m9mm/compact/flash, -/obj/item/ammo_magazine/m9mm/compact/rubber, -/obj/item/ammo_magazine/m9mm/compact/rubber, -/obj/item/ammo_magazine/m9mm/compact/rubber, -/obj/item/ammo_magazine/m9mm/compact/practice, -/obj/item/ammo_magazine/m9mm/compact/practice, -/obj/item/ammo_magazine/m9mm/compact/practice, -/obj/item/gun/projectile/pistol, -/obj/item/gun/projectile/pistol, -/obj/item/gun/projectile/pistol, -/obj/structure/closet/secure_closet/guncabinet{ - req_one_access = list(103) - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"lF" = ( -/obj/item/gun/energy/locked/frontier/carbine/unlocked, -/obj/item/gun/energy/locked/frontier/carbine/unlocked, -/obj/item/gun/energy/locked/frontier/carbine/unlocked, -/obj/item/gun/energy/locked/frontier/carbine/unlocked, -/obj/item/gun/energy/locked/frontier/holdout/unlocked, -/obj/item/gun/energy/locked/frontier/holdout/unlocked, -/obj/item/gun/energy/locked/frontier/holdout/unlocked, -/obj/item/gun/energy/locked/frontier/holdout/unlocked, -/obj/structure/closet/secure_closet/guncabinet{ - req_one_access = list(103) - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"lG" = ( -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"lH" = ( -/obj/machinery/vending/nifsoft_shop{ - categories = 111; - emagged = 1; - name = "Hacked NIFSoft Shop"; - prices = list() - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"lI" = ( -/obj/structure/table/steel_reinforced, -/obj/machinery/cell_charger, -/obj/item/cell/hyper, -/obj/item/cell/hyper, -/obj/item/cell/hyper, -/obj/item/cell/hyper, -/obj/item/cell/hyper, -/obj/item/cell/hyper, -/obj/item/cell/hyper, -/obj/item/cell/hyper, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"lJ" = ( -/obj/machinery/disposal, -/turf/simulated/floor/tiled/white, -/area/mothership/medical) -"lK" = ( -/obj/machinery/button/remote/blast_door{ - id = "ship-med-equip"; - name = "Blast Doors Controls"; - pixel_y = -28 - }, -/turf/simulated/floor/tiled/white, -/area/mothership/medical) -"lL" = ( -/obj/item/clothing/accessory/storage/white_vest, -/obj/item/clothing/accessory/storage/white_vest, -/obj/item/clothing/accessory/storage/white_vest, -/obj/item/clothing/accessory/storage/white_vest, -/obj/item/clothing/accessory/storage/white_drop_pouches, -/obj/item/clothing/accessory/storage/white_drop_pouches, -/obj/item/clothing/accessory/storage/white_drop_pouches, -/obj/item/clothing/accessory/storage/white_drop_pouches, -/obj/item/storage/backpack/dufflebag/syndie/med, -/obj/item/storage/backpack/dufflebag/syndie/med, -/obj/structure/table/rack/shelf/steel, -/turf/simulated/floor/tiled/white, -/area/mothership/medical) -"lM" = ( -/obj/item/healthanalyzer/phasic, -/obj/item/healthanalyzer/phasic, -/obj/item/healthanalyzer/phasic, -/obj/item/healthanalyzer/phasic, -/obj/item/reagent_containers/hypospray, -/obj/item/reagent_containers/hypospray, -/obj/item/reagent_containers/hypospray, -/obj/item/reagent_containers/hypospray, -/obj/structure/table/rack/shelf/steel, -/turf/simulated/floor/tiled/white, -/area/mothership/medical) -"lN" = ( -/obj/item/storage/belt/medical/emt, -/obj/item/storage/belt/medical/emt, -/obj/item/storage/belt/medical/emt, -/obj/item/storage/belt/medical/emt, -/obj/item/storage/belt/medical/emt, -/obj/item/storage/belt/medical/emt, -/obj/item/defib_kit/compact/combat/loaded, -/obj/item/defib_kit/compact/combat/loaded, -/obj/structure/table/rack/shelf/steel, -/obj/machinery/light, -/turf/simulated/floor/tiled/white, -/area/mothership/medical) -"lO" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/simulated/floor/tiled/white, -/area/mothership/medical) -"lP" = ( -/obj/machinery/door/airlock/multi_tile/metal{ - dir = 2 - }, -/obj/machinery/door/firedoor/glass, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/medical) -"lQ" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden, -/obj/machinery/porta_turret/industrial/teleport_defense{ - auto_repair = 1; - check_access = 0; - check_weapons = 1; - name = "anti-boarding turret"; - req_one_access = list(101) - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"lR" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"lS" = ( -/obj/machinery/door/airlock/multi_tile/metal/mait{ - dir = 2; - req_one_access = list(103) - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/door/blast/regular{ - destroy_hits = 100; - id = "ship-armory"; - name = "Armory" - }, -/obj/machinery/button/remote/blast_door{ - id = "ship-armory"; - name = "Blast Doors Controls"; - pixel_x = 0; - pixel_y = -28 - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/armory) -"lT" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"lU" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"lV" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"lW" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"lX" = ( -/obj/structure/table/steel_reinforced, -/obj/item/tool/crowbar, -/obj/item/tool/screwdriver, -/obj/item/tool/wrench, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"lY" = ( -/obj/machinery/door/airlock/research, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/medical) -"lZ" = ( -/obj/machinery/door/airlock/research, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor/glass, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/medical) -"ma" = ( -/obj/structure/sign/department/medbay, -/turf/simulated/wall/rpshull, -/area/mothership/medical) -"mb" = ( -/turf/simulated/wall/rpshull, -/area/mothership/bridge) -"md" = ( -/obj/item/ammo_magazine/ammo_box/b12g/flash, -/obj/item/ammo_magazine/ammo_box/b12g/flash, -/obj/item/ammo_magazine/ammo_box/b12g/stunshell, -/obj/item/ammo_magazine/ammo_box/b12g/stunshell, -/obj/item/ammo_magazine/ammo_box/b12g/beanbag, -/obj/item/ammo_magazine/ammo_box/b12g/beanbag, -/obj/item/storage/box/empshells/large, -/obj/item/storage/box/empshells/large, -/obj/item/ammo_magazine/ammo_box/b12g, -/obj/item/ammo_magazine/ammo_box/b12g, -/obj/item/ammo_magazine/ammo_box/b12g, -/obj/item/ammo_magazine/ammo_box/b12g, -/obj/item/ammo_magazine/ammo_box/b12g/pellet, -/obj/item/ammo_magazine/ammo_box/b12g/pellet, -/obj/item/ammo_magazine/ammo_box/b12g/pellet, -/obj/item/ammo_magazine/ammo_box/b12g/pellet, -/obj/item/gun/projectile/shotgun/pump/combat, -/obj/item/gun/projectile/shotgun/pump/combat, -/obj/structure/closet/secure_closet/guncabinet{ - req_one_access = list(103) - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"me" = ( -/obj/item/melee/baton/loaded, -/obj/item/melee/baton/loaded, -/obj/item/melee/baton/loaded, -/obj/item/melee/baton/loaded, -/obj/item/melee/energy/sword, -/obj/item/melee/energy/sword, -/obj/item/melee/energy/sword, -/obj/item/melee/energy/sword, -/obj/item/melee/energy/sword, -/obj/item/shield/energy, -/obj/item/shield/energy, -/obj/item/shield/energy, -/obj/item/shield/energy, -/obj/item/shield/energy, -/obj/item/material/knife/tacknife/survival, -/obj/item/material/knife/tacknife/survival, -/obj/item/material/knife/tacknife/survival, -/obj/item/material/knife/tacknife/survival, -/obj/item/material/knife/tacknife/survival, -/obj/item/material/knife/machete, -/obj/item/material/knife/machete, -/obj/item/material/knife/machete, -/obj/item/clothing/accessory/holster/machete, -/obj/item/clothing/accessory/holster/machete, -/obj/item/clothing/accessory/holster/machete, -/obj/structure/table/rack/shelf/steel, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"mf" = ( -/obj/structure/closet/crate/secure/weapon{ - req_one_access = list(108) - }, -/obj/item/storage/box/frags, -/obj/item/storage/box/frags, -/obj/item/storage/box/teargas, -/obj/item/storage/box/teargas, -/obj/item/storage/box/empslite, -/obj/item/storage/box/empslite, -/obj/item/storage/box/smokes, -/obj/item/storage/box/smokes, -/obj/item/storage/box/flashbangs, -/obj/item/storage/box/flashbangs, -/obj/item/gun/launcher/grenade, -/obj/item/gun/launcher/grenade, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"mg" = ( -/obj/item/rig_module/grenade_launcher/smoke, -/obj/item/rig_module/cleaner_launcher, -/obj/item/rig_module/grenade_launcher, -/obj/structure/table/rack/shelf/steel, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"mh" = ( -/obj/item/rig_module/vision/multi, -/obj/structure/table/rack/shelf/steel, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"mi" = ( -/turf/simulated/wall/rpshull, -/area/mothership/rnd) -"mj" = ( -/obj/machinery/r_n_d/destructive_analyzer, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/rnd) -"mk" = ( -/obj/machinery/computer/rdconsole/core, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/rnd) -"ml" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/rnd) -"mm" = ( -/obj/machinery/mecha_part_fabricator/pros, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/rnd) -"mn" = ( -/obj/machinery/autolathe{ - desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; - hacked = 1; - name = "Centcom Autolathe" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/rnd) -"mo" = ( -/obj/machinery/mecha_part_fabricator, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/rnd) -"mp" = ( -/obj/machinery/power/apc{ - alarms_hidden = 1; - dir = 4; - name = "east bump"; - pixel_x = 24 - }, -/obj/structure/cable/cyan, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/rnd) -"mq" = ( -/obj/machinery/status_display{ - pixel_y = 29 - }, -/obj/machinery/computer/card/centcom, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/bridge) -"mr" = ( -/obj/machinery/pointdefense_control{ - id_tag = "warship_pd" - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/bridge) -"ms" = ( -/obj/machinery/computer/ship/helm, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/bridge) -"mu" = ( -/obj/item/ammo_magazine/m545/ap, -/obj/item/ammo_magazine/m545/ap, -/obj/item/ammo_magazine/m545/ap, -/obj/item/ammo_magazine/m545/ap, -/obj/item/ammo_magazine/m545/ap, -/obj/item/ammo_magazine/m545/ap, -/obj/item/ammo_magazine/m545/ap, -/obj/item/ammo_magazine/m545/ap, -/obj/item/ammo_magazine/m545, -/obj/item/ammo_magazine/m545, -/obj/item/ammo_magazine/m545, -/obj/item/ammo_magazine/m545, -/obj/item/ammo_magazine/m545, -/obj/item/ammo_magazine/m545, -/obj/item/ammo_magazine/m545, -/obj/item/ammo_magazine/m545, -/obj/item/gun/projectile/automatic/sts35, -/obj/item/gun/projectile/automatic/sts35, -/obj/item/gun/projectile/automatic/sts35, -/obj/item/gun/projectile/automatic/sts35, -/obj/structure/closet/secure_closet/guncabinet{ - req_one_access = list(103) - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"mv" = ( -/obj/item/clothing/suit/armor/vest/ert/command, -/obj/item/clothing/head/helmet/ert/command, -/obj/item/storage/backpack/ert/commander, -/obj/structure/table/rack/shelf/steel, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"mw" = ( -/obj/structure/closet/crate/secure/weapon{ - req_one_access = list(108) - }, -/obj/item/rig/ert/assetprotection, -/obj/item/rig/ert/assetprotection, -/obj/item/clothing/glasses/thermal, -/obj/item/clothing/glasses/thermal, -/obj/item/clothing/suit/armor/pcarrier/merc, -/obj/item/clothing/suit/armor/pcarrier/merc, -/obj/item/clothing/head/helmet/merc, -/obj/item/clothing/head/helmet/merc, -/obj/item/storage/box/syndie_kit/combat_armor, -/obj/item/storage/box/syndie_kit/combat_armor, -/obj/item/storage/box/syndie_kit/combat_armor, -/obj/item/storage/box/syndie_kit/combat_armor, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"mx" = ( -/obj/item/rig_module/mounted, -/obj/item/rig_module/mounted, -/obj/structure/table/rack/shelf/steel, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"my" = ( -/obj/structure/table/rack/steel, -/obj/machinery/door/window/survival_pod{ - dir = 8; - req_one_access = list(103) - }, -/obj/structure/window/reinforced/survival_pod{ - dir = 1 - }, -/obj/item/rig/ert, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"mz" = ( -/obj/structure/reagent_dispensers/acid{ - density = 0; - pixel_x = -30; - pixel_y = 0 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/rnd) -"mA" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/rnd) -"mB" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/rnd) -"mC" = ( -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/rnd) -"mD" = ( -/obj/structure/table/steel_reinforced, -/obj/machinery/door/window/westleft, -/obj/machinery/door/window/eastright, -/obj/machinery/door/firedoor/glass, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/rnd) -"mE" = ( -/obj/machinery/light{ - dir = 8; - icon_state = "tube1" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/bridge) -"mG" = ( -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/bridge) -"mH" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/bridge) -"mI" = ( -/obj/item/ammo_magazine/m9mmp90, -/obj/item/ammo_magazine/m9mmp90, -/obj/item/ammo_magazine/m9mmp90, -/obj/item/ammo_magazine/m9mmp90, -/obj/item/ammo_magazine/m9mmp90, -/obj/item/ammo_magazine/m9mmp90, -/obj/item/ammo_magazine/m9mmp90, -/obj/item/ammo_magazine/m9mmp90, -/obj/item/gun/projectile/automatic/p90, -/obj/item/gun/projectile/automatic/p90, -/obj/item/ammo_magazine/m9mmt/flash, -/obj/item/ammo_magazine/m9mmt/flash, -/obj/item/ammo_magazine/m9mmt/flash, -/obj/item/ammo_magazine/m9mmt/flash, -/obj/item/ammo_magazine/m9mmt/rubber, -/obj/item/ammo_magazine/m9mmt/rubber, -/obj/item/ammo_magazine/m9mmt/rubber, -/obj/item/ammo_magazine/m9mmt/rubber, -/obj/structure/closet/secure_closet/guncabinet{ - req_one_access = list(103) - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"mJ" = ( -/obj/item/clothing/suit/armor/vest/ert/security, -/obj/item/clothing/suit/armor/vest/ert/security, -/obj/item/clothing/suit/armor/vest/ert/security, -/obj/item/clothing/head/helmet/ert/security, -/obj/item/clothing/head/helmet/ert/security, -/obj/item/clothing/head/helmet/ert/security, -/obj/item/storage/backpack/ert/security, -/obj/item/storage/backpack/ert/security, -/obj/item/storage/backpack/ert/security, -/obj/structure/table/rack/shelf/steel, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"mK" = ( -/obj/structure/closet/crate/secure/weapon{ - req_one_access = list(108) - }, -/obj/item/gun/projectile/automatic/l6_saw, -/obj/item/gun/projectile/automatic/l6_saw, -/obj/item/ammo_magazine/m545saw, -/obj/item/ammo_magazine/m545saw, -/obj/item/ammo_magazine/m545saw, -/obj/item/ammo_magazine/m545saw, -/obj/item/ammo_magazine/m545saw/ap, -/obj/item/ammo_magazine/m545saw/ap, -/obj/item/ammo_magazine/m545saw/ap, -/obj/item/ammo_magazine/m545saw/ap, -/obj/item/ammo_magazine/m545saw/ap, -/obj/item/ammo_magazine/m545saw/ap, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"mL" = ( -/obj/item/rig_module/mounted/egun, -/obj/item/rig_module/mounted/egun, -/obj/item/rig_module/mounted/egun, -/obj/item/rig_module/mounted/egun, -/obj/structure/table/rack/shelf/steel, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"mM" = ( -/obj/structure/table/rack/steel, -/obj/machinery/door/window/survival_pod{ - dir = 8; - req_one_access = list(103) - }, -/obj/item/rig/ert/security, -/obj/item/rig/ert/security, -/obj/item/rig/ert/security, -/obj/item/rig/ert/security, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"mO" = ( -/obj/machinery/r_n_d/circuit_imprinter, -/obj/item/reagent_containers/glass/beaker/sulphuric, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/rnd) -"mP" = ( -/obj/machinery/r_n_d/protolathe, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/rnd) -"mQ" = ( -/obj/structure/table/steel_reinforced, -/obj/machinery/cell_charger, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/rnd) -"mR" = ( -/obj/structure/table/steel_reinforced, -/obj/machinery/recharger, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/rnd) -"mS" = ( -/obj/structure/closet{ - name = "materials" - }, -/obj/fiftyspawner/diamond, -/obj/fiftyspawner/gold, -/obj/fiftyspawner/phoron, -/obj/fiftyspawner/plasteel, -/obj/fiftyspawner/plastic, -/obj/fiftyspawner/osmium, -/obj/fiftyspawner/silver, -/obj/fiftyspawner/steel, -/obj/fiftyspawner/steel, -/obj/fiftyspawner/steel, -/obj/fiftyspawner/steel, -/obj/fiftyspawner/uranium, -/obj/fiftyspawner/glass, -/obj/fiftyspawner/glass, -/obj/fiftyspawner/glass, -/obj/fiftyspawner/durasteel, -/obj/machinery/light{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/rnd) -"mT" = ( -/obj/structure/sign/department/rnd, -/turf/simulated/wall/rpshull, -/area/mothership/rnd) -"mU" = ( -/obj/machinery/power/apc{ - alarms_hidden = 1; - dir = 4; - name = "east bump"; - pixel_x = 24 - }, -/obj/structure/cable/cyan, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"mV" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/bridge) -"mW" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/bridge) -"mX" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/bridge) -"mY" = ( -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/obj/machinery/power/apc{ - alarms_hidden = 1; - dir = 4; - name = "east bump"; - pixel_x = 24 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 10 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/bridge) -"mZ" = ( -/obj/item/gun/energy/laser, -/obj/item/gun/energy/laser, -/obj/item/gun/energy/laser, -/obj/item/gun/energy/laser, -/obj/item/cell/device/weapon, -/obj/item/cell/device/weapon, -/obj/item/cell/device/weapon, -/obj/item/cell/device/weapon, -/obj/item/cell/device/weapon, -/obj/item/cell/device/weapon, -/obj/item/cell/device/weapon, -/obj/item/cell/device/weapon, -/obj/structure/closet/secure_closet/guncabinet{ - req_one_access = list(103) - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"na" = ( -/obj/item/clothing/suit/armor/vest/ert/engineer, -/obj/item/clothing/suit/armor/vest/ert/engineer, -/obj/item/clothing/head/helmet/ert/engineer, -/obj/item/clothing/head/helmet/ert/engineer, -/obj/item/storage/backpack/ert/engineer, -/obj/item/storage/backpack/ert/engineer, -/obj/structure/table/rack/shelf/steel, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"nb" = ( -/obj/structure/closet/crate/secure/weapon{ - req_one_access = list(108) - }, -/obj/item/gun/energy/pulse_rifle, -/obj/item/gun/energy/pulse_rifle, -/obj/item/gun/energy/pulse_rifle, -/obj/item/gun/energy/pulse_rifle, -/obj/item/cell/device/weapon, -/obj/item/cell/device/weapon, -/obj/item/cell/device/weapon, -/obj/item/cell/device/weapon, -/obj/item/cell/device/weapon, -/obj/item/cell/device/weapon, -/obj/item/cell/device/weapon, -/obj/item/cell/device/weapon, -/obj/item/gun/energy/gun/protector, -/obj/item/gun/energy/gun/protector, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"nc" = ( -/obj/item/rig_module/device/anomaly_scanner, -/obj/item/rig_module/device/anomaly_scanner, -/obj/item/rig_module/device/rcd, -/obj/item/rig_module/device/rcd, -/obj/structure/table/rack/shelf/steel, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"nd" = ( -/obj/structure/table/rack/steel, -/obj/machinery/door/window/survival_pod{ - dir = 8; - req_one_access = list(103) - }, -/obj/item/rig/ert/engineer, -/obj/item/rig/ert/engineer, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"nf" = ( -/obj/machinery/vending/robotics, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/rnd) -"ng" = ( -/obj/machinery/vending/cart, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/rnd) -"nh" = ( -/obj/structure/closet/secure_closet/RD, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/rnd) -"ni" = ( -/obj/structure/closet/secure_closet/scientist, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/rnd) -"nj" = ( -/obj/structure/closet{ - name = "mechanical equipment" - }, -/obj/item/storage/toolbox/syndicate/powertools, -/obj/item/storage/toolbox/syndicate/powertools, -/obj/item/clothing/head/welding{ - pixel_x = -3; - pixel_y = 5 - }, -/obj/item/clothing/head/welding{ - pixel_x = -3; - pixel_y = 5 - }, -/obj/item/clothing/glasses/welding, -/obj/item/clothing/glasses/welding, -/obj/item/storage/belt/utility, -/obj/item/multitool{ - pixel_x = 3 - }, -/obj/item/stack/cable_coil, -/obj/item/stack/cable_coil, -/obj/item/stack/cable_coil, -/obj/item/stack/cable_coil, -/obj/item/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/flash/synthetic, -/obj/item/flash/synthetic, -/obj/item/flash/synthetic, -/obj/item/flash/synthetic, -/obj/item/healthanalyzer, -/obj/item/healthanalyzer, -/obj/item/storage/firstaid/regular{ - empty = 1; - name = "First-Aid (empty)" - }, -/obj/item/storage/firstaid/regular{ - empty = 1; - name = "First-Aid (empty)" - }, -/obj/item/cell/high{ - charge = 100; - maxcharge = 15000; - pixel_x = 5; - pixel_y = -5 - }, -/obj/item/cell/high{ - charge = 100; - maxcharge = 15000; - pixel_x = 5; - pixel_y = -5 - }, -/obj/item/cell/high{ - charge = 100; - maxcharge = 15000; - pixel_x = 5; - pixel_y = -5 - }, -/obj/item/cell/high{ - charge = 100; - maxcharge = 15000; - pixel_x = 5; - pixel_y = -5 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/rnd) -"nl" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"nm" = ( -/obj/machinery/door/airlock/command{ - req_one_access = list(101) - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/bridge) -"nn" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 9 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/bridge) -"no" = ( -/obj/structure/bed/chair/bay/shuttle{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/bridge) -"np" = ( -/obj/item/modular_computer/console/preset/ert{ - dir = 8 - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/bridge) -"nq" = ( -/obj/item/modular_computer/console/preset/ert{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/bridge) -"nr" = ( -/obj/structure/bed/chair/bay/shuttle{ - dir = 8 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/bridge) -"ns" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 5 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/bridge) -"nt" = ( -/obj/machinery/door/airlock/command{ - req_one_access = list(101) - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/glass, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/bridge) -"nu" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"nv" = ( -/obj/item/gun/energy/gun/nuclear, -/obj/item/gun/energy/gun/nuclear, -/obj/item/gun/energy/gun/nuclear, -/obj/item/gun/energy/gun/nuclear, -/obj/structure/closet/secure_closet/guncabinet{ - req_one_access = list(103) - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"nw" = ( -/obj/item/clothing/suit/armor/vest/ert/medical, -/obj/item/clothing/suit/armor/vest/ert/medical, -/obj/item/clothing/head/helmet/ert/medical, -/obj/item/clothing/head/helmet/ert/medical, -/obj/item/storage/backpack/ert/medical, -/obj/item/storage/backpack/ert/medical, -/obj/structure/table/rack/shelf/steel, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"nx" = ( -/obj/structure/closet/crate/secure/weapon{ - req_one_access = list(108) - }, -/obj/item/gun/projectile/automatic/z8, -/obj/item/gun/projectile/automatic/z8, -/obj/item/gun/projectile/heavysniper, -/obj/item/ammo_magazine/ammo_box/b145, -/obj/item/ammo_magazine/ammo_box/b145, -/obj/item/ammo_magazine/m762, -/obj/item/ammo_magazine/m762, -/obj/item/ammo_magazine/m762, -/obj/item/ammo_magazine/m762, -/obj/item/ammo_magazine/m762/ap, -/obj/item/ammo_magazine/m762/ap, -/obj/item/ammo_magazine/m762/ap, -/obj/item/ammo_magazine/m762/ap, -/obj/item/ammo_magazine/m762/ap, -/obj/item/ammo_magazine/m762/ap, -/obj/item/ammo_magazine/ammo_box/b145, -/obj/item/ammo_magazine/ammo_box/b145, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"ny" = ( -/obj/item/rig_module/device/healthscanner, -/obj/item/rig_module/device/healthscanner, -/obj/item/rig_module/sprinter, -/obj/item/rig_module/sprinter, -/obj/item/rig_module/sprinter, -/obj/item/rig_module/sprinter, -/obj/structure/table/rack/shelf/steel, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"nz" = ( -/obj/structure/table/rack/steel, -/obj/machinery/door/window/survival_pod{ - dir = 8; - req_one_access = list(103) - }, -/obj/structure/window/reinforced/survival_pod, -/obj/item/rig/ert/medical, -/obj/item/rig/ert/medical, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"nA" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/rnd) -"nB" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/rnd) -"nC" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/rnd) -"nD" = ( -/obj/machinery/door/airlock/research, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/rnd) -"nE" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"nF" = ( -/obj/structure/sign/department/bridge, -/turf/simulated/wall/rpshull, -/area/mothership/bridge) -"nG" = ( -/obj/machinery/computer/communications{ - dir = 8 - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/bridge) -"nH" = ( -/obj/machinery/computer/message_monitor{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/bridge) -"nI" = ( -/obj/item/gun/energy/gun, -/obj/item/gun/energy/gun, -/obj/item/gun/energy/gun, -/obj/item/gun/energy/gun, -/obj/item/cell/device/weapon, -/obj/item/cell/device/weapon, -/obj/item/cell/device/weapon, -/obj/item/cell/device/weapon, -/obj/item/cell/device/weapon, -/obj/item/cell/device/weapon, -/obj/item/cell/device/weapon, -/obj/item/cell/device/weapon, -/obj/structure/closet/secure_closet/guncabinet{ - req_one_access = list(103) - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"nJ" = ( -/obj/item/clothing/glasses/graviton, -/obj/item/clothing/glasses/graviton, -/obj/item/clothing/glasses/graviton, -/obj/item/clothing/glasses/night, -/obj/item/clothing/glasses/night, -/obj/item/clothing/glasses/night, -/obj/item/clothing/glasses/night, -/obj/item/storage/belt/security/tactical, -/obj/item/storage/belt/security/tactical, -/obj/item/storage/belt/security/tactical, -/obj/item/storage/belt/security/tactical, -/obj/item/clothing/mask/gas/explorer, -/obj/item/clothing/mask/gas/explorer, -/obj/item/clothing/mask/gas/explorer, -/obj/item/clothing/mask/gas/explorer, -/obj/item/clothing/mask/gas/explorer, -/obj/item/clothing/mask/breath, -/obj/item/clothing/mask/breath, -/obj/item/clothing/mask/breath, -/obj/item/clothing/mask/breath, -/obj/item/clothing/mask/breath, -/obj/structure/table/rack/shelf/steel, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"nK" = ( -/obj/structure/closet/crate/secure/weapon{ - req_one_access = list(108) - }, -/obj/item/storage/secure/briefcase/nsfw_pack_hybrid, -/obj/item/storage/secure/briefcase/nsfw_pack_hybrid_combat, -/obj/item/gun/energy/ionrifle/pistol, -/obj/item/gun/energy/ionrifle/pistol, -/obj/item/gun/energy/ionrifle, -/obj/item/gun/energy/ionrifle, -/obj/item/gun/energy/netgun, -/obj/item/gun/energy/xray, -/obj/item/gun/energy/xray, -/obj/item/gun/energy/gun/burst, -/obj/item/gun/energy/gun/burst, -/obj/item/gun/energy/sniperrifle, -/obj/item/gun/energy/sniperrifle, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"nL" = ( -/obj/item/rig_module/rescue_pharm, -/obj/item/rig_module/rescue_pharm, -/obj/item/rig_module/chem_dispenser/injector, -/obj/item/rig_module/chem_dispenser/injector, -/obj/item/rig_module/chem_dispenser/combat, -/obj/item/rig_module/chem_dispenser/combat, -/obj/structure/table/rack/shelf/steel, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"nM" = ( -/obj/item/rig_module/device/drill, -/obj/item/rig_module/device/drill, -/obj/item/rig_module/device/plasmacutter, -/obj/item/rig_module/device/plasmacutter, -/obj/item/rig_module/device/orescanner, -/obj/item/rig_module/device/orescanner, -/obj/structure/table/rack/shelf/steel, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"nN" = ( -/obj/structure/closet/crate/bin, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/rnd) -"nO" = ( -/obj/item/defib_kit/jumper_kit, -/obj/structure/table/steel_reinforced, -/obj/item/robotanalyzer, -/obj/machinery/light, -/obj/machinery/alarm{ - dir = 1; - pixel_y = -22 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/rnd) -"nP" = ( -/obj/effect/floor_decal/industrial/warning, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/rnd) -"nQ" = ( -/obj/effect/floor_decal/industrial/warning, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/rnd) -"nR" = ( -/obj/structure/closet/wardrobe/science_white, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/rnd) -"nS" = ( -/obj/structure/closet/wardrobe/robotics_black, -/obj/machinery/firealarm{ - dir = 1; - pixel_x = 0; - pixel_y = -25 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/rnd) -"nT" = ( -/obj/machinery/computer/supplycomp{ - dir = 8 - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/bridge) -"nU" = ( -/obj/machinery/computer/robotics{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/bridge) -"nV" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"nW" = ( -/obj/machinery/door/airlock/highsecurity{ - req_one_access = list(103) - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/armory) -"nX" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"nY" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/light, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"nZ" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_x = 0; - pixel_y = -25 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"oa" = ( -/obj/machinery/power/apc{ - alarms_hidden = 1; - dir = 2; - name = "south bump"; - pixel_y = -28; - req_access = list(67) - }, -/obj/structure/cable/cyan{ - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"ob" = ( -/obj/machinery/alarm{ - dir = 1; - pixel_y = -22 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"oc" = ( -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = 0; - pixel_y = -30 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"od" = ( -/obj/machinery/vending/security, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/armory) -"oe" = ( -/obj/machinery/door/blast/regular{ - dir = 4; - id = "ship-mechbay"; - name = "Mech Bay" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/rnd) -"of" = ( -/obj/machinery/door/blast/regular{ - dir = 4; - id = "ship-mechbay"; - name = "Mech Bay" - }, -/obj/machinery/door/firedoor/glass, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/rnd) -"og" = ( -/obj/machinery/door/blast/regular{ - dir = 4; - id = "ship-mechbay"; - name = "Mech Bay" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/button/remote/blast_door{ - id = "ship-mechbay"; - name = "Mech Bay Controls"; - pixel_x = 28 - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/rnd) -"oh" = ( -/obj/structure/fireaxecabinet{ - pixel_y = -32 - }, -/obj/machinery/turretid/stun{ - check_access = 0; - check_records = 0; - check_weapons = 1; - control_area = /area/mothership/hallway; - name = "anti-boarding turret controls"; - pixel_x = -32; - req_access = list(101) - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/bridge) -"oi" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_x = 0; - pixel_y = -25 - }, -/obj/structure/bed/chair/bay/shuttle{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/bridge) -"oj" = ( -/obj/machinery/alarm{ - dir = 1; - pixel_y = -22 - }, -/obj/structure/bed/chair/bay/shuttle{ - dir = 8 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/bridge) -"ok" = ( -/obj/machinery/turretid/lethal{ - ailock = 1; - check_synth = 0; - check_weapons = 1; - control_area = /area/mothership/bridge; - name = "defense turret controls"; - pixel_x = 32; - req_access = list(101) - }, -/obj/structure/panic_button{ - pixel_y = -32 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/bridge) -"ol" = ( -/turf/simulated/wall/rpshull, -/area/mothership/holodeck) -"om" = ( -/turf/simulated/wall/rpshull, -/area/mothership/robotics) -"on" = ( -/obj/structure/closet/toolcloset, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/robotics) -"oo" = ( -/obj/machinery/recharge_station, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/robotics) -"op" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 1; - icon_state = "warning" - }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/robotics) -"oq" = ( -/obj/machinery/mech_recharger, -/obj/effect/floor_decal/industrial/warning{ - dir = 1; - icon_state = "warning" - }, -/turf/simulated/floor/bluegrid, -/area/mothership/robotics) -"or" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 1; - icon_state = "warning" - }, -/turf/simulated/floor/bluegrid, -/area/mothership/robotics) -"os" = ( -/obj/machinery/mech_recharger, -/obj/structure/ghost_pod/manual/lost_drone/dogborg, -/turf/simulated/floor/bluegrid, -/area/mothership/robotics) -"ot" = ( -/obj/structure/ghost_pod/manual/lost_drone/dogborg, -/obj/effect/floor_decal/industrial/warning{ - dir = 4; - icon_state = "warning" - }, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/robotics) -"ou" = ( -/obj/machinery/door/blast/regular{ - id = "ship-mechbay-inner"; - name = "Mech Bay" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/button/remote/blast_door{ - id = "ship-mechbay-inner"; - name = "Mech Bay Controls"; - pixel_x = 0; - pixel_y = 28 - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/robotics) -"ov" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 8; - icon_state = "warning" - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"ox" = ( -/obj/machinery/alarm{ - dir = 4; - pixel_x = -23; - pixel_y = 0 - }, -/obj/structure/closet/crate/bin, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/holodeck) -"oy" = ( -/obj/effect/floor_decal/spline/plain{ - dir = 4 - }, -/obj/machinery/status_display{ - pixel_y = 32 - }, -/obj/machinery/computer/HolodeckControl/holodorm/warship, -/obj/machinery/light{ - dir = 1 - }, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/holodeck) -"oz" = ( -/turf/simulated/floor/reinforced{ - name = "Holodeck Projector Floor" - }, -/area/mothership/holodeck/holo) -"oA" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/full, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/door/blast/regular{ - density = 0; - destroy_hits = 1000; - dir = 1; - icon_state = "pdoor0"; - id = "ship-holodeck"; - name = "Shuttle Blast Doors"; - opacity = 0 - }, -/obj/machinery/door/firedoor/glass, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/simulated/floor/plating, -/area/mothership/holodeck) -"oB" = ( -/obj/machinery/light{ - dir = 8; - icon_state = "tube1" - }, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/robotics) -"oC" = ( -/turf/simulated/floor/tiled/techfloor, -/area/mothership/robotics) -"oD" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/robotics) -"oE" = ( -/turf/simulated/floor/bluegrid, -/area/mothership/robotics) -"oF" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 4; - icon_state = "warning" - }, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/robotics) -"oG" = ( -/obj/machinery/door/blast/regular{ - id = "ship-mechbay-inner"; - name = "Mech Bay" - }, -/obj/machinery/door/firedoor/glass, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/robotics) -"oH" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden{ - dir = 8; - icon_state = "map" - }, -/obj/machinery/porta_turret/industrial/teleport_defense{ - auto_repair = 1; - check_access = 0; - check_weapons = 1; - name = "anti-boarding turret"; - req_one_access = list(101) - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"oI" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden{ - dir = 4; - icon_state = "map" - }, -/obj/machinery/porta_turret/industrial/teleport_defense{ - auto_repair = 1; - check_access = 0; - check_weapons = 1; - name = "anti-boarding turret"; - req_one_access = list(101) - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"oJ" = ( -/obj/machinery/button/remote/airlock{ - id = "ship-holodeck-door"; - name = "Holodeck Lock"; - pixel_x = -26; - pixel_y = -6; - specialfunctions = 4 - }, -/obj/machinery/button/remote/blast_door{ - dir = 8; - id = "ship-holodeck"; - name = "Blast Door Controls"; - pixel_x = -28; - pixel_y = 6 - }, -/obj/machinery/atmospherics/unary/vent_pump/on, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/holodeck) -"oK" = ( -/obj/effect/floor_decal/spline/plain{ - dir = 4 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/holodeck) -"oL" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/robotics) -"oM" = ( -/obj/machinery/cryopod/robot, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/robotics) -"oN" = ( -/obj/machinery/computer/cryopod/robot{ - dir = 1; - pixel_y = -28 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/robotics) -"oO" = ( -/obj/machinery/mech_recharger, -/obj/machinery/firealarm{ - dir = 1; - pixel_x = 0; - pixel_y = -25 - }, -/turf/simulated/floor/bluegrid, -/area/mothership/robotics) -"oP" = ( -/obj/machinery/light, -/turf/simulated/floor/bluegrid, -/area/mothership/robotics) -"oQ" = ( -/obj/machinery/mech_recharger, -/obj/machinery/alarm{ - dir = 1; - pixel_y = -22 - }, -/turf/simulated/floor/bluegrid, -/area/mothership/robotics) -"oR" = ( -/obj/machinery/power/apc{ - alarms_hidden = 1; - dir = 2; - name = "south bump"; - pixel_y = -28 - }, -/obj/structure/cable/cyan{ - icon_state = "0-4" - }, -/obj/effect/floor_decal/industrial/warning{ - dir = 4; - icon_state = "warning" - }, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/robotics) -"oS" = ( -/obj/machinery/door/blast/regular{ - id = "ship-mechbay-inner"; - name = "Mech Bay" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/glass, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/robotics) -"oT" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/effect/floor_decal/industrial/warning{ - dir = 8; - icon_state = "warning" - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"oU" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"oV" = ( -/obj/structure/table/steel_reinforced, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"oW" = ( -/obj/structure/bed/chair/comfy/black{ - dir = 8 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"oX" = ( -/obj/machinery/vending/fitness{ - dir = 1 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"oY" = ( -/obj/machinery/vending/coffee{ - dir = 1 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"oZ" = ( -/obj/structure/bed/chair/comfy/black{ - dir = 4 - }, -/obj/machinery/alarm{ - alarm_id = "pen_nine"; - breach_detection = 0; - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"pa" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"pb" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/door/airlock, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/holodeck) -"pc" = ( -/obj/machinery/power/apc{ - alarms_hidden = 1; - dir = 2; - name = "south bump"; - pixel_y = -28; - req_access = list(67) - }, -/obj/structure/cable/cyan{ - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/holodeck) -"pd" = ( -/obj/effect/floor_decal/spline/plain{ - dir = 4 - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_x = 0; - pixel_y = -24 - }, -/obj/structure/closet/secure_closet/personal, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 9 - }, -/obj/item/storage/box/survival/space, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/holodeck) -"pe" = ( -/turf/simulated/wall/rpshull, -/area/mothership/telecomms1) -"pk" = ( -/turf/simulated/wall/rpshull, -/area/mothership/cryotube) -"pr" = ( -/obj/machinery/door/airlock/external{ - frequency = 1380; - icon_state = "door_locked"; - id_tag = "ws_dock_6_outer"; - locked = 1; - req_one_access = list(101) - }, -/obj/machinery/access_button{ - command = "cycle_exterior"; - frequency = 1380; - master_tag = "ws_dock_6"; - name = "exterior access button"; - pixel_x = -5; - pixel_y = -26; - req_one_access = list(101) - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/telecomms1) -"ps" = ( -/obj/machinery/atmospherics/unary/vent_pump/high_volume{ - dir = 4; - frequency = 1380; - id_tag = "ws_dock_6_pump" - }, -/obj/machinery/light/small{ - dir = 1; - icon_state = "bulb1" - }, -/obj/machinery/airlock_sensor{ - frequency = 1380; - id_tag = "ws_dock_6_sensor"; - pixel_x = 0; - pixel_y = 25 - }, -/obj/machinery/embedded_controller/radio/airlock/docking_port{ - frequency = 1380; - id_tag = "ws_dock_6"; - pixel_y = -32; - req_one_access = list(101); - tag_airpump = "ws_dock_6_pump"; - tag_chamber_sensor = "ws_dock_6_sensor"; - tag_exterior_door = "ws_dock_6_outer"; - tag_interior_door = "ws_dock_6_inner" - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/telecomms1) -"pt" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 9; - icon_state = "intact" - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - frequency = 1380; - icon_state = "door_locked"; - id_tag = "ws_dock_6_inner"; - locked = 1; - req_one_access = list(101) - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/telecomms1) -"pu" = ( -/obj/machinery/firealarm{ - dir = 2; - layer = 3.3; - pixel_x = 4; - pixel_y = 26 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 10; - icon_state = "intact" - }, -/obj/machinery/access_button{ - command = "cycle_interior"; - frequency = 1380; - master_tag = "ws_dock_6"; - name = "interior access button"; - pixel_x = -28; - pixel_y = 26; - req_one_access = list(101) - }, -/obj/effect/floor_decal/industrial/warning{ - dir = 8 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/telecomms1) -"pv" = ( -/obj/machinery/telecomms/receiver/preset_cent, -/turf/simulated/floor/greengrid, -/area/mothership/telecomms1) -"px" = ( -/obj/machinery/telecomms/broadcaster/preset_cent, -/turf/simulated/floor/greengrid, -/area/mothership/telecomms1) -"py" = ( -/obj/machinery/power/apc{ - alarms_hidden = 1; - dir = 1; - name = "north bump"; - pixel_x = 0; - pixel_y = 24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 6 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/telecomms1) -"pz" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/telecomms1) -"pA" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/telecomms1) -"pB" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/door/airlock/highsecurity{ - req_one_access = list(101) - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/telecomms1) -"pC" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden{ - dir = 4; - icon_state = "map" - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"pE" = ( -/obj/machinery/vending/loadout/accessory, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/cryotube) -"pF" = ( -/obj/machinery/vending/loadout/clothing, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/cryotube) -"pG" = ( -/obj/machinery/vending/loadout/overwear, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/cryotube) -"pH" = ( -/obj/machinery/vending/loadout/uniform, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/cryotube) -"pI" = ( -/obj/machinery/vending/loadout/costume, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/cryotube) -"pJ" = ( -/obj/machinery/vending/loadout/loadout_misc, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/cryotube) -"pK" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/door/airlock/highsecurity{ - req_one_access = list(101) - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/telecomms2) -"pL" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/telecomms2) -"pM" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/telecomms2) -"pN" = ( -/obj/machinery/power/apc{ - alarms_hidden = 1; - dir = 1; - name = "north bump"; - pixel_x = 0; - pixel_y = 24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 10; - icon_state = "intact" - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/telecomms2) -"pO" = ( -/obj/machinery/telecomms/allinone, -/turf/simulated/floor/greengrid, -/area/mothership/telecomms2) -"pP" = ( -/obj/machinery/account_database{ - name = "CentComm Accounts database" - }, -/turf/simulated/floor/greengrid, -/area/mothership/telecomms2) -"pQ" = ( -/obj/machinery/ntnet_relay, -/turf/simulated/floor/greengrid, -/area/mothership/telecomms2) -"pR" = ( -/obj/machinery/firealarm{ - dir = 2; - layer = 3.3; - pixel_x = 4; - pixel_y = 26 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 6 - }, -/obj/machinery/access_button{ - command = "cycle_interior"; - frequency = 1380; - master_tag = "ws_dock_3"; - name = "interior access button"; - pixel_x = 28; - pixel_y = 26; - req_one_access = list(101) - }, -/obj/effect/floor_decal/industrial/warning{ - dir = 4 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/telecomms2) -"pS" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - frequency = 1380; - icon_state = "door_locked"; - id_tag = "ws_dock_3_inner"; - locked = 1; - req_one_access = list(101) - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/telecomms2) -"pT" = ( -/obj/machinery/atmospherics/unary/vent_pump/high_volume{ - dir = 8; - frequency = 1380; - id_tag = "ws_dock_3_pump" - }, -/obj/machinery/light/small{ - dir = 1; - icon_state = "bulb1" - }, -/obj/machinery/airlock_sensor{ - frequency = 1380; - id_tag = "ws_dock_3_sensor"; - pixel_x = 0; - pixel_y = 25 - }, -/obj/machinery/embedded_controller/radio/airlock/docking_port{ - frequency = 1380; - id_tag = "ws_dock_3"; - pixel_y = -32; - req_one_access = list(101); - tag_airpump = "ws_dock_3_pump"; - tag_chamber_sensor = "ws_dock_3_sensor"; - tag_exterior_door = "ws_dock_3_outer"; - tag_interior_door = "ws_dock_3_inner" - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/telecomms2) -"pU" = ( -/obj/machinery/door/airlock/external{ - frequency = 1380; - icon_state = "door_locked"; - id_tag = "ws_dock_3_outer"; - locked = 1; - req_one_access = list(101) - }, -/obj/machinery/access_button{ - command = "cycle_exterior"; - frequency = 1380; - master_tag = "ws_dock_3"; - name = "exterior access button"; - pixel_x = 5; - pixel_y = -26; - req_one_access = list(101) - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/telecomms2) -"pW" = ( -/obj/machinery/alarm{ - dir = 4; - pixel_x = -23; - pixel_y = 0 - }, -/obj/machinery/light{ - dir = 8; - icon_state = "tube1"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 5; - icon_state = "intact" - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/telecomms1) -"pX" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/telecomms1) -"pY" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 9; - icon_state = "intact" - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/telecomms1) -"pZ" = ( -/obj/machinery/telecomms/hub/preset_cent, -/turf/simulated/floor/greengrid, -/area/mothership/telecomms1) -"qb" = ( -/obj/structure/sign/department/telecoms, -/turf/simulated/wall/rpshull, -/area/mothership/telecomms1) -"qc" = ( -/obj/structure/closet/crate/bin, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"qd" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"qe" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/door/airlock, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/cryotube) -"qf" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/cryotube) -"qg" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/cryotube) -"qh" = ( -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/cryotube) -"qi" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/cryotube) -"qj" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/cryotube) -"qk" = ( -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/door/airlock, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/cryotube) -"ql" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"qm" = ( -/obj/structure/sign/department/telecoms, -/turf/simulated/wall/rpshull, -/area/mothership/telecomms2) -"qn" = ( -/obj/machinery/computer/rdservercontrol{ - badmin = 1; - dir = 1; - name = "Master RnD Server Controller" - }, -/turf/simulated/floor/greengrid, -/area/mothership/telecomms2) -"qo" = ( -/obj/machinery/r_n_d/server/centcom, -/turf/simulated/floor/greengrid, -/area/mothership/telecomms2) -"qp" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 5; - icon_state = "intact" - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/telecomms2) -"qq" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/telecomms2) -"qr" = ( -/obj/machinery/alarm{ - alarm_id = "anomaly_testing"; - breach_detection = 0; - dir = 8; - frequency = 1439; - pixel_x = 22; - pixel_y = 0; - report_danger_level = 0 - }, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 9; - icon_state = "intact" - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/telecomms2) -"qs" = ( -/turf/simulated/wall/rpshull, -/area/mothership/telecomms2) -"qt" = ( -/obj/machinery/telecomms/bus/preset_cent, -/turf/simulated/floor/greengrid, -/area/mothership/telecomms1) -"qv" = ( -/obj/machinery/telecomms/processor/preset_cent, -/turf/simulated/floor/greengrid, -/area/mothership/telecomms1) -"qw" = ( -/obj/effect/floor_decal/techfloor/orange{ - dir = 10; - icon_state = "techfloororange_edges" - }, -/obj/effect/floor_decal/corner_techfloor_grid{ - dir = 4 - }, -/obj/machinery/mech_recharger{ - icon = 'icons/turf/shuttle_alien_blue.dmi' - }, -/obj/mecha/combat/fighter/gunpod/loaded, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/telecomms1) -"qB" = ( -/obj/structure/sign/department/eng, -/turf/simulated/wall/rpshull, -/area/mothership/engineering) -"qC" = ( -/obj/machinery/door/airlock/engineeringatmos, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/engineering) -"qD" = ( -/obj/structure/undies_wardrobe, -/obj/machinery/light{ - dir = 8; - icon_state = "tube1"; - pixel_y = 0 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/cryotube) -"qE" = ( -/obj/effect/floor_decal/techfloor{ - dir = 9 - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/cryotube) -"qF" = ( -/obj/effect/floor_decal/techfloor{ - dir = 1 - }, -/obj/machinery/washing_machine, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/cryotube) -"qG" = ( -/obj/effect/floor_decal/techfloor{ - dir = 5 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/cryotube) -"qH" = ( -/obj/machinery/vending/loadout/gadget, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/cryotube) -"qI" = ( -/obj/machinery/door/airlock/engineeringatmos, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/engineering) -"qR" = ( -/obj/machinery/atmospherics/portables_connector{ - dir = 4 - }, -/obj/effect/floor_decal/industrial/outline, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/telecomms1) -"qT" = ( -/obj/machinery/atmospherics/pipe/tank/air{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"qU" = ( -/obj/machinery/atmospherics/pipe/simple/visible{ - dir = 4 - }, -/obj/machinery/power/thermoregulator, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"qV" = ( -/obj/machinery/atmospherics/pipe/simple/visible{ - dir = 4 - }, -/obj/machinery/meter, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"qW" = ( -/obj/machinery/atmospherics/pipe/manifold/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/visible/scrubbers, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 26 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"qX" = ( -/obj/machinery/gear_painter, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/cryotube) -"qY" = ( -/obj/effect/floor_decal/techfloor{ - dir = 8 - }, -/obj/machinery/power/apc{ - alarms_hidden = 1; - dir = 2; - name = "south bump"; - pixel_y = -28; - req_access = list(67) - }, -/obj/structure/cable/cyan, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/cryotube) -"qZ" = ( -/obj/machinery/cryopod, -/obj/machinery/alarm{ - dir = 1; - pixel_y = -22 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/cryotube) -"ra" = ( -/obj/machinery/cryopod{ - dir = 4 - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_x = 0; - pixel_y = -25 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/cryotube) -"rb" = ( -/obj/machinery/computer/cryopod{ - pixel_y = -32 - }, -/obj/effect/floor_decal/techfloor{ - dir = 4 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/cryotube) -"rc" = ( -/obj/machinery/vending/loadout, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/cryotube) -"rd" = ( -/obj/machinery/atmospherics/pipe/simple/visible/scrubbers, -/obj/machinery/atmospherics/pipe/simple/visible/supply, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/machinery/alarm{ - dir = 4; - pixel_x = -23; - pixel_y = 0 - }, -/obj/machinery/light{ - dir = 8; - icon_state = "tube1" - }, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"re" = ( -/obj/structure/table/steel_reinforced, -/obj/machinery/recharger, -/obj/structure/cable/cyan{ - icon_state = "0-8" - }, -/obj/machinery/power/apc{ - alarms_hidden = 1; - dir = 1; - name = "north bump"; - pixel_x = 0; - pixel_y = 24 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rf" = ( -/obj/structure/table/steel_reinforced, -/obj/machinery/computer/skills, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rg" = ( -/obj/structure/closet/crate/bin, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rh" = ( -/obj/effect/floor_decal/techfloor/orange{ - dir = 8 - }, -/obj/effect/floor_decal/corner_techfloor_grid{ - dir = 6; - icon_state = "corner_techfloor_grid" - }, -/obj/machinery/mech_recharger{ - icon = 'icons/turf/shuttle_alien_blue.dmi' - }, -/obj/mecha/combat/fighter/gunpod/loaded, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/telecomms2) -"ri" = ( -/obj/effect/shuttle_landmark{ - base_area = /area/space; - base_turf = /turf/space; - flags = 2; - landmark_tag = "cruiser_starboard"; - name = "Vessel starboard" - }, -/turf/space, -/area/space) -"rj" = ( -/obj/effect/floor_decal/techfloor/orange{ - dir = 8 - }, -/obj/effect/floor_decal/corner_techfloor_grid{ - dir = 6; - icon_state = "corner_techfloor_grid" - }, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/telecomms1) -"rk" = ( -/obj/machinery/atmospherics/pipe/manifold/visible/cyan{ - dir = 1 - }, -/obj/structure/closet/emcloset/legacy, -/obj/item/storage/box/survival/space, -/obj/item/storage/box/survival/space, -/obj/item/storage/box/survival/space, -/obj/item/storage/box/survival/space, -/obj/item/storage/box/survival/space, -/obj/item/storage/box/survival/space, -/obj/item/storage/box/syndie_kit/space, -/obj/item/storage/box/syndie_kit/space, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rl" = ( -/obj/machinery/atmospherics/binary/passive_gate{ - dir = 4; - icon_state = "on"; - unlocked = 1 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rm" = ( -/obj/machinery/atmospherics/pipe/simple/visible/universal, -/obj/machinery/atmospherics/pipe/simple/visible{ - dir = 9 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rn" = ( -/obj/machinery/atmospherics/pipe/simple/visible/scrubbers, -/obj/machinery/atmospherics/pipe/simple/visible/supply, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"ro" = ( -/obj/structure/table/steel_reinforced, -/turf/simulated/floor/carpet/oracarpet, -/area/mothership/engineering) -"rp" = ( -/obj/structure/bed/chair/office/dark{ - dir = 8 - }, -/turf/simulated/floor/carpet/oracarpet, -/area/mothership/engineering) -"rq" = ( -/obj/machinery/computer/station_alert/all{ - dir = 8; - icon_state = "computer" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rt" = ( -/obj/effect/floor_decal/techfloor/orange{ - dir = 8 - }, -/obj/effect/floor_decal/corner_techfloor_grid{ - dir = 6; - icon_state = "corner_techfloor_grid" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/purple{ - dir = 4 - }, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/telecomms1) -"ru" = ( -/obj/machinery/atmospherics/pipe/manifold4w/visible/cyan, -/obj/machinery/meter, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rv" = ( -/obj/machinery/atmospherics/binary/pump/on{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rw" = ( -/obj/machinery/atmospherics/pipe/simple/visible/universal{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/visible/red, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rx" = ( -/obj/machinery/atmospherics/pipe/simple/visible/supply{ - dir = 4; - icon_state = "intact-supply" - }, -/obj/machinery/portable_atmospherics/powered/pump/filled, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"ry" = ( -/obj/machinery/atmospherics/pipe/simple/visible/supply{ - dir = 4; - icon_state = "intact-supply" - }, -/obj/machinery/space_heater, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rz" = ( -/obj/machinery/atmospherics/pipe/simple/visible/supply{ - dir = 4; - icon_state = "intact-supply" - }, -/obj/machinery/pipedispenser/disposal/orderable, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rA" = ( -/obj/machinery/atmospherics/pipe/simple/visible/supply{ - dir = 4; - icon_state = "intact-supply" - }, -/obj/machinery/pipedispenser/orderable, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rB" = ( -/obj/machinery/atmospherics/pipe/simple/visible/supply{ - dir = 4; - icon_state = "intact-supply" - }, -/obj/machinery/portable_atmospherics/powered/scrubber, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rC" = ( -/obj/machinery/atmospherics/pipe/simple/visible/supply{ - dir = 4; - icon_state = "intact-supply" - }, -/obj/structure/closet/secure_closet/engineering_personal, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rD" = ( -/obj/machinery/atmospherics/pipe/manifold/visible/supply{ - dir = 1; - icon_state = "map-supply" - }, -/obj/structure/closet/secure_closet/engineering_personal, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rE" = ( -/obj/machinery/atmospherics/pipe/simple/visible/scrubbers, -/obj/machinery/atmospherics/pipe/simple/visible/supply{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rF" = ( -/obj/structure/table/steel_reinforced, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen/multi, -/obj/item/folder/yellow_ce, -/turf/simulated/floor/carpet/oracarpet, -/area/mothership/engineering) -"rG" = ( -/turf/simulated/floor/carpet/oracarpet, -/area/mothership/engineering) -"rH" = ( -/obj/item/modular_computer/console/preset/mercenary{ - dir = 8 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rK" = ( -/obj/machinery/atmospherics/portables_connector{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister/empty/nitrogen, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rL" = ( -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ - dir = 8; - icon_state = "intact" - }, -/obj/machinery/atmospherics/binary/pump/high_power/on{ - dir = 1 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rM" = ( -/obj/machinery/atmospherics/pipe/manifold/visible/yellow{ - dir = 1 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rN" = ( -/obj/machinery/atmospherics/omni/atmos_filter{ - tag_east = 2; - tag_north = 1; - tag_south = 3; - tag_west = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rO" = ( -/obj/machinery/atmospherics/tvalve/digital/mirrored{ - dir = 8; - name = "Filter Bypass" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rP" = ( -/obj/machinery/atmospherics/trinary/atmos_filter{ - dir = 4; - filter_type = 0; - filtered_out = list("phoron") - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rQ" = ( -/obj/machinery/atmospherics/trinary/atmos_filter{ - dir = 4; - filter_type = 3; - filtered_out = list("carbon_dioxide") - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rR" = ( -/obj/machinery/atmospherics/trinary/atmos_filter{ - dir = 4; - filter_type = 4; - filtered_out = list("sleeping_agent") - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rS" = ( -/obj/machinery/atmospherics/pipe/simple/visible/black{ - dir = 10 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rT" = ( -/obj/machinery/atmospherics/pipe/simple/visible/red{ - dir = 6 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rU" = ( -/obj/machinery/atmospherics/pipe/manifold/visible/red{ - dir = 1; - icon_state = "map" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rV" = ( -/obj/machinery/atmospherics/pipe/simple/visible/universal{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/visible/supply, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rW" = ( -/obj/machinery/atmospherics/pipe/manifold/visible/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 5; - icon_state = "intact" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rX" = ( -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rY" = ( -/obj/structure/closet/secure_closet/engineering_chief, -/obj/item/rcd, -/obj/item/rcd_ammo, -/obj/item/rcd_ammo, -/obj/item/rcd_ammo, -/obj/item/rcd_ammo, -/obj/item/rcd_ammo, -/obj/item/rcd_ammo, -/obj/item/rcd_ammo, -/obj/item/rcd_ammo, -/obj/item/rig/ce/equipped, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 10; - icon_state = "intact" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"rZ" = ( -/obj/effect/floor_decal/techfloor/orange{ - dir = 10; - icon_state = "techfloororange_edges" - }, -/obj/effect/floor_decal/corner_techfloor_grid{ - dir = 4 - }, -/obj/machinery/mech_recharger{ - icon = 'icons/turf/shuttle_alien_blue.dmi' - }, -/obj/mecha/combat/fighter/gunpod/loaded, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/telecomms2) -"sb" = ( -/obj/machinery/light{ - dir = 8; - icon_state = "tube1" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"sc" = ( -/obj/machinery/atmospherics/pipe/simple/visible/cyan{ - dir = 5 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"sd" = ( -/obj/machinery/atmospherics/trinary/mixer{ - dir = 8; - node1_concentration = 0.21; - node2_concentration = 0.79 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"se" = ( -/obj/machinery/atmospherics/pipe/manifold/visible/yellow, -/obj/machinery/meter, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"sf" = ( -/obj/machinery/atmospherics/portables_connector{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/visible/black{ - dir = 5 - }, -/obj/machinery/portable_atmospherics/canister/empty/oxygen, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"sg" = ( -/obj/machinery/atmospherics/portables_connector{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/visible/black{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister/empty/phoron, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"sh" = ( -/obj/machinery/atmospherics/portables_connector{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/visible/black{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister/empty/carbon_dioxide, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"si" = ( -/obj/machinery/atmospherics/portables_connector{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/visible/black{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister/empty/nitrous_oxide, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"sj" = ( -/obj/machinery/atmospherics/pipe/manifold/visible/black{ - dir = 4; - icon_state = "map" - }, -/obj/machinery/meter, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"sk" = ( -/obj/machinery/atmospherics/unary/freezer{ - dir = 1; - icon_state = "freezer"; - use_power = 0 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"sl" = ( -/obj/machinery/atmospherics/unary/heater{ - dir = 1; - icon_state = "heater"; - use_power = 0 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"sm" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 - }, -/obj/structure/closet/secure_closet/engineering_electrical, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"sn" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/structure/closet/secure_closet/engineering_welding, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"so" = ( -/obj/structure/closet/radiation, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"sp" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"sq" = ( -/obj/machinery/door/blast/regular{ - destroy_hits = 1000; - dir = 4; - id = "ship-dronehangar1"; - name = "Drone Hangar" - }, -/obj/machinery/door/firedoor/glass, -/obj/structure/fans/hardlight, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/telecomms2) -"sr" = ( -/obj/structure/closet/hydrant{ - pixel_x = -32 - }, -/obj/item/clothing/suit/fire/firefighter, -/obj/item/clothing/mask/gas, -/obj/item/flashlight, -/obj/item/tank/oxygen/red, -/obj/item/tank/emergency/oxygen/double, -/obj/item/extinguisher, -/obj/item/extinguisher, -/obj/item/clothing/head/hardhat/red, -/obj/item/storage/toolbox/emergency, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 6 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"ss" = ( -/obj/machinery/vending/assist{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"st" = ( -/obj/structure/particle_accelerator/end_cap{ - anchored = 1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/engineering) -"su" = ( -/obj/item/stack/material/glass{ - amount = 50 - }, -/obj/item/stack/material/glass{ - amount = 50 - }, -/obj/item/stack/material/glass{ - amount = 50 - }, -/obj/item/stack/material/glass{ - amount = 50 - }, -/obj/item/stack/material/steel{ - amount = 50; - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/stack/material/steel{ - amount = 50; - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/stack/material/steel{ - amount = 50; - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/stack/material/steel{ - amount = 50; - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/stack/material/plasteel{ - amount = 50 - }, -/obj/item/stack/material/plasteel{ - amount = 50 - }, -/obj/item/stack/material/plasteel{ - amount = 50 - }, -/obj/item/stack/material/plasteel{ - amount = 50 - }, -/obj/item/stack/material/glass/reinforced{ - amount = 50 - }, -/obj/item/stack/material/glass/reinforced{ - amount = 50 - }, -/obj/item/stack/material/glass/reinforced{ - amount = 50 - }, -/obj/item/storage/briefcase/inflatable{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/briefcase/inflatable{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/briefcase/inflatable{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/briefcase/inflatable{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stack/rods, -/obj/item/stack/rods, -/obj/item/stack/material/glass/phoronglass, -/obj/item/stack/material/glass/phoronglass, -/obj/item/stack/rods, -/obj/item/stack/rods, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/obj/structure/closet{ - name = "materials" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"sv" = ( -/obj/machinery/atmospherics/pipe/simple/visible/black, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"sw" = ( -/obj/machinery/vending/engivend{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"sx" = ( -/obj/structure/closet/hydrant{ - pixel_x = 32 - }, -/obj/item/clothing/suit/fire/firefighter, -/obj/item/clothing/mask/gas, -/obj/item/flashlight, -/obj/item/tank/oxygen/red, -/obj/item/tank/emergency/oxygen/double, -/obj/item/extinguisher, -/obj/item/extinguisher, -/obj/item/clothing/head/hardhat/red, -/obj/item/storage/toolbox/emergency, -/obj/machinery/atmospherics/pipe/manifold/hidden{ - dir = 4; - icon_state = "map" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"sy" = ( -/obj/machinery/vending/engineering{ - dir = 8 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"sz" = ( -/obj/structure/particle_accelerator/fuel_chamber{ - anchored = 1 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/engineering) -"sA" = ( -/obj/structure/bed/pod, -/obj/item/bedsheet/ce, -/obj/structure/curtain/open/bed, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"sB" = ( -/obj/machinery/atmospherics/binary/pump/on{ - dir = 2; - target_pressure = 200 - }, -/obj/machinery/light, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"sC" = ( -/obj/machinery/vending/tool{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"sD" = ( -/obj/machinery/atmospherics/pipe/simple/hidden, -/obj/machinery/door/airlock/external{ - frequency = 1380; - icon_state = "door_locked"; - id_tag = "ws_dock_5_inner"; - locked = 1; - req_one_access = list(101) - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/engineering) -"sE" = ( -/obj/structure/particle_accelerator/power_box{ - anchored = 1 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/engineering) -"sF" = ( -/obj/machinery/atmospherics/pipe/simple/visible/black, -/turf/simulated/wall/rpshull, -/area/mothership/engineering) -"sG" = ( -/obj/machinery/atmospherics/pipe/simple/hidden, -/obj/machinery/door/airlock/external{ - frequency = 1380; - icon_state = "door_locked"; - id_tag = "ws_dock_4_inner"; - locked = 1; - req_one_access = list(101) - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/engineering) -"sH" = ( -/obj/machinery/atmospherics/unary/vent_pump/high_volume{ - dir = 1; - frequency = 1380; - id_tag = "ws_dock_5_pump" - }, -/obj/machinery/light/small{ - dir = 4; - pixel_y = 0 - }, -/obj/machinery/airlock_sensor{ - frequency = 1380; - id_tag = "ws_dock_5_sensor"; - pixel_x = 25; - pixel_y = 0 - }, -/obj/machinery/embedded_controller/radio/airlock/docking_port{ - frequency = 1380; - id_tag = "ws_dock_5"; - pixel_x = -32; - req_one_access = list(101); - tag_airpump = "ws_dock_5_pump"; - tag_chamber_sensor = "ws_dock_5_sensor"; - tag_exterior_door = "ws_dock_5_outer"; - tag_interior_door = "ws_dock_5_inner" - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/engineering) -"sI" = ( -/obj/structure/shuttle/engine/heater, -/obj/structure/window/phoronreinforced{ - dir = 1 - }, -/turf/simulated/floor/reinforced/airless, -/area/mothership/engineering) -"sK" = ( -/obj/machinery/atmospherics/unary/vent_pump/high_volume{ - dir = 1; - frequency = 1380; - id_tag = "ws_dock_4_pump" - }, -/obj/machinery/light/small{ - dir = 8; - pixel_x = 0 - }, -/obj/machinery/airlock_sensor{ - frequency = 1380; - id_tag = "ws_dock_4_sensor"; - pixel_x = -25; - pixel_y = 0 - }, -/obj/machinery/embedded_controller/radio/airlock/docking_port{ - frequency = 1380; - id_tag = "ws_dock_4"; - pixel_x = 32; - req_one_access = list(101); - tag_airpump = "ws_dock_4_pump"; - tag_chamber_sensor = "ws_dock_4_sensor"; - tag_exterior_door = "ws_dock_4_outer"; - tag_interior_door = "ws_dock_4_inner" - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/engineering) -"sL" = ( -/obj/machinery/door/airlock/external{ - frequency = 1380; - icon_state = "door_locked"; - id_tag = "ws_dock_5_outer"; - locked = 1; - req_one_access = list(101) - }, -/obj/machinery/access_button{ - command = "cycle_exterior"; - frequency = 1380; - master_tag = "ws_dock_5"; - name = "exterior access button"; - pixel_x = -26; - pixel_y = -5; - req_one_access = list(101) - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/engineering) -"sN" = ( -/obj/effect/shuttle_landmark{ - base_area = /area/space; - base_turf = /turf/space; - docking_controller = "ws_dock_6"; - landmark_tag = "ws_port_dock_2"; - name = "Cruiser Dock P2" - }, -/turf/space, -/area/space) -"sO" = ( -/obj/effect/shuttle_landmark{ - base_area = /area/space; - base_turf = /turf/space; - docking_controller = "ws_dock_3"; - landmark_tag = "ws_starboard_dock_2"; - name = "Cruiser Dock S2" - }, -/turf/space, -/area/space) -"sP" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 - }, -/turf/simulated/floor/reinforced/airless{ - name = "outer hull" - }, -/area/mothership/bridge) -"sQ" = ( -/obj/effect/shuttle_landmark{ - base_area = /area/space; - base_turf = /turf/space; - flags = 2; - landmark_tag = "cruiser_aft"; - name = "Vessel aft" - }, -/turf/space, -/area/space) -"tb" = ( -/obj/effect/floor_decal/techfloor/orange{ - dir = 5; - icon_state = "techfloororange_edges" - }, -/obj/effect/floor_decal/corner_techfloor_grid{ - dir = 8 - }, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/telecomms2) -"tl" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 26 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"ts" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"tA" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"tG" = ( -/turf/simulated/wall/rpshull, -/area/mothership/breakroom) -"tK" = ( -/obj/item/modular_computer/console/preset/mercenary{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/bridge) -"tW" = ( -/obj/mecha/combat/fighter/gunpod/loaded, -/obj/machinery/atmospherics/portables_connector{ - dir = 8 - }, -/obj/effect/floor_decal/industrial/outline, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/telecomms2) -"tZ" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 5; - icon_state = "intact" - }, -/turf/simulated/floor/wood, -/area/mothership/breakroom) -"uh" = ( -/obj/machinery/power/pointdefense{ - id_tag = "warship_pd" - }, -/turf/simulated/floor/reinforced/airless{ - name = "outer hull" - }, -/area/mothership/bridge) -"uI" = ( -/obj/structure/bed/chair/bay/shuttle{ - dir = 1 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/bridge) -"uN" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"uS" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - frequency = 1380; - icon_state = "door_locked"; - id_tag = "ws_dock_2_inner"; - locked = 1; - req_one_access = list(101) - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/eva) -"vb" = ( -/turf/simulated/floor/reinforced/airless{ - name = "outer hull" - }, -/area/mothership/telecomms1) -"vi" = ( -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/reinforced, -/area/mothership/telecomms2) -"vD" = ( -/obj/mecha/combat/fighter/gunpod/loaded, -/obj/machinery/atmospherics/portables_connector{ - dir = 8 - }, -/obj/effect/floor_decal/industrial/outline, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/telecomms1) -"wm" = ( -/obj/effect/floor_decal/techfloor/orange{ - dir = 6; - icon_state = "techfloororange_edges" - }, -/obj/effect/floor_decal/corner_techfloor_grid{ - dir = 1 - }, -/obj/machinery/mech_recharger{ - icon = 'icons/turf/shuttle_alien_blue.dmi' - }, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/telecomms2) -"wA" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"wO" = ( -/obj/machinery/atmospherics/pipe/manifold4w/hidden, -/turf/simulated/floor/reinforced, -/area/mothership/telecomms1) -"wT" = ( -/obj/machinery/computer/ship/sensors, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/bridge) -"xm" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"xn" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"xE" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/obj/machinery/firealarm{ - dir = 2; - layer = 3.3; - pixel_x = 4; - pixel_y = 26 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"xS" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden, -/obj/machinery/alarm{ - alarm_id = "anomaly_testing"; - breach_detection = 0; - dir = 8; - frequency = 1439; - pixel_x = 22; - pixel_y = 0; - report_danger_level = 0 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"yi" = ( -/obj/machinery/atmospherics/pipe/simple/hidden, -/obj/machinery/door/airlock/external{ - frequency = 1380; - icon_state = "door_locked"; - id_tag = "ws_dock_1_inner"; - locked = 1; - req_one_access = list(101) - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/breakroom) -"yr" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 8 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"yE" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/vault{ - req_one_access = list(101) - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/vault) -"yG" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden, -/obj/machinery/alarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"yW" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"zd" = ( -/obj/machinery/computer/timeclock{ - pixel_y = 28 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"zv" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"zE" = ( -/obj/machinery/atmospherics/pipe/simple/hidden, -/obj/machinery/access_button{ - command = "cycle_interior"; - frequency = 1380; - master_tag = "ws_dock_4"; - name = "interior access button"; - pixel_x = -28; - pixel_y = -26; - req_one_access = list(101) - }, -/obj/effect/floor_decal/industrial/warning, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"Am" = ( -/obj/machinery/atmospherics/pipe/simple/hidden, -/obj/machinery/access_button{ - command = "cycle_interior"; - frequency = 1380; - master_tag = "ws_dock_5"; - name = "interior access button"; - pixel_x = 28; - pixel_y = -26; - req_one_access = list(101) - }, -/obj/effect/floor_decal/industrial/warning, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/engineering) -"AL" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden, -/obj/machinery/button/remote/blast_door{ - id = "ship-dronehangar2"; - name = "Drone Hangar Controls"; - pixel_x = 0; - pixel_y = -28; - req_one_access = list(101) - }, -/turf/simulated/floor/reinforced, -/area/mothership/telecomms1) -"AP" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"Bd" = ( -/obj/machinery/atmospherics/pipe/simple/hidden, -/obj/machinery/meter, -/turf/simulated/floor/reinforced, -/area/mothership/telecomms2) -"BQ" = ( -/obj/effect/floor_decal/techfloor/orange{ - dir = 8 - }, -/obj/effect/floor_decal/corner_techfloor_grid{ - dir = 6; - icon_state = "corner_techfloor_grid" - }, -/obj/machinery/mech_recharger{ - icon = 'icons/turf/shuttle_alien_blue.dmi' - }, -/obj/mecha/combat/fighter/gunpod/loaded, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/telecomms1) -"Ch" = ( -/obj/effect/floor_decal/techfloor/orange{ - dir = 6; - icon_state = "techfloororange_edges" - }, -/obj/effect/floor_decal/corner_techfloor_grid{ - dir = 1 - }, -/obj/machinery/mech_recharger{ - icon = 'icons/turf/shuttle_alien_blue.dmi' - }, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/telecomms1) -"Ct" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor/glass, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/eva) -"Df" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/floor_decal/industrial/warning{ - dir = 8 - }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/vault) -"Do" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/turf/simulated/floor/wood, -/area/mothership/breakroom) -"DG" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 8; - icon_state = "warning" - }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"DX" = ( -/obj/effect/floor_decal/techfloor/orange{ - dir = 5; - icon_state = "techfloororange_edges" - }, -/obj/effect/floor_decal/corner_techfloor_grid{ - dir = 8 - }, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/telecomms1) -"Ep" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/obj/machinery/computer/guestpass{ - pixel_y = 28 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"Ex" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 1; - icon_state = "warning" - }, -/turf/simulated/floor/reinforced/airless{ - name = "outer hull" - }, -/area/mothership/bridge) -"Ez" = ( -/obj/effect/floor_decal/techfloor/orange{ - dir = 4 - }, -/obj/effect/floor_decal/corner_techfloor_grid{ - dir = 9 - }, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/telecomms2) -"EG" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 9; - icon_state = "intact" - }, -/turf/simulated/floor/wood, -/area/mothership/breakroom) -"EK" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"EP" = ( -/obj/effect/overmap/visitable/ship/cruiser, -/turf/space, -/area/space) -"EQ" = ( -/obj/effect/floor_decal/industrial/outline, -/obj/mecha/combat/fighter/gunpod/loaded, -/obj/machinery/atmospherics/portables_connector{ - dir = 8 - }, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/telecomms1) -"EV" = ( -/obj/effect/floor_decal/techfloor/orange{ - dir = 8 - }, -/obj/effect/floor_decal/corner_techfloor_grid{ - dir = 6; - icon_state = "corner_techfloor_grid" - }, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/telecomms2) -"FC" = ( -/obj/machinery/ion_engine, -/turf/space, -/area/mothership/engineering) -"FQ" = ( -/obj/machinery/computer/timeclock{ - pixel_y = -28 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"FW" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/turf/simulated/floor/carpet/blue, -/area/mothership/breakroom) -"FY" = ( -/obj/machinery/door/airlock/multi_tile/metal, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/eva) -"Ge" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden{ - dir = 1; - icon_state = "map" - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/telecomms1) -"Gi" = ( -/obj/machinery/atmospherics/pipe/simple/hidden, -/obj/machinery/access_button{ - command = "cycle_interior"; - frequency = 1380; - master_tag = "ws_dock_8"; - name = "interior access button"; - pixel_x = 28; - pixel_y = 26; - req_one_access = list(101) - }, -/obj/effect/floor_decal/industrial/warning{ - dir = 1; - icon_state = "warning" - }, -/turf/simulated/floor/wood, -/area/mothership/breakroom) -"GT" = ( -/obj/effect/floor_decal/techfloor/orange{ - dir = 8 - }, -/obj/effect/floor_decal/corner_techfloor_grid{ - dir = 6; - icon_state = "corner_techfloor_grid" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/purple{ - dir = 4 - }, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/telecomms2) -"Hl" = ( -/obj/effect/floor_decal/industrial/warning/corner{ - dir = 8 - }, -/obj/effect/floor_decal/industrial/warning{ - dir = 4; - icon_state = "warning" - }, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/teleporter) -"Hs" = ( -/obj/effect/floor_decal/techfloor/orange{ - dir = 4 - }, -/obj/effect/floor_decal/corner_techfloor_grid{ - dir = 9 - }, -/obj/machinery/mech_recharger{ - icon = 'icons/turf/shuttle_alien_blue.dmi' - }, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/telecomms2) -"HG" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"JJ" = ( -/obj/machinery/alarm{ - alarm_id = "pen_nine"; - breach_detection = 0; - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"Kc" = ( -/obj/structure/table/steel_reinforced, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"Kd" = ( -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/reinforced, -/area/mothership/telecomms1) -"Kr" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 9; - icon_state = "intact" - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"KA" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden, -/obj/machinery/button/remote/blast_door{ - id = "ship-dronehangar1"; - name = "Drone Hangar Controls"; - pixel_x = 0; - pixel_y = -28; - req_one_access = list(101) - }, -/turf/simulated/floor/reinforced, -/area/mothership/telecomms2) -"KO" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/obj/machinery/alarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"MI" = ( -/obj/effect/floor_decal/industrial/outline, -/obj/mecha/combat/fighter/gunpod/loaded, -/obj/machinery/atmospherics/portables_connector{ - dir = 8 - }, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/telecomms2) -"On" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"Ox" = ( -/obj/effect/floor_decal/techfloor/orange{ - dir = 9; - icon_state = "techfloororange_edges" - }, -/obj/effect/floor_decal/corner_techfloor_grid, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/telecomms1) -"OC" = ( -/obj/machinery/atmospherics/portables_connector{ - dir = 4 - }, -/obj/effect/floor_decal/industrial/outline, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/telecomms2) -"Pi" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/unary/vent_pump/on, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"PC" = ( -/obj/machinery/atmospherics/pipe/simple/hidden, -/obj/machinery/access_button{ - command = "cycle_interior"; - frequency = 1380; - master_tag = "ws_dock_1"; - name = "interior access button"; - pixel_x = -28; - pixel_y = 26; - req_one_access = list(101) - }, -/obj/effect/floor_decal/industrial/warning{ - dir = 1; - icon_state = "warning" - }, -/turf/simulated/floor/wood, -/area/mothership/breakroom) -"PT" = ( -/obj/machinery/door/airlock/external{ - frequency = 1380; - icon_state = "door_locked"; - id_tag = "ws_dock_4_outer"; - locked = 1; - req_one_access = list(101) - }, -/obj/machinery/access_button{ - command = "cycle_exterior"; - frequency = 1380; - master_tag = "ws_dock_4"; - name = "exterior access button"; - pixel_x = 26; - pixel_y = -5; - req_one_access = list(101) - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/engineering) -"QF" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/keycard_auth{ - pixel_x = 28 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/bridge) -"QH" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/obj/machinery/firealarm{ - dir = 2; - layer = 3.3; - pixel_x = 4; - pixel_y = 26 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"QI" = ( -/obj/effect/shuttle_landmark{ - base_area = /area/space; - base_turf = /turf/space; - docking_controller = "ws_dock_2"; - landmark_tag = "ws_starboard_dock_1"; - name = "Cruiser Dock S1" - }, -/turf/space, -/area/space) -"QU" = ( -/obj/effect/shuttle_landmark{ - base_area = /area/space; - base_turf = /turf/space; - docking_controller = "ws_dock_7"; - landmark_tag = "ws_port_dock_1"; - name = "Cruiser Dock P1" - }, -/turf/space, -/area/space) -"RE" = ( -/obj/effect/floor_decal/techfloor/orange{ - dir = 4 - }, -/obj/effect/floor_decal/corner_techfloor_grid{ - dir = 9 - }, -/obj/machinery/mech_recharger{ - icon = 'icons/turf/shuttle_alien_blue.dmi' - }, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/telecomms1) -"RP" = ( -/obj/machinery/light{ - dir = 8; - icon_state = "tube1" - }, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"RS" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 8 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"Sa" = ( -/obj/machinery/telecomms/relay/preset/centcom, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/bridge) -"Sj" = ( -/obj/machinery/atmospherics/pipe/manifold4w/hidden, -/turf/simulated/floor/reinforced, -/area/mothership/telecomms2) -"Su" = ( -/obj/machinery/shipsensors{ - dir = 1; - health = 1000; - heat_reduction = 4.5; - max_health = 1000; - name = "military sensors suite" - }, -/turf/simulated/floor/reinforced/airless{ - name = "outer hull" - }, -/area/mothership/bridge) -"Sx" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/obj/machinery/alarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"Sz" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden{ - dir = 1; - icon_state = "map" - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/telecomms2) -"SE" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden{ - dir = 8; - icon_state = "map" - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"SM" = ( -/obj/machinery/door/airlock/external{ - frequency = 1380; - icon_state = "door_locked"; - id_tag = "ws_dock_1_outer"; - locked = 1; - req_one_access = list(101) - }, -/obj/machinery/access_button{ - command = "cycle_exterior"; - frequency = 1380; - master_tag = "ws_dock_1"; - name = "exterior access button"; - pixel_x = 26; - pixel_y = 5; - req_one_access = list(101) - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/breakroom) -"SV" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"Td" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8 - }, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"Tg" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"Tr" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/vault{ - req_one_access = list(101) - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/vault) -"TE" = ( -/turf/simulated/wall/rpshull, -/area/mothership/processing) -"TK" = ( -/obj/effect/floor_decal/techfloor/orange{ - dir = 9; - icon_state = "techfloororange_edges" - }, -/obj/effect/floor_decal/corner_techfloor_grid, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/telecomms2) -"Ux" = ( -/obj/machinery/light{ - dir = 8; - icon_state = "tube1" - }, -/obj/machinery/keycard_auth{ - pixel_x = -28 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/mothership/bridge) -"UD" = ( -/obj/machinery/atmospherics/pipe/simple/hidden, -/obj/machinery/meter, -/turf/simulated/floor/reinforced, -/area/mothership/telecomms1) -"Vb" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/door/airlock/engineering, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/vault) -"Wi" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"WE" = ( -/obj/machinery/door/blast/regular{ - destroy_hits = 1000; - dir = 4; - id = "ship-dronehangar2"; - name = "Drone Hangar" - }, -/obj/machinery/door/firedoor/glass, -/obj/structure/fans/hardlight, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/telecomms1) -"WN" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/full, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/machinery/door/blast/regular{ - density = 0; - destroy_hits = 1000; - dir = 4; - icon_state = "pdoor0"; - id = "ship-lounge"; - name = "Shuttle Blast Doors"; - opacity = 0 - }, -/obj/machinery/door/firedoor/glass, -/turf/simulated/floor/plating, -/area/mothership/breakroom) -"Xh" = ( -/obj/item/modular_computer/console/preset/mercenary{ - dir = 8 - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/bridge) -"Xy" = ( -/obj/machinery/status_display{ - pixel_y = 29 - }, -/obj/machinery/computer/ship/engines, -/turf/simulated/floor/tiled/steel_ridged, -/area/mothership/bridge) -"XQ" = ( -/obj/effect/floor_decal/techfloor/orange{ - dir = 4 - }, -/obj/effect/floor_decal/corner_techfloor_grid{ - dir = 9 - }, -/turf/simulated/floor/tiled/techfloor, -/area/mothership/telecomms1) -"Yt" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"Yv" = ( -/obj/structure/bed/chair/comfy/black{ - dir = 8 - }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"YP" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"ZL" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/obj/machinery/firealarm{ - dir = 2; - layer = 3.3; - pixel_x = 4; - pixel_y = 26 - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) -"ZS" = ( -/obj/machinery/door/airlock/external{ - frequency = 1380; - icon_state = "door_locked"; - id_tag = "ws_dock_2_outer"; - locked = 1; - req_one_access = list(101) - }, -/obj/machinery/access_button{ - command = "cycle_exterior"; - frequency = 1380; - master_tag = "ws_dock_2"; - name = "exterior access button"; - pixel_x = 5; - pixel_y = 26; - req_one_access = list(101) - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/mothership/eva) -"ZZ" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 10; - icon_state = "intact" - }, -/turf/simulated/floor/tiled/techmaint, -/area/mothership/hallway) - -(1,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(2,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -EP -aa -"} -(3,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(4,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(5,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -"} -(7,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -"} -(9,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(10,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -aa -"} -(12,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -aa -"} -(14,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -"} -(16,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -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 -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 -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 -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 -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 -aa -"} -(18,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -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 -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 -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 -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 -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 -aa -"} -(20,1,1) = {" -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 -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 -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jF -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(22,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -aa -"} -(24,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -aa -"} -(26,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -aa -aa -aa -"} -(28,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -"} -(30,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(31,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(32,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(33,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(34,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(35,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(36,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(37,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(38,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(39,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(40,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(41,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(42,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(43,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(44,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(45,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -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 -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 -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 -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 -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 -aa -aa -aa -"} -(47,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -aa -aa -aa -"} -(49,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(51,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -sN -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(53,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(54,1,1) = {" -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 -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 -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 -pe -pr -pe -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(55,1,1) = {" -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bc -cq -cq -uh -cq -cq -bc -cq -cq -uh -cq -cq -bc -cq -cq -uh -cq -cq -bc -cq -cq -uh -cq -cq -bc -cq -cq -uh -cq -cq -bc -mi -om -om -om -pe -ps -pe -bc -vb -vb -uh -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(56,1,1) = {" -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -dJ -dJ -dJ -dJ -dJ -dJ -dJ -dJ -dJ -gG -gU -gU -gU -gU -gG -gG -iV -iV -iV -iV -kl -kl -kO -kO -kO -kl -kl -mi -mi -mi -mi -mi -mi -mi -on -oB -oL -pe -pt -pe -pe -pe -pe -pe -pe -pe -bc -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(57,1,1) = {" -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -QU -aa -aa -aa -aa -dJ -dW -eo -dJ -eV -fo -fJ -gb -gq -gH -gV -ho -hE -hX -iq -gG -iW -jp -jG -jX -kl -kv -kP -lh -lt -lJ -kl -mj -mz -mO -nf -mC -nN -mi -oo -oC -oM -pe -pu -pW -Ox -BQ -rj -rt -qw -WE -Ex -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(58,1,1) = {" -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -dJ -dX -ep -dJ -eW -fp -fK -gc -dJ -gI -gW -hp -hp -hY -ir -gG -iX -jq -jH -jY -kl -kw -kQ -kw -lu -lK -kl -mk -mA -mP -ng -nA -nO -mi -oo -oC -oM -pe -pv -pX -DX -qR -XQ -XQ -qR -WE -Ex -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 -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 -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 -cr -cH -cr -aa -aa -aa -dK -dY -eq -eJ -eX -fq -fL -gd -gs -gJ -gX -hq -hq -hZ -hq -iG -iY -jr -jI -iY -km -kx -kR -kx -lv -kx -lY -ml -mB -ml -ml -nB -nP -oe -op -oD -oN -pe -qt -Ge -UD -wO -Kd -Kd -AL -pe -uh -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(60,1,1) = {" -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 -aa -aa -aa -aa -aa -aa -bc -Su -bd -bC -bC -bd -uh -cr -cI -cr -bc -df -df -dJ -dJ -dJ -eK -eK -eK -eK -eK -eK -gK -gY -hr -hp -ia -hp -gG -iZ -js -jJ -jZ -kl -ky -kw -li -lw -lL -kl -mm -mC -mQ -nh -nC -nQ -of -oq -oE -oO -pe -px -pX -Ox -EQ -rj -rj -vD -WE -Ex -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(61,1,1) = {" -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 -aa -uh -tG -au -au -au -tG -bd -bd -bD -bR -bi -cr -cr -cJ -cr -cr -df -dt -dL -dZ -er -eK -eY -fr -fM -ge -eK -gL -gY -hs -hp -ib -hp -gG -ja -jt -jJ -ka -kl -kz -kw -lj -lw -lM -kl -mn -mC -mR -ni -nC -nQ -og -or -oE -oP -pe -py -pY -DX -RE -XQ -XQ -Ch -WE -Ex -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(62,1,1) = {" -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 -tG -tG -tG -ao -ao -ao -aL -bd -bl -bE -bS -cd -cr -cw -cK -cU -cr -dg -du -dL -ea -es -eK -eZ -fs -fN -gf -gt -gM -gY -hp -hp -hp -is -gG -jb -ju -jJ -kb -kl -kA -kw -lk -lw -lN -kl -mo -mC -mC -mC -nC -nR -mi -os -oE -oQ -pe -pz -pZ -iw -iw -iw -iw -iw -iw -iw -iw -iw -iw -iw -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 -aa -aa -aa -aa -aa -aa -aa -aa -"} -(63,1,1) = {" -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 -ad -ai -an -Gi -tZ -ao -aM -bd -bm -bF -bT -ce -cr -cx -cL -cV -cr -dh -dv -dL -eb -et -eK -fa -ft -fO -gg -gu -gN -gZ -ht -hF -ic -it -iH -jc -jv -jK -jc -kn -kB -kS -ll -lx -lO -lZ -mp -mC -mS -nj -nC -nS -mi -ot -oF -oR -pe -pA -qv -iw -qT -qT -qT -rK -sb -sr -Am -sD -sH -sL -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 -aa -aa -aa -aa -aa -aa -aa -aa -"} -(64,1,1) = {" -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 -tG -tG -tG -av -Do -ao -aN -bd -bn -bG -bT -bo -cr -cy -cM -cW -cr -di -df -dL -dL -eu -eK -eK -fu -fP -eK -gv -gO -ha -gG -hG -id -iu -gG -jd -jw -jL -kc -kl -kC -kT -kl -ly -lP -ma -mi -mD -mT -mi -nD -mi -mi -ou -oG -oS -pe -pB -qb -iw -qU -rk -ru -rL -sc -ss -sy -iw -iw -iw -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 -aa -aa -aa -aa -aa -aa -aa -aa -"} -(65,1,1) = {" -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 -bc -tG -tG -ao -ao -Do -ao -aO -bd -bo -bG -bT -bo -cr -cr -cN -cr -cr -dj -dw -dN -AP -dj -tA -fb -dz -dz -dz -gw -gP -hb -gG -gG -gG -gG -gG -iv -jx -iv -kd -iv -kl -kl -kl -dj -dz -gw -dz -dz -dz -fb -lR -RP -AP -DG -ov -oT -dz -EK -qc -qB -qV -rl -rv -rM -sd -st -sz -sE -sI -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(66,1,1) = {" -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 -cq -tG -tG -ap -ao -Do -ao -aP -bd -bp -bG -bT -bo -cr -cz -cO -cX -cr -dk -dx -uN -xm -ev -eM -fc -Wi -fQ -Wi -dS -gQ -hc -hu -hH -ie -iv -iI -jf -jy -jM -ke -iv -kD -kU -kG -lz -dx -dS -Wi -Wi -mU -nl -nE -xS -xm -uN -oH -oU -fc -pC -qd -qC -qW -rm -rw -rN -se -st -sz -sE -sI -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(67,1,1) = {" -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 -uh -WN -ac -ao -aw -Do -aG -aQ -bd -bo -bG -bT -bo -cr -cA -cO -cY -cr -dl -dy -dO -dO -dO -dO -fd -fd -fR -fd -fd -dz -EK -hu -hI -if -iv -iJ -jg -jg -jg -kf -iv -kE -kV -kG -EK -dz -mb -mb -mb -mb -nm -nF -mb -mb -mb -dl -dy -pk -pk -qe -pk -pk -pk -rx -rO -sf -st -sz -sE -sI -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(68,1,1) = {" -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 -tG -tG -tG -tG -aq -ax -FW -aH -aR -bd -bq -bH -bU -bd -cr -cB -cO -cZ -cr -Ep -dz -dO -ec -ew -eN -fd -fv -fS -gh -fd -On -zv -hu -hJ -ig -iv -iK -iK -iK -iK -iK -iv -kF -kW -kG -YP -ts -mb -mq -Ux -mV -nn -mG -mE -oh -mb -EK -oV -pk -pE -qf -qD -qX -pk -ry -rP -sg -st -sz -sE -sI -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(69,1,1) = {" -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 -WN -ac -ah -aj -ar -ay -aD -aI -aS -bf -br -bI -bT -cf -cr -cC -cO -da -de -EK -dA -dO -ed -ex -eO -fd -fd -Tr -fd -fd -Pi -KO -hu -hK -hu -iv -iv -iv -iv -iv -iv -iv -kG -kX -kG -xE -Yt -mb -mr -uI -mW -no -no -no -oi -mb -EK -oW -pk -pF -qg -qE -qY -pk -rz -rQ -sh -st -sz -sE -sI -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(70,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -af -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -WN -ac -ah -ak -ar -az -aE -az -aT -bd -bs -bJ -bV -cg -FY -cD -cP -db -FY -dm -dB -dQ -ee -ey -eP -fd -fx -Df -gj -fd -zd -hd -dS -hL -Wi -Wi -Wi -Td -fe -Sx -Wi -Wi -Wi -kY -dS -he -dD -mb -ms -mG -uI -np -nG -nT -Xh -mb -Ep -oX -pk -pG -qh -qF -qZ -pk -rA -rR -si -su -sA -iw -cq -cq -bc -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -sQ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(71,1,1) = {" -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 -WN -ac -ah -ak -ar -az -az -az -aU -bd -bt -bK -bW -ch -Ct -cE -cQ -dc -Ct -dn -dC -dR -ef -ez -eQ -fd -fy -fT -gk -fd -dz -EK -dy -dj -gy -ff -dz -RS -jz -Tg -dz -ff -gy -dj -dy -EK -FQ -mb -wT -mG -uI -nq -nH -nU -tK -mb -EK -oY -pk -pH -qh -qF -ra -pk -rB -rS -sj -sv -sB -sF -sP -cq -bc -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 -aa -aa -aa -aa -aa -aa -aa -"} -(72,1,1) = {" -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 -WN -ac -ah -al -ar -aA -aF -aJ -aV -bg -bu -bL -bX -ci -cr -cF -cO -dd -cr -EK -dA -dO -eg -Hl -eR -fd -fd -yE -fd -fd -gR -EK -hw -hM -hw -hy -hy -hy -hy -hy -hy -hy -kH -kZ -kH -EK -dA -mb -Sa -uI -mX -nr -nr -nr -oj -mb -ZL -oZ -pk -pI -qi -qG -rb -pk -rB -rT -sk -st -sz -sE -sI -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(73,1,1) = {" -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 -tG -tG -tG -tG -aq -ax -FW -aH -aW -bh -bv -bM -bY -cj -cr -cG -cO -cZ -cr -QH -JJ -dO -ex -eA -eh -fd -fA -fU -gh -fd -dz -EK -hw -hN -ih -hy -iL -hQ -hy -jN -hQ -hy -kI -la -kH -EK -dz -mb -Xy -QF -mY -ns -mG -mH -ok -mb -YP -Kc -pk -pJ -qj -qH -rc -pk -rC -rU -sl -st -sz -sE -sI -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(74,1,1) = {" -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 -uh -WN -ac -ao -aB -Do -aK -aX -bi -bw -bN -bZ -ck -cr -cA -cO -cY -cr -SV -wA -dO -dO -dO -dO -fd -fd -Vb -fd -fd -dy -dl -hw -hO -ii -hy -iM -jh -hy -jO -jh -hy -kJ -lb -kH -dl -dy -mb -mb -mb -mb -nt -nF -mb -mb -mb -SV -Yv -pk -pk -qk -pk -pk -pk -rD -rV -sm -st -sz -sE -sI -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(75,1,1) = {" -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 -cq -tG -tG -as -ao -Do -ao -aY -bi -bx -bN -ca -cl -cr -cz -cO -cX -cr -ZZ -dx -dS -Wi -eB -Wi -fe -fB -fV -HG -yW -dx -Kr -hw -hP -ij -hy -iN -hQ -hy -jP -hQ -hy -kK -lc -kH -lA -lQ -yW -HG -yG -Wi -nu -Wi -nV -Wi -dS -oI -pa -fe -SE -ql -qI -rd -rn -rE -rW -sn -st -sz -sE -sI -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(76,1,1) = {" -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 -bc -tG -tG -at -ao -Do -ao -ao -bj -by -bN -ca -cm -cr -cr -cN -cr -cr -dj -dE -dT -dz -dj -dz -ff -tl -dz -Tg -yr -dz -hf -hy -hy -hy -iw -iO -ji -hy -jQ -kg -iw -hy -hy -hy -gP -lR -yr -Tg -tl -dz -ff -gy -dj -dz -dy -dz -dj -dz -EK -qc -iw -re -ro -rF -xn -so -st -sz -sE -sI -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(77,1,1) = {" -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 -tG -tG -tG -av -Do -ao -aZ -bi -bz -bN -ca -cn -cr -cy -cR -cW -cr -do -dr -dU -dU -eC -dV -dV -dV -dV -dV -dV -gT -hg -hy -hQ -hQ -ix -iP -hQ -jA -iP -hQ -hQ -hQ -hQ -lo -lB -lS -lq -lo -lq -lq -lq -lo -nW -ol -ol -ol -pb -qs -pK -qm -iw -rf -rp -rG -xn -rX -sw -sC -iw -iw -iw -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 -aa -aa -aa -aa -aa -aa -aa -aa -"} -(78,1,1) = {" -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 -SM -am -yi -PC -EG -ao -ba -bi -bA -bN -ca -co -cr -cx -cL -cV -cr -dp -dG -dU -ei -eD -dV -fg -fC -fW -gn -gz -fY -hh -hA -hR -ik -iy -iQ -jj -jB -jR -hR -ko -ik -hR -lp -lC -lT -md -mu -mI -mZ -nv -nI -nX -lq -ox -oJ -pc -qs -pL -qn -iw -rg -rq -rH -rY -sp -sx -zE -sG -sK -PT -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 -aa -aa -aa -aa -aa -aa -aa -aa -"} -(79,1,1) = {" -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 -tG -tG -tG -ao -ao -ao -bb -bi -bB -bO -cb -cp -cr -cw -cS -cU -cr -dq -dH -dU -ej -eE -dV -fh -fD -fX -gn -gB -fY -hi -TE -TE -il -iz -TE -TE -jC -jC -jC -kp -jC -jC -lq -lD -lU -lG -lG -lG -lG -lG -lG -nY -lq -oy -oK -pd -qs -pM -qo -iw -iw -iw -iw -iw -iw -iw -iw -iw -iw -iw -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -uh -tG -aC -aC -aC -tG -bi -bi -bP -cc -bi -cr -cr -uS -cr -cr -dr -dI -dU -ek -eF -dV -fi -fD -fY -fY -gB -fY -hj -TE -hS -im -iA -iR -jk -jC -jS -kh -kq -kL -ld -lq -lE -lV -me -mv -mJ -na -nw -nJ -nZ -lq -oz -oz -oz -qs -pN -qp -TK -rh -EV -GT -rZ -sq -Ex -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(81,1,1) = {" -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 -aa -aa -aa -aa -aa -aa -bc -cq -bi -bQ -bQ -bi -uh -cr -cT -cr -bc -dr -dr -dV -dV -dV -dV -fj -fE -fZ -fY -gC -fY -hk -TE -hT -in -iB -in -jl -jC -jT -ki -kr -ki -le -lq -lF -lV -mf -mw -mK -nb -nx -nK -oa -lq -oz -oz -oz -qs -pO -qq -tb -OC -Ez -Ez -OC -sq -Ex -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(82,1,1) = {" -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -cr -ZS -cr -aa -aa -aa -dV -el -eG -dV -fk -fF -fZ -fY -gD -fY -hl -hD -hU -io -iC -iS -io -jE -jU -kj -ks -kM -ki -ls -lG -lW -mg -mx -mL -nc -ny -nL -ob -lq -oz -oz -oz -qs -pP -Sz -Bd -Sj -vi -vi -KA -qs -uh -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(83,1,1) = {" -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -dV -em -eH -eU -fl -fG -fl -fl -gE -fl -hm -TE -hV -in -iD -iT -jm -jC -jV -ki -kt -kN -lf -lq -lH -lG -lG -lG -lG -lG -lG -lG -oc -lq -oz -oz -oz -qs -pQ -qq -TK -MI -EV -EV -tW -sq -Ex -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(84,1,1) = {" -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -QI -aa -aa -aa -aa -dV -en -eI -dV -fm -fH -ga -go -gF -fY -hn -TE -hW -ip -iE -iU -jn -jC -jW -ki -ku -ki -lg -lq -lI -lX -mh -my -mM -nd -nz -nM -od -lq -oz -oz -oz -qs -pR -qr -tb -Hs -Ez -Ez -wm -sq -Ex -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(85,1,1) = {" -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -dV -dV -dV -dV -dV -dV -dV -gp -gp -gp -dV -TE -TE -TE -TE -TE -TE -jC -jC -kk -kk -kk -jC -lq -lq -lq -lq -lq -lq -lq -lq -lq -lq -lq -oz -oz -oz -qs -pS -qs -qs -qs -qs -qs -qs -qs -bc -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(86,1,1) = {" -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bc -cq -cq -uh -cq -cq -bc -cq -cq -uh -cq -cq -bc -cq -cq -uh -cq -cq -bc -cq -cq -uh -cq -cq -bc -cq -cq -uh -cq -cq -bc -lq -oA -oA -oA -qs -pT -qs -bc -cq -cq -uh -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(87,1,1) = {" -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 -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 -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 -qs -pU -qs -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(88,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(89,1,1) = {" -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 -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 -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 -sO -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(90,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(91,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(92,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(93,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(94,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(95,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(96,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(97,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(98,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(99,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(100,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(101,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(102,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(103,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(104,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(105,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(106,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(107,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(108,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(109,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(110,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(111,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(112,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(113,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(114,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(115,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(116,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(117,1,1) = {" -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 -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 -aa -aa -aa -aa -aa -aa -ri -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(118,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(119,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(120,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(121,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(122,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(123,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(124,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(125,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(126,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(127,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(128,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(129,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(130,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(131,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(132,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(133,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(134,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(135,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(136,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(137,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(138,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(139,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(140,1,1) = {" -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} diff --git a/maps/offmap_vr/om_ships/shelter_6.dm b/maps/offmap_vr/om_ships/shelter_6.dm deleted file mode 100644 index 40ff4cdaeb..0000000000 --- a/maps/offmap_vr/om_ships/shelter_6.dm +++ /dev/null @@ -1,52 +0,0 @@ -// Compile in the map for CI testing if we're testing compileability of all the maps -#if MAP_TEST -#include "shelter_6.dmm" -#endif - -// Map template for spawning the shuttle -/datum/map_template/om_ships/tabiranth - name = "OM Ship - Tabiranth" - desc = "A prototype deployable assault shuttle." - mappath = 'shelter_6.dmm' - annihilate = TRUE - -// The shuttle's area(s) -/area/shuttle/tabiranth - name = "\improper Tabiranth" - icon_state = "blue-red2" - flags = RAD_SHIELDED | BLUE_SHIELDED - requires_power = 1 - -// The shuttle's 'shuttle' computer -/obj/machinery/computer/shuttle_control/explore/tabiranth - name = "short jump console" - shuttle_tag = "NDV Tabiranth" - req_one_access = list(access_cent_general) - -// A shuttle lateloader landmark -/obj/effect/shuttle_landmark/shuttle_initializer/tabiranth - name = "Origin - Tabiranth" - base_area = /area/space - base_turf = /turf/space - landmark_tag = "omship_spawn_tabiranth" - shuttle_type = /datum/shuttle/autodock/overmap/tabiranth - -// The 'shuttle' -/datum/shuttle/autodock/overmap/tabiranth - name = "NDV Tabiranth" - current_location = "omship_spawn_tabiranth" - docking_controller_tag = "tabiranth_docker" - shuttle_area = /area/shuttle/tabiranth - fuel_consumption = 0 - defer_initialisation = TRUE //We're not loaded until an admin does it - -// The 'ship' -/obj/effect/overmap/visitable/ship/landable/tabiranth - name = "Experimental Dropship" - scanner_desc = @{"[i]Registration[/i]: UNKNOWN -[i]Class[/i]: Assault Dropship -[i]Transponder[/i]: Transmitting (MIL), NanoTrasen -[b]Notice[/b]: Experimental vessel"} - vessel_mass = 3000 - vessel_size = SHIP_SIZE_SMALL - shuttle = "NDV Tabiranth" diff --git a/maps/offmap_vr/om_ships/shelter_6.dmm b/maps/offmap_vr/om_ships/shelter_6.dmm deleted file mode 100644 index e2f9bfa218..0000000000 --- a/maps/offmap_vr/om_ships/shelter_6.dmm +++ /dev/null @@ -1,2095 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( -/obj/machinery/porta_turret/industrial/military, -/turf/simulated/floor/reinforced/airless{ - name = "outer hull" - }, -/area/shuttle/tabiranth) -"ab" = ( -/obj/machinery/power/pointdefense{ - id_tag = "tabiranth_pd" - }, -/turf/simulated/floor/reinforced/airless{ - name = "outer hull" - }, -/area/shuttle/tabiranth) -"ac" = ( -/turf/simulated/shuttle/wall/voidcraft/blue{ - hard_corner = 1; - icon_state = "void-hc"; - name = "small craft wall hc"; - stripe_color = "#45b3d8" - }, -/area/shuttle/tabiranth) -"ad" = ( -/turf/simulated/shuttle/wall/voidcraft/blue{ - name = "small craft wall"; - stripe_color = "#45b3d8" - }, -/area/shuttle/tabiranth) -"ae" = ( -/obj/machinery/smartfridge/survival_pod, -/obj/item/clothing/suit/armor/vest/ert/command, -/obj/item/clothing/head/helmet/ert/command, -/obj/item/clothing/suit/armor/vest/ert/engineer, -/obj/item/clothing/suit/armor/vest/ert/engineer, -/obj/item/clothing/head/helmet/ert/engineer, -/obj/item/clothing/head/helmet/ert/engineer, -/obj/item/clothing/suit/armor/vest/ert/medical, -/obj/item/clothing/suit/armor/vest/ert/medical, -/obj/item/clothing/head/helmet/ert/medical, -/obj/item/clothing/head/helmet/ert/medical, -/obj/item/clothing/suit/armor/vest/ert/security, -/obj/item/clothing/suit/armor/vest/ert/security, -/obj/item/clothing/suit/armor/vest/ert/security, -/obj/item/clothing/suit/armor/vest/ert/security, -/obj/item/clothing/head/helmet/ert/security, -/obj/item/clothing/head/helmet/ert/security, -/obj/item/clothing/head/helmet/ert/security, -/obj/item/clothing/head/helmet/ert/security, -/obj/item/clothing/suit/armor/pcarrier/merc, -/obj/item/clothing/suit/armor/pcarrier/merc, -/obj/item/clothing/suit/armor/pcarrier/merc, -/obj/item/clothing/suit/armor/pcarrier/merc, -/obj/item/clothing/head/helmet/merc, -/obj/item/clothing/head/helmet/merc, -/obj/item/clothing/head/helmet/merc, -/obj/item/clothing/head/helmet/merc, -/obj/item/clothing/suit/armor/pcarrier/blue/sol, -/obj/item/clothing/suit/armor/pcarrier/blue/sol, -/obj/item/clothing/suit/armor/pcarrier/blue/sol, -/obj/item/clothing/suit/armor/pcarrier/blue/sol, -/obj/item/clothing/head/helmet/solgov, -/obj/item/clothing/head/helmet/solgov, -/obj/item/clothing/head/helmet/solgov, -/obj/item/clothing/head/helmet/solgov, -/obj/item/clothing/accessory/storage/pouches/large/blue, -/obj/item/clothing/accessory/storage/pouches/large/blue, -/obj/item/clothing/accessory/storage/pouches/large/blue, -/obj/item/clothing/accessory/storage/pouches/large/blue, -/obj/item/storage/box/syndie_kit/combat_armor, -/obj/item/storage/box/syndie_kit/combat_armor, -/obj/item/storage/box/syndie_kit/combat_armor, -/obj/item/storage/box/syndie_kit/combat_armor, -/obj/item/clothing/accessory/holster/machete, -/obj/item/clothing/accessory/holster/machete, -/obj/item/clothing/accessory/holster/machete, -/obj/item/clothing/accessory/holster/machete, -/obj/item/material/knife/machete, -/obj/item/material/knife/machete, -/obj/item/material/knife/machete, -/obj/item/material/knife/machete, -/obj/item/clothing/accessory/storage/bluespace, -/obj/item/clothing/accessory/storage/bluespace, -/obj/item/clothing/accessory/storage/bluespace, -/obj/item/clothing/accessory/storage/bluespace, -/obj/item/clothing/accessory/storage/bluespace, -/obj/item/clothing/accessory/storage/bluespace, -/obj/item/melee/energy/sword, -/obj/item/melee/energy/sword, -/obj/item/melee/energy/sword, -/obj/item/melee/energy/sword, -/obj/item/melee/energy/sword, -/obj/item/shield/energy, -/obj/item/shield/energy, -/obj/item/shield/energy, -/obj/item/melee/baton/loaded, -/obj/item/melee/baton/loaded, -/obj/item/melee/baton/loaded, -/obj/item/melee/baton/loaded, -/obj/item/rig/ert, -/obj/item/rig/ert/engineer, -/obj/item/rig/ert/engineer, -/obj/item/rig/ert/medical, -/obj/item/rig/ert/medical, -/obj/item/rig/ert/security, -/obj/item/rig/ert/security, -/obj/item/rig/ert/security, -/obj/item/rig/ert/security, -/obj/item/rig_module/vision/multi, -/obj/item/rig_module/device/drill, -/obj/item/rig_module/device/drill, -/obj/item/rig_module/device/plasmacutter, -/obj/item/rig_module/device/plasmacutter, -/obj/item/rig_module/device/orescanner, -/obj/item/rig_module/device/orescanner, -/obj/item/rig_module/rescue_pharm, -/obj/item/rig_module/rescue_pharm, -/obj/item/rig_module/chem_dispenser/injector, -/obj/item/rig_module/chem_dispenser/injector, -/obj/item/rig_module/chem_dispenser/combat, -/obj/item/rig_module/chem_dispenser/combat, -/obj/item/rig_module/device/healthscanner, -/obj/item/rig_module/device/healthscanner, -/obj/item/rig_module/sprinter, -/obj/item/rig_module/sprinter, -/obj/item/rig_module/sprinter, -/obj/item/rig_module/sprinter, -/obj/item/rig_module/device/anomaly_scanner, -/obj/item/rig_module/device/anomaly_scanner, -/obj/item/rig_module/device/rcd, -/obj/item/rig_module/device/rcd, -/obj/item/rig_module/mounted/egun, -/obj/item/rig_module/mounted/egun, -/obj/item/rig_module/mounted/egun, -/obj/item/rig_module/mounted/egun, -/obj/item/rig_module/mounted, -/obj/item/rig_module/mounted, -/obj/item/rig_module/grenade_launcher/smoke, -/obj/item/rig_module/cleaner_launcher, -/obj/item/rig_module/grenade_launcher, -/obj/item/storage/box/handcuffs, -/obj/item/storage/box/handcuffs, -/obj/item/storage/box/holobadge, -/obj/item/storage/box/holowarrants, -/obj/item/storage/box/flare, -/obj/item/storage/box/flare, -/obj/item/storage/box/flare, -/obj/item/storage/box/flare, -/obj/item/storage/box/metalfoam, -/obj/item/storage/box/metalfoam, -/obj/item/storage/box/metalfoam, -/obj/item/storage/box/metalfoam, -/obj/item/clothing/shoes/magboots/adv, -/obj/item/clothing/shoes/magboots/adv, -/obj/item/clothing/shoes/magboots/adv, -/obj/item/clothing/shoes/magboots/adv, -/obj/item/clothing/shoes/magboots/adv, -/obj/item/clothing/shoes/magboots/adv, -/obj/item/tank/oxygen, -/obj/item/tank/oxygen, -/obj/item/tank/oxygen, -/obj/item/tank/oxygen, -/obj/item/tank/oxygen, -/obj/item/tank/oxygen, -/obj/item/tank/oxygen, -/obj/item/tank/oxygen, -/obj/item/tank/oxygen, -/obj/item/tank/oxygen, -/obj/item/tank/vox, -/obj/item/tank/vox, -/obj/item/tank/vox, -/obj/item/tank/vox, -/obj/item/tank/jetpack/oxygen, -/obj/item/tank/jetpack/oxygen, -/obj/item/tank/jetpack/oxygen, -/obj/item/tank/jetpack/oxygen, -/obj/item/tank/jetpack/oxygen, -/obj/item/tank/jetpack/oxygen, -/obj/item/clothing/suit/space/void/pilot, -/obj/item/clothing/suit/space/void/pilot, -/obj/item/clothing/head/helmet/space/void/pilot, -/obj/item/clothing/head/helmet/space/void/pilot, -/obj/item/storage/briefcase/inflatable, -/obj/item/storage/briefcase/inflatable, -/obj/item/storage/briefcase/inflatable, -/obj/item/storage/briefcase/inflatable, -/obj/item/storage/briefcase/inflatable, -/obj/item/storage/briefcase/inflatable, -/obj/item/storage/belt/utility/full, -/obj/item/clothing/suit/space/void/responseteam/command, -/obj/item/clothing/suit/space/void/responseteam/engineer, -/obj/item/clothing/suit/space/void/responseteam/engineer, -/obj/item/clothing/suit/space/void/responseteam/medical, -/obj/item/clothing/suit/space/void/responseteam/medical, -/obj/item/clothing/suit/space/void/responseteam/security, -/obj/item/clothing/suit/space/void/responseteam/security, -/obj/item/clothing/suit/space/void/responseteam/security, -/obj/item/clothing/suit/space/void/responseteam/security, -/obj/item/grenade/spawnergrenade/casino/fighter/baron, -/obj/item/grenade/spawnergrenade/casino/fighter/baron, -/obj/item/grenade/spawnergrenade/casino/fighter/baron, -/obj/item/grenade/spawnergrenade/casino/fighter/baron, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"af" = ( -/obj/machinery/portable_atmospherics/powered/scrubber/huge/stationary{ - desc = "A large machine releasing a constant gust of air."; - icon = 'icons/obj/survival_pod.dmi'; - icon_state = "fans"; - name = "enviornmental regulation system" - }, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"ag" = ( -/obj/machinery/smartfridge/survival_pod, -/obj/item/gun/energy/sniperrifle, -/obj/item/gun/energy/sniperrifle, -/obj/item/gun/energy/gun/burst, -/obj/item/gun/energy/gun/burst, -/obj/item/gun/energy/xray, -/obj/item/gun/energy/xray, -/obj/item/gun/energy/netgun, -/obj/item/gun/energy/ionrifle, -/obj/item/gun/energy/ionrifle, -/obj/item/gun/energy/ionrifle/pistol, -/obj/item/gun/energy/ionrifle/pistol, -/obj/item/storage/secure/briefcase/nsfw_pack_hybrid_combat, -/obj/item/storage/secure/briefcase/nsfw_pack_hybrid, -/obj/item/gun/launcher/grenade, -/obj/item/gun/launcher/grenade, -/obj/item/storage/box/flashbangs, -/obj/item/storage/box/flashbangs, -/obj/item/storage/box/smokes, -/obj/item/storage/box/smokes, -/obj/item/storage/box/empslite, -/obj/item/storage/box/empslite, -/obj/item/storage/box/teargas, -/obj/item/storage/box/teargas, -/obj/item/storage/box/frags, -/obj/item/storage/box/frags, -/obj/item/gun/energy/gun, -/obj/item/gun/energy/gun, -/obj/item/gun/energy/gun, -/obj/item/gun/energy/gun, -/obj/item/gun/energy/gun/nuclear, -/obj/item/gun/energy/gun/nuclear, -/obj/item/gun/energy/gun/nuclear, -/obj/item/gun/energy/gun/nuclear, -/obj/item/gun/energy/laser, -/obj/item/gun/energy/laser, -/obj/item/gun/energy/laser, -/obj/item/gun/energy/laser, -/obj/item/gun/projectile/automatic/p90, -/obj/item/gun/projectile/automatic/p90, -/obj/item/ammo_magazine/m9mmp90, -/obj/item/ammo_magazine/m9mmp90, -/obj/item/ammo_magazine/m9mmp90, -/obj/item/ammo_magazine/m9mmp90, -/obj/item/ammo_magazine/m9mmp90, -/obj/item/ammo_magazine/m9mmp90, -/obj/item/ammo_magazine/m9mmp90, -/obj/item/ammo_magazine/m9mmp90, -/obj/item/ammo_magazine/m9mmt/flash, -/obj/item/ammo_magazine/m9mmt/flash, -/obj/item/ammo_magazine/m9mmt/flash, -/obj/item/ammo_magazine/m9mmt/flash, -/obj/item/ammo_magazine/m9mmt/rubber, -/obj/item/ammo_magazine/m9mmt/rubber, -/obj/item/ammo_magazine/m9mmt/rubber, -/obj/item/ammo_magazine/m9mmt/rubber, -/obj/item/gun/projectile/automatic/sts35, -/obj/item/gun/projectile/automatic/sts35, -/obj/item/gun/projectile/automatic/sts35, -/obj/item/gun/projectile/automatic/sts35, -/obj/item/ammo_magazine/m545/ap, -/obj/item/ammo_magazine/m545/ap, -/obj/item/ammo_magazine/m545/ap, -/obj/item/ammo_magazine/m545/ap, -/obj/item/ammo_magazine/m545/ap, -/obj/item/ammo_magazine/m545/ap, -/obj/item/ammo_magazine/m545/ap, -/obj/item/ammo_magazine/m545/ap, -/obj/item/ammo_magazine/m545/ap, -/obj/item/ammo_magazine/m545/ap, -/obj/item/ammo_magazine/m545/ap, -/obj/item/ammo_magazine/m545/ap, -/obj/item/ammo_magazine/m545, -/obj/item/ammo_magazine/m545, -/obj/item/ammo_magazine/m545, -/obj/item/ammo_magazine/m545, -/obj/item/ammo_magazine/m545, -/obj/item/ammo_magazine/m545, -/obj/item/ammo_magazine/m545, -/obj/item/ammo_magazine/m545, -/obj/item/gun/projectile/shotgun/pump/combat, -/obj/item/gun/projectile/shotgun/pump/combat, -/obj/item/ammo_magazine/ammo_box/b12g/pellet, -/obj/item/ammo_magazine/ammo_box/b12g/pellet, -/obj/item/ammo_magazine/ammo_box/b12g/pellet, -/obj/item/ammo_magazine/ammo_box/b12g/pellet, -/obj/item/ammo_magazine/ammo_box/b12g, -/obj/item/ammo_magazine/ammo_box/b12g, -/obj/item/ammo_magazine/ammo_box/b12g, -/obj/item/ammo_magazine/ammo_box/b12g, -/obj/item/ammo_magazine/ammo_box/b12g/emp, -/obj/item/ammo_magazine/ammo_box/b12g/emp, -/obj/item/ammo_magazine/ammo_box/b12g/beanbag, -/obj/item/ammo_magazine/ammo_box/b12g/beanbag, -/obj/item/ammo_magazine/ammo_box/b12g/stunshell, -/obj/item/ammo_magazine/ammo_box/b12g/stunshell, -/obj/item/ammo_magazine/ammo_box/b12g/flash, -/obj/item/ammo_magazine/ammo_box/b12g/flash, -/obj/item/ammo_magazine/ammo_box/b12g/flechette, -/obj/item/ammo_magazine/ammo_box/b12g/flechette, -/obj/item/gun/energy/locked/frontier/carbine/unlocked, -/obj/item/gun/energy/locked/frontier/carbine/unlocked, -/obj/item/gun/energy/locked/frontier/carbine/unlocked, -/obj/item/gun/energy/locked/frontier/carbine/unlocked, -/obj/item/gun/energy/locked/frontier/rifle/unlocked, -/obj/item/storage/box/weapon_cells, -/obj/item/storage/box/weapon_cells, -/obj/item/storage/box/weapon_cells, -/obj/item/storage/box/weapon_cells, -/obj/item/storage/box/weapon_cells, -/obj/item/storage/box/weapon_cells, -/obj/item/storage/box/weapon_cells, -/obj/item/storage/box/weapon_cells, -/obj/item/storage/box/weapon_cells, -/obj/item/storage/box/weapon_cells, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"ah" = ( -/obj/structure/fans/hardlight{ - explosion_resistance = 100 - }, -/obj/machinery/door/blast/regular{ - destroy_hits = 1000; - explosion_resistance = 200; - id = "tabi-hangar1" - }, -/obj/effect/floor_decal/industrial/danger/full, -/turf/simulated/floor/reinforced{ - explosion_resistance = 200 - }, -/area/shuttle/tabiranth) -"ai" = ( -/obj/effect/floor_decal/industrial/hatch/yellow, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"aj" = ( -/obj/effect/floor_decal/industrial/hatch/yellow, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 6 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"ak" = ( -/obj/machinery/atmospherics/binary/pump{ - dir = 8 - }, -/obj/effect/floor_decal/industrial/warning{ - icon_state = "warning"; - dir = 8 - }, -/obj/machinery/button/remote/blast_door{ - id = "tabi-hangar1"; - pixel_x = -26; - pixel_y = 26 - }, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"al" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden{ - dir = 1; - icon_state = "map" - }, -/obj/machinery/suit_cycler{ - density = 0; - layer = 2.2 - }, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"am" = ( -/obj/machinery/atmospherics/binary/pump{ - dir = 4 - }, -/obj/effect/floor_decal/industrial/warning{ - icon_state = "warning"; - dir = 4 - }, -/obj/machinery/button/remote/blast_door{ - id = "tabi-hangar2"; - pixel_x = 26; - pixel_y = 26 - }, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"an" = ( -/obj/effect/floor_decal/industrial/hatch/yellow, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"ao" = ( -/obj/effect/floor_decal/industrial/hatch/yellow, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 10; - icon_state = "intact" - }, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"ap" = ( -/obj/machinery/power/shield_generator/charged{ - density = 0; - field_radius = 9; - initial_shield_modes = 2113; - layer = 2.45; - plane = -44 - }, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/obj/effect/catwalk_plated/white, -/turf/simulated/floor/bluegrid, -/area/shuttle/tabiranth) -"aq" = ( -/obj/effect/floor_decal/industrial/outline, -/obj/machinery/atmospherics/portables_connector{ - dir = 1 - }, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"ar" = ( -/obj/structure/bed/chair/bay/shuttle{ - dir = 4 - }, -/obj/effect/floor_decal/industrial/warning{ - icon_state = "warning"; - dir = 8 - }, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"as" = ( -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"at" = ( -/obj/structure/bed/chair/bay/shuttle{ - dir = 8 - }, -/obj/effect/floor_decal/industrial/warning{ - icon_state = "warning"; - dir = 4 - }, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"au" = ( -/obj/machinery/autolathe{ - desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; - hacked = 1; - mat_efficiency = 0.5; - name = "Centcom Autolathe" - }, -/turf/simulated/floor/bluegrid, -/area/shuttle/tabiranth) -"av" = ( -/obj/machinery/mech_recharger, -/obj/effect/floor_decal/techfloor, -/obj/effect/floor_decal/techfloor{ - dir = 1 - }, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"aw" = ( -/obj/structure/bed/chair/bay/shuttle{ - dir = 4 - }, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"ax" = ( -/obj/structure/bed/chair/bay/shuttle{ - dir = 8 - }, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"ay" = ( -/obj/structure/fans/hardlight{ - explosion_resistance = 100 - }, -/obj/machinery/door/blast/regular{ - destroy_hits = 1000; - explosion_resistance = 200; - id = "tabi-hangar2" - }, -/obj/effect/floor_decal/industrial/danger/full, -/turf/simulated/floor/reinforced{ - explosion_resistance = 200 - }, -/area/shuttle/tabiranth) -"aB" = ( -/obj/machinery/portable_atmospherics/canister/oxygen{ - start_pressure = 15000 - }, -/obj/machinery/mech_recharger, -/obj/effect/floor_decal/techfloor{ - dir = 1 - }, -/obj/effect/floor_decal/techfloor, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"aC" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/telecomms/relay{ - density = 0; - layer = 2.45; - plane = -44 - }, -/obj/effect/catwalk_plated/white, -/turf/simulated/floor/bluegrid, -/area/shuttle/tabiranth) -"aD" = ( -/obj/machinery/atmospherics/portables_connector, -/obj/machinery/portable_atmospherics/canister/air{ - start_pressure = 15000 - }, -/obj/machinery/light{ - dir = 8; - icon_state = "tube1" - }, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"aE" = ( -/obj/machinery/atmospherics/portables_connector, -/obj/machinery/portable_atmospherics/canister/air{ - start_pressure = 15000 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"aF" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden, -/obj/structure/handrail{ - dir = 1 - }, -/obj/effect/floor_decal/industrial/warning{ - icon_state = "warning"; - dir = 8 - }, -/obj/machinery/recharger/wallcharger{ - pixel_y = -32 - }, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"aG" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/obj/structure/closet/walllocker{ - name = "Janitor Locker"; - pixel_y = -32 - }, -/obj/item/storage/box/lights/mixed, -/obj/item/storage/box/lights/mixed, -/obj/item/mop, -/obj/item/reagent_containers/glass/bucket, -/obj/item/reagent_containers/spray/cleaner, -/obj/item/reagent_containers/spray/cleaner, -/obj/item/grenade/chem_grenade/cleaner, -/obj/item/grenade/chem_grenade/cleaner, -/obj/item/grenade/chem_grenade/cleaner, -/obj/item/grenade/chem_grenade/cleaner, -/obj/item/soap/nanotrasen, -/obj/item/soap/deluxe, -/obj/item/soap, -/obj/item/rig/ert/janitor, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"aH" = ( -/obj/structure/fans/hardlight{ - explosion_resistance = 100 - }, -/obj/machinery/door/airlock/alien/blue/locked{ - explosion_resistance = 200; - req_one_access = list(101) - }, -/obj/machinery/access_button{ - command = "cycle_exterior"; - frequency = 1380; - master_tag = "tabiranth_airlock"; - name = "exterior access button"; - pixel_x = -5; - pixel_y = -26 - }, -/obj/effect/map_helper/airlock/door/ext_door, -/obj/effect/floor_decal/industrial/danger/full, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"aI" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/obj/structure/closet/walllocker{ - name = "Internals Locker"; - pixel_y = -32 - }, -/obj/item/storage/box/survival/space, -/obj/item/storage/box/survival/space, -/obj/item/storage/box/survival/space, -/obj/item/storage/box/survival/space, -/obj/item/storage/box/survival/space, -/obj/item/storage/box/survival/space, -/obj/item/storage/box/survival/space, -/obj/item/storage/box/survival/space, -/obj/item/storage/toolbox/emergency, -/obj/item/storage/toolbox/emergency, -/obj/item/storage/toolbox/emergency, -/obj/item/storage/toolbox/emergency, -/obj/fiftyspawner/steel, -/obj/fiftyspawner/steel, -/obj/fiftyspawner/steel, -/obj/fiftyspawner/steel, -/obj/fiftyspawner/steel, -/obj/fiftyspawner/steel, -/obj/fiftyspawner/steel, -/obj/fiftyspawner/steel, -/obj/fiftyspawner/glass, -/obj/fiftyspawner/glass, -/obj/fiftyspawner/glass, -/obj/fiftyspawner/glass, -/obj/item/storage/belt/utility/full, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"aJ" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden, -/obj/structure/handrail{ - dir = 1 - }, -/obj/effect/floor_decal/industrial/warning{ - icon_state = "warning"; - dir = 4 - }, -/obj/machinery/recharger/wallcharger{ - pixel_y = -32 - }, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"aK" = ( -/obj/machinery/atmospherics/unary/vent_pump/high_volume{ - dir = 4; - frequency = 1380 - }, -/obj/machinery/embedded_controller/radio/airlock/docking_port{ - frequency = 1380; - id_tag = "tabiranth_airlock"; - pixel_y = -32; - req_one_access = list(101) - }, -/obj/machinery/airlock_sensor{ - frequency = 1380; - pixel_y = 25 - }, -/obj/effect/map_helper/airlock/atmos/chamber_pump, -/obj/effect/map_helper/airlock/sensor/chamber_sensor, -/obj/machinery/light/small{ - icon_state = "bulb1"; - dir = 1 - }, -/obj/structure/handrail{ - dir = 1 - }, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"aL" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/obj/structure/fans/hardlight{ - explosion_resistance = 100 - }, -/obj/machinery/door/airlock/alien/blue/locked{ - explosion_resistance = 200; - req_one_access = list(101) - }, -/obj/machinery/access_button{ - command = "cycle_interior"; - frequency = 1380; - master_tag = "tabiranth_airlock"; - pixel_x = 5; - pixel_y = 26 - }, -/obj/effect/map_helper/airlock/door/int_door, -/obj/effect/floor_decal/industrial/danger/full, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"aM" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/obj/structure/fans/hardlight{ - explosion_resistance = 100 - }, -/obj/machinery/door/airlock/alien/blue/locked{ - explosion_resistance = 200; - req_one_access = list(101) - }, -/obj/machinery/access_button{ - command = "cycle_interior"; - frequency = 1380; - master_tag = "tabiranth_docker"; - pixel_x = -5; - pixel_y = 26 - }, -/obj/effect/map_helper/airlock/door/int_door, -/obj/effect/floor_decal/industrial/danger/full, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"aN" = ( -/obj/machinery/sleeper/survival_pod, -/turf/simulated/floor/tiled/white, -/area/shuttle/tabiranth) -"aO" = ( -/obj/machinery/atmospherics/unary/vent_pump/high_volume{ - dir = 8; - frequency = 1380 - }, -/obj/machinery/light/small{ - icon_state = "bulb1"; - dir = 1 - }, -/obj/machinery/airlock_sensor{ - frequency = 1380; - pixel_y = 25 - }, -/obj/machinery/embedded_controller/radio/airlock/docking_port{ - frequency = 1380; - id_tag = "tabiranth_docker"; - pixel_y = -32; - req_one_access = list(101) - }, -/obj/effect/shuttle_landmark/shuttle_initializer/tabiranth, -/obj/effect/overmap/visitable/ship/landable/tabiranth, -/obj/effect/map_helper/airlock/sensor/chamber_sensor, -/obj/effect/map_helper/airlock/atmos/chamber_pump, -/obj/structure/handrail{ - dir = 1 - }, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"aP" = ( -/obj/machinery/telecomms/allinone, -/turf/simulated/floor/bluegrid, -/area/shuttle/tabiranth) -"aQ" = ( -/obj/structure/bed/pod, -/obj/item/bedsheet/rd, -/turf/simulated/floor/tiled/techmaint, -/area/shuttle/tabiranth) -"aR" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden, -/obj/machinery/meter, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"aS" = ( -/obj/machinery/smartfridge/survival_pod, -/obj/item/storage/firstaid/clotting, -/obj/item/storage/firstaid/bonemed, -/obj/item/storage/firstaid/combat, -/obj/item/storage/firstaid/combat, -/obj/item/storage/firstaid/adv, -/obj/item/storage/firstaid/adv, -/obj/item/storage/firstaid/adv, -/obj/item/storage/firstaid/adv, -/obj/item/storage/firstaid/adv, -/obj/item/storage/firstaid/adv, -/obj/item/storage/firstaid/adv, -/obj/item/storage/firstaid/adv, -/obj/item/storage/firstaid/fire, -/obj/item/storage/firstaid/fire, -/obj/item/storage/firstaid/fire, -/obj/item/storage/firstaid/fire, -/obj/item/storage/firstaid/o2, -/obj/item/storage/firstaid/o2, -/obj/item/storage/firstaid/o2, -/obj/item/storage/firstaid/o2, -/obj/item/storage/firstaid/toxin, -/obj/item/storage/firstaid/toxin, -/obj/item/storage/firstaid/toxin, -/obj/item/storage/firstaid/toxin, -/obj/item/storage/firstaid/regular, -/obj/item/storage/firstaid/regular, -/obj/item/storage/firstaid/surgery, -/obj/item/storage/mre/menu11, -/obj/item/storage/mre/menu11, -/obj/item/storage/mre/menu11, -/obj/item/storage/mre/menu11, -/obj/item/storage/mre/menu11, -/obj/item/storage/mre/menu11, -/obj/item/storage/mre/menu13, -/obj/item/storage/mre/menu13, -/obj/item/storage/mre/menu13, -/obj/item/storage/mre/menu13, -/obj/item/storage/mre/random, -/obj/item/storage/mre/random, -/obj/item/storage/mre/random, -/obj/item/storage/mre/random, -/obj/item/storage/mre/random, -/obj/item/storage/mre/random, -/obj/item/storage/mre/random, -/obj/item/storage/mre/random, -/obj/item/storage/mre/random, -/obj/item/storage/mre/random, -/obj/item/storage/mre/random, -/obj/item/storage/mre/random, -/obj/item/storage/mre/random, -/obj/item/storage/mre/random, -/obj/item/storage/mre/random, -/obj/item/storage/mre/random, -/obj/item/storage/mre/random, -/obj/item/storage/mre/random, -/obj/item/storage/mre/random, -/obj/item/storage/mre/random, -/obj/item/defib_kit/compact/combat/loaded, -/obj/item/defib_kit/compact/combat/loaded, -/obj/item/storage/box/masks, -/obj/item/storage/box/gloves, -/obj/item/storage/box/freezer, -/obj/item/storage/box/bodybags, -/obj/item/storage/box/beakers, -/obj/item/storage/box/PDAs, -/obj/item/storage/box/ids, -/obj/item/storage/box/pillbottles, -/obj/item/storage/box/pillbottles, -/obj/item/storage/box/syringes, -/obj/item/storage/box/syringes, -/obj/item/storage/quickdraw/syringe_case, -/obj/item/storage/quickdraw/syringe_case, -/obj/item/storage/quickdraw/syringe_case, -/obj/item/storage/quickdraw/syringe_case, -/obj/item/reagent_containers/hypospray, -/obj/item/reagent_containers/hypospray, -/obj/item/reagent_containers/hypospray, -/obj/item/reagent_containers/hypospray, -/obj/item/stack/nanopaste/advanced, -/obj/item/stack/nanopaste/advanced, -/obj/item/stack/nanopaste/advanced, -/obj/item/stack/nanopaste/advanced, -/obj/item/stack/nanopaste/advanced, -/obj/item/stack/nanopaste/advanced, -/obj/item/stack/nanopaste/advanced, -/obj/item/stack/nanopaste/advanced, -/obj/item/stack/nanopaste/advanced, -/obj/item/stack/nanopaste/advanced, -/obj/item/reagent_containers/food/drinks/drinkingglass/fitnessflask/glucose, -/obj/item/reagent_containers/food/drinks/drinkingglass/fitnessflask/glucose, -/obj/item/healthanalyzer/phasic, -/obj/item/healthanalyzer/phasic, -/obj/item/healthanalyzer/phasic, -/obj/item/healthanalyzer/phasic, -/obj/item/denecrotizer/medical, -/obj/item/denecrotizer/medical, -/obj/item/bodybag/cryobag, -/obj/item/bodybag/cryobag, -/obj/item/bodybag/cryobag, -/obj/item/bodybag/cryobag, -/obj/item/bodybag/cryobag, -/obj/item/bodybag/cryobag, -/obj/item/bodybag/cryobag, -/obj/item/bodybag/cryobag, -/obj/item/bodybag/cryobag, -/obj/item/bodybag/cryobag, -/obj/item/bodybag/cryobag, -/obj/item/bodybag/cryobag, -/obj/item/bodybag/cryobag, -/obj/item/bodybag/cryobag, -/obj/item/bodybag/cryobag, -/obj/item/bodybag/cryobag, -/obj/item/reagent_containers/glass/beaker/large, -/obj/item/reagent_containers/glass/beaker/large, -/obj/item/reagent_containers/glass/beaker/large, -/obj/item/reagent_containers/glass/beaker/large, -/obj/item/reagent_containers/glass/beaker/noreact, -/obj/item/reagent_containers/glass/beaker/noreact, -/obj/item/reagent_containers/glass/beaker/bluespace, -/obj/item/reagent_containers/glass/beaker/bluespace, -/obj/item/reagent_containers/glass/beaker/bluespace, -/obj/item/reagent_containers/glass/beaker/bluespace, -/obj/item/reagent_containers/dropper, -/obj/item/reagent_containers/dropper, -/obj/item/reagent_containers/food/drinks/drinkingglass/fitnessflask/proteinshake, -/obj/item/reagent_containers/food/drinks/drinkingglass/fitnessflask/proteinshake, -/obj/item/reagent_containers/food/drinks/drinkingglass/fitnessflask/proteinshake, -/obj/item/reagent_containers/food/drinks/drinkingglass/fitnessflask/proteinshake, -/obj/item/reagent_containers/food/drinks/drinkingglass/fitnessflask/proteinshake, -/obj/item/reagent_containers/food/drinks/drinkingglass/fitnessflask/proteinshake, -/obj/item/reagent_containers/food/drinks/drinkingglass/fitnessflask/proteinshake, -/obj/item/reagent_containers/food/drinks/drinkingglass/fitnessflask/proteinshake, -/obj/item/reagent_containers/food/drinks/drinkingglass/fitnessflask/proteinshake, -/obj/item/reagent_containers/food/drinks/drinkingglass/fitnessflask/proteinshake, -/obj/item/reagent_containers/food/drinks/drinkingglass/fitnessflask/proteinshake, -/obj/item/reagent_containers/food/drinks/drinkingglass/fitnessflask/proteinshake, -/turf/simulated/floor/tiled/white, -/area/shuttle/tabiranth) -"aT" = ( -/obj/structure/fans/hardlight{ - explosion_resistance = 100 - }, -/obj/machinery/door/airlock/alien/blue/locked{ - explosion_resistance = 200; - req_one_access = list(101) - }, -/obj/effect/map_helper/airlock/door/ext_door, -/obj/machinery/access_button{ - command = "cycle_exterior"; - frequency = 1380; - master_tag = "tabiranth_docker"; - name = "exterior access button"; - pixel_x = 5; - pixel_y = -26 - }, -/obj/effect/floor_decal/industrial/danger/full, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"aU" = ( -/obj/machinery/chemical_dispenser/ert/specialops, -/obj/structure/table/survival_pod, -/obj/item/reagent_containers/glass/beaker/large, -/turf/simulated/floor/tiled/white, -/area/shuttle/tabiranth) -"aV" = ( -/obj/machinery/chem_master, -/turf/simulated/floor/tiled/white, -/area/shuttle/tabiranth) -"aW" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/simulated/floor/tiled/white, -/area/shuttle/tabiranth) -"aX" = ( -/obj/machinery/power/apc{ - alarms_hidden = 1; - cell_type = /obj/item/cell/super; - dir = 8; - name = "west bump"; - pixel_x = -28 - }, -/obj/structure/cable/cyan{ - icon_state = "0-4" - }, -/turf/simulated/floor/tiled/white, -/area/shuttle/tabiranth) -"aY" = ( -/obj/machinery/ntnet_relay{ - density = 0; - layer = 2.45; - plane = -44 - }, -/obj/effect/catwalk_plated/white, -/turf/simulated/floor/bluegrid, -/area/shuttle/tabiranth) -"aZ" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/simulated/floor/tiled/white, -/area/shuttle/tabiranth) -"ba" = ( -/turf/template_noop, -/area/template_noop) -"bb" = ( -/obj/machinery/sleeper{ - dir = 8 - }, -/obj/machinery/light, -/turf/simulated/floor/tiled/white, -/area/shuttle/tabiranth) -"bc" = ( -/obj/machinery/sleep_console{ - dir = 8 - }, -/turf/simulated/floor/tiled/white, -/area/shuttle/tabiranth) -"bd" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/item/perfect_tele_beacon/stationary{ - tele_name = "Tabiranth"; - tele_network = "centcom" - }, -/obj/effect/floor_decal/industrial/hatch, -/turf/simulated/floor/tiled/white, -/area/shuttle/tabiranth) -"be" = ( -/obj/machinery/body_scanconsole{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/shuttle/tabiranth) -"bf" = ( -/obj/machinery/bodyscanner{ - dir = 4 - }, -/obj/machinery/light, -/turf/simulated/floor/tiled/white, -/area/shuttle/tabiranth) -"bg" = ( -/turf/simulated/floor/tiled/white, -/area/shuttle/tabiranth) -"bh" = ( -/obj/effect/floor_decal/industrial/warning, -/obj/machinery/door/airlock/alien/blue{ - req_one_access = list(101) - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/shuttle/tabiranth) -"bi" = ( -/obj/structure/handrail{ - dir = 4 - }, -/obj/machinery/recharge_station{ - density = 0; - layer = 2.45; - plane = -44 - }, -/obj/effect/catwalk_plated/white, -/turf/simulated/floor/tiled/techfloor/grid, -/area/shuttle/tabiranth) -"bj" = ( -/obj/structure/handrail{ - dir = 8 - }, -/turf/simulated/shuttle/wall/voidcraft/blue{ - name = "small craft wall"; - stripe_color = "#45b3d8" - }, -/area/shuttle/tabiranth) -"bk" = ( -/obj/effect/floor_decal/techfloor{ - dir = 5 - }, -/obj/structure/closet/secure_closet/wall{ - anchored = 1; - density = 0; - pixel_x = 32; - req_access = list(101) - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/shuttle/tabiranth) -"bl" = ( -/obj/machinery/power/smes/buildable/hybrid{ - cur_coils = 4; - input_level = 500000; - output_level = 500000; - recharge_rate = 40000 - }, -/obj/structure/cable/cyan{ - icon_state = "0-4" - }, -/turf/simulated/floor/tiled/techmaint, -/area/shuttle/tabiranth) -"bm" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/machinery/power/terminal{ - dir = 8 - }, -/turf/simulated/floor/tiled/techmaint, -/area/shuttle/tabiranth) -"bn" = ( -/obj/machinery/pointdefense_control{ - id_tag = "tabiranth_pd" - }, -/turf/simulated/floor/tiled/techmaint, -/area/shuttle/tabiranth) -"bo" = ( -/obj/structure/closet/medical_wall{ - pixel_x = -32 - }, -/obj/item/reagent_containers/blood/prelabeled/OMinus, -/obj/item/reagent_containers/blood/prelabeled/OMinus, -/obj/item/reagent_containers/blood/prelabeled/OMinus, -/obj/item/reagent_containers/blood/prelabeled/OMinus, -/obj/item/reagent_containers/blood/prelabeled/OMinus, -/obj/item/reagent_containers/blood/prelabeled/OMinus, -/obj/item/reagent_containers/blood/prelabeled/OMinus, -/obj/item/reagent_containers/blood/prelabeled/OMinus, -/obj/item/storage/box/gloves, -/obj/item/storage/firstaid/surgery, -/obj/item/reagent_containers/spray/cleaner{ - desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; - name = "Surgery Cleaner"; - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/reagent_containers/spray/cleaner{ - desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; - name = "Surgery Cleaner"; - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/mmi/digital/posibrain, -/obj/item/mmi, -/obj/item/book/manual/robotics_cyborgs, -/obj/item/robotanalyzer, -/obj/item/tank/anesthetic, -/obj/item/tank/anesthetic, -/obj/item/tank/anesthetic, -/obj/item/clothing/mask/breath/medical, -/obj/item/clothing/mask/breath/medical, -/obj/item/clothing/mask/breath/medical, -/obj/item/storage/belt/utility/chief/full, -/obj/item/stack/cable_coil/alien, -/obj/item/stack/nanopaste, -/obj/item/stack/nanopaste, -/obj/item/stack/nanopaste, -/obj/item/defib_kit/jumper_kit/loaded, -/obj/item/defib_kit/compact/loaded, -/turf/simulated/floor/tiled/white, -/area/shuttle/tabiranth) -"bp" = ( -/obj/machinery/computer/operating{ - dir = 8 - }, -/turf/simulated/floor/tiled/white, -/area/shuttle/tabiranth) -"bq" = ( -/obj/machinery/mineral/equipment_vendor, -/obj/effect/floor_decal/techfloor{ - dir = 8 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/shuttle/tabiranth) -"br" = ( -/obj/effect/floor_decal/techfloor{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 4; - pixel_y = 0 - }, -/obj/machinery/atm, -/turf/simulated/floor/tiled/techfloor/grid, -/area/shuttle/tabiranth) -"bs" = ( -/obj/structure/table/survival_pod, -/obj/machinery/turretid{ - control_area = /area/shuttle/tabiranth; - pixel_x = -32; - req_access = list(101) - }, -/obj/machinery/light/small{ - dir = 8; - pixel_x = 0 - }, -/obj/machinery/recharger, -/obj/item/modular_computer/laptop/preset/custom_loadout/elite, -/turf/simulated/floor/tiled/techmaint, -/area/shuttle/tabiranth) -"bt" = ( -/obj/structure/handrail{ - dir = 8 - }, -/turf/simulated/floor/reinforced/airless{ - name = "outer hull" - }, -/area/shuttle/tabiranth) -"bu" = ( -/obj/machinery/computer/ship/engines{ - dir = 8; - icon_state = "computer" - }, -/obj/machinery/light/small{ - dir = 4; - pixel_y = 0 - }, -/turf/simulated/floor/tiled/techmaint, -/area/shuttle/tabiranth) -"bv" = ( -/obj/structure/medical_stand, -/obj/machinery/light{ - dir = 8; - icon_state = "tube1" - }, -/turf/simulated/floor/tiled/white, -/area/shuttle/tabiranth) -"bw" = ( -/obj/machinery/optable, -/obj/machinery/oxygen_pump/anesthetic{ - pixel_x = 32 - }, -/turf/simulated/floor/tiled/white, -/area/shuttle/tabiranth) -"bx" = ( -/obj/machinery/mineral/equipment_vendor/survey, -/obj/effect/floor_decal/techfloor{ - dir = 10 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/shuttle/tabiranth) -"by" = ( -/obj/machinery/syndicate_beacon/virgo{ - charges = 10; - density = 0 - }, -/obj/effect/floor_decal/techfloor{ - icon_state = "techfloor_edges"; - dir = 6 - }, -/obj/machinery/vending/nifsoft_shop{ - categories = 111; - emagged = 1; - name = "Hacked NIFSoft Shop"; - prices = list() - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/shuttle/tabiranth) -"bz" = ( -/obj/machinery/computer/ship/sensors{ - dir = 4 - }, -/turf/simulated/floor/tiled/techmaint, -/area/shuttle/tabiranth) -"bA" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/alien/blue{ - req_one_access = list(108) - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/shuttle/tabiranth) -"bB" = ( -/obj/machinery/computer/shuttle_control/explore/tabiranth{ - dir = 8 - }, -/turf/simulated/floor/tiled/techmaint, -/area/shuttle/tabiranth) -"bC" = ( -/obj/machinery/organ_printer/flesh/full, -/obj/structure/sink/kitchen{ - icon_state = "sink_alt"; - dir = 4; - pixel_x = -13 - }, -/turf/simulated/floor/tiled/white, -/area/shuttle/tabiranth) -"bD" = ( -/obj/item/storage/firstaid/surgery, -/obj/item/reagent_containers/spray/cleaner{ - desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; - name = "Surgery Cleaner"; - pixel_x = 2; - pixel_y = 2 - }, -/obj/structure/table/survival_pod, -/turf/simulated/floor/tiled/white, -/area/shuttle/tabiranth) -"bE" = ( -/obj/structure/shuttle/engine/heater, -/obj/structure/window/phoronreinforced{ - dir = 1 - }, -/turf/simulated/floor/reinforced/airless, -/area/shuttle/tabiranth) -"bF" = ( -/obj/machinery/computer/ship/helm{ - dir = 1 - }, -/turf/simulated/floor/tiled/techmaint, -/area/shuttle/tabiranth) -"bG" = ( -/obj/machinery/ion_engine{ - generated_thrust = 5 - }, -/turf/simulated/floor/reinforced/airless, -/area/shuttle/tabiranth) -"bH" = ( -/obj/structure/closet/hydrant{ - pixel_x = 32 - }, -/obj/item/clothing/suit/fire/firefighter, -/obj/item/clothing/mask/gas, -/obj/item/flashlight, -/obj/item/tank/oxygen/red, -/obj/item/tank/emergency/oxygen/double, -/obj/item/tank/emergency/oxygen/double, -/obj/item/extinguisher, -/obj/item/extinguisher, -/obj/item/extinguisher, -/obj/item/extinguisher, -/obj/item/clothing/head/hardhat/red, -/obj/item/storage/toolbox/emergency, -/turf/simulated/floor/tiled/white, -/area/shuttle/tabiranth) -"bI" = ( -/obj/structure/bed/chair/bay/shuttle, -/obj/machinery/button/remote/blast_door{ - id = "tabi-vault"; - name = "Vault Blast Door Controls"; - pixel_x = 26; - pixel_y = -26; - req_one_access = list(108) - }, -/turf/simulated/floor/tiled/techmaint, -/area/shuttle/tabiranth) -"bJ" = ( -/obj/machinery/smartfridge/survival_pod, -/obj/item/clothing/under/ert, -/obj/item/clothing/under/ert, -/obj/item/clothing/under/ert, -/obj/item/clothing/under/ert, -/obj/item/clothing/under/ert, -/obj/item/clothing/under/ert, -/obj/item/storage/box/survival/comp{ - starts_with = list(/obj/item/tool/prybar/red,/obj/item/clothing/glasses/goggles,/obj/item/reagent_containers/hypospray/autoinjector,/obj/item/stack/medical/bruise_pack,/obj/item/flashlight/glowstick,/obj/item/reagent_containers/food/snacks/candy/proteinbar,/obj/item/clothing/mask/breath,/obj/item/tank/emergency/oxygen/engi) - }, -/obj/item/storage/box/survival/comp{ - starts_with = list(/obj/item/tool/prybar/red,/obj/item/clothing/glasses/goggles,/obj/item/reagent_containers/hypospray/autoinjector,/obj/item/stack/medical/bruise_pack,/obj/item/flashlight/glowstick,/obj/item/reagent_containers/food/snacks/candy/proteinbar,/obj/item/clothing/mask/breath,/obj/item/tank/emergency/oxygen/engi) - }, -/obj/item/storage/box/survival/comp{ - starts_with = list(/obj/item/tool/prybar/red,/obj/item/clothing/glasses/goggles,/obj/item/reagent_containers/hypospray/autoinjector,/obj/item/stack/medical/bruise_pack,/obj/item/flashlight/glowstick,/obj/item/reagent_containers/food/snacks/candy/proteinbar,/obj/item/clothing/mask/breath,/obj/item/tank/emergency/oxygen/engi) - }, -/obj/item/storage/box/survival/comp{ - starts_with = list(/obj/item/tool/prybar/red,/obj/item/clothing/glasses/goggles,/obj/item/reagent_containers/hypospray/autoinjector,/obj/item/stack/medical/bruise_pack,/obj/item/flashlight/glowstick,/obj/item/reagent_containers/food/snacks/candy/proteinbar,/obj/item/clothing/mask/breath,/obj/item/tank/emergency/oxygen/engi) - }, -/obj/item/storage/box/survival/comp{ - starts_with = list(/obj/item/tool/prybar/red,/obj/item/clothing/glasses/goggles,/obj/item/reagent_containers/hypospray/autoinjector,/obj/item/stack/medical/bruise_pack,/obj/item/flashlight/glowstick,/obj/item/reagent_containers/food/snacks/candy/proteinbar,/obj/item/clothing/mask/breath,/obj/item/tank/emergency/oxygen/engi) - }, -/obj/item/storage/box/survival/comp{ - starts_with = list(/obj/item/tool/prybar/red,/obj/item/clothing/glasses/goggles,/obj/item/reagent_containers/hypospray/autoinjector,/obj/item/stack/medical/bruise_pack,/obj/item/flashlight/glowstick,/obj/item/reagent_containers/food/snacks/candy/proteinbar,/obj/item/clothing/mask/breath,/obj/item/tank/emergency/oxygen/engi) - }, -/obj/item/perfect_tele, -/obj/item/storage/belt/utility/chief/full, -/obj/item/storage/belt/utility/chief/full, -/obj/item/storage/belt/utility/chief/full, -/obj/item/storage/belt/utility/chief/full, -/obj/item/clothing/gloves/heavy_engineer, -/obj/item/clothing/gloves/heavy_engineer, -/obj/item/clothing/gloves/heavy_engineer, -/obj/item/clothing/gloves/heavy_engineer, -/obj/item/storage/belt/security/tactical, -/obj/item/storage/belt/security/tactical, -/obj/item/storage/belt/security/tactical, -/obj/item/storage/belt/security/tactical, -/obj/item/storage/belt/medical/emt, -/obj/item/storage/belt/medical/emt, -/obj/item/storage/belt/medical/emt, -/obj/item/storage/belt/medical/emt, -/obj/item/storage/belt/explorer/pathfinder, -/obj/item/storage/belt/explorer/pathfinder, -/obj/item/storage/belt/explorer/pathfinder, -/obj/item/storage/belt/explorer/pathfinder, -/obj/item/storage/backpack/ert/commander, -/obj/item/storage/backpack/ert/engineer, -/obj/item/storage/backpack/ert/engineer, -/obj/item/storage/backpack/ert/medical, -/obj/item/storage/backpack/ert/medical, -/obj/item/storage/backpack/ert/security, -/obj/item/storage/backpack/ert/security, -/obj/item/storage/backpack/ert/security, -/obj/item/storage/backpack/ert/security, -/obj/item/cell/hyper, -/obj/item/cell/hyper, -/obj/item/cell/hyper, -/obj/item/cell/hyper, -/obj/item/cell/hyper, -/obj/item/cell/hyper, -/obj/item/cell/hyper, -/obj/item/cell/hyper, -/obj/item/cell/hyper, -/obj/item/cell/hyper, -/obj/item/gun/energy/locked/frontier/holdout/unlocked, -/obj/item/gun/energy/locked/frontier/holdout/unlocked, -/obj/item/gun/energy/locked/frontier/holdout/unlocked, -/obj/item/gun/energy/locked/frontier/holdout/unlocked, -/obj/item/gun/energy/locked/frontier/holdout/unlocked, -/obj/item/gun/energy/locked/frontier/holdout/unlocked, -/obj/item/gun/projectile/pistol, -/obj/item/gun/projectile/pistol, -/obj/item/gun/projectile/pistol, -/obj/item/ammo_magazine/m9mm/compact, -/obj/item/ammo_magazine/m9mm/compact, -/obj/item/ammo_magazine/m9mm/compact, -/obj/item/ammo_magazine/m9mm/compact, -/obj/item/ammo_magazine/m9mm/compact, -/obj/item/ammo_magazine/m9mm/compact, -/obj/item/ammo_magazine/m9mm/compact/flash, -/obj/item/ammo_magazine/m9mm/compact/flash, -/obj/item/ammo_magazine/m9mm/compact/flash, -/obj/item/ammo_magazine/m9mm/compact/rubber, -/obj/item/ammo_magazine/m9mm/compact/rubber, -/obj/item/ammo_magazine/m9mm/compact/rubber, -/obj/item/ammo_magazine/m9mm/compact/practice, -/obj/item/ammo_magazine/m9mm/compact/practice, -/obj/item/ammo_magazine/m9mm/compact/practice, -/obj/item/clothing/glasses/thermal, -/obj/item/clothing/glasses/thermal, -/obj/item/clothing/glasses/graviton, -/obj/item/clothing/glasses/graviton, -/obj/item/clothing/glasses/graviton, -/obj/item/clothing/glasses/graviton, -/obj/item/clothing/glasses/graviton, -/obj/item/clothing/glasses/graviton, -/obj/item/clothing/glasses/night, -/obj/item/clothing/glasses/night, -/obj/item/clothing/glasses/night, -/obj/item/clothing/glasses/night, -/obj/item/binoculars, -/obj/item/binoculars, -/obj/item/binoculars, -/obj/item/binoculars, -/obj/item/clothing/gloves/watch/survival, -/obj/item/clothing/gloves/watch/survival, -/obj/item/clothing/gloves/watch/survival, -/obj/item/clothing/gloves/watch/survival, -/obj/item/mapping_unit/ert, -/obj/item/holomap_beacon/ert, -/obj/item/holomap_beacon/ert, -/obj/item/holomap_beacon/ert, -/obj/item/holomap_beacon/ert, -/obj/item/clothing/mask/gas/half, -/obj/item/clothing/mask/gas/half, -/obj/item/clothing/mask/gas/half, -/obj/item/clothing/mask/gas/half, -/obj/item/clothing/mask/gas/half, -/obj/item/clothing/mask/gas/half, -/obj/item/clothing/mask/gas/half, -/obj/item/clothing/mask/gas/half, -/obj/item/modular_computer/laptop/preset/custom_loadout/elite, -/obj/item/modular_computer/laptop/preset/custom_loadout/elite, -/obj/item/modular_computer/laptop/preset/custom_loadout/elite, -/obj/item/modular_computer/laptop/preset/custom_loadout/elite, -/obj/item/modular_computer/laptop/preset/custom_loadout/elite, -/obj/item/modular_computer/laptop/preset/custom_loadout/elite, -/obj/item/modular_computer/tablet/preset/custom_loadout/elite, -/obj/item/modular_computer/tablet/preset/custom_loadout/elite, -/obj/item/modular_computer/tablet/preset/custom_loadout/elite, -/obj/item/modular_computer/tablet/preset/custom_loadout/elite, -/obj/item/modular_computer/tablet/preset/custom_loadout/elite, -/obj/item/modular_computer/tablet/preset/custom_loadout/elite, -/obj/item/survivalcapsule, -/obj/item/survivalcapsule, -/obj/item/survivalcapsule, -/obj/item/survivalcapsule, -/obj/item/survivalcapsule, -/obj/item/survivalcapsule, -/obj/item/survivalcapsule, -/obj/item/survivalcapsule, -/obj/item/survivalcapsule, -/obj/item/survivalcapsule, -/obj/item/survivalcapsule, -/obj/item/survivalcapsule, -/obj/item/survivalcapsule, -/obj/item/survivalcapsule, -/obj/item/survivalcapsule, -/obj/item/survivalcapsule, -/obj/item/survivalcapsule, -/obj/item/survivalcapsule, -/obj/item/survivalcapsule, -/obj/item/survivalcapsule, -/obj/item/survivalcapsule/luxury, -/obj/item/survivalcapsule/luxury, -/obj/item/survivalcapsule/luxury, -/obj/item/survivalcapsule/luxury, -/obj/item/survivalcapsule/luxury, -/obj/item/survivalcapsule/luxury, -/obj/item/survivalcapsule/luxury, -/obj/item/survivalcapsule/luxury, -/obj/item/survivalcapsule/luxurybar, -/obj/item/survivalcapsule/luxurybar, -/obj/item/tank/emergency/oxygen/double, -/obj/item/tank/emergency/oxygen/double, -/obj/item/tank/emergency/oxygen/double, -/obj/item/tank/emergency/oxygen/double, -/obj/item/tank/emergency/oxygen/double, -/obj/item/tank/emergency/oxygen/double, -/obj/item/tank/emergency/oxygen/double, -/obj/item/tank/emergency/oxygen/double, -/obj/item/tank/emergency/oxygen/double, -/obj/item/tank/emergency/oxygen/double, -/turf/simulated/floor/tiled/white, -/area/shuttle/tabiranth) -"bK" = ( -/obj/structure/handrail{ - dir = 8 - }, -/obj/machinery/recharge_station{ - density = 0; - layer = 2.45; - plane = -44 - }, -/obj/effect/catwalk_plated/white, -/turf/simulated/floor/tiled/techfloor/grid, -/area/shuttle/tabiranth) -"bL" = ( -/obj/machinery/shipsensors{ - dir = 1; - health = 1000; - heat_reduction = 4.5; - max_health = 1000; - name = "military sensors suite" - }, -/obj/effect/floor_decal/industrial/danger/full, -/turf/simulated/floor/reinforced/airless{ - name = "outer hull" - }, -/area/shuttle/tabiranth) -"bM" = ( -/obj/machinery/door/airlock/alien/blue{ - req_one_access = list(108) - }, -/obj/machinery/door/blast/regular{ - destroy_hits = 100; - dir = 4; - id = "tabi-vault"; - name = "Vault" - }, -/obj/effect/floor_decal/industrial/warning{ - dir = 1 - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/shuttle/tabiranth) -"bN" = ( -/obj/machinery/door/airlock/alien/blue{ - req_one_access = list(101) - }, -/obj/effect/floor_decal/industrial/warning{ - dir = 1 - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/shuttle/tabiranth) -"bO" = ( -/obj/machinery/mech_recharger{ - icon = 'icons/turf/shuttle_alien_blue.dmi' - }, -/obj/mecha/combat/fighter/baron/loaded, -/turf/simulated/floor/reinforced, -/area/shuttle/tabiranth) -"bP" = ( -/obj/machinery/smartfridge/survival_pod, -/obj/item/clothing/suit/space/void/merc/fire, -/obj/item/clothing/head/helmet/space/void/merc/fire, -/obj/item/clothing/suit/space/void/merc, -/obj/item/clothing/suit/space/void/merc, -/obj/item/clothing/head/helmet/space/void/merc, -/obj/item/clothing/head/helmet/space/void/merc, -/obj/item/clothing/suit/space/void/merc/odst, -/obj/item/clothing/suit/space/void/merc/odst, -/obj/item/clothing/head/helmet/space/void/merc/odst, -/obj/item/clothing/head/helmet/space/void/merc/odst, -/obj/item/clothing/suit/space/void/security/fluff/hos, -/obj/item/clothing/head/helmet/space/void/security/fluff/hos, -/obj/item/clothing/head/helmet/space/void/captain, -/obj/item/clothing/suit/space/void/captain, -/obj/item/clothing/head/helmet/space/void/refurb/officer, -/obj/item/clothing/suit/space/void/refurb/officer, -/obj/item/survivalcapsule/popcabin, -/obj/item/survivalcapsule/popcabin, -/obj/item/tank/oxygen/yellow, -/obj/item/tank/oxygen/yellow, -/obj/item/tank/oxygen/yellow, -/obj/item/tank/oxygen/yellow, -/obj/item/tank/vox, -/obj/item/tank/vox, -/obj/item/tank/vox, -/obj/item/tank/vox, -/obj/item/rig_module/chem_dispenser/injector/advanced, -/obj/item/rig_module/vision/multi, -/obj/item/rig/military/equipped, -/obj/item/rig/pmc/commander, -/obj/item/rig/pmc/medical, -/obj/item/rig/pmc/engineer, -/obj/item/rig/pmc/security, -/obj/item/rig/pmc/security, -/obj/item/rig/light/ninja, -/obj/item/gun/energy/modular/cannon, -/obj/item/gun/energy/modular/carbine, -/obj/item/gun/energy/modular/pistol, -/obj/item/gun/energy/medigun, -/obj/item/gun/energy/captain, -/obj/item/material/knife/machete/deluxe{ - default_material = "durasteel" - }, -/obj/item/clothing/accessory/holster/machete, -/obj/item/storage/firstaid/combat, -/obj/item/storage/firstaid/combat, -/obj/item/storage/toolbox/syndicate/powertools, -/obj/item/storage/toolbox/syndicate/powertools, -/obj/item/storage/box/syndie_kit/demolitions_super_heavy{ - name = "Super Heavy Demolitions kit" - }, -/obj/item/storage/box/syndie_kit/demolitions_heavy{ - name = "Heavy Demolitions kit" - }, -/obj/item/storage/box/syndie_kit/demolitions_heavy{ - name = "Heavy Demolitions kit" - }, -/obj/item/storage/box/syndie_kit/demolitions_heavy{ - name = "Heavy Demolitions kit" - }, -/obj/item/plastique, -/obj/item/plastique, -/obj/item/plastique, -/obj/item/plastique, -/obj/item/plastique, -/obj/item/plastique, -/obj/item/cell/device/weapon/recharge/alien, -/obj/item/cell/device/weapon/recharge/alien, -/obj/item/cell/device/weapon/recharge/alien, -/obj/item/cell/device/weapon/recharge/alien, -/obj/item/cell/device/weapon/recharge/alien, -/obj/item/cell/device/weapon/recharge/alien, -/obj/item/storage/secure/briefcase/nsfw_pack_hybrid_combat, -/obj/item/storage/secure/briefcase/nsfw_pack_hybrid, -/obj/item/ammo_casing/microbattery/medical/corpse_mend, -/obj/item/ammo_casing/microbattery/medical/corpse_mend, -/obj/item/cell/slime{ - description_info = "This 'cell' holds a max charge of 20k and self recharges over time."; - icon = 'icons/obj/power.dmi'; - icon_state = "icell"; - maxcharge = 20000; - name = "slime core cell" - }, -/obj/item/cell/slime{ - description_info = "This 'cell' holds a max charge of 20k and self recharges over time."; - icon = 'icons/obj/power.dmi'; - icon_state = "icell"; - maxcharge = 20000; - name = "slime core cell" - }, -/obj/item/cell/slime{ - description_info = "This 'cell' holds a max charge of 20k and self recharges over time."; - icon = 'icons/obj/power.dmi'; - icon_state = "icell"; - maxcharge = 20000; - name = "slime core cell" - }, -/obj/item/cell/slime{ - description_info = "This 'cell' holds a max charge of 20k and self recharges over time."; - icon = 'icons/obj/power.dmi'; - icon_state = "icell"; - maxcharge = 20000; - name = "slime core cell" - }, -/obj/item/slime_extract/pink, -/obj/item/slime_extract/pink, -/obj/item/slime_extract/pink, -/obj/item/slime_extract/pink, -/obj/item/slime_extract/pink, -/obj/item/slime_extract/pink, -/obj/item/slime_extract/pink, -/obj/item/slime_extract/pink, -/obj/item/slime_extract/pink, -/obj/item/slime_extract/pink, -/obj/item/slime_extract/pink, -/obj/item/slime_extract/pink, -/obj/item/slime_extract/pink, -/obj/item/slime_extract/pink, -/obj/item/deadringer, -/obj/item/deadringer, -/obj/item/stack/telecrystal{ - amount = 240 - }, -/obj/item/stack/telecrystal{ - amount = 240 - }, -/obj/item/stack/telecrystal{ - amount = 240 - }, -/obj/item/stack/telecrystal{ - amount = 240 - }, -/obj/item/stack/telecrystal{ - amount = 240 - }, -/obj/item/stack/telecrystal{ - amount = 240 - }, -/obj/item/stack/telecrystal{ - amount = 240 - }, -/obj/item/stack/telecrystal{ - amount = 240 - }, -/obj/item/stack/telecrystal{ - amount = 240 - }, -/obj/item/stack/telecrystal{ - amount = 240 - }, -/obj/item/card/mining_point_card{ - mine_points = 50000 - }, -/obj/item/card/mining_point_card{ - mine_points = 50000 - }, -/obj/item/card/mining_point_card{ - mine_points = 50000 - }, -/obj/item/card/mining_point_card{ - mine_points = 50000 - }, -/obj/item/card/mining_point_card{ - mine_points = 50000 - }, -/obj/item/card/mining_point_card{ - mine_points = 50000 - }, -/obj/item/card/mining_point_card/survey{ - name = "survey point card"; - survey_points = 5000 - }, -/obj/item/card/mining_point_card/survey{ - name = "survey point card"; - survey_points = 5000 - }, -/obj/item/card/mining_point_card/survey{ - name = "survey point card"; - survey_points = 5000 - }, -/obj/item/card/mining_point_card/survey{ - name = "survey point card"; - survey_points = 5000 - }, -/obj/item/card/mining_point_card/survey{ - name = "survey point card"; - survey_points = 5000 - }, -/obj/item/card/mining_point_card/survey{ - name = "survey point card"; - survey_points = 5000 - }, -/obj/item/survivalcapsule/military, -/obj/item/survivalcapsule/military, -/obj/item/survivalcapsule/escapepod, -/obj/item/technomancer_catalog/universal, -/obj/item/technomancer_core/universal, -/obj/item/storage/secure/briefcase/money{ - desc = "An sleek tidy briefcase."; - name = "secure briefcase" - }, -/obj/item/storage/secure/briefcase/money{ - desc = "An sleek tidy briefcase."; - name = "secure briefcase" - }, -/obj/item/storage/secure/briefcase/money{ - desc = "An sleek tidy briefcase."; - name = "secure briefcase" - }, -/obj/item/storage/secure/briefcase/money{ - desc = "An sleek tidy briefcase."; - name = "secure briefcase" - }, -/obj/item/storage/secure/briefcase/money{ - desc = "An sleek tidy briefcase."; - name = "secure briefcase" - }, -/obj/item/storage/secure/briefcase/money{ - desc = "An sleek tidy briefcase."; - name = "secure briefcase" - }, -/obj/item/radio/uplink, -/obj/item/radio/uplink, -/obj/item/spaceflare, -/obj/item/spaceflare, -/obj/item/healthanalyzer/phasic, -/obj/item/bluespaceradio/tether_prelinked, -/obj/item/cat_box, -/obj/item/cat_box, -/obj/item/cat_box/black, -/obj/item/cat_box/black, -/obj/item/disposable_teleporter, -/obj/item/hand_tele, -/obj/item/storage/belt, -/obj/item/storage/belt/medical/alien, -/obj/item/storage/belt/utility/alien, -/obj/item/storage/belt/holding, -/obj/item/rig/ert/assetprotection, -/obj/item/rig/ert/assetprotection, -/obj/item/gun/energy/pulse_rifle, -/obj/item/gun/energy/pulse_rifle, -/obj/item/gun/energy/pulse_rifle, -/obj/item/gun/energy/pulse_rifle, -/obj/item/gun/projectile/automatic/l6_saw, -/obj/item/gun/projectile/automatic/l6_saw, -/obj/item/ammo_magazine/m545saw, -/obj/item/ammo_magazine/m545saw, -/obj/item/ammo_magazine/m545saw, -/obj/item/ammo_magazine/m545saw, -/obj/item/ammo_magazine/m545saw/ap, -/obj/item/ammo_magazine/m545saw/ap, -/obj/item/ammo_magazine/m545saw/ap, -/obj/item/ammo_magazine/m545saw/ap, -/obj/item/ammo_magazine/m545saw/ap, -/obj/item/ammo_magazine/m545saw/ap, -/obj/item/gun/projectile/automatic/z8, -/obj/item/gun/projectile/automatic/z8, -/obj/item/gun/projectile/heavysniper, -/obj/item/ammo_magazine/ammo_box/b145, -/obj/item/ammo_magazine/ammo_box/b145, -/obj/item/ammo_magazine/m762, -/obj/item/ammo_magazine/m762, -/obj/item/ammo_magazine/m762, -/obj/item/ammo_magazine/m762, -/obj/item/ammo_magazine/m762/ap, -/obj/item/ammo_magazine/m762/ap, -/obj/item/ammo_magazine/m762/ap, -/obj/item/ammo_magazine/m762/ap, -/obj/item/ammo_magazine/m762/ap, -/obj/item/ammo_magazine/m762/ap, -/obj/item/ammo_magazine/ammo_box/b145, -/obj/item/ammo_magazine/ammo_box/b145, -/obj/item/cell/infinite, -/obj/item/nif/authentic, -/obj/item/modular_computer/laptop/preset/custom_loadout/hybrid, -/obj/item/modular_computer/laptop/preset/custom_loadout/hybrid, -/obj/item/modular_computer/tablet/preset/custom_loadout/hybrid, -/obj/item/perfect_tele/alien, -/obj/item/perfect_tele/frontier/staff, -/obj/item/inducer/hybrid, -/obj/item/cell/device/weapon/recharge/alien/hybrid, -/obj/item/cell/device/weapon/recharge/alien/hybrid, -/obj/item/cell/device/weapon/recharge/alien/hybrid, -/obj/item/cell/device/weapon/recharge/alien/hybrid, -/obj/item/circuitboard/machine/abductor/core/hybrid, -/obj/item/circuitboard/machine/abductor/core/hybrid, -/obj/item/gun/magnetic/railgun/automatic, -/obj/item/gun/magnetic/railgun/automatic, -/obj/item/grenade/spawnergrenade/casino, -/obj/item/grenade/spawnergrenade/casino/penguin, -/obj/item/grenade/spawnergrenade/casino/chicken, -/obj/item/grenade/spawnergrenade/casino/cow, -/obj/item/grenade/spawnergrenade/casino/corgi, -/obj/item/grenade/spawnergrenade/casino/fox, -/obj/item/grenade/spawnergrenade/casino/fennec, -/obj/item/grenade/spawnergrenade/casino/snake, -/obj/item/grenade/spawnergrenade/casino/redpanda, -/obj/item/grenade/spawnergrenade/casino/snake, -/obj/item/grenade/spawnergrenade/casino/otie, -/obj/item/grenade/spawnergrenade/casino/goldcrest, -/obj/item/grenade/spawnergrenade/casino/gygax, -/obj/item/grenade/spawnergrenade/casino/gygax/mining, -/obj/item/grenade/spawnergrenade/casino/gygax/firefighter, -/obj/item/grenade/spawnergrenade/casino/gygax/Odysseus, -/obj/item/grenade/spawnergrenade/casino/gygax/shuttlepod, -/obj/item/grenade/spawnergrenade/casino/fighter/gunpod, -/obj/item/grenade/spawnergrenade/casino/fighter/baron, -/obj/item/grenade/spawnergrenade/casino/fighter/scoralis, -/obj/item/grenade/spawnergrenade/casino/fighter/allure, -/obj/item/grenade/spawnergrenade/casino/fighter/pinnace, -/obj/item/bluespace_harpoon, -/obj/item/stock_parts/scanning_module/hyper, -/obj/item/cataloguer/compact/pathfinder, -/obj/item/capture_crystal/basic, -/obj/item/capture_crystal/basic, -/obj/item/capture_crystal/basic, -/obj/item/capture_crystal/basic, -/obj/item/capture_crystal/great, -/obj/item/capture_crystal/great, -/obj/item/capture_crystal/ultra, -/obj/item/capture_crystal/ultra, -/obj/item/denecrotizer, -/obj/item/denecrotizer, -/obj/effect/floor_decal/industrial/loading, -/obj/effect/floor_decal/techfloor{ - dir = 9 - }, -/turf/simulated/floor/tiled/techmaint, -/area/shuttle/tabiranth) - -(1,1,1) = {" -ba -ba -ba -ba -aa -ac -aH -ac -bt -ab -aa -ac -ad -ad -ad -ad -ba -"} -(2,1,1) = {" -aa -ac -ah -ah -ad -ad -aK -ad -ad -ad -ad -ac -bP -bq -bx -ad -aa -"} -(3,1,1) = {" -ab -ad -ai -bO -au -ac -aL -ad -aN -aX -bi -bM -bk -br -by -ac -ab -"} -(4,1,1) = {" -ac -ac -aj -aq -av -aD -aF -ad -bJ -aC -bb -ac -ad -ad -ac -bE -bG -"} -(5,1,1) = {" -ad -ae -ak -ar -aw -aw -aG -ad -aU -aZ -bc -ad -bl -bs -bz -ac -ac -"} -(6,1,1) = {" -ad -af -al -as -as -as -aR -bh -ap -aW -bd -bA -bm -aQ -bI -bF -ad -"} -(7,1,1) = {" -ad -ag -am -at -ax -ax -aI -bj -aV -bg -be -ad -bn -bu -bB -ac -ac -"} -(8,1,1) = {" -ac -ac -an -bO -aB -aE -aJ -ad -aS -aY -bf -ac -ad -ad -ac -bE -bG -"} -(9,1,1) = {" -ab -ad -ao -aq -aP -ac -aM -ad -aN -bH -bK -bN -bo -bv -bC -ac -ab -"} -(10,1,1) = {" -aa -ac -ay -ay -ad -ad -aO -ad -ad -ad -ad -ac -bp -bw -bD -ad -aa -"} -(11,1,1) = {" -ba -ba -ba -ba -aa -ac -aT -ac -bL -ab -aa -ac -ad -ad -ad -ad -ba -"} diff --git a/maps/offmap_vr/talon/talon_v2.dm b/maps/offmap_vr/talon/talon_v2.dm index 64832feab0..73db3be473 100644 --- a/maps/offmap_vr/talon/talon_v2.dm +++ b/maps/offmap_vr/talon/talon_v2.dm @@ -11,7 +11,7 @@ var/global/list/latejoin_talon = list() /datum/spawnpoint/talon display_name = "ITV Talon Cryo" - restrict_job = list("Talon Captain", "Talon Pilot", "Talon Engineer", "Talon Doctor", "Talon Guard", "Talon Miner") + restrict_job = list(JOB_TALON_CAPTAIN, JOB_TALON_PILOT, JOB_TALON_ENGINEER, JOB_TALON_DOCTOR, JOB_TALON_GUARD, JOB_TALON_MINER) msg = "has come out of cryostasis" announce_channel = "Talon" @@ -1012,4 +1012,4 @@ personally I recommend using the ship's boat if you need to evacuate, but if you /obj/item/tank/phoron/pressurized, /obj/structure/closet/crate/secure/phoron //HQ FUEL TANKS ) - ) \ No newline at end of file + ) diff --git a/maps/om_adventure/grasscave.dm b/maps/om_adventure/grasscave.dm index be3a3ec2dc..3dc714066d 100644 --- a/maps/om_adventure/grasscave.dm +++ b/maps/om_adventure/grasscave.dm @@ -344,7 +344,7 @@ icon = 'icons/mob/randomlandmarks.dmi' icon_state = "monster" - faction = "spookyland" + faction = FACTION_SPOOKYLAND prob_spawn = 50 prob_fall = 10 //guard = 10 //Don't wander too far, to stay alive. @@ -360,4 +360,4 @@ /mob/living/simple_mob/mechanical/infectionbot = 30, /mob/living/simple_mob/animal/passive/cat/bluespace = 1, /mob/living/simple_mob/animal/passive/dog/void_puppy = 1 - ) \ No newline at end of file + ) diff --git a/maps/southern_cross/items/encryptionkey_sc.dm b/maps/southern_cross/items/encryptionkey_sc.dm index 3fbbd05a68..7346efef35 100644 --- a/maps/southern_cross/items/encryptionkey_sc.dm +++ b/maps/southern_cross/items/encryptionkey_sc.dm @@ -1,30 +1,30 @@ /obj/item/encryptionkey/pilot name = "pilot's encryption key" icon_state = "com_cypherkey" - channels = list("Supply" = 1, "Explorer" = 1) + channels = list(CHANNEL_SUPPLY = 1, CHANNEL_EXPLORATION = 1) /obj/item/encryptionkey/explorer name = "explorer radio encryption key" icon_state = "com_cypherkey" - channels = list("Explorer" = 1, "Science" = 1) + channels = list(CHANNEL_EXPLORATION = 1, CHANNEL_SCIENCE = 1) /obj/item/encryptionkey/sar name = "sar's encryption key" icon_state = "med_cypherkey" - channels = list("Medical" = 1, "Explorer" = 1) + channels = list(CHANNEL_MEDICAL = 1, CHANNEL_EXPLORATION = 1) /obj/item/encryptionkey/heads/hop name = "head of personnel's encryption key" icon_state = "hop_cypherkey" - channels = list("Supply" = 1, "Service" = 1, "Command" = 1, "Security" = 1, "Explorer" = 1) + channels = list(CHANNEL_SUPPLY = 1, CHANNEL_SERVICE = 1, CHANNEL_COMMAND = 1, CHANNEL_SECURITY = 1, CHANNEL_EXPLORATION = 1) /obj/item/encryptionkey/heads/ai_integrated name = "ai integrated encryption key" desc = "Integrated encryption key" icon_state = "cap_cypherkey" - channels = list("Command" = 1, "Security" = 1, "Engineering" = 1, "Science" = 1, "Medical" = 1, "Supply" = 1, "Service" = 1, "AI Private" = 1, "Explorer" = 1) + channels = list(CHANNEL_COMMAND = 1, CHANNEL_SECURITY = 1, CHANNEL_ENGINEERING = 1, CHANNEL_SCIENCE = 1, CHANNEL_MEDICAL = 1, CHANNEL_SUPPLY = 1, CHANNEL_SERVICE = 1, CHANNEL_AI_PRIVATE = 1, CHANNEL_EXPLORATION = 1) /obj/item/encryptionkey/heads/captain name = "site manager's encryption key" icon_state = "cap_cypherkey" - channels = list("Command" = 1, "Security" = 1, "Engineering" = 1, "Science" = 1, "Medical" = 1, "Supply" = 1, "Service" = 1, "Explorer" = 1) \ No newline at end of file + channels = list(CHANNEL_COMMAND = 1, CHANNEL_SECURITY = 1, CHANNEL_ENGINEERING = 1, CHANNEL_SCIENCE = 1, CHANNEL_MEDICAL = 1, CHANNEL_SUPPLY = 1, CHANNEL_SERVICE = 1, CHANNEL_EXPLORATION = 1) diff --git a/maps/southern_cross/job/outfits.dm b/maps/southern_cross/job/outfits.dm index 973d0b0016..d290cd00dd 100644 --- a/maps/southern_cross/job/outfits.dm +++ b/maps/southern_cross/job/outfits.dm @@ -25,19 +25,19 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go permit.set_name(H.real_name) /decl/hierarchy/outfit/job/explorer2/technician - name = OUTFIT_JOB_NAME("Explorer Technician") - belt = /obj/item/storage/belt/utility/full + name = OUTFIT_JOB_NAME(JOB_ALT_EXPLORERE_TECHNICIAN) + belt = /obj/item/weapon/storage/belt/utility/full pda_slot = slot_l_store - id_pda_assignment = "Explorer Technician" + id_pda_assignment = JOB_ALT_EXPLORERE_TECHNICIAN /decl/hierarchy/outfit/job/explorer2/medic - name = OUTFIT_JOB_NAME("Explorer Medic") - l_hand = /obj/item/storage/firstaid/regular + name = OUTFIT_JOB_NAME(JOB_ALT_EXPLORER_MEDIC) + l_hand = /obj/item/weapon/storage/firstaid/regular pda_slot = slot_l_store - id_pda_assignment = "Explorer Medic" + id_pda_assignment = JOB_ALT_EXPLORER_MEDIC /decl/hierarchy/outfit/job/pilot - name = OUTFIT_JOB_NAME("Pilot") + name = OUTFIT_JOB_NAME(JOB_PILOT) shoes = /obj/item/clothing/shoes/black uniform = /obj/item/clothing/under/rank/pilot1/no_webbing suit = /obj/item/clothing/suit/storage/toggle/bomber/pilot @@ -47,9 +47,9 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go uniform_accessories = list(/obj/item/clothing/accessory/storage/webbing/pilot1 = 1) id_slot = slot_wear_id pda_slot = slot_belt - pda_type = /obj/item/pda //VOREStation Edit - Civilian - id_type = /obj/item/card/id/civilian/pilot - id_pda_assignment = "Pilot" + pda_type = /obj/item/device/pda //VOREStation Edit - Civilian + id_type = /obj/item/weapon/card/id/civilian/pilot + id_pda_assignment = JOB_PILOT flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL /decl/hierarchy/outfit/job/medical/sar diff --git a/maps/southern_cross/loadout/loadout_accessories.dm b/maps/southern_cross/loadout/loadout_accessories.dm index 3febe42b2e..4604d6354d 100644 --- a/maps/southern_cross/loadout/loadout_accessories.dm +++ b/maps/southern_cross/loadout/loadout_accessories.dm @@ -1,34 +1,34 @@ /datum/gear/accessory/brown_vest display_name = "webbing, brown" path = /obj/item/clothing/accessory/storage/brown_vest - allowed_roles = list("Engineer","Atmospheric Technician","Chief Engineer","Security Officer","Detective","Head of Security","Warden","Paramedic","Chief Medical Officer","Medical Doctor","Search and Rescue","Explorer","Shaft Miner") + allowed_roles = list(JOB_ENGINEER,JOB_ATMOSPHERIC_TECHNICIAN,JOB_CHIEF_ENGINEER,JOB_SECURITY_OFFICER,JOB_DETECTIVE,JOB_HEAD_OF_SECURITY,JOB_WARDEN,JOB_PARAMEDIC,JOB_CHIEF_MEDICAL_OFFICER,JOB_MEDICAL_DOCTOR,"Search and Rescue","Explorer",JOB_SHAFT_MINER) /datum/gear/accessory/black_vest display_name = "webbing, black" path = /obj/item/clothing/accessory/storage/black_vest - allowed_roles = list("Engineer","Atmospheric Technician","Chief Engineer","Security Officer","Detective","Head of Security","Warden","Paramedic","Chief Medical Officer","Medical Doctor","Search and Rescue","Explorer","Shaft Miner") + allowed_roles = list(JOB_ENGINEER,JOB_ATMOSPHERIC_TECHNICIAN,JOB_CHIEF_ENGINEER,JOB_SECURITY_OFFICER,JOB_DETECTIVE,JOB_HEAD_OF_SECURITY,JOB_WARDEN,JOB_PARAMEDIC,JOB_CHIEF_MEDICAL_OFFICER,JOB_MEDICAL_DOCTOR,"Search and Rescue","Explorer",JOB_SHAFT_MINER) /datum/gear/accessory/white_vest display_name = "webbing, white" path = /obj/item/clothing/accessory/storage/white_vest - allowed_roles = list("Engineer","Atmospheric Technician","Chief Engineer","Security Officer","Detective","Head of Security","Warden","Paramedic","Chief Medical Officer","Medical Doctor","Search and Rescue","Explorer","Shaft Miner") + allowed_roles = list(JOB_ENGINEER,JOB_ATMOSPHERIC_TECHNICIAN,JOB_CHIEF_ENGINEER,JOB_SECURITY_OFFICER,JOB_DETECTIVE,JOB_HEAD_OF_SECURITY,JOB_WARDEN,JOB_PARAMEDIC,JOB_CHIEF_MEDICAL_OFFICER,JOB_MEDICAL_DOCTOR,"Search and Rescue","Explorer",JOB_SHAFT_MINER) /datum/gear/accessory/brown_drop_pouches display_name = "drop pouches, brown" path = /obj/item/clothing/accessory/storage/brown_drop_pouches - allowed_roles = list("Engineer","Atmospheric Technician","Chief Engineer","Security Officer","Detective","Head of Security","Warden","Paramedic","Chief Medical Officer","Medical Doctor","Search and Rescue","Explorer","Shaft Miner") + allowed_roles = list(JOB_ENGINEER,JOB_ATMOSPHERIC_TECHNICIAN,JOB_CHIEF_ENGINEER,JOB_SECURITY_OFFICER,JOB_DETECTIVE,JOB_HEAD_OF_SECURITY,JOB_WARDEN,JOB_PARAMEDIC,JOB_CHIEF_MEDICAL_OFFICER,JOB_MEDICAL_DOCTOR,"Search and Rescue","Explorer",JOB_SHAFT_MINER) /datum/gear/accessory/black_drop_pouches display_name = "drop pouches, black" path = /obj/item/clothing/accessory/storage/black_drop_pouches - allowed_roles = list("Engineer","Atmospheric Technician","Chief Engineer","Security Officer","Detective","Head of Security","Warden","Paramedic","Chief Medical Officer","Medical Doctor","Search and Rescue","Explorer","Shaft Miner") + allowed_roles = list(JOB_ENGINEER,JOB_ATMOSPHERIC_TECHNICIAN,JOB_CHIEF_ENGINEER,JOB_SECURITY_OFFICER,JOB_DETECTIVE,JOB_HEAD_OF_SECURITY,JOB_WARDEN,JOB_PARAMEDIC,JOB_CHIEF_MEDICAL_OFFICER,JOB_MEDICAL_DOCTOR,"Search and Rescue","Explorer",JOB_SHAFT_MINER) /datum/gear/accessory/white_drop_pouches display_name = "drop pouches, white" path = /obj/item/clothing/accessory/storage/white_drop_pouches - allowed_roles = list("Engineer","Atmospheric Technician","Chief Engineer","Security Officer","Detective","Head of Security","Warden","Paramedic","Chief Medical Officer","Medical Doctor","Search and Rescue","Explorer","Shaft Miner") + allowed_roles = list(JOB_ENGINEER,JOB_ATMOSPHERIC_TECHNICIAN,JOB_CHIEF_ENGINEER,JOB_SECURITY_OFFICER,JOB_DETECTIVE,JOB_HEAD_OF_SECURITY,JOB_WARDEN,JOB_PARAMEDIC,JOB_CHIEF_MEDICAL_OFFICER,JOB_MEDICAL_DOCTOR,"Search and Rescue","Explorer",JOB_SHAFT_MINER) /datum/gear/accessory/holster display_name = "holster selection (Security, CD, HoP)" path = /obj/item/clothing/accessory/holster - allowed_roles = list("Site Manager","Head of Personnel","Security Officer","Warden","Head of Security","Detective","Explorer") \ No newline at end of file + allowed_roles = list(JOB_SITE_MANAGER,JOB_HEAD_OF_PERSONNEL,JOB_SECURITY_OFFICER,JOB_WARDEN,JOB_HEAD_OF_SECURITY,JOB_DETECTIVE,"Explorer") diff --git a/maps/southern_cross/southern_cross_jobs.dm b/maps/southern_cross/southern_cross_jobs.dm index 2f379dcb2e..deb66093b1 100644 --- a/maps/southern_cross/southern_cross_jobs.dm +++ b/maps/southern_cross/southern_cross_jobs.dm @@ -29,7 +29,7 @@ var/const/access_explorer = 43 department = "Command" head_position = 1 department_flag = ENGSEC - faction = "Station" + faction = FACTION_STATION total_positions = 1 spawn_positions = 1 supervisors = "company officials and Corporate Regulations" @@ -60,7 +60,7 @@ var/const/access_explorer = 43 flag = PILOT departments = list(DEPARTMENT_PLANET) department_flag = CIVILIAN - faction = "Station" + faction = FACTION_STATION total_positions = 2 spawn_positions = 2 supervisors = "the Head of Personnel" @@ -77,7 +77,7 @@ var/const/access_explorer = 43 flag = EXPLORER departments = list(DEPARTMENT_RESEARCH, DEPARTMENT_PLANET) department_flag = MEDSCI - faction = "Station" + faction = FACTION_STATION total_positions = 4 spawn_positions = 4 supervisors = "the Research Director" @@ -92,8 +92,8 @@ var/const/access_explorer = 43 /* alt_titles = list( - "Explorer Technician" = /decl/hierarchy/outfit/job/explorer2/technician, - "Explorer Medic" = /decl/hierarchy/outfit/job/explorer2/medic) + JOB_ALT_EXPLORERE_TECHNICIAN = /decl/hierarchy/outfit/job/explorer2/technician, + JOB_ALT_EXPLORER_MEDIC = /decl/hierarchy/outfit/job/explorer2/medic) */ /datum/job/sar @@ -101,7 +101,7 @@ var/const/access_explorer = 43 flag = SAR departments = list(DEPARTMENT_PLANET, DEPARTMENT_MEDICAL) department_flag = MEDSCI - faction = "Station" + faction = FACTION_STATION total_positions = 2 spawn_positions = 2 supervisors = "the Chief Medical Officer" @@ -112,4 +112,4 @@ var/const/access_explorer = 43 min_age_by_species = list(SPECIES_PROMETHEAN = 2) outfit_type = /decl/hierarchy/outfit/job/medical/sar - job_description = "A Search and Rescue operative recovers individuals who are injured or dead on the surface of Sif." \ No newline at end of file + job_description = "A Search and Rescue operative recovers individuals who are injured or dead on the surface of Sif." diff --git a/maps/submaps/depreciated_vr/talon.dm b/maps/submaps/depreciated_vr/talon.dm index c62e20df8f..be4d26c5f4 100644 --- a/maps/submaps/depreciated_vr/talon.dm +++ b/maps/submaps/depreciated_vr/talon.dm @@ -11,7 +11,7 @@ var/global/list/latejoin_talon = list() /datum/spawnpoint/talon display_name = "ITV Talon Cryo" - restrict_job = list("Talon Captain", "Talon Pilot", "Talon Engineer", "Talon Doctor", "Talon Guard") + restrict_job = list(JOB_TALON_CAPTAIN, JOB_TALON_PILOT, JOB_TALON_ENGINEER, JOB_TALON_DOCTOR, JOB_TALON_GUARD) msg = "has come out of cryostasis" announce_channel = "Talon" diff --git a/maps/submaps/pois_vr/debris_field/debrisfield_things.dm b/maps/submaps/pois_vr/debris_field/debrisfield_things.dm index 84b8833854..3a1c644575 100644 --- a/maps/submaps/pois_vr/debris_field/debrisfield_things.dm +++ b/maps/submaps/pois_vr/debris_field/debrisfield_things.dm @@ -18,7 +18,7 @@ /obj/tether_away_spawner/debrisfield/derelict name = "debris field derelict random mob spawner" - faction = "derelict" + faction = FACTION_DERELICT mobs_to_pick_from = list( /mob/living/simple_mob/mechanical/corrupt_maint_drone = 2, /mob/living/simple_mob/mechanical/infectionbot = 3, @@ -27,14 +27,14 @@ /obj/tether_away_spawner/debrisfield/derelict/corrupt_maint_swarm name = "debris field derelict maint swarm" - faction = "derelict" + faction = FACTION_DERELICT mobs_to_pick_from = list( /mob/living/simple_mob/mechanical/corrupt_maint_drone = 4 ) /obj/tether_away_spawner/debrisfield/derelict/mech_wizard name = "debris field derelict wizard lol" - faction = "derelict" + faction = FACTION_DERELICT mobs_to_pick_from = list( /mob/living/simple_mob/mechanical/technomancer_golem = 2 ) diff --git a/maps/submaps/space_rocks/space_rocks_stuff.dm b/maps/submaps/space_rocks/space_rocks_stuff.dm index cacb70e387..ff0d03b854 100644 --- a/maps/submaps/space_rocks/space_rocks_stuff.dm +++ b/maps/submaps/space_rocks/space_rocks_stuff.dm @@ -13,14 +13,14 @@ /obj/tether_away_spawner/asteroidbaddies name = "Asteroid Mob Spawner" - faction = "space_rock" + faction = FACTION_SPACE_ROCK atmos_comp = TRUE prob_spawn = 100 prob_fall = 40 //guard = 20 mobs_to_pick_from = list( - /mob/living/simple_mob/animal/space/bats = 10, - /mob/living/simple_mob/vore/alienanimals/space_jellyfish = 15, + /mob/living/simple_mob/animal/space/bats = 10, + /mob/living/simple_mob/vore/alienanimals/space_jellyfish = 15, /mob/living/simple_mob/vore/alienanimals/startreader = 15, /mob/living/simple_mob/vore/alienanimals/space_ghost = 6, /mob/living/simple_mob/vore/oregrub = 1, diff --git a/maps/tether/submaps/underdark_pois/underdark_things.dm b/maps/tether/submaps/underdark_pois/underdark_things.dm index ba117d701c..2697cfd943 100644 --- a/maps/tether/submaps/underdark_pois/underdark_things.dm +++ b/maps/tether/submaps/underdark_pois/underdark_things.dm @@ -17,7 +17,7 @@ // Adds Phoron Wolf /mob/living/simple_mob/vore/wolf/phoron - faction = "underdark" + faction = FACTION_UNDERDARK movement_cooldown = -1.5 harm_intent_damage = 5 @@ -39,7 +39,7 @@ // Underdark mob spawners /obj/tether_away_spawner/underdark_drone_swarm name = "Underdark Drone Swarm Spawner" - faction = "underdark" + faction = FACTION_UNDERDARK atmos_comp = TRUE prob_spawn = 100 prob_fall = 10 @@ -50,7 +50,7 @@ /obj/tether_away_spawner/underdark_normal name = "Underdark Normal Spawner" - faction = "underdark" + faction = FACTION_UNDERDARK atmos_comp = TRUE prob_spawn = 100 prob_fall = 50 @@ -64,7 +64,7 @@ /obj/tether_away_spawner/underdark_hard name = "Underdark Hard Spawner" - faction = "underdark" + faction = FACTION_UNDERDARK atmos_comp = TRUE prob_spawn = 100 prob_fall = 50 @@ -77,7 +77,7 @@ /obj/tether_away_spawner/underdark_boss name = "Underdark Boss Spawner" - faction = "underdark" + faction = FACTION_UNDERDARK atmos_comp = TRUE prob_spawn = 100 prob_fall = 100 diff --git a/maps/tether/tether_jobs.dm b/maps/tether/tether_jobs.dm index 850fcb8f5e..7dc03f38e2 100644 --- a/maps/tether/tether_jobs.dm +++ b/maps/tether/tether_jobs.dm @@ -9,7 +9,7 @@ visible = FALSE /datum/job/talon_captain - title = "Talon Captain" + title = JOB_TALON_CAPTAIN flag = TALCAP department_flag = TALON departments_managed = list(DEPARTMENT_TALON) @@ -18,7 +18,7 @@ outfit_type = /decl/hierarchy/outfit/job/talon_captain offmap_spawn = TRUE - faction = "Station" //Required for SSjob to allow people to join as it + faction = FACTION_STATION //Required for SSjob to allow people to join as it departments = list(DEPARTMENT_TALON) total_positions = 1 spawn_positions = 1 @@ -31,13 +31,13 @@ dept_time_required = 60 access = list(access_talon) minimal_access = list(access_talon) - alt_titles = list("Talon Commander" = /datum/alt_title/talon_commander) + alt_titles = list(JOB_ALT_TALON_COMMANDER = /datum/alt_title/talon_commander) /datum/alt_title/talon_commander - title = "Talon Commander" + title = JOB_ALT_TALON_COMMANDER /datum/job/talon_doctor - title = "Talon Doctor" + title = JOB_TALON_DOCTOR flag = TALDOC department_flag = TALON job_description = "The doctor's job is to make sure the crew of the ITV Talon remain in good health and to monitor them when away from the ship." @@ -45,7 +45,7 @@ outfit_type = /decl/hierarchy/outfit/job/talon_doctor offmap_spawn = TRUE - faction = "Station" //Required for SSjob to allow people to join as it + faction = FACTION_STATION //Required for SSjob to allow people to join as it departments = list(DEPARTMENT_TALON) total_positions = 1 spawn_positions = 1 @@ -57,14 +57,14 @@ timeoff_factor = 1 access = list(access_talon) minimal_access = list(access_talon) - alt_titles = list("Talon Medic" = /datum/alt_title/talon_medic) + alt_titles = list(JOB_ALT_TALON_MEDIC = /datum/alt_title/talon_medic) /datum/alt_title/talon_medic - title = "Talon Medic" + title = JOB_ALT_TALON_MEDIC /datum/job/talon_engineer - title = "Talon Engineer" + title = JOB_TALON_ENGINEER flag = TALENG department_flag = TALON job_description = "The engineer's job is to ensure the ITV Talon remains in tip-top shape and to repair any damage as well as manage the shields." @@ -72,7 +72,7 @@ outfit_type = /decl/hierarchy/outfit/job/talon_engineer offmap_spawn = TRUE - faction = "Station" //Required for SSjob to allow people to join as it + faction = FACTION_STATION //Required for SSjob to allow people to join as it departments = list(DEPARTMENT_TALON) total_positions = 1 spawn_positions = 1 @@ -84,14 +84,14 @@ timeoff_factor = 1 access = list(access_talon) minimal_access = list(access_talon) - alt_titles = list("Talon Technician" = /datum/alt_title/talon_tech) + alt_titles = list(JOB_ALT_TALON_TECHNICIAN = /datum/alt_title/talon_tech) /datum/alt_title/talon_tech - title = "Talon Technician" + title = JOB_ALT_TALON_TECHNICIAN /datum/job/talon_pilot - title = "Talon Pilot" + title = JOB_TALON_PILOT flag = TALPIL department_flag = TALON job_description = "The pilot's job is to fly the ITV Talon in the most efficient and profitable way possible." @@ -99,7 +99,7 @@ outfit_type = /decl/hierarchy/outfit/job/talon_pilot offmap_spawn = TRUE - faction = "Station" //Required for SSjob to allow people to join as it + faction = FACTION_STATION //Required for SSjob to allow people to join as it departments = list(DEPARTMENT_TALON) total_positions = 1 spawn_positions = 1 @@ -111,14 +111,14 @@ timeoff_factor = 1 access = list(access_talon) minimal_access = list(access_talon) - alt_titles = list("Talon Helmsman" = /datum/alt_title/talon_helmsman) + alt_titles = list(JOB_ALT_TALON_HELMSMAN = /datum/alt_title/talon_helmsman) /datum/alt_title/talon_helmsman - title = "Talon Helmsman" + title = JOB_ALT_TALON_HELMSMAN /datum/job/talon_guard - title = "Talon Guard" + title = JOB_TALON_GUARD flag = TALSEC department_flag = TALON job_description = "The guard's job is to keep the crew of the ITV Talon safe and ensure the captain's wishes are carried out." @@ -126,7 +126,7 @@ outfit_type = /decl/hierarchy/outfit/job/talon_security offmap_spawn = TRUE - faction = "Station" //Required for SSjob to allow people to join as it + faction = FACTION_STATION //Required for SSjob to allow people to join as it departments = list(DEPARTMENT_TALON) total_positions = 1 spawn_positions = 1 @@ -138,13 +138,13 @@ timeoff_factor = 1 access = list(access_talon) minimal_access = list(access_talon) - alt_titles = list("Talon Security" = /datum/alt_title/talon_security) + alt_titles = list(JOB_ALT_TALON_SECURITY = /datum/alt_title/talon_security) /datum/alt_title/talon_security - title = "Talon Security" + title = JOB_ALT_TALON_SECURITY /datum/job/talon_miner - title = "Talon Miner" + title = JOB_TALON_MINER flag = TALMIN department_flag = TALON job_description = "The miner's job is to excavate ores and refine them for the Talon's use, as well as for trading." @@ -152,7 +152,7 @@ outfit_type = /decl/hierarchy/outfit/job/talon_miner offmap_spawn = TRUE - faction = "Station" //Required for SSjob to allow people to join as it + faction = FACTION_STATION //Required for SSjob to allow people to join as it departments = list(DEPARTMENT_TALON) total_positions = 1 spawn_positions = 1 @@ -164,15 +164,15 @@ timeoff_factor = 1 access = list(access_talon) minimal_access = list(access_talon) - alt_titles = list("Talon Excavator" = /datum/alt_title/talon_excavator) + alt_titles = list(JOB_ALT_TALON_EXCAVATOR = /datum/alt_title/talon_excavator) /datum/alt_title/talon_excavator - title = "Talon Excavator" + title = JOB_ALT_TALON_EXCAVATOR //////////////////////TALON OUTFITS////////////////////// /decl/hierarchy/outfit/job/talon_captain - name = OUTFIT_JOB_NAME("Talon Captain") + name = OUTFIT_JOB_NAME(JOB_TALON_CAPTAIN) id_type = /obj/item/card/id/talon/captain id_slot = slot_wear_id @@ -187,7 +187,7 @@ messenger_bag = /obj/item/storage/backpack/messenger/talon /decl/hierarchy/outfit/job/talon_pilot - name = OUTFIT_JOB_NAME("Talon Pilot") + name = OUTFIT_JOB_NAME(JOB_TALON_PILOT) id_type = /obj/item/card/id/talon/pilot id_slot = slot_wear_id @@ -207,7 +207,7 @@ messenger_bag = /obj/item/storage/backpack/messenger/talon /decl/hierarchy/outfit/job/talon_doctor - name = OUTFIT_JOB_NAME("Talon Doctor") + name = OUTFIT_JOB_NAME(JOB_TALON_DOCTOR) hierarchy_type = /decl/hierarchy/outfit/job id_type = /obj/item/card/id/talon/doctor @@ -228,7 +228,7 @@ messenger_bag = /obj/item/storage/backpack/messenger/talon /decl/hierarchy/outfit/job/talon_security - name = OUTFIT_JOB_NAME("Talon Security") + name = OUTFIT_JOB_NAME(JOB_ALT_TALON_SECURITY) hierarchy_type = /decl/hierarchy/outfit/job id_type = /obj/item/card/id/talon/officer @@ -249,7 +249,7 @@ messenger_bag = /obj/item/storage/backpack/messenger/talon /decl/hierarchy/outfit/job/talon_engineer - name = OUTFIT_JOB_NAME("Talon Engineer") + name = OUTFIT_JOB_NAME(JOB_TALON_ENGINEER) hierarchy_type = /decl/hierarchy/outfit/job id_type = /obj/item/card/id/talon/engineer @@ -271,7 +271,7 @@ messenger_bag = /obj/item/storage/backpack/messenger/talon /decl/hierarchy/outfit/job/talon_miner - name = OUTFIT_JOB_NAME("Talon Miner") + name = OUTFIT_JOB_NAME(JOB_TALON_MINER) hierarchy_type = /decl/hierarchy/outfit/job id_type = /obj/item/card/id/talon/miner diff --git a/maps/tether/tether_things.dm b/maps/tether/tether_things.dm index a2253858f7..b06e1f1a82 100644 --- a/maps/tether/tether_things.dm +++ b/maps/tether/tether_things.dm @@ -257,10 +257,6 @@ name = "dorm seven holodeck control" projection_area = /area/crew_quarters/sleep/Dorm_7/holo -/obj/machinery/computer/HolodeckControl/holodorm/warship - name = "warship holodeck control" - projection_area = /area/mothership/holodeck/holo - // Our map is small, if the supermatter is ejected lets not have it just blow up somewhere else /obj/machinery/power/supermatter/touch_map_edge() qdel(src) diff --git a/tgui/packages/tgui-polyfill/index.js b/tgui/packages/tgui-polyfill/index.js index 7c45386d8b..168eed409a 100644 --- a/tgui/packages/tgui-polyfill/index.js +++ b/tgui/packages/tgui-polyfill/index.js @@ -11,5 +11,6 @@ import 'core-js/es'; import 'core-js/web/immediate'; import 'core-js/web/queue-microtask'; import 'core-js/web/timers'; +import 'core-js/full/url'; import 'regenerator-runtime/runtime'; import 'unfetch/polyfill'; diff --git a/tgui/packages/tgui/interfaces/Pda.tsx b/tgui/packages/tgui/interfaces/Pda/index.tsx similarity index 94% rename from tgui/packages/tgui/interfaces/Pda.tsx rename to tgui/packages/tgui/interfaces/Pda/index.tsx index 78ae9669b9..5aaee382be 100644 --- a/tgui/packages/tgui/interfaces/Pda.tsx +++ b/tgui/packages/tgui/interfaces/Pda/index.tsx @@ -1,11 +1,10 @@ import { BooleanLike } from 'common/react'; import { useState } from 'react'; - -import { useBackend } from '../backend'; -import { Box, Button, Flex, Icon, LabeledList, Section } from '../components'; -import { Window } from '../layouts'; +import { useBackend } from 'tgui/backend'; +import { Box, Button, Flex, Icon, LabeledList, Section } from 'tgui/components'; +import { Window } from 'tgui/layouts'; /* This is all basically stolen from routes.js. */ -import { routingError } from '../routes'; +import { routingError } from 'tgui/routes'; type Data = { owner: string; @@ -25,7 +24,7 @@ type Data = { }; }; -const requirePdaInterface = require.context('./pda', false, /\.tsx$/); +const requirePdaInterface = require.context('./pda_screens', false, /\.tsx$/); function getPdaApp(name: string) { let appModule: __WebpackModuleApi.RequireContext; diff --git a/tgui/packages/tgui/interfaces/pda/pda_atmos_scan.tsx b/tgui/packages/tgui/interfaces/Pda/pda_screens/pda_atmos_scan.tsx similarity index 93% rename from tgui/packages/tgui/interfaces/pda/pda_atmos_scan.tsx rename to tgui/packages/tgui/interfaces/Pda/pda_screens/pda_atmos_scan.tsx index 6119b2dfa1..7f114b2327 100644 --- a/tgui/packages/tgui/interfaces/pda/pda_atmos_scan.tsx +++ b/tgui/packages/tgui/interfaces/Pda/pda_screens/pda_atmos_scan.tsx @@ -1,8 +1,7 @@ import { filter } from 'common/collections'; import { decodeHtmlEntities } from 'common/string'; - -import { useBackend } from '../../backend'; -import { Box, LabeledList } from '../../components'; +import { useBackend } from 'tgui/backend'; +import { Box, LabeledList } from 'tgui/components'; type Data = { aircontents: aircontent[]; diff --git a/tgui/packages/tgui/interfaces/pda/pda_janitor.tsx b/tgui/packages/tgui/interfaces/Pda/pda_screens/pda_janitor.tsx similarity index 96% rename from tgui/packages/tgui/interfaces/pda/pda_janitor.tsx rename to tgui/packages/tgui/interfaces/Pda/pda_screens/pda_janitor.tsx index 6edd4a70ef..cdb453fc9e 100644 --- a/tgui/packages/tgui/interfaces/pda/pda_janitor.tsx +++ b/tgui/packages/tgui/interfaces/Pda/pda_screens/pda_janitor.tsx @@ -1,5 +1,5 @@ -import { useBackend } from '../../backend'; -import { Box, LabeledList, Section } from '../../components'; +import { useBackend } from 'tgui/backend'; +import { Box, LabeledList, Section } from 'tgui/components'; type Data = { janitor: { diff --git a/tgui/packages/tgui/interfaces/pda/pda_main_menu.tsx b/tgui/packages/tgui/interfaces/Pda/pda_screens/pda_main_menu.tsx similarity index 95% rename from tgui/packages/tgui/interfaces/pda/pda_main_menu.tsx rename to tgui/packages/tgui/interfaces/Pda/pda_screens/pda_main_menu.tsx index ec02d4d5e7..f28d9dc497 100644 --- a/tgui/packages/tgui/interfaces/pda/pda_main_menu.tsx +++ b/tgui/packages/tgui/interfaces/Pda/pda_screens/pda_main_menu.tsx @@ -1,7 +1,6 @@ import { BooleanLike } from 'common/react'; - -import { useBackend } from '../../backend'; -import { Box, Button, LabeledList, Section } from '../../components'; +import { useBackend } from 'tgui/backend'; +import { Box, Button, LabeledList, Section } from 'tgui/components'; type Data = { owner: string; diff --git a/tgui/packages/tgui/interfaces/pda/pda_manifest.tsx b/tgui/packages/tgui/interfaces/Pda/pda_screens/pda_manifest.tsx similarity index 53% rename from tgui/packages/tgui/interfaces/pda/pda_manifest.tsx rename to tgui/packages/tgui/interfaces/Pda/pda_screens/pda_manifest.tsx index 89e5381035..44db1d924e 100644 --- a/tgui/packages/tgui/interfaces/pda/pda_manifest.tsx +++ b/tgui/packages/tgui/interfaces/Pda/pda_screens/pda_manifest.tsx @@ -1,6 +1,7 @@ -import { useBackend } from '../../backend'; -import { Box } from '../../components'; -import { CrewManifestContent } from '../CrewManifest'; +import { useBackend } from 'tgui/backend'; +import { Box } from 'tgui/components'; + +import { CrewManifestContent } from '../../CrewManifest'; export const pda_manifest = (props) => { const { act, data } = useBackend(); diff --git a/tgui/packages/tgui/interfaces/pda/pda_medical.tsx b/tgui/packages/tgui/interfaces/Pda/pda_screens/pda_medical.tsx similarity index 94% rename from tgui/packages/tgui/interfaces/pda/pda_medical.tsx rename to tgui/packages/tgui/interfaces/Pda/pda_screens/pda_medical.tsx index c2826c2d2f..8b080a9089 100644 --- a/tgui/packages/tgui/interfaces/pda/pda_medical.tsx +++ b/tgui/packages/tgui/interfaces/Pda/pda_screens/pda_medical.tsx @@ -1,6 +1,7 @@ -import { useBackend } from '../../backend'; -import { Box, Button, LabeledList, Section } from '../../components'; -import { GeneralRecord, MedicalRecord, RecordList } from './pda_types'; +import { useBackend } from 'tgui/backend'; +import { Box, Button, LabeledList, Section } from 'tgui/components'; + +import { GeneralRecord, MedicalRecord, RecordList } from '../pda_types'; type Data = { records: { diff --git a/tgui/packages/tgui/interfaces/Pda/pda_screens/pda_messenger.tsx b/tgui/packages/tgui/interfaces/Pda/pda_screens/pda_messenger.tsx new file mode 100644 index 0000000000..bee7b3d5f2 --- /dev/null +++ b/tgui/packages/tgui/interfaces/Pda/pda_screens/pda_messenger.tsx @@ -0,0 +1,463 @@ +import { filter } from 'common/collections'; +import { BooleanLike } from 'common/react'; +import { decodeHtmlEntities } from 'common/string'; +import { ReactNode, useEffect, useRef, useState } from 'react'; +import { useBackend } from 'tgui/backend'; +import { Box, Button, Image, LabeledList, Section } from 'tgui/components'; + +import { fetchRetry } from '../../../http'; + +type Data = { + active_conversation: string; + convo_name: string; + convo_job: string; + messages: message[]; + toff: BooleanLike; + silent: BooleanLike; + convopdas: pda[]; + pdas: pda[]; + charges: number; + plugins: { name: string; icon: string; ref: string }[]; + enable_message_embeds: BooleanLike; +}; + +type pda = { + Name: string; + Reference: string; + Detonate: string; + inconvo: string; +}; + +type message = { + sent: BooleanLike; + owner: string; + job: string; + message: string; + target: string; +}; + +// Really cursed old API that was deprecated before IE8 but still works in IE11 because lol lmao +type IeWindow = Window & + typeof globalThis & { + clipboardData: { + setData: (type: 'Text', text: string) => {}; + }; + }; + +const CopyToClipboardButton = (props: { messages: message[] }) => { + const [showCompletion, setShowCompletion] = useState(false); + + useEffect(() => { + if (showCompletion) { + let timeout = setTimeout(() => { + setShowCompletion(false); + }, 1000); + return () => clearTimeout(timeout); + } + }, [showCompletion]); + + const { messages } = props; + return ( + + ); +}; + +const copyToClipboard = (messages: message[]) => { + let string = ''; + + for (let message of messages) { + if (message.sent) { + string += `You: ${message.message}\n`; + } else { + string += `Them: ${message.message}\n`; + } + } + + let ie_window = window as IeWindow; + ie_window.clipboardData.setData('Text', string); +}; + +export const pda_messenger = (props) => { + const { act, data } = useBackend(); + + const { active_conversation } = data; + + if (active_conversation) { + return ; + } + return ; +}; + +const MessengerList = (props) => { + const { act, data } = useBackend(); + + const { convopdas, pdas, charges, silent, toff } = data; + + return ( + + + + + + + + + + {(!toff && ( + + {!!charges && {charges} charges left.} + {(!convopdas.length && !pdas.length && ( + No other PDAs located. + )) || ( + + + + + )} + + )) || ( + + Messenger Offline. + + )} + + ); +}; + +const PDAList = (props) => { + const { act, data } = useBackend(); + + const { pdas, title, msgAct } = props; + + const { charges, plugins } = data; + + if (!pdas || !pdas.length) { + return
    No PDAs found.
    ; + } + + return ( +
    + {pdas.map((pda) => ( + + + {!!charges && + plugins.map((plugin) => ( + + ))} + + ))} +
    + ); +}; + +const ActiveConversation = (props) => { + const { act, data } = useBackend(); + const { convo_name, convo_job, messages, active_conversation } = data; + const [asciiMode, setAsciiMode] = useState(false); + + return ( +
    + + i.target === active_conversation)} + /> +
    + ); +}; + +/** + * Scrolls to the bottom of section on mount. + */ +const ScrollOnMount = (props: { children: ReactNode }) => { + const { children } = props; + + const ref = useRef(null); + + useEffect(() => { + ref.current?.scrollIntoView(); + }, []); + + return ( +
    + {children} +
    +
    + ); +}; + +const ActiveConversationASCII = (props: { + messages: message[]; + active_conversation: string; +}) => { + const { messages, active_conversation } = props; + + return ( + + {filter(messages, (im: message) => im.target === active_conversation).map( + (im, i) => ( + + {im.sent ? 'You:' : 'Them:'} {decodeHtmlEntities(im.message)} + + ), + )} + + ); +}; + +const findClassMessage = (im, lastIndex, filterArray) => { + if (lastIndex < 0 || lastIndex > filterArray.length) { + return im.sent + ? 'TinderMessage_First_Sent' + : 'TinderMessage_First_Received'; + } + + let lastSent = filterArray[lastIndex].sent; + if (im.sent && lastSent) { + return 'TinderMessage_Subsequent_Sent'; + } else if (!im.sent && !lastSent) { + return 'TinderMessage_Subsequent_Received'; + } + return im.sent ? 'TinderMessage_First_Sent' : 'TinderMessage_First_Received'; +}; + +const ActiveConversationTinder = (props: { + messages: message[]; + active_conversation: string; +}) => { + const { messages, active_conversation } = props; + return ( + + {messages + .filter((im: message) => im.target === active_conversation) + .map((im, i, filterArr) => ( + + ))} + + ); +}; + +const TinderMessage = (props: { im: message; className: string }) => { + const { data } = useBackend(); + const { enable_message_embeds } = data; + const { im, className } = props; + + return ( + <> + + + {decodeHtmlEntities(im.message)} + + + {!!enable_message_embeds && ( + + )} + + ); +}; + +const ALLOWED_HOSTNAMES = ['cdn.discordapp.com', 'i.imgur.com', 'imgur.com']; + +const TinderMessageEmbedAttempt = (props: { + im: message; + className: string; +}) => { + const { im, className } = props; + const [elem, setElem] = useState(null); + + useEffect(() => { + let link = decodeHtmlEntities(im.message.trim()); + + // Early easy check + if (!link.startsWith('https://')) { + return; + } + + // We assume the entire message is a URL, so any spaces disqualify it + if (link.includes(' ')) { + return; + } + + // Try to parse it as a URL. + let url: URL; + try { + url = new URL(link); + } catch (err) { + return; + } + + // Okay, we're pretty damn confident this is a URL now: Check for allowed domains. + if (!ALLOWED_HOSTNAMES.includes(url.hostname)) { + return; + } + + async function resolveUrlToImg(url: URL): Promise { + const headers = { + Accept: 'image/jpeg, image/png, image/gif', + 'User-Agent': 'SS13-Virgo-ImageEmbeds/1.0', + }; + + const response = await fetchRetry(url.toString(), { headers }); + if (!response.ok) { + return null; + } + + let type = response.headers.get('Content-Type'); + + // If we just fetched an image, use it! + if ( + type === 'image/jpeg' || + type === 'image/png' || + type === 'image/gif' + ) { + return url.toString(); + } + + return null; + } + + resolveUrlToImg(url).then((val) => { + if (val) { + setElem(); + } + }); + }, []); + + return elem; +}; + +const TinderMessageEmbed = (props: { + im: message; + className: string; + img: string; +}) => { + const [show, setShow] = useState(false); + + const { im, className, img } = props; + return ( + + + Embed + {show ? ( + + ) : ( + + )} + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/pda/pda_news.tsx b/tgui/packages/tgui/interfaces/Pda/pda_screens/pda_news.tsx similarity index 97% rename from tgui/packages/tgui/interfaces/pda/pda_news.tsx rename to tgui/packages/tgui/interfaces/Pda/pda_screens/pda_news.tsx index 73aead963c..325fd4a107 100644 --- a/tgui/packages/tgui/interfaces/pda/pda_news.tsx +++ b/tgui/packages/tgui/interfaces/Pda/pda_screens/pda_news.tsx @@ -1,8 +1,7 @@ import { BooleanLike } from 'common/react'; import { decodeHtmlEntities } from 'common/string'; - -import { useBackend } from '../../backend'; -import { Box, Button, Image, Section } from '../../components'; +import { useBackend } from 'tgui/backend'; +import { Box, Button, Image, Section } from 'tgui/components'; type Data = { feeds: feed[]; diff --git a/tgui/packages/tgui/interfaces/pda/pda_notekeeper.tsx b/tgui/packages/tgui/interfaces/Pda/pda_screens/pda_notekeeper.tsx similarity index 96% rename from tgui/packages/tgui/interfaces/pda/pda_notekeeper.tsx rename to tgui/packages/tgui/interfaces/Pda/pda_screens/pda_notekeeper.tsx index 81f5ae9f4d..00b906406e 100644 --- a/tgui/packages/tgui/interfaces/pda/pda_notekeeper.tsx +++ b/tgui/packages/tgui/interfaces/Pda/pda_screens/pda_notekeeper.tsx @@ -1,6 +1,6 @@ /* eslint react/no-danger: "off" */ -import { useBackend } from '../../backend'; -import { Box, Button, Section, Table } from '../../components'; +import { useBackend } from 'tgui/backend'; +import { Box, Button, Section, Table } from 'tgui/components'; type Data = { note: string; notename: string }; diff --git a/tgui/packages/tgui/interfaces/Pda/pda_screens/pda_power.tsx b/tgui/packages/tgui/interfaces/Pda/pda_screens/pda_power.tsx new file mode 100644 index 0000000000..4430c8235d --- /dev/null +++ b/tgui/packages/tgui/interfaces/Pda/pda_screens/pda_power.tsx @@ -0,0 +1,5 @@ +import { PowerMonitorContent } from '../../PowerMonitor/PowerMonitorContent'; + +export const pda_power = (props) => { + return ; +}; diff --git a/tgui/packages/tgui/interfaces/pda/pda_security.tsx b/tgui/packages/tgui/interfaces/Pda/pda_screens/pda_security.tsx similarity index 93% rename from tgui/packages/tgui/interfaces/pda/pda_security.tsx rename to tgui/packages/tgui/interfaces/Pda/pda_screens/pda_security.tsx index dbceb364db..d57d8263c7 100644 --- a/tgui/packages/tgui/interfaces/pda/pda_security.tsx +++ b/tgui/packages/tgui/interfaces/Pda/pda_screens/pda_security.tsx @@ -1,6 +1,7 @@ -import { useBackend } from '../../backend'; -import { Box, Button, LabeledList, Section } from '../../components'; -import { GeneralRecord, RecordList, SecurityRecord } from './pda_types'; +import { useBackend } from 'tgui/backend'; +import { Box, Button, LabeledList, Section } from 'tgui/components'; + +import { GeneralRecord, RecordList, SecurityRecord } from '../pda_types'; type Data = { records: { diff --git a/tgui/packages/tgui/interfaces/pda/pda_signaller.tsx b/tgui/packages/tgui/interfaces/Pda/pda_screens/pda_signaller.tsx similarity index 60% rename from tgui/packages/tgui/interfaces/pda/pda_signaller.tsx rename to tgui/packages/tgui/interfaces/Pda/pda_screens/pda_signaller.tsx index 80b8f67152..1b73c6cfea 100644 --- a/tgui/packages/tgui/interfaces/pda/pda_signaller.tsx +++ b/tgui/packages/tgui/interfaces/Pda/pda_screens/pda_signaller.tsx @@ -1,4 +1,4 @@ -import { SignalerContent } from '../Signaler'; +import { SignalerContent } from '../../Signaler'; export const pda_signaller = (props) => { return ; diff --git a/tgui/packages/tgui/interfaces/pda/pda_status_display.tsx b/tgui/packages/tgui/interfaces/Pda/pda_screens/pda_status_display.tsx similarity index 94% rename from tgui/packages/tgui/interfaces/pda/pda_status_display.tsx rename to tgui/packages/tgui/interfaces/Pda/pda_screens/pda_status_display.tsx index d4b248c06b..46f3fb9d5d 100644 --- a/tgui/packages/tgui/interfaces/pda/pda_status_display.tsx +++ b/tgui/packages/tgui/interfaces/Pda/pda_screens/pda_status_display.tsx @@ -1,5 +1,5 @@ -import { useBackend } from '../../backend'; -import { Box, Button, LabeledList } from '../../components'; +import { useBackend } from 'tgui/backend'; +import { Box, Button, LabeledList } from 'tgui/components'; type Data = { records: { message1: string; message2: string } | null }; diff --git a/tgui/packages/tgui/interfaces/pda/pda_supply.tsx b/tgui/packages/tgui/interfaces/Pda/pda_screens/pda_supply.tsx similarity index 93% rename from tgui/packages/tgui/interfaces/pda/pda_supply.tsx rename to tgui/packages/tgui/interfaces/Pda/pda_screens/pda_supply.tsx index 44a83561fa..c4e166cd52 100644 --- a/tgui/packages/tgui/interfaces/pda/pda_supply.tsx +++ b/tgui/packages/tgui/interfaces/Pda/pda_screens/pda_supply.tsx @@ -1,5 +1,5 @@ -import { useBackend } from '../../backend'; -import { Box, LabeledList, Section } from '../../components'; +import { useBackend } from 'tgui/backend'; +import { Box, LabeledList, Section } from 'tgui/components'; type Data = { supply: { diff --git a/tgui/packages/tgui/interfaces/pda/pda_types.ts b/tgui/packages/tgui/interfaces/Pda/pda_types.ts similarity index 95% rename from tgui/packages/tgui/interfaces/pda/pda_types.ts rename to tgui/packages/tgui/interfaces/Pda/pda_types.ts index 6d22b01810..320c1bf0f5 100644 --- a/tgui/packages/tgui/interfaces/pda/pda_types.ts +++ b/tgui/packages/tgui/interfaces/Pda/pda_types.ts @@ -1,4 +1,4 @@ -import { IconProps } from '../../components/Icon'; +import { IconProps } from 'tgui/components/Icon'; /** * Gernal Record data */ diff --git a/tgui/packages/tgui/interfaces/PlayerEffects/PlayerEffectsTabs/ControlAbilities.tsx b/tgui/packages/tgui/interfaces/PlayerEffects/PlayerEffectsTabs/ControlAbilities.tsx new file mode 100644 index 0000000000..366c44cb66 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PlayerEffects/PlayerEffectsTabs/ControlAbilities.tsx @@ -0,0 +1,50 @@ +import { useBackend } from '../../../backend'; +import { Button, Section } from '../../../components'; + +export const ControlAbilities = (props) => { + const { act } = useBackend(); + + return ( +
    + + + + + + + + + + + + + +
    + ); +}; diff --git a/tgui/packages/tgui/interfaces/PlayerEffects/PlayerEffectsTabs/ControlAdmin.tsx b/tgui/packages/tgui/interfaces/PlayerEffects/PlayerEffectsTabs/ControlAdmin.tsx new file mode 100644 index 0000000000..36dbc56161 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PlayerEffects/PlayerEffectsTabs/ControlAdmin.tsx @@ -0,0 +1,47 @@ +import { useBackend } from '../../../backend'; +import { Button, Section } from '../../../components'; + +export const ControlAdmin = (props) => { + const { act } = useBackend(); + + return ( +
    + + + + + + + + + + + + +
    + ); +}; diff --git a/tgui/packages/tgui/interfaces/PlayerEffects/PlayerEffectsTabs/ControlFixes.tsx b/tgui/packages/tgui/interfaces/PlayerEffects/PlayerEffectsTabs/ControlFixes.tsx new file mode 100644 index 0000000000..5e0d2f9f5d --- /dev/null +++ b/tgui/packages/tgui/interfaces/PlayerEffects/PlayerEffectsTabs/ControlFixes.tsx @@ -0,0 +1,20 @@ +import { useBackend } from '../../../backend'; +import { Button, Section } from '../../../components'; + +export const ControlFixes = (props) => { + const { act } = useBackend(); + + return ( +
    + + + +
    + ); +}; diff --git a/tgui/packages/tgui/interfaces/PlayerEffects/PlayerEffectsTabs/ControlInventory.tsx b/tgui/packages/tgui/interfaces/PlayerEffects/PlayerEffectsTabs/ControlInventory.tsx new file mode 100644 index 0000000000..f8b390e8fb --- /dev/null +++ b/tgui/packages/tgui/interfaces/PlayerEffects/PlayerEffectsTabs/ControlInventory.tsx @@ -0,0 +1,29 @@ +import { useBackend } from '../../../backend'; +import { Button, Section } from '../../../components'; + +export const ControlInventory = (props) => { + const { act } = useBackend(); + + return ( +
    + + + + + + +
    + ); +}; diff --git a/tgui/packages/tgui/interfaces/PlayerEffects/PlayerEffectsTabs/ControlMedical.tsx b/tgui/packages/tgui/interfaces/PlayerEffects/PlayerEffectsTabs/ControlMedical.tsx new file mode 100644 index 0000000000..b9884384d1 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PlayerEffects/PlayerEffectsTabs/ControlMedical.tsx @@ -0,0 +1,38 @@ +import { useBackend } from '../../../backend'; +import { Button, Section } from '../../../components'; + +export const ControlMedical = (props) => { + const { act } = useBackend(); + + return ( +
    + + + + + + + + + +
    + ); +}; diff --git a/tgui/packages/tgui/interfaces/PlayerEffects/PlayerEffectsTabs/ControlSmites.tsx b/tgui/packages/tgui/interfaces/PlayerEffects/PlayerEffectsTabs/ControlSmites.tsx new file mode 100644 index 0000000000..8334dfdd38 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PlayerEffects/PlayerEffectsTabs/ControlSmites.tsx @@ -0,0 +1,59 @@ +import { useBackend } from '../../../backend'; +import { Button, Section } from '../../../components'; + +export const ControlSmites = (props) => { + const { act } = useBackend(); + + return ( +
    + + + + + + + + + + + + + + + + +
    + ); +}; diff --git a/tgui/packages/tgui/interfaces/PlayerEffects/index.tsx b/tgui/packages/tgui/interfaces/PlayerEffects/index.tsx new file mode 100644 index 0000000000..b4de1f1945 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PlayerEffects/index.tsx @@ -0,0 +1,60 @@ +import { useState } from 'react'; + +import { useBackend } from '../../backend'; +import { NoticeBox, Tabs } from '../../components'; +import { Window } from '../../layouts'; +import { ControlAbilities } from './PlayerEffectsTabs/ControlAbilities'; +import { ControlAdmin } from './PlayerEffectsTabs/ControlAdmin'; +import { ControlFixes } from './PlayerEffectsTabs/ControlFixes'; +import { ControlInventory } from './PlayerEffectsTabs/ControlInventory'; +import { ControlMedical } from './PlayerEffectsTabs/ControlMedical'; +import { ControlSmites } from './PlayerEffectsTabs/ControlSmites'; +import { Data } from './types'; + +export const PlayerEffects = (props) => { + const { data } = useBackend(); + + const { real_name, player_ckey } = data; + + const [tab, setTab] = useState(0); + + const tabs: React.JSX.Element[] = []; + + tabs[0] = ; + tabs[1] = ; + tabs[2] = ; + tabs[3] = ; + tabs[4] = ; + tabs[5] = ; + + return ( + + + + setTab(0)}> + Smites + + setTab(1)}> + Medical + + setTab(2)}> + Abilities + + setTab(3)}> + Inventory + + setTab(4)}> + Admin + + setTab(5)}> + Fixes + + + + {real_name} played by {player_ckey}. + + {tabs[tab]} + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/PlayerEffects/types.ts b/tgui/packages/tgui/interfaces/PlayerEffects/types.ts new file mode 100644 index 0000000000..74f9211e4e --- /dev/null +++ b/tgui/packages/tgui/interfaces/PlayerEffects/types.ts @@ -0,0 +1,4 @@ +export type Data = { + real_name: string; + player_ckey: string; +}; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/auto_fit_viewport.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/auto_fit_viewport.tsx new file mode 100644 index 0000000000..696b7534d2 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/auto_fit_viewport.tsx @@ -0,0 +1,9 @@ +import { CheckboxInput, FeatureToggle } from '../base'; + +export const auto_fit_viewport: FeatureToggle = { + name: 'Auto fit viewport', + category: 'UI', + description: + 'Automatically adjust vertical split to make map perfectly scaled.', + component: CheckboxInput, +}; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/misc.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/misc.tsx index 33e63600a4..9a7a92d86a 100644 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/misc.tsx +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/misc.tsx @@ -72,3 +72,11 @@ export const AUTO_AFK: FeatureToggle = { 'When enabled, you will automatically be marked as AFK if you are idle for too long.', component: CheckboxInput, }; + +export const MessengerEmbeds: FeatureToggle = { + name: 'Messenger Embeds', + category: 'UI', + description: + 'When enabled, PDAs and Communicators will attempt to embed links from discord & imgur.', + component: CheckboxInput, +}; diff --git a/tgui/packages/tgui/interfaces/VorePanel/VoreUserPreferences.tsx.tsx b/tgui/packages/tgui/interfaces/VorePanel/VoreUserPreferences.tsx similarity index 100% rename from tgui/packages/tgui/interfaces/VorePanel/VoreUserPreferences.tsx.tsx rename to tgui/packages/tgui/interfaces/VorePanel/VoreUserPreferences.tsx diff --git a/tgui/packages/tgui/interfaces/VorePanel/index.tsx b/tgui/packages/tgui/interfaces/VorePanel/index.tsx index 7e5bdfe482..ad2547cf08 100644 --- a/tgui/packages/tgui/interfaces/VorePanel/index.tsx +++ b/tgui/packages/tgui/interfaces/VorePanel/index.tsx @@ -6,7 +6,7 @@ import { Window } from '../../layouts'; import { Data } from './types'; import { VoreBellySelectionAndCustomization } from './VoreBellySelectionAndCustomization'; import { VoreInsidePanel } from './VoreInsidePanel'; -import { VoreUserPreferences } from './VoreUserPreferences.tsx'; +import { VoreUserPreferences } from './VoreUserPreferences'; /** * There are three main sections to this UI. diff --git a/tgui/packages/tgui/interfaces/pAIMedrecords.tsx b/tgui/packages/tgui/interfaces/pAIMedrecords.tsx index f9306fca50..779b6ec427 100644 --- a/tgui/packages/tgui/interfaces/pAIMedrecords.tsx +++ b/tgui/packages/tgui/interfaces/pAIMedrecords.tsx @@ -3,7 +3,7 @@ import { BooleanLike } from 'common/react'; import { useBackend } from '../backend'; import { Box, Button, LabeledList, Section } from '../components'; import { Window } from '../layouts'; -import { GeneralRecord, MedicalRecord, RecordList } from './pda/pda_types'; +import { GeneralRecord, MedicalRecord, RecordList } from './Pda/pda_types'; type Data = { records: RecordList; diff --git a/tgui/packages/tgui/interfaces/pAISecrecords.tsx b/tgui/packages/tgui/interfaces/pAISecrecords.tsx index 12eae31246..95644c1ff2 100644 --- a/tgui/packages/tgui/interfaces/pAISecrecords.tsx +++ b/tgui/packages/tgui/interfaces/pAISecrecords.tsx @@ -3,7 +3,7 @@ import { BooleanLike } from 'common/react'; import { useBackend } from '../backend'; import { Box, Button, LabeledList, Section } from '../components'; import { Window } from '../layouts'; -import { GeneralRecord, RecordList, SecurityRecord } from './pda/pda_types'; +import { GeneralRecord, RecordList, SecurityRecord } from './Pda/pda_types'; type Data = { records: RecordList; diff --git a/tgui/packages/tgui/interfaces/pda/pda_messenger.tsx b/tgui/packages/tgui/interfaces/pda/pda_messenger.tsx deleted file mode 100644 index b98fe2a01d..0000000000 --- a/tgui/packages/tgui/interfaces/pda/pda_messenger.tsx +++ /dev/null @@ -1,292 +0,0 @@ -import { filter } from 'common/collections'; -import { BooleanLike } from 'common/react'; -import { decodeHtmlEntities } from 'common/string'; -import { useState } from 'react'; - -import { useBackend } from '../../backend'; -import { Box, Button, LabeledList, Section } from '../../components'; - -type Data = { - active_conversation: string; - convo_name: string; - convo_job: string; - messages: message[]; - toff: BooleanLike; - silent: BooleanLike; - convopdas: pda[]; - pdas: pda[]; - charges: number; - plugins: { name: string; icon: string; ref: string }[]; -}; - -type pda = { - Name: string; - Reference: string; - Detonate: string; - inconvo: string; -}; - -type message = { - sent: BooleanLike; - owner: string; - job: string; - message: string; - target: string; -}; - -export const pda_messenger = (props) => { - const { act, data } = useBackend(); - - const { active_conversation } = data; - - if (active_conversation) { - return ; - } - return ; -}; - -const findClassMessage = (im, lastIndex, filterArray) => { - if (lastIndex < 0 || lastIndex > filterArray.length) { - return im.sent - ? 'TinderMessage_First_Sent' - : 'TinderMessage_First_Received'; - } - - let lastSent = filterArray[lastIndex].sent; - if (im.sent && lastSent) { - return 'TinderMessage_Subsequent_Sent'; - } else if (!im.sent && !lastSent) { - return 'TinderMessage_Subsequent_Received'; - } - return im.sent ? 'TinderMessage_First_Sent' : 'TinderMessage_First_Received'; -}; - -const ActiveConversation = (props) => { - const { act, data } = useBackend(); - - const { convo_name, convo_job, messages, active_conversation } = data; - - const [clipboardMode, setClipboardMode] = useState(false); - - let body = ( -
    setClipboardMode(!clipboardMode)} - /> - } - height="450px" - stretchContents - > - -
    - {filter( - messages, - (im: message) => im.target === active_conversation, - ).map((im, i, filterArr) => ( - - - {decodeHtmlEntities(im.message)} - - - ))} -
    - -
    - ); - - if (clipboardMode) { - body = ( -
    setClipboardMode(!clipboardMode)} - /> - } - height="450px" - stretchContents - > - -
    - {filter( - messages, - (im: message) => im.target === active_conversation, - ).map((im, i) => ( - - {im.sent ? 'You:' : 'Them:'} {decodeHtmlEntities(im.message)} - - ))} -
    - -
    - ); - } - - return ( - - - - - - - {body} - - ); -}; - -const MessengerList = (props) => { - const { act, data } = useBackend(); - - const { convopdas, pdas, charges, silent, toff } = data; - - return ( - - - - - - - - - - {(!toff && ( - - {!!charges && {charges} charges left.} - {(!convopdas.length && !pdas.length && ( - No other PDAs located. - )) || ( - - - - - )} - - )) || ( - - Messenger Offline. - - )} - - ); -}; - -const PDAList = (props) => { - const { act, data } = useBackend(); - - const { pdas, title, msgAct } = props; - - const { charges, plugins } = data; - - if (!pdas || !pdas.length) { - return
    No PDAs found.
    ; - } - - return ( -
    - {pdas.map((pda) => ( - - - {!!charges && - plugins.map((plugin) => ( - - ))} - - ))} -
    - ); -}; diff --git a/tgui/packages/tgui/interfaces/pda/pda_power.tsx b/tgui/packages/tgui/interfaces/pda/pda_power.tsx deleted file mode 100644 index 431c96a497..0000000000 --- a/tgui/packages/tgui/interfaces/pda/pda_power.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { PowerMonitorContent } from '../PowerMonitor/PowerMonitorContent'; - -export const pda_power = (props) => { - return ; -}; diff --git a/tgui/public/tgui-panel.bundle.js b/tgui/public/tgui-panel.bundle.js index 3f28f897a5..705a833353 100644 --- a/tgui/public/tgui-panel.bundle.js +++ b/tgui/public/tgui-panel.bundle.js @@ -1,4 +1,4 @@ -(function(){(function(){var Fc={75614:function(d,h,t){"use strict";/** +(function(){(function(){var Fc={75614:function(d,m,t){"use strict";/** * @license React * react-dom.production.min.js * @@ -6,7 +6,7 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */function r(e,n){return n!=null&&typeof Symbol!="undefined"&&n[Symbol.hasInstance]?!!n[Symbol.hasInstance](e):e instanceof n}function o(e){"@swc/helpers - typeof";return e&&typeof Symbol!="undefined"&&e.constructor===Symbol?"symbol":typeof e}var i=t(61358),s=t(20686);function u(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,a=1;an}return!1}function j(e,n,a,c,O,M,$){this.acceptsBooleans=n===2||n===3||n===4,this.attributeName=c,this.attributeNamespace=O,this.mustUseProperty=a,this.propertyName=e,this.type=n,this.sanitizeURL=M,this.removeEmptyString=$}var B={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){B[e]=new j(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var n=e[0];B[n]=new j(n,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){B[e]=new j(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){B[e]=new j(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){B[e]=new j(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){B[e]=new j(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){B[e]=new j(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){B[e]=new j(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){B[e]=new j(e,5,!1,e.toLowerCase(),null,!1,!1)});var F=/[\-:]([a-z])/g;function C(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var n=e.replace(F,C);B[n]=new j(n,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var n=e.replace(F,C);B[n]=new j(n,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var n=e.replace(F,C);B[n]=new j(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){B[e]=new j(e,1,!1,e.toLowerCase(),null,!1,!1)}),B.xlinkHref=new j("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){B[e]=new j(e,1,!1,e.toLowerCase(),null,!0,!0)});function N(e,n,a,c){var O=B.hasOwnProperty(n)?B[n]:null;(O!==null?O.type!==0:c||!(2X||O[$]!==M[X]){var dt="\n"+O[$].replace(" at new "," at ");return e.displayName&&dt.includes("")&&(dt=dt.replace("",e.displayName)),dt}while(1<=$&&0<=X);break}}}finally{vt=!1,Error.prepareStackTrace=a}return(e=e?e.displayName||e.name:"")?nt(e):""}function bt(e){switch(e.tag){case 5:return nt(e.type);case 16:return nt("Lazy");case 13:return nt("Suspense");case 19:return nt("SuspenseList");case 0:case 2:case 15:return e=mt(e.type,!1),e;case 11:return e=mt(e.type.render,!1),e;case 1:return e=mt(e.type,!0),e;default:return""}}function gt(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case K:return"Fragment";case z:return"Portal";case J:return"Profiler";case k:return"StrictMode";case ct:return"Suspense";case ot:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case _:return(e.displayName||"Context")+".Consumer";case G:return(e._context.displayName||"Context")+".Provider";case Q:var n=e.render;return e=e.displayName,e||(e=n.displayName||n.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ut:return n=e.displayName||null,n!==null?n:gt(e.type)||"Memo";case W:n=e._payload,e=e._init;try{return gt(e(n))}catch(a){}}return null}function pt(e){var n=e.type;switch(e.tag){case 24:return"Cache";case 9:return(n.displayName||"Context")+".Consumer";case 10:return(n._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=n.render,e=e.displayName||e.name||"",n.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return n;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return gt(n);case 8:return n===k?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n}return null}function Dt(e){switch(typeof e=="undefined"?"undefined":o(e)){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function ve(e){var n=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function de(e){var n=ve(e)?"checked":"value",a=Object.getOwnPropertyDescriptor(e.constructor.prototype,n),c=""+e[n];if(!e.hasOwnProperty(n)&&typeof a!="undefined"&&typeof a.get=="function"&&typeof a.set=="function"){var O=a.get,M=a.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return O.call(this)},set:function(X){c=""+X,M.call(this,X)}}),Object.defineProperty(e,n,{enumerable:a.enumerable}),{getValue:function(){return c},setValue:function(X){c=""+X},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}function Jt(e){e._valueTracker||(e._valueTracker=de(e))}function Ct(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var a=n.getValue(),c="";return e&&(c=ve(e)?e.checked?"true":"false":e.value),e=c,e!==a?(n.setValue(e),!0):!1}function Nt(e){if(e=e||(typeof document!="undefined"?document:void 0),typeof e=="undefined")return null;try{return e.activeElement||e.body}catch(n){return e.body}}function Wt(e,n){var a=n.checked;return Z({},n,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:a!=null?a:e._wrapperState.initialChecked})}function Ut(e,n){var a=n.defaultValue==null?"":n.defaultValue,c=n.checked!=null?n.checked:n.defaultChecked;a=Dt(n.value!=null?n.value:a),e._wrapperState={initialChecked:c,initialValue:a,controlled:n.type==="checkbox"||n.type==="radio"?n.checked!=null:n.value!=null}}function ae(e,n){n=n.checked,n!=null&&N(e,"checked",n,!1)}function ie(e,n){ae(e,n);var a=Dt(n.value),c=n.type;if(a!=null)c==="number"?(a===0&&e.value===""||e.value!=a)&&(e.value=""+a):e.value!==""+a&&(e.value=""+a);else if(c==="submit"||c==="reset"){e.removeAttribute("value");return}n.hasOwnProperty("value")?Ft(e,n.type,a):n.hasOwnProperty("defaultValue")&&Ft(e,n.type,Dt(n.defaultValue)),n.checked==null&&n.defaultChecked!=null&&(e.defaultChecked=!!n.defaultChecked)}function te(e,n,a){if(n.hasOwnProperty("value")||n.hasOwnProperty("defaultValue")){var c=n.type;if(!(c!=="submit"&&c!=="reset"||n.value!==void 0&&n.value!==null))return;n=""+e._wrapperState.initialValue,a||n===e.value||(e.value=n),e.defaultValue=n}a=e.name,a!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,a!==""&&(e.name=a)}function Ft(e,n,a){(n!=="number"||Nt(e.ownerDocument)!==e)&&(a==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+a&&(e.defaultValue=""+a))}var Bt=Array.isArray;function At(e,n,a,c){if(e=e.options,n){n={};for(var O=0;O"+n.valueOf().toString()+"",n=Se.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;n.firstChild;)e.appendChild(n.firstChild)}});function le(e,n){if(n){var a=e.firstChild;if(a&&a===e.lastChild&&a.nodeType===3){a.nodeValue=n;return}}e.textContent=n}var Kt={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Gt=["Webkit","ms","Moz","O"];Object.keys(Kt).forEach(function(e){Gt.forEach(function(n){n=n+e.charAt(0).toUpperCase()+e.substring(1),Kt[n]=Kt[e]})});function Me(e,n,a){return n==null||typeof n=="boolean"||n===""?"":a||typeof n!="number"||n===0||Kt.hasOwnProperty(e)&&Kt[e]?(""+n).trim():n+"px"}function Ze(e,n){e=e.style;for(var a in n)if(n.hasOwnProperty(a)){var c=a.indexOf("--")===0,O=Me(a,n[a],c);a==="float"&&(a="cssFloat"),c?e.setProperty(a,O):e[a]=O}}var tr=Z({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function fn(e,n){if(n){if(tr[e]&&(n.children!=null||n.dangerouslySetInnerHTML!=null))throw Error(u(137,e));if(n.dangerouslySetInnerHTML!=null){if(n.children!=null)throw Error(u(60));if(typeof n.dangerouslySetInnerHTML!="object"||!("__html"in n.dangerouslySetInnerHTML))throw Error(u(61))}if(n.style!=null&&typeof n.style!="object")throw Error(u(62))}}function Un(e,n){if(e.indexOf("-")===-1)return typeof n.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Pn=null;function cr(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var rt=null,xt=null,st=null;function yt(e){if(e=Ma(e)){if(typeof rt!="function")throw Error(u(280));var n=e.stateNode;n&&(n=ja(n),rt(e.stateNode,e.type,n))}}function Tt(e){xt?st?st.push(e):st=[e]:xt=e}function Lt(){if(xt){var e=xt,n=st;if(st=xt=null,yt(e),n)for(e=0;e>>=0,e===0?32:31-(Dn(e)/Er|0)|0}var er=64,hn=4194304;function pr(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Ln(e,n){var a=e.pendingLanes;if(a===0)return 0;var c=0,O=e.suspendedLanes,M=e.pingedLanes,$=a&268435455;if($!==0){var X=$&~O;X!==0?c=pr(X):(M&=$,M!==0&&(c=pr(M)))}else $=a&~O,$!==0?c=pr($):M!==0&&(c=pr(M));if(c===0)return 0;if(n!==0&&n!==c&&!(n&O)&&(O=c&-c,M=n&-n,O>=M||O===16&&(M&4194240)!==0))return n;if(c&4&&(c|=a&16),n=e.entangledLanes,n!==0)for(e=e.entanglements,n&=c;0a;a++)n.push(e);return n}function Bn(e,n,a){e.pendingLanes|=n,n!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,n=31-On(n),e[n]=a}function To(e,n){var a=e.pendingLanes&~n;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=n,e.mutableReadLanes&=n,e.entangledLanes&=n,n=e.entanglements;var c=e.eventTimes;for(e=e.expirationTimes;0=_a),Pi=" ",Ci=!1;function ms(e,n){switch(e){case"keyup":return mu.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function gs(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var so=!1;function ys(e,n){switch(e){case"compositionend":return gs(n);case"keypress":return n.which!==32?null:(Ci=!0,Pi);case"textInput":return e=n.data,e===Pi&&Ci?null:e;default:return null}}function xs(e,n){if(so)return e==="compositionend"||!Ai&&ms(e,n)?(e=gn(),be=se=Vt=null,so=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1=n)return{node:a,offset:n-e};e=c}t:{for(;a;){if(a.nextSibling){a=a.nextSibling;break t}a=a.parentNode}a=void 0}a=Es(a)}}function Ea(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?Ea(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function Ts(){for(var e=window,n=Nt();r(n,e.HTMLIFrameElement);){try{var a=typeof n.contentWindow.location.href=="string"}catch(c){a=!1}if(a)e=n.contentWindow;else break;n=Nt(e.document)}return n}function Ni(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}function na(e){var n=Ts(),a=e.focusedElem,c=e.selectionRange;if(n!==a&&a&&a.ownerDocument&&Ea(a.ownerDocument.documentElement,a)){if(c!==null&&Ni(a)){if(n=c.start,e=c.end,e===void 0&&(e=n),"selectionStart"in a)a.selectionStart=n,a.selectionEnd=Math.min(e,a.value.length);else if(e=(n=a.ownerDocument||document)&&n.defaultView||window,e.getSelection){e=e.getSelection();var O=a.textContent.length,M=Math.min(c.start,O);c=c.end===void 0?M:Math.min(c.end,O),!e.extend&&M>c&&(O=c,c=M,M=O),O=Os(a,M);var $=Os(a,c);O&&$&&(e.rangeCount!==1||e.anchorNode!==O.node||e.anchorOffset!==O.offset||e.focusNode!==$.node||e.focusOffset!==$.offset)&&(n=n.createRange(),n.setStart(O.node,O.offset),e.removeAllRanges(),M>c?(e.addRange(n),e.extend($.node,$.offset)):(n.setEnd($.node,$.offset),e.addRange(n)))}}for(n=[],e=a;e=e.parentNode;)e.nodeType===1&&n.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof a.focus=="function"&&a.focus(),a=0;a=document.documentMode,Mo=null,Li=null,Oa=null,Is=!1;function Bi(e,n,a){var c=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;Is||Mo==null||Mo!==Nt(c)||(c=Mo,"selectionStart"in c&&Ni(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset}),Oa&&Sa(Oa,c)||(Oa=c,c=Pa(Li,"onSelect"),0ba||(e.current=js[ba],js[ba]=null,ba--)}function rn(e,n){ba++,js[ba]=e.current,e.current=n}var Ko={},nr=eo(Ko),gr=eo(!1),Vo=Ko;function Ho(e,n){var a=e.type.contextTypes;if(!a)return Ko;var c=e.stateNode;if(c&&c.__reactInternalMemoizedUnmaskedChildContext===n)return c.__reactInternalMemoizedMaskedChildContext;var O={},M;for(M in a)O[M]=n[M];return c&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=O),O}function Ir(e){return e=e.childContextTypes,e!=null}function Zi(){ln(gr),ln(nr)}function ia(e,n,a){if(nr.current!==Ko)throw Error(u(168));rn(nr,n),rn(gr,a)}function bs(e,n,a){var c=e.stateNode;if(n=n.childContextTypes,typeof c.getChildContext!="function")return a;c=c.getChildContext();for(var O in c)if(!(O in n))throw Error(u(108,pt(e)||"Unknown",O));return Z({},a,c)}function Ji(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ko,Vo=nr.current,rn(nr,e),rn(gr,gr.current),!0}function qi(e,n,a){var c=e.stateNode;if(!c)throw Error(u(169));a?(e=bs(e,n,Vo),c.__reactInternalMemoizedMergedChildContext=e,ln(gr),ln(nr),rn(nr,e)):ln(gr),rn(gr,a)}var Hr=null,ii=!1,_i=!1;function si(e){Hr===null?Hr=[e]:Hr.push(e)}function Mu(e){ii=!0,si(e)}function vo(){if(!_i&&Hr!==null){_i=!0;var e=0,n=Ke;try{var a=Hr;for(Ke=1;e>=$,O-=$,ho=1<<32-On(n)+O|a<Ue?(or=De,De=null):or=De.sibling;var _e=kt(St,De,Ot[Ue],re);if(_e===null){De===null&&(De=or);break}e&&De&&_e.alternate===null&&n(St,De),ht=M(_e,ht,Ue),Ne===null?Ae=_e:Ne.sibling=_e,Ne=_e,De=or}if(Ue===Ot.length)return a(St,De),xn&&sa(St,Ue),Ae;if(De===null){for(;UeUe?(or=De,De=null):or=De.sibling;var pa=kt(St,De,_e.value,re);if(pa===null){De===null&&(De=or);break}e&&De&&pa.alternate===null&&n(St,De),ht=M(pa,ht,Ue),Ne===null?Ae=pa:Ne.sibling=pa,Ne=pa,De=or}if(_e.done)return a(St,De),xn&&sa(St,Ue),Ae;if(De===null){for(;!_e.done;Ue++,_e=Ot.next())_e=Yt(St,_e.value,re),_e!==null&&(ht=M(_e,ht,Ue),Ne===null?Ae=_e:Ne.sibling=_e,Ne=_e);return xn&&sa(St,Ue),Ae}for(De=c(St,De);!_e.done;Ue++,_e=Ot.next())_e=me(De,St,Ue,_e.value,re),_e!==null&&(e&&_e.alternate!==null&&De.delete(_e.key===null?Ue:_e.key),ht=M(_e,ht,Ue),Ne===null?Ae=_e:Ne.sibling=_e,Ne=_e);return e&&De.forEach(function(mf){return n(St,mf)}),xn&&sa(St,Ue),Ae}function Fn(St,ht,Ot,re){if(typeof Ot=="object"&&Ot!==null&&Ot.type===K&&Ot.key===null&&(Ot=Ot.props.children),typeof Ot=="object"&&Ot!==null){switch(Ot.$$typeof){case D:t:{for(var Ae=Ot.key,Ne=ht;Ne!==null;){if(Ne.key===Ae){if(Ae=Ot.type,Ae===K){if(Ne.tag===7){a(St,Ne.sibling),ht=O(Ne,Ot.props.children),ht.return=St,St=ht;break t}}else if(Ne.elementType===Ae||typeof Ae=="object"&&Ae!==null&&Ae.$$typeof===W&&at(Ae)===Ne.type){a(St,Ne.sibling),ht=O(Ne,Ot.props),ht.ref=it(St,Ne,Ot),ht.return=St,St=ht;break t}a(St,Ne);break}else n(St,Ne);Ne=Ne.sibling}Ot.type===K?(ht=Ha(Ot.props.children,St.mode,re,Ot.key),ht.return=St,St=ht):(re=qs(Ot.type,Ot.key,Ot.props,null,St.mode,re),re.ref=it(St,ht,Ot),re.return=St,St=re)}return $(St);case z:t:{for(Ne=Ot.key;ht!==null;){if(ht.key===Ne)if(ht.tag===4&&ht.stateNode.containerInfo===Ot.containerInfo&&ht.stateNode.implementation===Ot.implementation){a(St,ht.sibling),ht=O(ht,Ot.children||[]),ht.return=St,St=ht;break t}else{a(St,ht);break}else n(St,ht);ht=ht.sibling}ht=cl(Ot,St.mode,re),ht.return=St,St=ht}return $(St);case W:return Ne=Ot._init,Fn(St,ht,Ne(Ot._payload),re)}if(Bt(Ot))return Ee(St,ht,Ot,re);if(H(Ot))return Te(St,ht,Ot,re);q(St,Ot)}return typeof Ot=="string"&&Ot!==""||typeof Ot=="number"?(Ot=""+Ot,ht!==null&&ht.tag===6?(a(St,ht.sibling),ht=O(ht,Ot),ht.return=St,St=ht):(a(St,ht),ht=ll(Ot,St.mode,re),ht.return=St,St=ht),$(St)):a(St,ht)}return Fn}var Mt=Rt(!0),It=Rt(!1),zt=eo(null),Zt=null,_t=null,ee=null;function pe(){ee=_t=Zt=null}function Ie(e){var n=zt.current;ln(zt),e._currentValue=n}function $t(e,n,a){for(;e!==null;){var c=e.alternate;if((e.childLanes&n)!==n?(e.childLanes|=n,c!==null&&(c.childLanes|=n)):c!==null&&(c.childLanes&n)!==n&&(c.childLanes|=n),e===a)break;e=e.return}}function fe(e,n){Zt=e,ee=_t=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&n&&(Br=!0),e.firstContext=null)}function he(e){var n=e._currentValue;if(ee!==e)if(e={context:e,memoizedValue:n,next:null},_t===null){if(Zt===null)throw Error(u(308));_t=e,Zt.dependencies={lanes:0,firstContext:e}}else _t=_t.next=e;return n}var Be=null;function we(e){Be===null?Be=[e]:Be.push(e)}function We(e,n,a,c){var O=n.interleaved;return O===null?(a.next=a,we(n)):(a.next=O.next,O.next=a),n.interleaved=a,Qt(e,c)}function Qt(e,n){e.lanes|=n;var a=e.alternate;for(a!==null&&(a.lanes|=n),a=e,e=e.return;e!==null;)e.childLanes|=n,a=e.alternate,a!==null&&(a.childLanes|=n),a=e,e=e.return;return a.tag===3?a.stateNode:null}var Ce=!1;function Re(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Xe(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function en(e,n){return{eventTime:e,lane:n,tag:0,payload:null,callback:null,next:null}}function Rn(e,n,a){var c=e.updateQueue;if(c===null)return null;if(c=c.shared,Je&2){var O=c.pending;return O===null?n.next=n:(n.next=O.next,O.next=n),c.pending=n,Qt(e,a)}return O=c.interleaved,O===null?(n.next=n,we(c)):(n.next=O.next,O.next=n),c.interleaved=n,Qt(e,a)}function on(e,n,a){if(n=n.updateQueue,n!==null&&(n=n.shared,(a&4194240)!==0)){var c=n.lanes;c&=e.pendingLanes,a|=c,n.lanes=a,Kn(e,a)}}function Zn(e,n){var a=e.updateQueue,c=e.alternate;if(c!==null&&(c=c.updateQueue,a===c)){var O=null,M=null;if(a=a.firstBaseUpdate,a!==null){do{var $={eventTime:a.eventTime,lane:a.lane,tag:a.tag,payload:a.payload,callback:a.callback,next:null};M===null?O=M=$:M=M.next=$,a=a.next}while(a!==null);M===null?O=M=n:M=M.next=n}else O=M=n;a={baseState:c.baseState,firstBaseUpdate:O,lastBaseUpdate:M,shared:c.shared,effects:c.effects},e.updateQueue=a;return}e=a.lastBaseUpdate,e===null?a.firstBaseUpdate=n:e.next=n,a.lastBaseUpdate=n}function Dr(e,n,a,c){var O=e.updateQueue;Ce=!1;var M=O.firstBaseUpdate,$=O.lastBaseUpdate,X=O.shared.pending;if(X!==null){O.shared.pending=null;var dt=X,Pt=dt.next;dt.next=null,$===null?M=Pt:$.next=Pt,$=dt;var jt=e.alternate;jt!==null&&(jt=jt.updateQueue,X=jt.lastBaseUpdate,X!==$&&(X===null?jt.firstBaseUpdate=Pt:X.next=Pt,jt.lastBaseUpdate=dt))}if(M!==null){var Yt=O.baseState;$=0,jt=Pt=dt=null,X=M;do{var kt=X.lane,me=X.eventTime;if((c&kt)===kt){jt!==null&&(jt=jt.next={eventTime:me,lane:0,tag:X.tag,payload:X.payload,callback:X.callback,next:null});t:{var Ee=e,Te=X;switch(kt=n,me=a,Te.tag){case 1:if(Ee=Te.payload,typeof Ee=="function"){Yt=Ee.call(me,Yt,kt);break t}Yt=Ee;break t;case 3:Ee.flags=Ee.flags&-65537|128;case 0:if(Ee=Te.payload,kt=typeof Ee=="function"?Ee.call(me,Yt,kt):Ee,kt==null)break t;Yt=Z({},Yt,kt);break t;case 2:Ce=!0}}X.callback!==null&&X.lane!==0&&(e.flags|=64,kt=O.effects,kt===null?O.effects=[X]:kt.push(X))}else me={eventTime:me,lane:kt,tag:X.tag,payload:X.payload,callback:X.callback,next:null},jt===null?(Pt=jt=me,dt=Yt):jt=jt.next=me,$|=kt;if(X=X.next,X===null){if(X=O.shared.pending,X===null)break;kt=X,X=kt.next,kt.next=null,O.lastBaseUpdate=kt,O.shared.pending=null}}while(!0);if(jt===null&&(dt=Yt),O.baseState=dt,O.firstBaseUpdate=Pt,O.lastBaseUpdate=jt,n=O.shared.interleaved,n!==null){O=n;do $|=O.lane,O=O.next;while(O!==n)}else M===null&&(O.shared.lanes=0);Wa|=$,e.lanes=$,e.memoizedState=Yt}}function qe(e,n,a){if(e=n.effects,n.effects=null,e!==null)for(n=0;na?a:4,e(!0);var c=es.transition;es.transition={};try{e(!1),n()}finally{Ke=a,es.transition=c}}function zl(){return Pr().memoizedState}function zc(e,n,a){var c=fa(e);if(a={lane:c,action:a,hasEagerState:!1,eagerState:null,next:null},Wl(e))$l(n,a);else if(a=We(e,n,a,c),a!==null){var O=wr();So(a,e,c,O),Kl(a,n,c)}}function Wc(e,n,a){var c=fa(e),O={lane:c,action:a,hasEagerState:!1,eagerState:null,next:null};if(Wl(e))$l(n,O);else{var M=e.alternate;if(e.lanes===0&&(M===null||M.lanes===0)&&(M=n.lastRenderedReducer,M!==null))try{var $=n.lastRenderedState,X=M($,a);if(O.hasEagerState=!0,O.eagerState=X,Mr(X,$)){var dt=n.interleaved;dt===null?(O.next=O,we(n)):(O.next=dt.next,dt.next=O),n.interleaved=O;return}}catch(Pt){}finally{}a=We(e,n,O,c),a!==null&&(O=wr(),So(a,e,c,O),Kl(a,n,c))}}function Wl(e){var n=e.alternate;return e===vn||n!==null&&n===vn}function $l(e,n){Gr=ci=!0;var a=e.pending;a===null?n.next=n:(n.next=a.next,a.next=n),e.pending=n}function Kl(e,n,a){if(a&4194240){var c=n.lanes;c&=e.pendingLanes,a|=c,n.lanes=a,Kn(e,a)}}var Us={readContext:he,useCallback:qn,useContext:qn,useEffect:qn,useImperativeHandle:qn,useInsertionEffect:qn,useLayoutEffect:qn,useMemo:qn,useReducer:qn,useRef:qn,useState:qn,useDebugValue:qn,useDeferredValue:qn,useTransition:qn,useMutableSource:qn,useSyncExternalStore:qn,useId:qn,unstable_isNewReconciler:!1},$c={readContext:he,useCallback:function(n,a){return kr().memoizedState=[n,a===void 0?null:a],n},useContext:he,useEffect:jl,useImperativeHandle:function(n,a,c){return c=c!=null?c.concat([n]):null,Bs(4194308,4,Dl.bind(null,a,n),c)},useLayoutEffect:function(n,a){return Bs(4194308,4,n,a)},useInsertionEffect:function(n,a){return Bs(4,2,n,a)},useMemo:function(n,a){var c=kr();return a=a===void 0?null:a,n=n(),c.memoizedState=[n,a],n},useReducer:function(n,a,c){var O=kr();return a=c!==void 0?c(a):a,O.memoizedState=O.baseState=a,n={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:n,lastRenderedState:a},O.queue=n,n=n.dispatch=zc.bind(null,vn,n),[O.memoizedState,n]},useRef:function(n){var a=kr();return n={current:n},a.memoizedState=n},useState:Rl,useDebugValue:Bu,useDeferredValue:function(n){return kr().memoizedState=n},useTransition:function(){var n=Rl(!1),a=n[0];return n=Uc.bind(null,n[1]),kr().memoizedState=n,[a,n]},useMutableSource:function(){},useSyncExternalStore:function(n,a,c){var O=vn,M=kr();if(xn){if(c===void 0)throw Error(u(407));c=c()}else{if(c=a(),rr===null)throw Error(u(349));Go&30||Il(O,a,c)}M.memoizedState=c;var $={value:c,getSnapshot:a};return M.queue=$,jl(Pl.bind(null,O,$,n),[n]),O.flags|=2048,rs(9,Al.bind(null,O,$,c,a),void 0,null),c},useId:function(){var n=kr(),a=rr.identifierPrefix;if(xn){var c=No,O=ho;c=(O&~(1<<32-On(O)-1)).toString(32)+c,a=":"+a+"R"+c,c=Lo++,0<\/script>",e=e.removeChild(e.firstChild)):typeof c.is=="string"?e=$.createElement(a,{is:c.is}):(e=$.createElement(a),a==="select"&&($=e,c.multiple?$.multiple=!0:c.size&&($.size=c.size))):e=$.createElementNS(e,a),e[Vr]=n,e[$o]=c,uc(e,n,!1,!1),n.stateNode=e;t:{switch($=Un(a,c),a){case"dialog":un("cancel",e),un("close",e),O=c;break;case"iframe":case"object":case"embed":un("load",e),O=c;break;case"video":case"audio":for(O=0;Omi&&(n.flags|=128,c=!0,os(M,!1),n.lanes=4194304)}else{if(!c)if(e=li($),e!==null){if(n.flags|=128,c=!0,a=e.updateQueue,a!==null&&(n.updateQueue=a,n.flags|=4),os(M,!0),M.tail===null&&M.tailMode==="hidden"&&!$.alternate&&!xn)return xr(n),null}else 2*Ye()-M.renderingStartTime>mi&&a!==1073741824&&(n.flags|=128,c=!0,os(M,!1),n.lanes=4194304);M.isBackwards?($.sibling=n.child,n.child=$):(a=M.last,a!==null?a.sibling=$:n.child=$,M.last=$)}return M.tail!==null?(n=M.tail,M.rendering=n,M.tail=n.sibling,M.renderingStartTime=Ye(),n.sibling=null,a=cn.current,rn(cn,c?a&1|2:a&1),n):(xr(n),null);case 22:case 23:return il(),c=n.memoizedState!==null,e!==null&&e.memoizedState!==null!==c&&(n.flags|=8192),c&&n.mode&1?Yr&1073741824&&(xr(n),n.subtreeFlags&6&&(n.flags|=8192)):xr(n),null;case 24:return null;case 25:return null}throw Error(u(156,n.tag))}function Qc(e,n){switch(Ds(n),n.tag){case 1:return Ir(n.type)&&Zi(),e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 3:return ro(),ln(gr),ln(nr),ts(),e=n.flags,e&65536&&!(e&128)?(n.flags=e&-65537|128,n):null;case 5:return mo(n),null;case 13:if(ln(cn),e=n.memoizedState,e!==null&&e.dehydrated!==null){if(n.alternate===null)throw Error(u(340));U()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 19:return ln(cn),null;case 4:return ro(),null;case 10:return Ie(n.type._context),null;case 22:case 23:return il(),null;case 24:return null;default:return null}}var Ks=!1,Sr=!1,Zc=typeof WeakSet=="function"?WeakSet:Set,ye=null;function pi(e,n){var a=e.ref;if(a!==null)if(typeof a=="function")try{a(null)}catch(c){jn(e,n,c)}else a.current=null}function Xu(e,n,a){try{a()}catch(c){jn(e,n,c)}}var fc=!1;function Jc(e,n){if(Ki=$r,e=Ts(),Ni(e)){if("selectionStart"in e)var a={start:e.selectionStart,end:e.selectionEnd};else t:{a=(a=e.ownerDocument)&&a.defaultView||window;var c=a.getSelection&&a.getSelection();if(c&&c.rangeCount!==0){a=c.anchorNode;var O=c.anchorOffset,M=c.focusNode;c=c.focusOffset;try{a.nodeType,M.nodeType}catch(re){a=null;break t}var $=0,X=-1,dt=-1,Pt=0,jt=0,Yt=e,kt=null;e:for(;;){for(var me;Yt!==a||O!==0&&Yt.nodeType!==3||(X=$+O),Yt!==M||c!==0&&Yt.nodeType!==3||(dt=$+c),Yt.nodeType===3&&($+=Yt.nodeValue.length),(me=Yt.firstChild)!==null;)kt=Yt,Yt=me;for(;;){if(Yt===e)break e;if(kt===a&&++Pt===O&&(X=$),kt===M&&++jt===c&&(dt=$),(me=Yt.nextSibling)!==null)break;Yt=kt,kt=Yt.parentNode}Yt=me}a=X===-1||dt===-1?null:{start:X,end:dt}}else a=null}a=a||{start:0,end:0}}else a=null;for(Vi={focusedElem:e,selectionRange:a},$r=!1,ye=n;ye!==null;)if(n=ye,e=n.child,(n.subtreeFlags&1028)!==0&&e!==null)e.return=n,ye=e;else for(;ye!==null;){n=ye;try{var Ee=n.alternate;if(n.flags&1024)switch(n.tag){case 0:case 11:case 15:break;case 1:if(Ee!==null){var Te=Ee.memoizedProps,Fn=Ee.memoizedState,St=n.stateNode,ht=St.getSnapshotBeforeUpdate(n.elementType===n.type?Te:go(n.type,Te),Fn);St.__reactInternalSnapshotBeforeUpdate=ht}break;case 3:var Ot=n.stateNode.containerInfo;Ot.nodeType===1?Ot.textContent="":Ot.nodeType===9&&Ot.documentElement&&Ot.removeChild(Ot.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(u(163))}}catch(re){jn(n,n.return,re)}if(e=n.sibling,e!==null){e.return=n.return,ye=e;break}ye=n.return}return Ee=fc,fc=!1,Ee}function as(e,n,a){var c=n.updateQueue;if(c=c!==null?c.lastEffect:null,c!==null){var O=c=c.next;do{if((O.tag&e)===e){var M=O.destroy;O.destroy=void 0,M!==void 0&&Xu(n,a,M)}O=O.next}while(O!==c)}}function Vs(e,n){if(n=n.updateQueue,n=n!==null?n.lastEffect:null,n!==null){var a=n=n.next;do{if((a.tag&e)===e){var c=a.create;a.destroy=c()}a=a.next}while(a!==n)}}function Qu(e){var n=e.ref;if(n!==null){var a=e.stateNode;switch(e.tag){case 5:e=a;break;default:e=a}typeof n=="function"?n(e):n.current=e}}function dc(e){var n=e.alternate;n!==null&&(e.alternate=null,dc(n)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(n=e.stateNode,n!==null&&(delete n[Vr],delete n[$o],delete n[Xi],delete n[Qi],delete n[Ru])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function vc(e){return e.tag===5||e.tag===3||e.tag===4}function pc(e){t:for(;;){for(;e.sibling===null;){if(e.return===null||vc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue t;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Zu(e,n,a){var c=e.tag;if(c===5||c===6)e=e.stateNode,n?a.nodeType===8?a.parentNode.insertBefore(e,n):a.insertBefore(e,n):(a.nodeType===8?(n=a.parentNode,n.insertBefore(e,a)):(n=a,n.appendChild(e)),a=a._reactRootContainer,a!=null||n.onclick!==null||(n.onclick=ai));else if(c!==4&&(e=e.child,e!==null))for(Zu(e,n,a),e=e.sibling;e!==null;)Zu(e,n,a),e=e.sibling}function Ju(e,n,a){var c=e.tag;if(c===5||c===6)e=e.stateNode,n?a.insertBefore(e,n):a.appendChild(e);else if(c!==4&&(e=e.child,e!==null))for(Ju(e,n,a),e=e.sibling;e!==null;)Ju(e,n,a),e=e.sibling}var ur=null,yo=!1;function ua(e,n,a){for(a=a.child;a!==null;)hc(e,n,a),a=a.sibling}function hc(e,n,a){if(dn&&typeof dn.onCommitFiberUnmount=="function")try{dn.onCommitFiberUnmount(nn,a)}catch(X){}switch(a.tag){case 5:Sr||pi(a,n);case 6:var c=ur,O=yo;ur=null,ua(e,n,a),ur=c,yo=O,ur!==null&&(yo?(e=ur,a=a.stateNode,e.nodeType===8?e.parentNode.removeChild(a):e.removeChild(a)):ur.removeChild(a.stateNode));break;case 18:ur!==null&&(yo?(e=ur,a=a.stateNode,e.nodeType===8?Ra(e.parentNode,a):e.nodeType===1&&Ra(e,a),Wr(e)):Ra(ur,a.stateNode));break;case 4:c=ur,O=yo,ur=a.stateNode.containerInfo,yo=!0,ua(e,n,a),ur=c,yo=O;break;case 0:case 11:case 14:case 15:if(!Sr&&(c=a.updateQueue,c!==null&&(c=c.lastEffect,c!==null))){O=c=c.next;do{var M=O,$=M.destroy;M=M.tag,$!==void 0&&(M&2||M&4)&&Xu(a,n,$),O=O.next}while(O!==c)}ua(e,n,a);break;case 1:if(!Sr&&(pi(a,n),c=a.stateNode,typeof c.componentWillUnmount=="function"))try{c.props=a.memoizedProps,c.state=a.memoizedState,c.componentWillUnmount()}catch(X){jn(a,n,X)}ua(e,n,a);break;case 21:ua(e,n,a);break;case 22:a.mode&1?(Sr=(c=Sr)||a.memoizedState!==null,ua(e,n,a),Sr=c):ua(e,n,a);break;default:ua(e,n,a)}}function mc(e){var n=e.updateQueue;if(n!==null){e.updateQueue=null;var a=e.stateNode;a===null&&(a=e.stateNode=new Zc),n.forEach(function(c){var O=sf.bind(null,e,c);a.has(c)||(a.add(c),c.then(O,O))})}}function xo(e,n){var a=n.deletions;if(a!==null)for(var c=0;cO&&(O=$),c&=~M}if(c=O,c=Ye()-c,c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3e3>c?3e3:4320>c?4320:1960*_c(c/1960))-c,10e?16:e,ca===null)var c=!1;else{if(e=ca,ca=null,Xs=0,Je&6)throw Error(u(331));var O=Je;for(Je|=4,ye=e.current;ye!==null;){var M=ye,$=M.child;if(ye.flags&16){var X=M.deletions;if(X!==null){for(var dt=0;dtYe()-tl?Ka(e,0):_u|=a),Ur(e,n)}function Rc(e,n){n===0&&(e.mode&1?(n=hn,hn<<=1,!(hn&130023424)&&(hn=4194304)):n=1);var a=wr();e=Qt(e,n),e!==null&&(Bn(e,n,a),Ur(e,a))}function af(e){var n=e.memoizedState,a=0;n!==null&&(a=n.retryLane),Rc(e,a)}function sf(e,n){var a=0;switch(e.tag){case 13:var c=e.stateNode,O=e.memoizedState;O!==null&&(a=O.retryLane);break;case 19:c=e.stateNode;break;default:throw Error(u(314))}c!==null&&c.delete(n),Rc(e,a)}var Mc;Mc=function(n,a,c){if(n!==null)if(n.memoizedProps!==a.pendingProps||gr.current)Br=!0;else{if(!(n.lanes&c)&&!(a.flags&128))return Br=!1,Yc(n,a,c);Br=!!(n.flags&131072)}else Br=!1,xn&&a.flags&1048576&&ui(a,La,a.index);switch(a.lanes=0,a.tag){case 2:var O=a.type;$s(n,a),n=a.pendingProps;var M=Ho(a,nr.current);fe(a,c),M=fi(null,a,O,n,M,c);var $=di();return a.flags|=1,typeof M=="object"&&M!==null&&typeof M.render=="function"&&M.$$typeof===void 0?(a.tag=1,a.memoizedState=null,a.updateQueue=null,Ir(O)?($=!0,Ji(a)):$=!1,a.memoizedState=M.state!==null&&M.state!==void 0?M.state:null,Re(a),M.updater=zs,a.stateNode=M,M._reactInternals=a,Uu(a,O,n,c),a=Ku(null,a,O,!0,$,c)):(a.tag=0,xn&&$&&Ns(a),Cr(null,a,M,c),a=a.child),a;case 16:O=a.elementType;t:{switch($s(n,a),n=a.pendingProps,M=O._init,O=M(O._payload),a.type=O,M=a.tag=lf(O),n=go(O,n),M){case 0:a=$u(null,a,O,n,c);break t;case 1:a=nc(null,a,O,n,c);break t;case 11:a=Jl(null,a,O,n,c);break t;case 14:a=ql(null,a,O,go(O.type,n),c);break t}throw Error(u(306,O,""))}return a;case 0:return O=a.type,M=a.pendingProps,M=a.elementType===O?M:go(O,M),$u(n,a,O,M,c);case 1:return O=a.type,M=a.pendingProps,M=a.elementType===O?M:go(O,M),nc(n,a,O,M,c);case 3:t:{if(rc(a),n===null)throw Error(u(387));O=a.pendingProps,$=a.memoizedState,M=$.element,Xe(n,a),Dr(a,O,null,c);var X=a.memoizedState;if(O=X.element,$.isDehydrated)if($={element:O,isDehydrated:!1,cache:X.cache,pendingSuspenseBoundaries:X.pendingSuspenseBoundaries,transitions:X.transitions},a.updateQueue.baseState=$,a.memoizedState=$,a.flags&256){M=vi(Error(u(423)),a),a=oc(n,a,O,c,M);break t}else if(O!==M){M=vi(Error(u(424)),a),a=oc(n,a,O,c,M);break t}else for(Nr=Kr(a.stateNode.containerInfo.firstChild),br=a,xn=!0,Ar=null,c=It(a,null,O,c),a.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{if(U(),O===M){a=ko(n,a,c);break t}Cr(n,a,O,c)}a=a.child}return a;case 5:return Ba(a),n===null&&g(a),O=a.type,M=a.pendingProps,$=n!==null?n.memoizedProps:null,X=M.children,wa(O,M)?X=null:$!==null&&wa(O,$)&&(a.flags|=32),ec(n,a),Cr(n,a,X,c),a.child;case 6:return n===null&&g(a),null;case 13:return ac(n,a,c);case 4:return no(a,a.stateNode.containerInfo),O=a.pendingProps,n===null?a.child=Mt(a,null,O,c):Cr(n,a,O,c),a.child;case 11:return O=a.type,M=a.pendingProps,M=a.elementType===O?M:go(O,M),Jl(n,a,O,M,c);case 7:return Cr(n,a,a.pendingProps,c),a.child;case 8:return Cr(n,a,a.pendingProps.children,c),a.child;case 12:return Cr(n,a,a.pendingProps.children,c),a.child;case 10:t:{if(O=a.type._context,M=a.pendingProps,$=a.memoizedProps,X=M.value,rn(zt,O._currentValue),O._currentValue=X,$!==null)if(Mr($.value,X)){if($.children===M.children&&!gr.current){a=ko(n,a,c);break t}}else for($=a.child,$!==null&&($.return=a);$!==null;){var dt=$.dependencies;if(dt!==null){X=$.child;for(var Pt=dt.firstContext;Pt!==null;){if(Pt.context===O){if($.tag===1){Pt=en(-1,c&-c),Pt.tag=2;var jt=$.updateQueue;if(jt!==null){jt=jt.shared;var Yt=jt.pending;Yt===null?Pt.next=Pt:(Pt.next=Yt.next,Yt.next=Pt),jt.pending=Pt}}$.lanes|=c,Pt=$.alternate,Pt!==null&&(Pt.lanes|=c),$t($.return,c,a),dt.lanes|=c;break}Pt=Pt.next}}else if($.tag===10)X=$.type===a.type?null:$.child;else if($.tag===18){if(X=$.return,X===null)throw Error(u(341));X.lanes|=c,dt=X.alternate,dt!==null&&(dt.lanes|=c),$t(X,c,a),X=$.sibling}else X=$.child;if(X!==null)X.return=$;else for(X=$;X!==null;){if(X===a){X=null;break}if($=X.sibling,$!==null){$.return=X.return,X=$;break}X=X.return}$=X}Cr(n,a,M.children,c),a=a.child}return a;case 9:return M=a.type,O=a.pendingProps.children,fe(a,c),M=he(M),O=O(M),a.flags|=1,Cr(n,a,O,c),a.child;case 14:return O=a.type,M=go(O,a.pendingProps),M=go(O.type,M),ql(n,a,O,M,c);case 15:return _l(n,a,a.type,a.pendingProps,c);case 17:return O=a.type,M=a.pendingProps,M=a.elementType===O?M:go(O,M),$s(n,a),a.tag=1,Ir(O)?(n=!0,Ji(a)):n=!1,fe(a,c),Hl(a,O,M),Uu(a,O,M,c),Ku(null,a,O,!0,n,c);case 19:return sc(n,a,c);case 22:return tc(n,a,c)}throw Error(u(156,a.tag))};function jc(e,n){return Qe(e,n)}function uf(e,n,a,c){this.tag=e,this.key=a,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=c,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function ao(e,n,a,c){return new uf(e,n,a,c)}function ul(e){return e=e.prototype,!(!e||!e.isReactComponent)}function lf(e){if(typeof e=="function")return ul(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Q)return 11;if(e===ut)return 14}return 2}function va(e,n){var a=e.alternate;return a===null?(a=ao(e.tag,n,e.key,e.mode),a.elementType=e.elementType,a.type=e.type,a.stateNode=e.stateNode,a.alternate=e,e.alternate=a):(a.pendingProps=n,a.type=e.type,a.flags=0,a.subtreeFlags=0,a.deletions=null),a.flags=e.flags&14680064,a.childLanes=e.childLanes,a.lanes=e.lanes,a.child=e.child,a.memoizedProps=e.memoizedProps,a.memoizedState=e.memoizedState,a.updateQueue=e.updateQueue,n=e.dependencies,a.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},a.sibling=e.sibling,a.index=e.index,a.ref=e.ref,a}function qs(e,n,a,c,O,M){var $=2;if(c=e,typeof e=="function")ul(e)&&($=1);else if(typeof e=="string")$=5;else t:switch(e){case K:return Ha(a.children,O,M,n);case k:$=8,O|=8;break;case J:return e=ao(12,a,n,O|2),e.elementType=J,e.lanes=M,e;case ct:return e=ao(13,a,n,O),e.elementType=ct,e.lanes=M,e;case ot:return e=ao(19,a,n,O),e.elementType=ot,e.lanes=M,e;case V:return _s(a,O,M,n);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case G:$=10;break t;case _:$=9;break t;case Q:$=11;break t;case ut:$=14;break t;case W:$=16,c=null;break t}throw Error(u(130,e==null?e:typeof e=="undefined"?"undefined":o(e),""))}return n=ao($,a,n,O),n.elementType=e,n.type=c,n.lanes=M,n}function Ha(e,n,a,c){return e=ao(7,e,c,n),e.lanes=a,e}function _s(e,n,a,c){return e=ao(22,e,c,n),e.elementType=V,e.lanes=a,e.stateNode={isHidden:!1},e}function ll(e,n,a){return e=ao(6,e,null,n),e.lanes=a,e}function cl(e,n,a){return n=ao(4,e.children!==null?e.children:[],e.key,n),n.lanes=a,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}function cf(e,n,a,c,O){this.tag=n,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Oo(0),this.expirationTimes=Oo(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Oo(0),this.identifierPrefix=c,this.onRecoverableError=O,this.mutableSourceEagerHydrationData=null}function fl(e,n,a,c,O,M,$,X,dt){return e=new cf(e,n,a,X,dt),n===1?(n=1,M===!0&&(n|=8)):n=0,M=ao(3,null,null,n),e.current=M,M.stateNode=e,M.memoizedState={element:c,isDehydrated:a,cache:null,transitions:null,pendingSuspenseBoundaries:null},Re(M),e}function ff(e,n,a){var c=3Et.length)&&(wt=Et.length);for(var Ht=0,ue=new Array(wt);Ht1?Ht-1:0),Se=1;Se/gm),Ct=R(/\${[\w\W]*}/gm),Nt=R(/^data-[\-\w.\u00B7-\uFFFF]/),Wt=R(/^aria-[\-\w]+$/),Ut=R(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),ae=R(/^(?:\w+script|data):/i),ie=R(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),te=R(/^html$/i),Ft=R(/^[a-z][.\w]*(-[.\w]+)+$/i),Bt=function(){return typeof window=="undefined"?null:window},At=function(wt,Ht){if(t(wt)!=="object"||typeof wt.createPolicy!="function")return null;var ue=null,Se="data-tt-policy-suffix";Ht.currentScript&&Ht.currentScript.hasAttribute(Se)&&(ue=Ht.currentScript.getAttribute(Se));var xe="dompurify"+(ue?"#"+ue:"");try{return wt.createPolicy(xe,{createHTML:function(Kt){return Kt},createScriptURL:function(Kt){return Kt}})}catch(le){return console.warn("TrustedTypes policy "+xe+" could not be created."),null}};function Xt(){var Et=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Bt(),wt=function(lt){return Xt(lt)};if(wt.version="2.5.3",wt.removed=[],!Et||!Et.document||Et.document.nodeType!==9)return wt.isSupported=!1,wt;var Ht=Et.document,ue=Et.document,Se=Et.DocumentFragment,xe=Et.HTMLTemplateElement,le=Et.Node,Kt=Et.Element,Gt=Et.NodeFilter,Me=Et.NamedNodeMap,Ze=Me===void 0?Et.NamedNodeMap||Et.MozNamedAttrMap:Me,tr=Et.HTMLFormElement,fn=Et.DOMParser,Un=Et.trustedTypes,Pn=Kt.prototype,cr=tt(Pn,"cloneNode"),rt=tt(Pn,"nextSibling"),xt=tt(Pn,"childNodes"),st=tt(Pn,"parentNode");if(typeof xe=="function"){var yt=ue.createElement("template");yt.content&&yt.content.ownerDocument&&(ue=yt.content.ownerDocument)}var Tt=At(Un,Ht),Lt=Tt?Tt.createHTML(""):"",oe=ue,ne=oe.implementation,Oe=oe.createNodeIterator,qt=oe.createDocumentFragment,Fe=oe.getElementsByTagName,$e=Ht.importNode,ze={};try{ze=V(ue).documentMode?ue.documentMode:{}}catch(ge){}var je={};wt.isSupported=typeof st=="function"&&ne&&ne.createHTMLDocument!==void 0&&ze!==9;var Ve=de,Ge=Jt,Le=Ct,Cn=Nt,pn=Wt,bn=ae,fr=ie,Pe=Ft,zn=Ut,tn=null,dr=W({},[].concat(s(H),s(Z),s(ft),s(vt),s(bt))),ke=null,Nn=W({},[].concat(s(gt),s(pt),s(Dt),s(ve))),Qe=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),In=null,vr=null,Wn=!0,Ye=!0,ar=!1,En=!0,$n=!1,ir=!0,wn=!1,Yn=!1,nn=!1,dn=!1,Rr=!1,On=!1,Dn=!0,Er=!1,Xr="user-content-",er=!0,hn=!1,pr={},Ln=null,Xo=W({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),io=null,hr=W({},["audio","video","img","source","image","track"]),Eo=null,Oo=W({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Bn="http://www.w3.org/1998/Math/MathML",To="http://www.w3.org/2000/svg",Kn="http://www.w3.org/1999/xhtml",Ke=Kn,Io=!1,zr=null,Qo=W({},[Bn,To,Kn],z),Qr,Ga=["application/xhtml+xml","text/html"],ka="text/html",mn,Or=null,mr=255,Zr=ue.createElement("form"),Tr=function(lt){return h(lt,RegExp)||h(lt,Function)},Jr=function(lt){Or&&Or===lt||((!lt||t(lt)!=="object")&&(lt={}),lt=V(lt),Qr=Ga.indexOf(lt.PARSER_MEDIA_TYPE)===-1?Qr=ka:Qr=lt.PARSER_MEDIA_TYPE,mn=Qr==="application/xhtml+xml"?z:D,tn="ALLOWED_TAGS"in lt?W({},lt.ALLOWED_TAGS,mn):dr,ke="ALLOWED_ATTR"in lt?W({},lt.ALLOWED_ATTR,mn):Nn,zr="ALLOWED_NAMESPACES"in lt?W({},lt.ALLOWED_NAMESPACES,z):Qo,Eo="ADD_URI_SAFE_ATTR"in lt?W(V(Oo),lt.ADD_URI_SAFE_ATTR,mn):Oo,io="ADD_DATA_URI_TAGS"in lt?W(V(hr),lt.ADD_DATA_URI_TAGS,mn):hr,Ln="FORBID_CONTENTS"in lt?W({},lt.FORBID_CONTENTS,mn):Xo,In="FORBID_TAGS"in lt?W({},lt.FORBID_TAGS,mn):{},vr="FORBID_ATTR"in lt?W({},lt.FORBID_ATTR,mn):{},pr="USE_PROFILES"in lt?lt.USE_PROFILES:!1,Wn=lt.ALLOW_ARIA_ATTR!==!1,Ye=lt.ALLOW_DATA_ATTR!==!1,ar=lt.ALLOW_UNKNOWN_PROTOCOLS||!1,En=lt.ALLOW_SELF_CLOSE_IN_ATTR!==!1,$n=lt.SAFE_FOR_TEMPLATES||!1,ir=lt.SAFE_FOR_XML!==!1,wn=lt.WHOLE_DOCUMENT||!1,dn=lt.RETURN_DOM||!1,Rr=lt.RETURN_DOM_FRAGMENT||!1,On=lt.RETURN_TRUSTED_TYPE||!1,nn=lt.FORCE_BODY||!1,Dn=lt.SANITIZE_DOM!==!1,Er=lt.SANITIZE_NAMED_PROPS||!1,er=lt.KEEP_CONTENT!==!1,hn=lt.IN_PLACE||!1,zn=lt.ALLOWED_URI_REGEXP||zn,Ke=lt.NAMESPACE||Kn,Qe=lt.CUSTOM_ELEMENT_HANDLING||{},lt.CUSTOM_ELEMENT_HANDLING&&Tr(lt.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Qe.tagNameCheck=lt.CUSTOM_ELEMENT_HANDLING.tagNameCheck),lt.CUSTOM_ELEMENT_HANDLING&&Tr(lt.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Qe.attributeNameCheck=lt.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),lt.CUSTOM_ELEMENT_HANDLING&&typeof lt.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(Qe.allowCustomizedBuiltInElements=lt.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),$n&&(Ye=!1),Rr&&(dn=!0),pr&&(tn=W({},s(bt)),ke=[],pr.html===!0&&(W(tn,H),W(ke,gt)),pr.svg===!0&&(W(tn,Z),W(ke,pt),W(ke,ve)),pr.svgFilters===!0&&(W(tn,ft),W(ke,pt),W(ke,ve)),pr.mathMl===!0&&(W(tn,vt),W(ke,Dt),W(ke,ve))),lt.ADD_TAGS&&(tn===dr&&(tn=V(tn)),W(tn,lt.ADD_TAGS,mn)),lt.ADD_ATTR&&(ke===Nn&&(ke=V(ke)),W(ke,lt.ADD_ATTR,mn)),lt.ADD_URI_SAFE_ATTR&&W(Eo,lt.ADD_URI_SAFE_ATTR,mn),lt.FORBID_CONTENTS&&(Ln===Xo&&(Ln=V(Ln)),W(Ln,lt.FORBID_CONTENTS,mn)),er&&(tn["#text"]=!0),wn&&W(tn,["html","head","body"]),tn.table&&(W(tn,["tbody"]),delete In.tbody),A&&A(lt),Or=lt)},Ao=W({},["mi","mo","mn","ms","mtext"]),Xn=W({},["foreignobject","annotation-xml"]),Ya=W({},["title","style","font","a","script"]),Po=W({},Z);W(Po,ft),W(Po,nt);var sr=W({},vt);W(sr,mt);var Fo=function(lt){var Vt=st(lt);(!Vt||!Vt.tagName)&&(Vt={namespaceURI:Ke,tagName:"template"});var se=D(lt.tagName),be=D(Vt.tagName);return zr[lt.namespaceURI]?lt.namespaceURI===To?Vt.namespaceURI===Kn?se==="svg":Vt.namespaceURI===Bn?se==="svg"&&(be==="annotation-xml"||Ao[be]):!!Po[se]:lt.namespaceURI===Bn?Vt.namespaceURI===Kn?se==="math":Vt.namespaceURI===To?se==="math"&&Xn[be]:!!sr[se]:lt.namespaceURI===Kn?Vt.namespaceURI===To&&!Xn[be]||Vt.namespaceURI===Bn&&!Ao[be]?!1:!sr[se]&&(Ya[se]||!Po[se]):!!(Qr==="application/xhtml+xml"&&zr[lt.namespaceURI]):!1},Vn=function(lt){L(wt.removed,{element:lt});try{lt.parentNode.removeChild(lt)}catch(Vt){try{lt.outerHTML=Lt}catch(se){lt.remove()}}},Tn=function(lt,Vt){try{L(wt.removed,{attribute:Vt.getAttributeNode(lt),from:Vt})}catch(se){L(wt.removed,{attribute:null,from:Vt})}if(Vt.removeAttribute(lt),lt==="is"&&!ke[lt])if(dn||Rr)try{Vn(Vt)}catch(se){}else try{Vt.setAttribute(lt,"")}catch(se){}},ha=function(lt){var Vt,se;if(nn)lt=""+lt;else{var be=K(lt,/^[\r\n\t ]+/);se=be&&be[0]}Qr==="application/xhtml+xml"&&Ke===Kn&&(lt=''+lt+"");var gn=Tt?Tt.createHTML(lt):lt;if(Ke===Kn)try{Vt=new fn().parseFromString(gn,Qr)}catch(an){}if(!Vt||!Vt.documentElement){Vt=ne.createDocument(Ke,"template",null);try{Vt.documentElement.innerHTML=Io?Lt:gn}catch(an){}}var An=Vt.body||Vt.documentElement;return lt&&se&&An.insertBefore(ue.createTextNode(se),An.childNodes[0]||null),Ke===Kn?Fe.call(Vt,wn?"html":"body")[0]:wn?Vt.documentElement:An},Xa=function(lt){return Oe.call(lt.ownerDocument||lt,lt,Gt.SHOW_ELEMENT|Gt.SHOW_COMMENT|Gt.SHOW_TEXT|Gt.SHOW_PROCESSING_INSTRUCTION|Gt.SHOW_CDATA_SECTION,null,!1)},Co=function(lt){return h(lt,tr)&&(typeof lt.__depth!="undefined"&&typeof lt.__depth!="number"||typeof lt.__removalCount!="undefined"&&typeof lt.__removalCount!="number"||typeof lt.nodeName!="string"||typeof lt.textContent!="string"||typeof lt.removeChild!="function"||!h(lt.attributes,Ze)||typeof lt.removeAttribute!="function"||typeof lt.setAttribute!="function"||typeof lt.namespaceURI!="string"||typeof lt.insertBefore!="function"||typeof lt.hasChildNodes!="function")},Wr=function(lt){return t(le)==="object"?h(lt,le):lt&&t(lt)==="object"&&typeof lt.nodeType=="number"&&typeof lt.nodeName=="string"},Qn=function(lt,Vt,se){je[lt]&&C(je[lt],function(be){be.call(wt,Vt,se,Or)})},$r=function(lt){var Vt;if(Qn("beforeSanitizeElements",lt,null),Co(lt)||_(/[\u0080-\uFFFF]/,lt.nodeName))return Vn(lt),!0;var se=mn(lt.nodeName);if(Qn("uponSanitizeElement",lt,{tagName:se,allowedTags:tn}),lt.hasChildNodes()&&!Wr(lt.firstElementChild)&&(!Wr(lt.content)||!Wr(lt.content.firstElementChild))&&_(/<[/\w]/g,lt.innerHTML)&&_(/<[/\w]/g,lt.textContent)||se==="select"&&_(/
    Other Roles