diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index 60c962e480b6..86da42206e98 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -2997,6 +2997,12 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"anE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/landmark/generic_maintenance_landmark, +/turf/open/floor/plating, +/area/station/maintenance/department/security) "anF" = ( /obj/machinery/flasher/portable, /obj/effect/turf_decal/tile/neutral{ @@ -17169,6 +17175,7 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/cable, /obj/effect/mapping_helpers/broken_floor, +/obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating, /area/station/maintenance/department/security) "bVp" = ( @@ -20833,6 +20840,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, +/obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating, /area/station/maintenance/aft) "clD" = ( @@ -22939,7 +22947,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, -/obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/wood, /area/station/maintenance/port/fore) "cyf" = ( @@ -23837,6 +23844,7 @@ "cDF" = ( /obj/machinery/airalarm/directional/east, /obj/effect/mapping_helpers/broken_floor, +/obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/wood, /area/station/maintenance/department/crew_quarters/bar) "cDN" = ( @@ -24107,7 +24115,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, -/obj/effect/landmark/generic_maintenance_landmark, /obj/structure/sign/poster/contraband/random/directional/south, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, @@ -24987,7 +24994,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, -/obj/effect/landmark/generic_maintenance_landmark, /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/electrical) @@ -37532,7 +37538,6 @@ "hek" = ( /obj/effect/turf_decal/tile/neutral, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/iron/dark, /area/station/security/interrogation) "hel" = ( @@ -42678,7 +42683,6 @@ /turf/open/floor/engine, /area/station/engineering/supermatter/room) "iUd" = ( -/obj/effect/landmark/generic_maintenance_landmark, /obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, /turf/open/floor/engine, /area/station/science/xenobiology) @@ -48807,6 +48811,7 @@ /obj/effect/mapping_helpers/burnt_floor, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating, /area/station/maintenance/department/security/brig) "lcf" = ( @@ -52597,7 +52602,6 @@ /turf/open/floor/engine, /area/station/engineering/supermatter/room) "muH" = ( -/obj/effect/landmark/generic_maintenance_landmark, /obj/effect/landmark/blobstart, /obj/effect/landmark/event_spawn, /obj/effect/spawner/random/trash/mess, @@ -53137,6 +53141,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/directional/east, +/obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating, /area/station/maintenance/department/security) "mCW" = ( @@ -56405,7 +56410,6 @@ /area/station/cargo/warehouse) "nON" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/generic_maintenance_landmark, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/mapping_helpers/broken_floor, /obj/structure/cable, @@ -63766,6 +63770,7 @@ }, /obj/effect/mapping_helpers/burnt_floor, /obj/machinery/atmospherics/components/binary/pump/off/supply/hidden/layer4, +/obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating, /area/station/maintenance/port/greater) "qpy" = ( @@ -63977,7 +63982,6 @@ c_tag = "Autopsy Room"; name = "detective camera" }, -/obj/effect/landmark/generic_maintenance_landmark, /obj/effect/landmark/start/detective, /turf/open/floor/iron/dark, /area/station/security/detectives_office) @@ -74059,7 +74063,6 @@ "tSu" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/landmark/generic_maintenance_landmark, /obj/effect/turf_decal/siding/wood{ dir = 8 }, @@ -81149,6 +81152,14 @@ /obj/item/food/grown/poppy/lily, /turf/open/floor/iron/dark, /area/station/service/chapel/monastery) +"wvR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/generic_maintenance_landmark, +/turf/open/floor/plating, +/area/station/maintenance/aft) "wvW" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -99561,7 +99572,7 @@ cql osY rkz aky -uaZ +anE keP cuF hKh @@ -115511,7 +115522,7 @@ mWQ igk bFz uZY -wct +wvR bFZ bRT cEw diff --git a/_maps/map_files/LimaStation/LimaStation.dmm b/_maps/map_files/LimaStation/LimaStation.dmm index a0e4b6ae4635..f8758a5eab3a 100644 --- a/_maps/map_files/LimaStation/LimaStation.dmm +++ b/_maps/map_files/LimaStation/LimaStation.dmm @@ -11599,10 +11599,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"erh" = ( -/obj/effect/landmark/generic_maintenance_landmark, -/turf/open/floor/engine, -/area/station/science/xenobiology) "err" = ( /obj/machinery/door/airlock/external{ name = "Transit Tube External Access" @@ -16665,7 +16661,6 @@ /turf/open/floor/iron, /area/station/hallway/secondary/command) "ggV" = ( -/obj/effect/landmark/generic_maintenance_landmark, /obj/item/radio/intercom/directional/east, /turf/open/floor/iron/sepia, /area/station/service/chapel/office) @@ -59419,7 +59414,6 @@ "uKZ" = ( /obj/effect/landmark/event_spawn, /obj/effect/landmark/blobstart, -/obj/effect/landmark/generic_maintenance_landmark, /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron/dark, /area/station/engineering/atmos/experiment_room) @@ -114713,7 +114707,7 @@ eGa qYG nwa tYh -erh +wTw wTw jvZ vda diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 13915cd8937b..2a8eb0223c34 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -7692,6 +7692,7 @@ /obj/machinery/light/small/directional/north, /obj/machinery/airalarm/directional/north, /obj/structure/chair/stool/bar/directional/west, +/obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating, /area/station/maintenance/solars/port) "ayD" = ( @@ -9474,13 +9475,6 @@ "aEd" = ( /turf/closed/wall, /area/station/commons/toilet/restrooms) -"aEf" = ( -/obj/structure/urinal{ - pixel_y = 32 - }, -/obj/effect/landmark/generic_maintenance_landmark, -/turf/open/floor/iron/freezer, -/area/station/commons/toilet/restrooms) "aEg" = ( /obj/structure/urinal{ pixel_y = 32 @@ -10319,6 +10313,7 @@ "aGL" = ( /obj/item/clothing/suit/apron/chef, /obj/structure/chair/stool/bar/directional/west, +/obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating, /area/station/maintenance/department/cargo) "aGM" = ( @@ -10771,6 +10766,7 @@ /obj/structure/cable, /obj/machinery/light/small/directional/north, /obj/machinery/airalarm/directional/north, +/obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating, /area/station/maintenance/solars/starboard) "aJw" = ( @@ -11271,7 +11267,6 @@ /area/station/service/cafeteria) "aLE" = ( /obj/structure/sink/directional/east, -/obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/iron/freezer, /area/station/commons/toilet/auxiliary) "aLF" = ( @@ -23287,6 +23282,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold/general/visible, /obj/machinery/light/small/directional/south, +/obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating, /area/station/maintenance/department/engine) "bEl" = ( @@ -25333,6 +25329,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ dir = 4 }, +/obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/iron/dark, /area/station/maintenance/department/engine) "bMD" = ( @@ -26031,6 +26028,7 @@ /area/station/engineering/gravity_generator) "bPC" = ( /obj/structure/chair/stool/bar/directional/west, +/obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating, /area/station/maintenance/department/engine) "bPD" = ( @@ -30419,7 +30417,6 @@ /turf/open/floor/iron/showroomfloor, /area/station/service/chapel/monastery) "cis" = ( -/obj/effect/landmark/generic_maintenance_landmark, /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan, /obj/effect/turf_decal/tile/green/half{ dir = 1 @@ -33635,10 +33632,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/plating, /area/station/service/abandoned_gambling_den) -"cBq" = ( -/obj/effect/landmark/generic_maintenance_landmark, -/turf/open/floor/plating, -/area/station/service/abandoned_gambling_den) "cBr" = ( /obj/structure/table/wood/poker, /obj/item/toy/cards/deck, @@ -33954,13 +33947,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/department/cargo) -"cKA" = ( -/obj/effect/landmark/generic_maintenance_landmark, -/obj/effect/turf_decal/tile/purple/anticorner{ - dir = 1 - }, -/turf/open/floor/iron/white/smooth_corner, -/area/station/science/research) "cKF" = ( /obj/machinery/holopad, /obj/effect/landmark/start/medical_doctor, @@ -34243,6 +34229,10 @@ }, /turf/open/floor/plating, /area/station/science/lab) +"cYY" = ( +/obj/effect/landmark/generic_maintenance_landmark, +/turf/open/floor/plating, +/area/station/maintenance/department/security/brig) "daO" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/smooth, @@ -34964,7 +34954,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, -/obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/wood, /area/station/service/bar) "dGR" = ( @@ -36466,10 +36455,6 @@ /obj/effect/mapping_helpers/requests_console/supplies, /turf/open/floor/iron/dark, /area/station/cargo/miningdock) -"eUb" = ( -/obj/effect/landmark/generic_maintenance_landmark, -/turf/open/floor/iron, -/area/station/engineering/atmos) "eUe" = ( /obj/machinery/disposal/delivery_chute{ dir = 4; @@ -38964,6 +38949,11 @@ /obj/effect/spawner/random/vending/snackvend, /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) +"gLZ" = ( +/obj/structure/cable, +/obj/effect/landmark/generic_maintenance_landmark, +/turf/open/floor/wood, +/area/station/maintenance/department/engine) "gMA" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -39024,6 +39014,14 @@ /mob/living/carbon/human/species/monkey, /turf/open/floor/grass, /area/station/science/genetics) +"gPY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ + dir = 4 + }, +/obj/effect/landmark/generic_maintenance_landmark, +/turf/open/floor/plating, +/area/station/maintenance/department/security/brig) "gQa" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -39282,7 +39280,6 @@ /turf/open/floor/iron/dark/smooth_edge, /area/station/service/chapel/monastery) "hae" = ( -/obj/effect/landmark/generic_maintenance_landmark, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ @@ -45274,6 +45271,7 @@ /area/station/engineering/engine_smes) "mnG" = ( /obj/effect/spawner/random/maintenance, +/obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) "mnR" = ( @@ -48424,15 +48422,6 @@ /obj/structure/cable, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"oNY" = ( -/obj/effect/landmark/generic_maintenance_landmark, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/crew_quarters/dorms) "oOj" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -49994,7 +49983,6 @@ /area/station/service/library/artgallery) "pYj" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/generic_maintenance_landmark, /obj/item/radio/intercom/directional/north, /turf/open/floor/iron, /area/station/science/xenobiology) @@ -52014,6 +52002,7 @@ "ryS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/brown/visible/layer2, /obj/effect/decal/cleanable/vomit/old, +/obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating, /area/station/maintenance/department/engine) "rzp" = ( @@ -55089,6 +55078,7 @@ dir = 10 }, /obj/structure/cable, +/obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating, /area/station/maintenance/department/cargo) "tDz" = ( @@ -55165,6 +55155,7 @@ "tGl" = ( /obj/item/wrench, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating, /area/station/maintenance/department/engine) "tHk" = ( @@ -58772,6 +58763,10 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron/smooth_large, /area/station/engineering/atmos) +"wmC" = ( +/obj/effect/landmark/generic_maintenance_landmark, +/turf/open/floor/plating, +/area/station/maintenance/department/science) "wmE" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -59923,6 +59918,11 @@ dir = 1 }, /area/station/security/brig) +"wXP" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/landmark/generic_maintenance_landmark, +/turf/open/floor/plating, +/area/station/maintenance/department/engine) "wYi" = ( /obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ dir = 4 @@ -60871,6 +60871,15 @@ }, /turf/open/floor/iron, /area/station/maintenance/disposal) +"xFA" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ + dir = 4 + }, +/obj/effect/landmark/generic_maintenance_landmark, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) "xFF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/cafeteria, @@ -76745,7 +76754,7 @@ wYu ajD ajD ajD -ajD +cYY mwg aiu aht @@ -78532,7 +78541,7 @@ aaa aaa aiu aiX -ajD +cYY aks aiu ait @@ -79313,7 +79322,7 @@ aof aiu aqh lqc -bTc +gPY atq aut aiu @@ -86094,7 +86103,7 @@ rle bNU nYb dSr -rle +gLZ dJm kev wfO @@ -86337,7 +86346,7 @@ xwC ewb bva bPA -bSw +wXP bSw bXV bDi @@ -97895,7 +97904,7 @@ bWO bTQ ksv sGc -eUb +bWO wCz mvA mkS @@ -99351,7 +99360,7 @@ qxE stG anm sFK -sFK +xFA uGx sFK cBA @@ -99683,7 +99692,7 @@ bCR aqm fBp eDR -eUb +bWO bWO wCz bMX @@ -100115,7 +100124,7 @@ aaa aJc wMF cBn -cBq +fNg fNg fNg iEU @@ -101405,7 +101414,7 @@ aaa aaa aaa ajy -oNY +sFK alg aaa aaa @@ -102454,7 +102463,7 @@ qhH erO aBT atn -aEf +aEg aGF jXJ aGF @@ -103266,7 +103275,7 @@ aap uDS geR tKI -cKA +wlK cVa pQX bzd @@ -107909,7 +107918,7 @@ izF mES lWy lWy -lWy +wmC lWy bwm aaa diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index 7d9c21c8dc3b..a95ac6cedf4b 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -549,7 +549,7 @@ SUBSYSTEM_DEF(job) [CONFIG_GET(flag/jobs_have_minimal_access) ? "full crew, only your job's necessities" : "skeleton crew, additional access may"] \ have been added to your ID card.")) - if(ishuman(equipping)) + if(ishuman(equipping) && (job.job_flags & JOB_CREW_MANIFEST)) // NON-MODULE CHANGE var/mob/living/carbon/human/wageslave = equipping wageslave.add_mob_memory(/datum/memory/key/account, remembered_id = wageslave.account_id) diff --git a/code/game/objects/items/mail.dm b/code/game/objects/items/mail.dm index c9fddbe19d63..7e0a12d69af1 100644 --- a/code/game/objects/items/mail.dm +++ b/code/game/objects/items/mail.dm @@ -115,7 +115,7 @@ return TRUE balloon_alert(user, "hold it!") return FALSE - + /obj/item/mail/attack_self(mob/user) if(!unwrap(user)) @@ -261,7 +261,7 @@ if(human.stat == DEAD || !human.mind) continue // Skip wizards, nuke ops, cyborgs; Centcom does not send them mail - if(!(human.mind.assigned_role.job_flags & JOB_CREW_MEMBER)) + if(!(human.mind.assigned_role.job_flags & JOB_CREW_MANIFEST)) // NON-MODULE CHANGE continue mail_recipients += human.mind @@ -391,7 +391,7 @@ return TRUE else balloon_alert(user, "tinkering with something...") - + if(!do_after(user, 2 SECONDS, target = src)) after_unwrap(user) return FALSE @@ -446,13 +446,13 @@ continue mail_recipients += person.mind_ref mail_recipients_for_input += avoid_assoc_duplicate_keys(person.name, used_names) - + var/recipient = tgui_input_list(user, "Choose a recipient", "Mail Counterfeiting", mail_recipients_for_input) if(isnull(recipient)) return FALSE if(!(src in user.contents)) return FALSE - + var/index = mail_recipients_for_input.Find(recipient) var/obj/item/mail/traitor/shady_mail @@ -460,7 +460,7 @@ shady_mail = new /obj/item/mail/traitor else shady_mail = new /obj/item/mail/traitor/envelope - + shady_mail.made_by_cached_ckey = user.ckey shady_mail.made_by_cached_name = user.mind.name diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm index 6275cad061a1..3b1550fa3fbd 100644 --- a/code/modules/jobs/job_types/_job.dm +++ b/code/modules/jobs/job_types/_job.dm @@ -180,10 +180,11 @@ return /mob/living/carbon/human/on_job_equipping(datum/job/equipping, datum/preferences/used_pref) // NON-MODULE CHANGE: LOADOUTS - var/datum/bank_account/bank_account = new(real_name, equipping, dna.species.payday_modifier) - bank_account.payday(STARTING_PAYCHECKS, TRUE) - account_id = bank_account.account_id - bank_account.replaceable = FALSE + if(equipping.job_flags & JOB_CREW_MANIFEST) // NON-MODULE CHANGE + var/datum/bank_account/bank_account = new(real_name, equipping, dna.species.payday_modifier) + bank_account.payday(STARTING_PAYCHECKS, TRUE) + account_id = bank_account.account_id + bank_account.replaceable = FALSE dress_up_as_job(equipping, FALSE, used_pref) // NON-MODULE CHANGE: LOADOUTS diff --git a/code/modules/modular_computers/file_system/programs/jobmanagement.dm b/code/modules/modular_computers/file_system/programs/jobmanagement.dm index 3e599cf623eb..767259dd83c2 100644 --- a/code/modules/modular_computers/file_system/programs/jobmanagement.dm +++ b/code/modules/modular_computers/file_system/programs/jobmanagement.dm @@ -28,6 +28,7 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) JOB_ASSISTANT, "Bridge Officer", //NON-MODULE CHANGE // MELBERT MODULARIZE ME "Asset Protection", // NON-MODULE CHANGE + "Stowaway", ) //The scaling factor of max total positions in relation to the total amount of people on board the station in % diff --git a/maplestation.dme b/maplestation.dme index dcc35bf1b770..f32d2ae1ac15 100644 --- a/maplestation.dme +++ b/maplestation.dme @@ -5560,6 +5560,7 @@ #include "maplestation_modules\code\modules\jobs\job_types\psychologist.dm" #include "maplestation_modules\code\modules\jobs\job_types\research_director.dm" #include "maplestation_modules\code\modules\jobs\job_types\scientist.dm" +#include "maplestation_modules\code\modules\jobs\job_types\stowaway.dm" #include "maplestation_modules\code\modules\jobs\job_types\xenobiologist.dm" #include "maplestation_modules\code\modules\jobs\job_types\antagonists\infiltrator.dm" #include "maplestation_modules\code\modules\jobs\job_types\antagonists\syndicate.dm" diff --git a/maplestation_modules/code/controllers/subsystem/economy.dm b/maplestation_modules/code/controllers/subsystem/economy.dm index cb338133994d..2cadc2a24959 100644 --- a/maplestation_modules/code/controllers/subsystem/economy.dm +++ b/maplestation_modules/code/controllers/subsystem/economy.dm @@ -47,8 +47,10 @@ var/error_prob = prob(8) // Percent change that something will be redacted from the paper. var/redacted_prob = prob(15) + // Whether the base subject is a good corp or a bad one + var/good_or_evil = prob(50) // The 'base' subject of the paper. - var/paper_base_subject = pick_list(COMPANY_FILE, "companies") + var/paper_base_subject = pick_list(COMPANY_FILE, good_or_evil ? "good_companies" : "bad_companies") // The month to this paper's date. var/rand_month = rand(1, 12) // A var tracking the date range we can use for randomizing dates. @@ -94,9 +96,7 @@ paper_primary_subject = paper_base_subject all_tracked_data += "subject_one" if(findtext(paper_contents, "subject_two")) - paper_secondary_subject = pick_list(COMPANY_FILE, "companies") - if(paper_secondary_subject == paper_base_subject) // okay but what are the odds of picking the same name, threee times? - paper_secondary_subject = pick_list(COMPANY_FILE, "companies") + paper_secondary_subject = pick_list(COMPANY_FILE, good_or_evil ? "bad_companies" : "good_companies") // reversed all_tracked_data += "subject_two" if(findtext(paper_contents, "victim")) var/list/possible_names = list( diff --git a/maplestation_modules/code/modules/events/resource_drift.dm b/maplestation_modules/code/modules/events/resource_drift.dm index 9b87541f0fc0..e0ddf3d44960 100644 --- a/maplestation_modules/code/modules/events/resource_drift.dm +++ b/maplestation_modules/code/modules/events/resource_drift.dm @@ -100,7 +100,9 @@ * Generate a "source event" / reason as to why the crates and debris are spawning. */ /datum/round_event/resource_drift/proc/get_source() - var/list/parties = strings(COMPANY_FILE, "companies") + var/list/parties = list() + parties += strings(COMPANY_FILE, "bad_companies") + parties += strings(COMPANY_FILE, "good_companies") parties += list("Space Station [rand(1, 12)]", "Space Station [rand(14, 99)]", "raider", "pirate") . = pick_list(RESOURCE_EVENT_FILE, "drift_reasons") diff --git a/maplestation_modules/code/modules/jobs/job_types/stowaway.dm b/maplestation_modules/code/modules/jobs/job_types/stowaway.dm new file mode 100644 index 000000000000..b0a9675f29e2 --- /dev/null +++ b/maplestation_modules/code/modules/jobs/job_types/stowaway.dm @@ -0,0 +1,207 @@ +/datum/job/stowaway + title = "Stowaway" + description = "You've snuck on board, and now you're stuck here. \ + You spawn randomly in the maintenance tunnels, with no radio, no PDA, \ + no bank account, and no records in the crew database." + rpg_title = "Stowaway" // TES4: Oblivion + paycheck = PAYCHECK_ZERO + total_positions = 0 + spawn_positions = 1 + supervisors = "no one" + exp_granted_type = EXP_TYPE_CREW + config_tag = "STOWAWAY" + faction = FACTION_STATION + + outfit = /datum/outfit/job/stowaway + plasmaman_outfit = /datum/outfit/job/stowaway/plasmaman + + paycheck = PAYCHECK_ZERO + + display_order = JOB_DISPLAY_ORDER_PRISONER + 0.1 + + department_for_prefs = /datum/job_department/assistant + + job_flags = JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_ASSIGN_QUIRKS | JOB_NEW_PLAYER_JOINABLE + allow_bureaucratic_error = FALSE + random_spawns_possible = FALSE + +/datum/job/stowaway/get_default_roundstart_spawn_point() + return find_maintenance_spawn(atmos_sensitive = TRUE, require_darkness = FALSE) + +/datum/job/stowaway/after_spawn(mob/living/spawned, client/player_client) + . = ..() + var/datum/status_effect/backstory/backstory = spawned.apply_status_effect(/datum/status_effect/backstory) + var/backstory_ref = "click here" + to_chat(player_client, examine_block("\ + [span_boldnotice("You find yourself stown away in [get_area_name(spawned)] on [station_name()].")]\n\ + [span_notice("All you have to your name is the clothes on your back, some tools, and a small amount of cash.")]\n\ + [span_notice("The crew has no record of your existence.")]\n\ + [span_notice("(If you would like to be provided an optional, random backstory, with more or less equipment: [backstory_ref].)")]\ + ")) + +// Applied to fresh stowaways to give them an option of getting a random backstory +/datum/status_effect/backstory + id = "stowaway_backstory" + alert_type = /atom/movable/screen/alert/status_effect/backstory + duration = 5 MINUTES + tick_interval = -1 + +/datum/status_effect/backstory/Topic(href, list/href_list) + . = ..() + if(href_list["backstory"]) + give_backstory() + +/datum/status_effect/backstory/proc/give_backstory() + if(SSticker.current_state != GAME_STATE_PLAYING) + return + + var/backstory_gist + var/backstory_suggested_goal + var/backstory_equipment + var/list/backstory_equipment_items + + var/mob/living/carbon/human/stowaway = owner + switch(rand(1, 7)) + if(1) + backstory_gist = "You are a stowaway, who snuck on board to escape your old life. \ + You're not sure what to do now, but you're sure you'll think of something." + backstory_suggested_goal = "Find a new life on board the station." + + if(2) + backstory_gist = "You are a station reclamation agent, working for Nanotrasen, left behind mistakenly after the last crew departed. \ + All you want is to get back off this station." + backstory_suggested_goal = "Get off the station, preferably without being detained." + backstory_equipment_items = list( + /obj/item/storage/belt/utility = ITEM_SLOT_BELT, + /obj/item/clothing/gloves/color/yellow = ITEM_SLOT_BACKPACK, + ) + backstory_equipment = "A toolbelt and some insulated gloves." + + if(3) + var/old_boss = pick_list(COMPANY_FILE, "bad_companies") + backstory_gist = "You are an ex-syndicate agent, employed by the [old_boss], who failed your last task and ended up marooned on this station. \ + You're not sure what to do now, but you're sure you'll think of something." + backstory_suggested_goal = "Finish your last objective, or give up your old life and start anew - maybe on the station itself." + backstory_equipment_items = list( + /obj/item/clothing/gloves/combat = ITEM_SLOT_BACKPACK, + /obj/item/clothing/mask/gas/syndicate = ITEM_SLOT_BACKPACK, + (stowaway.jumpsuit_style == PREF_SKIRT ? /obj/item/clothing/under/syndicate/skirt : /obj/item/clothing/under/syndicate) = ITEM_SLOT_BACKPACK, + ) + backstory_equipment = "A syndicate turtleneck and mask, and some insulated combat gloves." + + if(4) + var/old_boss = pick_list(COMPANY_FILE, "good_companies") + backstory_gist = "You used to work for [old_boss], but you were fired on the job, and have ended up marooned on this station. \ + You're not sure what to do now, but you're sure you'll think of something." + backstory_suggested_goal = "Give up your old life and start anew - maybe on the station itself, or attempt to reconcile with [old_boss]." + + if(5) + var/datum/job/old_job = pick(SSjob.joinable_occupations) + var/reasons = pick("who was fired", "who had their station decomissioned") + backstory_gist = "You are a former [old_job.title], [reasons]. You've snuck on board to get your old position back." + backstory_suggested_goal = "Get your job as [old_job.title] back, and prove yourself - or find a new calling." + + var/datum/outfit/job/job_outfit = old_job.outfit + backstory_equipment_items = list( + initial(job_outfit.uniform) = ITEM_SLOT_BACKPACK, + initial(job_outfit.head) = ITEM_SLOT_BACKPACK, + initial(job_outfit.shoes) = ITEM_SLOT_BACKPACK, + ) + list_clear_nulls(backstory_equipment_items) // if the job doesn't have a head/shoes/whatever, don't spawn it + backstory_equipment = "Your old uniform." + + if(6) + backstory_gist = "You woke up randomly in the maintenance tunnels, with no memory of who you are or how you got here." + backstory_suggested_goal = "Figure out who you are, and why you're here... or start anew." + + if(7) + backstory_gist = "You got in trouble with [pick("the law", "the criminal underworld", "the syndicate", "the corporation you worked for", "the corporation you worked against")], and had to flee. \ + You've snuck on board to escape your old life." + backstory_suggested_goal = "Find a new life on board the station." + + + var/final_info = "[backstory_gist]\n\n[backstory_suggested_goal]" + if(length(backstory_equipment_items) && backstory_equipment) + final_info += span_notice("\n\nAdditional equipment: [backstory_equipment]") + + to_chat(owner, examine_block(span_infoplain(final_info))) + + for(var/thing in backstory_equipment_items) + owner.equip_to_slot_if_possible(new thing(owner.loc), backstory_equipment_items[thing], disable_warning = TRUE, redraw_mob = FALSE, initial = TRUE) + + qdel(src) + +// Screen alert for the above effect +/atom/movable/screen/alert/status_effect/backstory + name = "Optional: Stowaway Backstory" + desc = "Not sure what to do? Click here for a random backstory and some extra equipment. \ + This will go away shortly, so don't worry if you don't want it." + icon_state = "surrender" + +/atom/movable/screen/alert/status_effect/backstory/Click(location, control, params) + . = ..() + if(!.) + return + var/datum/status_effect/backstory/backstory = attached_effect + backstory.give_backstory() + +// The stowaway outfit, assistant but poorer +/datum/outfit/job/stowaway + name = "Stowaway" + jobtype = /datum/job/stowaway + + id = /obj/item/card/id/maint_tech + uniform = /obj/item/clothing/under/color/black + l_hand = /obj/item/storage/toolbox/mechanical/old/multitool + ears = null + belt = null + + backpack_contents = list( + /obj/item/flashlight = 1, + /obj/item/radio = 1, + /obj/item/stack/spacecash/c100 = 1, + ) + +/datum/outfit/job/stowaway/post_equip(mob/living/carbon/human/equipped, visualsOnly) + . = ..() + if(visualsOnly) + return + var/obj/item/card/id/id = equipped.wear_id?.GetID() + if(istype(id)) + id.registered_age = rand(25, 65) + id.registered_name = "" + id.update_label() + + var/obj/item/clothing/under/clothes = equipped.w_uniform + if(istype(clothes)) + clothes.sensor_mode = SENSOR_OFF + clothes.has_sensor = BROKEN_SENSORS + equipped.update_suit_sensors() + +/datum/outfit/job/stowaway/plasmaman + uniform = /obj/item/clothing/under/plasmaman + gloves = /obj/item/clothing/gloves/color/plasmaman + head = /obj/item/clothing/head/helmet/space/plasmaman + r_hand = /obj/item/tank/internals/plasmaman/belt/full + internals_slot = ITEM_SLOT_HANDS + +// ID card stowaways spawn with +/obj/item/card/id/maint_tech + name = "Maintenance Technician ID" + desc = "An old ID card once given to poorly paid technicians." + trim = /datum/id_trim/maintenance_technician + icon_state = "retro" + +// ID trim for the stolen ID card +/datum/id_trim/maintenance_technician + access = list(ACCESS_EXTERNAL_AIRLOCKS, ACCESS_MAINT_TUNNELS) + assignment = "Maintenance Technician" + trim_state = "trim_stationengineer" // for posterity, doesn't show anyways + department_color = COLOR_ASSISTANT_GRAY + +// Old toolbox subtype that spawns with a multitool +/obj/item/storage/toolbox/mechanical/old/multitool + +/obj/item/storage/toolbox/mechanical/old/multitool/PopulateContents() + . = ..() + new /obj/item/multitool(src) diff --git a/strings/companies.json b/strings/companies.json index 6b7feb87fcde..a2d406d2b31f 100644 --- a/strings/companies.json +++ b/strings/companies.json @@ -1,35 +1,38 @@ { - "companies": [ - "Nanotrasen", - "TerraGov", - "Lizard Empire", - "Gorlex", - "Gorlex Marauders", - "Donk Co.", - "Donk Corporation", - "Waffle Co.", - "Waffle Corporation", - "Cybersun", - "Cybersun Industries", - "Animal Rights Consortium", - "Tiger Cooperative", - "Interdyne", - "Interdyne Pharmaceutics", + "good_companies": [ "Apadyne Technologies", "Aussec Armory", - "Scarborough Arms", - "Kalashnikov Concern", - "IMI", "Auto-Ordnance Company", - "Nakamura Engineering", "DeForest Medical Corporation", - "HONK Ltd.", - "The Wizard Federation", - "Eight-O Corporation", - "Robust Industries, LLC", - "Pwr Game, LLC", + "IMI", + "Kalashnikov Concern", + "Nakamura Engineering", + "Nanotrasen", + "Scarborough Arms", + "TerraGov", "Sophronia Broadcasting", "Comrade Computing", - "Spinward Stellar Coalition" + "Spinward Stellar Coalition", + "Eight-O Corporation", + "Robust Industries, LLC", + "Pwr Game, LLC" + ], + "bad_companies": [ + "Animal Rights Consortium", + "Cybersun Industries", + "Donk Co.", + "Donk Corporation", + "Gorlex Marauders", + "Gorlex", + "Interdyne Pharmaceutics", + "Interdyne", + "Tiger Cooperative", + "Waffle Co.", + "Waffle Corporation" + ], + "other_companies": [ + "Lizard Empire", + "HONK Ltd.", + "The Wizard Federation" ] } diff --git a/tgui/packages/tgui/interfaces/common/JobToIcon.ts b/tgui/packages/tgui/interfaces/common/JobToIcon.ts index 9919f0edb659..7c71b8c9b388 100644 --- a/tgui/packages/tgui/interfaces/common/JobToIcon.ts +++ b/tgui/packages/tgui/interfaces/common/JobToIcon.ts @@ -51,6 +51,7 @@ export const JOB2ICON = { 'Ordnance Technician': 'bomb', // Non-module change 'Asset Protection': 'person-military-pointing', // Non-module change 'Bridge Officer': 'paperclip', // Non-module change + 'Stowaway': 'person-through-window', // Non-module change } as const; export type AvailableJob = keyof typeof JOB2ICON;