From cba3a77b7735c0f6ed945a86c1b118c3736e47bc Mon Sep 17 00:00:00 2001 From: Jamie D <993128+JamieD1@users.noreply.github.com> Date: Sun, 8 Aug 2021 16:51:32 +0100 Subject: [PATCH 01/10] Job Alternative Titles --- code/__HELPERS/game.dm | 2 + code/controllers/subsystem/job.dm | 11 +++- code/datums/datacore.dm | 12 +++- code/datums/mind.dm | 5 +- code/modules/client/preferences.dm | 25 ++++++++ code/modules/client/preferences_savefile.dm | 67 +++++++++++---------- code/modules/jobs/job_types/_job.dm | 7 ++- code/modules/jobs/job_types/roboticist.dm | 1 + code/modules/jobs/jobs.dm | 10 +++ 9 files changed, 102 insertions(+), 38 deletions(-) diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index ebe47d3a3f42..0f2b3886703d 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -674,6 +674,8 @@ return var/obj/machinery/announcement_system/announcer = pick(GLOB.announcement_systems) + if(character.mind.role_alt_title) + rank = character.mind.role_alt_title announcer.announce("ARRIVAL", character.real_name, rank, list()) //make the list empty to make it announce it in common /proc/lavaland_equipment_pressure_check(turf/T) diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index 8344153a2b28..5dafdac0c3f9 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -78,6 +78,9 @@ SUBSYSTEM_DEF(job) SetupOccupations() return type_occupations[jobtype] +/datum/controller/subsystem/job/proc/GetPlayerAltTitle(mob/dead/new_player/player, rank) + return player.client.prefs.GetPlayerAltTitle(GetJob(rank)) + // Attempts to Assign player to Role /datum/controller/subsystem/job/proc/AssignRole(mob/dead/new_player/player, rank, latejoin = FALSE) JobDebug("Running AR, Player: [player], Rank: [rank], LJ: [latejoin]") @@ -96,6 +99,7 @@ SUBSYSTEM_DEF(job) position_limit = job.spawn_positions JobDebug("Player: [player] is now Rank: [rank], JCP:[job.current_positions], JPL:[position_limit]") player.mind.assigned_role = rank + player.mind.role_alt_title = GetPlayerAltTitle(player, rank) unassigned -= player job.current_positions++ return TRUE @@ -463,10 +467,11 @@ SUBSYSTEM_DEF(job) log_world("Couldn't find a round start spawn point for [rank]") SendToLateJoin(living_mob) - + var/alt_title = null if(living_mob.mind) living_mob.mind.assigned_role = rank - to_chat(M, "You are the [rank].") + alt_title = living_mob.mind.role_alt_title + to_chat(M, "You are the [alt_title ? alt_title : rank].") if(job) var/new_mob = job.equip(living_mob, null, null, joined_late , null, M.client) if(ismob(new_mob)) @@ -483,7 +488,7 @@ SUBSYSTEM_DEF(job) M.client.holder.auto_deadmin() else handle_auto_deadmin_roles(M.client, rank) - to_chat(M, "As the [rank] you answer directly to [job.supervisors]. Special circumstances may change this.") + to_chat(M, "As the [alt_title ? alt_title : rank] you answer directly to [job.supervisors]. Special circumstances may change this.") job.radio_help_message(M) if(job.req_admin_notify) to_chat(M, "You are playing a job that is important for Game Progression. If you have to disconnect, please notify the admins via adminhelp.") diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index 8582cb5bf68f..6bc2b3583378 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -133,8 +133,16 @@ /datum/datacore/proc/manifest_modify(name, assignment) var/datum/data/record/foundrecord = find_record("name", name, GLOB.data_core.general) + var/real_title = assignment + for(var/datum/job/J in SSjob.occupations) + var/list/alttitles = get_alternate_titles(J.title) + if(!J) continue + if(assignment in alttitles) + real_title = J.title + break if(foundrecord) foundrecord.fields["rank"] = assignment + foundrecord.fields["real_rank"] = real_title /datum/datacore/proc/get_manifest() var/list/manifest_out = list() @@ -283,7 +291,9 @@ var/static/list/show_directions = list(SOUTH, WEST) if(H.mind && (H.mind.assigned_role != H.mind.special_role)) var/assignment - if(H.mind.assigned_role) + if(H.mind.role_alt_title) + assignment = H.mind.role_alt_title + else if(H.mind.assigned_role) assignment = H.mind.assigned_role else if(H.job) assignment = H.job diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 2150fe2974cd..15543bbcb108 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -38,6 +38,9 @@ var/memory var/assigned_role + + var/role_alt_title + var/special_role var/list/restricted_roles = list() var/list/datum/objective/objectives = list() @@ -821,4 +824,4 @@ /mob/living/silicon/pai/mind_initialize() ..() mind.assigned_role = ROLE_PAI - mind.special_role = "" \ No newline at end of file + mind.special_role = "" diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 1fe5425c9cdd..6d8420707d72 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -47,6 +47,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/show_credits = TRUE var/uses_glasses_colour = 0 + var/list/player_alt_titles = new() + ///Whether emotes will be displayed on runechat. Requires chat_on_map to have effect. Boolean. var/see_rc_emotes = TRUE @@ -1009,6 +1011,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) prefLevelColor = "red" prefUpperLevel = 3 prefLowerLevel = 1 + if(job.alt_titles) + HTML += "
\[[GetPlayerAltTitle(job)]\]" HTML += "" @@ -1042,6 +1046,19 @@ GLOBAL_LIST_EMPTY(preferences_datums) popup.set_content(HTML) popup.open(FALSE) +/datum/preferences/proc/GetPlayerAltTitle(datum/job/job) + return player_alt_titles.Find(job.title) > 0 \ + ? player_alt_titles[job.title] \ + : job.title + +/datum/preferences/proc/SetPlayerAltTitle(datum/job/job, new_title) + // remove existing entry + if(player_alt_titles.Find(job.title)) + player_alt_titles -= job.title + // add one if it's not default + if(job.title != new_title) + player_alt_titles[job.title] = new_title + /datum/preferences/proc/SetJobPreferenceLevel(datum/job/job, level) if (!job) return FALSE @@ -1231,6 +1248,14 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(BERANDOMJOB) joblessrole = RETURNTOLOBBY SetChoices(user) + if ("alt_title") + var/datum/job/job = locate(href_list["job"]) + if (job) + var/choices = list(job.title) + job.alt_titles + var/choice = input("Pick a title for [job.title].", "Character Generation", GetPlayerAltTitle(job)) as anything in choices | null + if(choice) + SetPlayerAltTitle(job, choice) + SetChoices(user) if("setJobLevel") UpdateJobPreference(user, href_list["text"], text2num(href_list["level"])) else diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 9a3e65232db6..830395d78c91 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -172,7 +172,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car READ_FILE(S["buttons_locked"], buttons_locked) READ_FILE(S["windowflash"], windowflashing) READ_FILE(S["be_special"] , be_special) - + READ_FILE(S["player_alt_titles"], player_alt_titles) READ_FILE(S["default_slot"], default_slot) READ_FILE(S["chat_toggles"], chat_toggles) @@ -221,40 +221,40 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car update_preferences(needs_update, S) //needs_update = savefile_version if we need an update (positive integer) //Sanitize - asaycolor = sanitize_ooccolor(sanitize_hexcolor(asaycolor, 6, 1, initial(asaycolor))) - ooccolor = sanitize_ooccolor(sanitize_hexcolor(ooccolor, 6, 1, initial(ooccolor))) - lastchangelog = sanitize_text(lastchangelog, initial(lastchangelog)) - UI_style = sanitize_inlist(UI_style, GLOB.available_ui_styles, GLOB.available_ui_styles[1]) - hotkeys = sanitize_integer(hotkeys, FALSE, TRUE, initial(hotkeys)) - chat_on_map = sanitize_integer(chat_on_map, FALSE, TRUE, initial(chat_on_map)) - max_chat_length = sanitize_integer(max_chat_length, 1, CHAT_MESSAGE_MAX_LENGTH, initial(max_chat_length)) + asaycolor = sanitize_ooccolor(sanitize_hexcolor(asaycolor, 6, 1, initial(asaycolor))) + ooccolor = sanitize_ooccolor(sanitize_hexcolor(ooccolor, 6, 1, initial(ooccolor))) + lastchangelog = sanitize_text(lastchangelog, initial(lastchangelog)) + UI_style = sanitize_inlist(UI_style, GLOB.available_ui_styles, GLOB.available_ui_styles[1]) + hotkeys = sanitize_integer(hotkeys, FALSE, TRUE, initial(hotkeys)) + chat_on_map = sanitize_integer(chat_on_map, FALSE, TRUE, initial(chat_on_map)) + max_chat_length = sanitize_integer(max_chat_length, 1, CHAT_MESSAGE_MAX_LENGTH, initial(max_chat_length)) see_chat_non_mob = sanitize_integer(see_chat_non_mob, FALSE, TRUE, initial(see_chat_non_mob)) - see_rc_emotes = sanitize_integer(see_rc_emotes, FALSE, TRUE, initial(see_rc_emotes)) - tgui_fancy = sanitize_integer(tgui_fancy, FALSE, TRUE, initial(tgui_fancy)) - tgui_lock = sanitize_integer(tgui_lock, FALSE, TRUE, initial(tgui_lock)) - buttons_locked = sanitize_integer(buttons_locked, FALSE, TRUE, initial(buttons_locked)) - windowflashing = sanitize_integer(windowflashing, FALSE, TRUE, initial(windowflashing)) - default_slot = sanitize_integer(default_slot, 1, max_save_slots, initial(default_slot)) - toggles = sanitize_integer(toggles, 0, (1 << 23), initial(toggles)) // Yogs -- Fixes toggles not having >16 bits of flagspace - clientfps = sanitize_integer(clientfps, 0, 1000, 0) - parallax = sanitize_integer(parallax, PARALLAX_INSANE, PARALLAX_DISABLE, null) + see_rc_emotes = sanitize_integer(see_rc_emotes, FALSE, TRUE, initial(see_rc_emotes)) + tgui_fancy = sanitize_integer(tgui_fancy, FALSE, TRUE, initial(tgui_fancy)) + tgui_lock = sanitize_integer(tgui_lock, FALSE, TRUE, initial(tgui_lock)) + buttons_locked = sanitize_integer(buttons_locked, FALSE, TRUE, initial(buttons_locked)) + windowflashing = sanitize_integer(windowflashing, FALSE, TRUE, initial(windowflashing)) + default_slot = sanitize_integer(default_slot, 1, max_save_slots, initial(default_slot)) + toggles = sanitize_integer(toggles, 0, (1 << 23), initial(toggles)) // Yogs -- Fixes toggles not having >16 bits of flagspace + clientfps = sanitize_integer(clientfps, 0, 1000, 0) + parallax = sanitize_integer(parallax, PARALLAX_INSANE, PARALLAX_DISABLE, null) ambientocclusion = sanitize_integer(ambientocclusion, FALSE, TRUE, initial(ambientocclusion)) auto_fit_viewport = sanitize_integer(auto_fit_viewport, FALSE, TRUE, initial(auto_fit_viewport)) - widescreenpref = sanitize_integer(widescreenpref, FALSE, TRUE, initial(widescreenpref)) - pixel_size = sanitize_integer(pixel_size, PIXEL_SCALING_AUTO, PIXEL_SCALING_3X, initial(pixel_size)) - scaling_method = sanitize_text(scaling_method, initial(scaling_method)) - ghost_form = sanitize_inlist(ghost_form, GLOB.ghost_forms, initial(ghost_form)) - ghost_orbit = sanitize_inlist(ghost_orbit, GLOB.ghost_orbits, initial(ghost_orbit)) - ghost_accs = sanitize_inlist(ghost_accs, GLOB.ghost_accs_options, GHOST_ACCS_DEFAULT_OPTION) - ghost_others = sanitize_inlist(ghost_others, GLOB.ghost_others_options, GHOST_OTHERS_DEFAULT_OPTION) - menuoptions = SANITIZE_LIST(menuoptions) - be_special = SANITIZE_LIST(be_special) - pda_style = sanitize_inlist(pda_style, GLOB.pda_styles, initial(pda_style)) - pda_color = sanitize_hexcolor(pda_color, 6, 1, initial(pda_color)) - skillcape = sanitize_integer(skillcape, 1, 82, initial(skillcape)) - map = sanitize_integer(map, FALSE, TRUE, initial(map)) - flare = sanitize_integer(flare, FALSE, TRUE, initial(flare)) - bar_choice = sanitize_text(bar_choice, initial(bar_choice)) + widescreenpref = sanitize_integer(widescreenpref, FALSE, TRUE, initial(widescreenpref)) + pixel_size = sanitize_integer(pixel_size, PIXEL_SCALING_AUTO, PIXEL_SCALING_3X, initial(pixel_size)) + scaling_method = sanitize_text(scaling_method, initial(scaling_method)) + ghost_form = sanitize_inlist(ghost_form, GLOB.ghost_forms, initial(ghost_form)) + ghost_orbit = sanitize_inlist(ghost_orbit, GLOB.ghost_orbits, initial(ghost_orbit)) + ghost_accs = sanitize_inlist(ghost_accs, GLOB.ghost_accs_options, GHOST_ACCS_DEFAULT_OPTION) + ghost_others = sanitize_inlist(ghost_others, GLOB.ghost_others_options, GHOST_OTHERS_DEFAULT_OPTION) + menuoptions = SANITIZE_LIST(menuoptions) + be_special = SANITIZE_LIST(be_special) + pda_style = sanitize_inlist(pda_style, GLOB.pda_styles, initial(pda_style)) + pda_color = sanitize_hexcolor(pda_color, 6, 1, initial(pda_color)) + skillcape = sanitize_integer(skillcape, 1, 82, initial(skillcape)) + map = sanitize_integer(map, FALSE, TRUE, initial(map)) + flare = sanitize_integer(flare, FALSE, TRUE, initial(flare)) + bar_choice = sanitize_text(bar_choice, initial(bar_choice)) var/bar_sanitize = FALSE for(var/A in GLOB.potential_box_bars) @@ -264,6 +264,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car if(!bar_sanitize) bar_choice = "Random" + if(!player_alt_titles) player_alt_titles = new() + show_credits = sanitize_integer(show_credits, FALSE, TRUE, initial(show_credits)) // yogs start - Donor features & yogtoggles @@ -303,6 +305,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["buttons_locked"], buttons_locked) WRITE_FILE(S["windowflash"], windowflashing) WRITE_FILE(S["be_special"], be_special) + WRITE_FILE(S["player_alt_titles"], player_alt_titles) WRITE_FILE(S["default_slot"], default_slot) WRITE_FILE(S["toggles"], toggles) WRITE_FILE(S["chat_toggles"], chat_toggles) diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm index cc5e50db2653..edb594137d1b 100644 --- a/code/modules/jobs/job_types/_job.dm +++ b/code/modules/jobs/job_types/_job.dm @@ -35,6 +35,8 @@ //Sellection screen color var/selection_color = "#ffffff" + //List of alternate titles, if any + var/list/alt_titles //If this is set to 1, a text is printed to the player when jobs are assigned, telling him that he should let admins know that he has to disconnect. var/req_admin_notify @@ -260,7 +262,10 @@ C.access = J.get_access() shuffle_inplace(C.access) // Shuffle access list to make NTNet passkeys less predictable C.registered_name = H.real_name - C.assignment = J.title + if(H.mind?.role_alt_title) + C.assignment = H.mind.role_alt_title + else + C.assignment = J.title if(H.age) C.registered_age = H.age C.update_label() diff --git a/code/modules/jobs/job_types/roboticist.dm b/code/modules/jobs/job_types/roboticist.dm index 75c1f133585c..76d7835b750f 100644 --- a/code/modules/jobs/job_types/roboticist.dm +++ b/code/modules/jobs/job_types/roboticist.dm @@ -10,6 +10,7 @@ selection_color = "#ffeeff" exp_requirements = 60 exp_type = EXP_TYPE_CREW + alt_titles = list("Biomechanical Engineer","Mechatronic Engineer") outfit = /datum/outfit/job/roboticist diff --git a/code/modules/jobs/jobs.dm b/code/modules/jobs/jobs.dm index f9deb8b424ac..ed91482e5aa4 100644 --- a/code/modules/jobs/jobs.dm +++ b/code/modules/jobs/jobs.dm @@ -154,3 +154,13 @@ GLOBAL_PROTECT(exp_specialmap) job = para_expand.Replace(job, "paramedic") // yogs end return job + +/proc/get_alternate_titles(var/job) + var/list/jobs = SSjob.occupations + var/list/titles = list() + + for(var/datum/job/J in jobs) + if(J.title == job) + titles = J.alt_titles + + return titles From 4fb4f2b32a4643dc95ec51df292086de871eef07 Mon Sep 17 00:00:00 2001 From: Jamie D <993128+JamieD1@users.noreply.github.com> Date: Sun, 8 Aug 2021 17:27:17 +0100 Subject: [PATCH 02/10] e --- code/modules/client/preferences.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 6d8420707d72..96f8f6465674 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1012,7 +1012,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) prefUpperLevel = 3 prefLowerLevel = 1 if(job.alt_titles) - HTML += "
\[[GetPlayerAltTitle(job)]\]" + HTML += "[GetPlayerAltTitle(job)]" HTML += "" From 658fb776d4aabf998678247bac933a6d01a37e7f Mon Sep 17 00:00:00 2001 From: Gabriel Adamson Date: Tue, 10 Aug 2021 01:36:35 -0400 Subject: [PATCH 03/10] Jamie is bad at coding, alternate titles now works --- code/modules/client/preferences.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 96f8f6465674..ce67ca374b35 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1012,7 +1012,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) prefUpperLevel = 3 prefLowerLevel = 1 if(job.alt_titles) - HTML += "[GetPlayerAltTitle(job)]" + HTML += "[GetPlayerAltTitle(job)]" HTML += "" @@ -1249,7 +1249,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) joblessrole = RETURNTOLOBBY SetChoices(user) if ("alt_title") - var/datum/job/job = locate(href_list["job"]) + var/datum/job/job = SSjob.GetJob(href_list["job"]) if (job) var/choices = list(job.title) + job.alt_titles var/choice = input("Pick a title for [job.title].", "Character Generation", GetPlayerAltTitle(job)) as anything in choices | null From ce6df167d89d18dc8e46f5c852b831b70059d535 Mon Sep 17 00:00:00 2001 From: Gabriel Adamson Date: Tue, 10 Aug 2021 02:20:05 -0400 Subject: [PATCH 04/10] Makes code better, should be good now --- code/__HELPERS/game.dm | 4 ++-- code/modules/client/preferences.dm | 13 +++++++++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 0f2b3886703d..1f27f82227b3 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -667,6 +667,8 @@ if(!SSticker.IsRoundInProgress() || QDELETED(character)) return var/area/A = get_area(character) + if(character.mind.role_alt_title) + rank = character.mind.role_alt_title deadchat_broadcast(" has arrived at the station at [A.name].", "[character.real_name] ([rank])", follow_target = character, message_type=DEADCHAT_ARRIVALRATTLE) if((!GLOB.announcement_systems.len) || (!character.mind)) return @@ -674,8 +676,6 @@ return var/obj/machinery/announcement_system/announcer = pick(GLOB.announcement_systems) - if(character.mind.role_alt_title) - rank = character.mind.role_alt_title announcer.announce("ARRIVAL", character.real_name, rank, list()) //make the list empty to make it announce it in common /proc/lavaland_equipment_pressure_check(turf/T) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index ce67ca374b35..25f1b26a0474 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -978,10 +978,17 @@ GLOBAL_LIST_EMPTY(preferences_datums) HTML += "[rank] \[QUIET\]" continue // yogs end + + var/rank_display + if(job.alt_titles) + rank_display = "[GetPlayerAltTitle(job)]" + else + rank_display = "[rank]" + if((rank in GLOB.command_positions) || (rank == "AI"))//Bold head jobs - HTML += "[rank]" + HTML += "[rank_display]" else - HTML += "[rank]" + HTML += rank_display HTML += "" @@ -1011,8 +1018,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) prefLevelColor = "red" prefUpperLevel = 3 prefLowerLevel = 1 - if(job.alt_titles) - HTML += "[GetPlayerAltTitle(job)]" HTML += "" From e80e87db76c1a131593a7ee77a2f55b54debc7aa Mon Sep 17 00:00:00 2001 From: Jamie D <993128+JamieD1@users.noreply.github.com> Date: Sun, 15 Aug 2021 15:44:22 +0100 Subject: [PATCH 05/10] FUCKING JOB TITLES - KILL ME --- code/modules/jobs/job_types/ai.dm | 2 ++ code/modules/jobs/job_types/artist.dm | 2 +- code/modules/jobs/job_types/atmospheric_technician.dm | 1 + code/modules/jobs/job_types/bartender.dm | 2 ++ code/modules/jobs/job_types/botanist.dm | 2 ++ code/modules/jobs/job_types/captain.dm | 1 + code/modules/jobs/job_types/chaplain.dm | 2 ++ code/modules/jobs/job_types/chief_engineer.dm | 1 + code/modules/jobs/job_types/chief_medical_officer.dm | 1 + code/modules/jobs/job_types/clown.dm | 2 ++ code/modules/jobs/job_types/cook.dm | 2 ++ code/modules/jobs/job_types/curator.dm | 2 ++ code/modules/jobs/job_types/cyborg.dm | 1 + code/modules/jobs/job_types/detective.dm | 2 ++ code/modules/jobs/job_types/geneticist.dm | 1 + code/modules/jobs/job_types/head_of_personnel.dm | 1 + code/modules/jobs/job_types/head_of_security.dm | 1 + code/modules/jobs/job_types/janitor.dm | 2 ++ code/modules/jobs/job_types/lawyer.dm | 1 + code/modules/jobs/job_types/medical_doctor.dm | 1 + code/modules/jobs/job_types/mime.dm | 2 ++ code/modules/jobs/job_types/quartermaster.dm | 2 ++ code/modules/jobs/job_types/research_director.dm | 1 + code/modules/jobs/job_types/roboticist.dm | 2 +- code/modules/jobs/job_types/scientist.dm | 2 +- code/modules/jobs/job_types/shaft_miner.dm | 1 + code/modules/jobs/job_types/station_engineer.dm | 1 + code/modules/jobs/job_types/virologist.dm | 2 ++ code/modules/jobs/job_types/warden.dm | 2 ++ yogstation/code/modules/jobs/job_types/clerk.dm | 2 +- yogstation/code/modules/jobs/job_types/paramedic.dm | 1 + yogstation/code/modules/jobs/job_types/psychiatrist.dm | 3 ++- yogstation/code/modules/jobs/job_types/signal_technician.dm | 4 +++- yogstation/code/modules/jobs/job_types/tourist.dm | 4 ++-- 34 files changed, 51 insertions(+), 8 deletions(-) diff --git a/code/modules/jobs/job_types/ai.dm b/code/modules/jobs/job_types/ai.dm index b10cb406e81f..f4d2d1a88f5a 100644 --- a/code/modules/jobs/job_types/ai.dm +++ b/code/modules/jobs/job_types/ai.dm @@ -16,6 +16,8 @@ display_order = JOB_DISPLAY_ORDER_AI var/do_special_check = TRUE + alt_titles = list("Station Central Processor", "Central Silicon Intelligence", "Cyborg Overlord") + /datum/job/ai/equip(mob/living/carbon/human/H, visualsOnly, announce, latejoin, datum/outfit/outfit_override, client/preference_source = null) if(visualsOnly) CRASH("dynamic preview is unsupported") diff --git a/code/modules/jobs/job_types/artist.dm b/code/modules/jobs/job_types/artist.dm index c45d8601831f..4f2bd90545ce 100644 --- a/code/modules/jobs/job_types/artist.dm +++ b/code/modules/jobs/job_types/artist.dm @@ -10,7 +10,7 @@ selection_color = "#dddddd" outfit = /datum/outfit/job/artist - + alt_titles = list("Painter", "Composer", "Artisan") access = list() minimal_access = list() paycheck = PAYCHECK_ASSISTANT diff --git a/code/modules/jobs/job_types/atmospheric_technician.dm b/code/modules/jobs/job_types/atmospheric_technician.dm index c22e977066f3..7e9c3d13f628 100644 --- a/code/modules/jobs/job_types/atmospheric_technician.dm +++ b/code/modules/jobs/job_types/atmospheric_technician.dm @@ -10,6 +10,7 @@ selection_color = "#fff5cc" exp_requirements = 180 exp_type = EXP_TYPE_CREW + alt_titles = list("Breach Fixer", "Radiation Creator", "Habitation Technician", "Fire Supression Technician", "Atmospherics Trainee", "Environmental Maintainer") outfit = /datum/outfit/job/atmos diff --git a/code/modules/jobs/job_types/bartender.dm b/code/modules/jobs/job_types/bartender.dm index 22d48dccd4b0..9986bd118516 100644 --- a/code/modules/jobs/job_types/bartender.dm +++ b/code/modules/jobs/job_types/bartender.dm @@ -10,6 +10,8 @@ selection_color = "#bbe291" exp_type_department = EXP_TYPE_SERVICE // This is so the jobs menu can work properly + alt_titles = list("Barkeep", "Tapster", "Barista", "Mixologist") + outfit = /datum/outfit/job/bartender access = list(ACCESS_HYDROPONICS, ACCESS_BAR, ACCESS_KITCHEN, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM) diff --git a/code/modules/jobs/job_types/botanist.dm b/code/modules/jobs/job_types/botanist.dm index 87c02bfa265c..0ee5415dc562 100644 --- a/code/modules/jobs/job_types/botanist.dm +++ b/code/modules/jobs/job_types/botanist.dm @@ -11,6 +11,8 @@ outfit = /datum/outfit/job/botanist + alt_titles = list("Ecologist", "Agriculturist", "Botany Greenhorn", "Hydroponicist") + access = list(ACCESS_HYDROPONICS, ACCESS_BAR, ACCESS_KITCHEN, ACCESS_MORGUE, ACCESS_MINERAL_STOREROOM) minimal_access = list(ACCESS_HYDROPONICS, ACCESS_MORGUE, ACCESS_MINERAL_STOREROOM) paycheck = PAYCHECK_EASY diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm index 6c49c1cb07bd..f9777f17a9b3 100755 --- a/code/modules/jobs/job_types/captain.dm +++ b/code/modules/jobs/job_types/captain.dm @@ -15,6 +15,7 @@ exp_requirements = 180 exp_type = EXP_TYPE_CREW exp_type_department = EXP_TYPE_COMMAND + alt_titles = list("Station Commander", "Facility Overseer") outfit = /datum/outfit/job/captain diff --git a/code/modules/jobs/job_types/chaplain.dm b/code/modules/jobs/job_types/chaplain.dm index 3d987162c6ea..8f4bff90ab97 100644 --- a/code/modules/jobs/job_types/chaplain.dm +++ b/code/modules/jobs/job_types/chaplain.dm @@ -11,6 +11,8 @@ outfit = /datum/outfit/job/chaplain + alt_titles = list("Priest", "Preacher", "Cleric") + access = list(ACCESS_MORGUE, ACCESS_CHAPEL_OFFICE, ACCESS_CREMATORIUM, ACCESS_THEATRE) minimal_access = list(ACCESS_MORGUE, ACCESS_CHAPEL_OFFICE, ACCESS_CREMATORIUM, ACCESS_THEATRE) paycheck = PAYCHECK_EASY diff --git a/code/modules/jobs/job_types/chief_engineer.dm b/code/modules/jobs/job_types/chief_engineer.dm index 1602999a4e3c..6630586a7681 100644 --- a/code/modules/jobs/job_types/chief_engineer.dm +++ b/code/modules/jobs/job_types/chief_engineer.dm @@ -15,6 +15,7 @@ exp_requirements = 180 exp_type = EXP_TYPE_CREW exp_type_department = EXP_TYPE_ENGINEERING + alt_titles = list("Head of Engineering", "Engineering Director") outfit = /datum/outfit/job/ce diff --git a/code/modules/jobs/job_types/chief_medical_officer.dm b/code/modules/jobs/job_types/chief_medical_officer.dm index 33dafd976ada..adfb74511cc9 100644 --- a/code/modules/jobs/job_types/chief_medical_officer.dm +++ b/code/modules/jobs/job_types/chief_medical_officer.dm @@ -15,6 +15,7 @@ exp_requirements = 180 exp_type = EXP_TYPE_CREW exp_type_department = EXP_TYPE_MEDICAL + alt_titles = list("Medical Director", "Head of Medical") outfit = /datum/outfit/job/cmo diff --git a/code/modules/jobs/job_types/clown.dm b/code/modules/jobs/job_types/clown.dm index a8b362cd9df4..36f43b0504b0 100644 --- a/code/modules/jobs/job_types/clown.dm +++ b/code/modules/jobs/job_types/clown.dm @@ -11,6 +11,8 @@ outfit = /datum/outfit/job/clown + alt_titles = list("Entertainer", "Comedian", "Jester") + access = list(ACCESS_THEATRE) minimal_access = list(ACCESS_THEATRE) paycheck = PAYCHECK_MINIMAL diff --git a/code/modules/jobs/job_types/cook.dm b/code/modules/jobs/job_types/cook.dm index 6996fde1ccd8..88d53a37a27b 100644 --- a/code/modules/jobs/job_types/cook.dm +++ b/code/modules/jobs/job_types/cook.dm @@ -12,6 +12,8 @@ outfit = /datum/outfit/job/cook + alt_titles = list("Chef", "Hash Slinger", "Sous-chef", "Culinary Artist") + access = list(ACCESS_HYDROPONICS, ACCESS_BAR, ACCESS_KITCHEN, ACCESS_MORGUE, ACCESS_MINERAL_STOREROOM) minimal_access = list(ACCESS_KITCHEN, ACCESS_MORGUE, ACCESS_MINERAL_STOREROOM) paycheck = PAYCHECK_EASY diff --git a/code/modules/jobs/job_types/curator.dm b/code/modules/jobs/job_types/curator.dm index 57f52803c2bb..2c4667f10a37 100644 --- a/code/modules/jobs/job_types/curator.dm +++ b/code/modules/jobs/job_types/curator.dm @@ -11,6 +11,8 @@ outfit = /datum/outfit/job/curator + alt_titles = list("Librarian", "Journalist", "Archivist") + access = list(ACCESS_LIBRARY, ACCESS_CONSTRUCTION, ACCESS_MINING_STATION) minimal_access = list(ACCESS_LIBRARY, ACCESS_CONSTRUCTION, ACCESS_MINING_STATION) paycheck = PAYCHECK_EASY diff --git a/code/modules/jobs/job_types/cyborg.dm b/code/modules/jobs/job_types/cyborg.dm index 0cf6dee1b8c3..a9babf2ba89c 100644 --- a/code/modules/jobs/job_types/cyborg.dm +++ b/code/modules/jobs/job_types/cyborg.dm @@ -11,6 +11,7 @@ minimal_player_age = 21 exp_requirements = 120 exp_type = EXP_TYPE_CREW + alt_titles = list("Android", "Robot", "Cyborg") display_order = JOB_DISPLAY_ORDER_CYBORG diff --git a/code/modules/jobs/job_types/detective.dm b/code/modules/jobs/job_types/detective.dm index 8698a5a91764..df2faaaf62a5 100644 --- a/code/modules/jobs/job_types/detective.dm +++ b/code/modules/jobs/job_types/detective.dm @@ -15,6 +15,8 @@ outfit = /datum/outfit/job/detective + alt_titles = list("Investigator", "Forensic Analyst", "Investigative Cadet", "Private Eye") + access = list(ACCESS_SEC_DOORS, ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_MECH_SECURITY, ACCESS_COURT, ACCESS_BRIG, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM) minimal_access = list(ACCESS_SEC_DOORS, ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_MECH_SECURITY, ACCESS_COURT, ACCESS_BRIG, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM) paycheck = PAYCHECK_MEDIUM diff --git a/code/modules/jobs/job_types/geneticist.dm b/code/modules/jobs/job_types/geneticist.dm index c1c8ebf06420..244817c23826 100644 --- a/code/modules/jobs/job_types/geneticist.dm +++ b/code/modules/jobs/job_types/geneticist.dm @@ -10,6 +10,7 @@ selection_color = "#d4ebf2" exp_type = EXP_TYPE_CREW exp_requirements = 60 + alt_titles = list("DNA Mechanic", "Bioengineer", "Junior Geneticist", "Gene Splicer") outfit = /datum/outfit/job/geneticist diff --git a/code/modules/jobs/job_types/head_of_personnel.dm b/code/modules/jobs/job_types/head_of_personnel.dm index c8c1b0b2d73a..28e923c571fb 100644 --- a/code/modules/jobs/job_types/head_of_personnel.dm +++ b/code/modules/jobs/job_types/head_of_personnel.dm @@ -15,6 +15,7 @@ exp_requirements = 180 exp_type = EXP_TYPE_CREW exp_type_department = EXP_TYPE_SUPPLY + alt_titles = list("Chief of Staff", "Head of Internal Affairs") outfit = /datum/outfit/job/hop diff --git a/code/modules/jobs/job_types/head_of_security.dm b/code/modules/jobs/job_types/head_of_security.dm index b24f7995b882..17a89caded8b 100644 --- a/code/modules/jobs/job_types/head_of_security.dm +++ b/code/modules/jobs/job_types/head_of_security.dm @@ -15,6 +15,7 @@ exp_requirements = 600 exp_type = EXP_TYPE_CREW exp_type_department = EXP_TYPE_SECURITY + alt_titles = list("Security Commander", "Security Chief") outfit = /datum/outfit/job/hos mind_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM) diff --git a/code/modules/jobs/job_types/janitor.dm b/code/modules/jobs/job_types/janitor.dm index fd9717f9cd1e..a6fadbd77033 100644 --- a/code/modules/jobs/job_types/janitor.dm +++ b/code/modules/jobs/job_types/janitor.dm @@ -11,6 +11,8 @@ outfit = /datum/outfit/job/janitor + alt_titles = list("Custodian", "Sanitation Worker", "Cleaner", "Caretaker") + access = list(ACCESS_JANITOR, ACCESS_MAINT_TUNNELS, ACCESS_MINERAL_STOREROOM) minimal_access = list(ACCESS_JANITOR, ACCESS_MAINT_TUNNELS, ACCESS_MINERAL_STOREROOM) paycheck = PAYCHECK_EASY diff --git a/code/modules/jobs/job_types/lawyer.dm b/code/modules/jobs/job_types/lawyer.dm index 10e066781644..9aa7c31340db 100644 --- a/code/modules/jobs/job_types/lawyer.dm +++ b/code/modules/jobs/job_types/lawyer.dm @@ -9,6 +9,7 @@ supervisors = "the head of personnel" selection_color = "#dddddd" var/lawyers = 0 //Counts lawyer amount + alt_titles = list("Prosecutor", "Defense Attorney", "Paralegal", "Ace Attorney") outfit = /datum/outfit/job/lawyer diff --git a/code/modules/jobs/job_types/medical_doctor.dm b/code/modules/jobs/job_types/medical_doctor.dm index e80e98f726e0..47548e1b2998 100644 --- a/code/modules/jobs/job_types/medical_doctor.dm +++ b/code/modules/jobs/job_types/medical_doctor.dm @@ -10,6 +10,7 @@ selection_color = "#d4ebf2" exp_requirements = 180 exp_type = EXP_TYPE_CREW + alt_titles = list("Physician", "Surgeon", "Nurse", "Medical Resident", "Attending Physician", "Chief Surgeon", "Attending Physician", "Chief Surgeon", "Medical Subdirector", "General Practitioner") outfit = /datum/outfit/job/doctor diff --git a/code/modules/jobs/job_types/mime.dm b/code/modules/jobs/job_types/mime.dm index c60c1e6e7832..627390ab8107 100644 --- a/code/modules/jobs/job_types/mime.dm +++ b/code/modules/jobs/job_types/mime.dm @@ -11,6 +11,8 @@ outfit = /datum/outfit/job/mime + alt_titles = list("Mute Entertainer", "Silent Jokester", "Pantomimist") + access = list(ACCESS_THEATRE) minimal_access = list(ACCESS_THEATRE) paycheck = PAYCHECK_MINIMAL diff --git a/code/modules/jobs/job_types/quartermaster.dm b/code/modules/jobs/job_types/quartermaster.dm index d731ee36971c..5f2f4886edfd 100644 --- a/code/modules/jobs/job_types/quartermaster.dm +++ b/code/modules/jobs/job_types/quartermaster.dm @@ -11,6 +11,8 @@ outfit = /datum/outfit/job/quartermaster + alt_titles = list("Stock Controller", "Cargo Coordinator", "Shipping Overseer") + access = list(ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_QM, ACCESS_MINING, ACCESS_MECH_MINING, ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM, ACCESS_VAULT) minimal_access = list(ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_QM, ACCESS_MINING, ACCESS_MECH_MINING, ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM, ACCESS_VAULT) paycheck = PAYCHECK_MEDIUM diff --git a/code/modules/jobs/job_types/research_director.dm b/code/modules/jobs/job_types/research_director.dm index 82e62c58b043..7c5401df6192 100644 --- a/code/modules/jobs/job_types/research_director.dm +++ b/code/modules/jobs/job_types/research_director.dm @@ -16,6 +16,7 @@ exp_requirements = 180 exp_type = EXP_TYPE_CREW exp_type_department = EXP_TYPE_SCIENCE + alt_titles = list("Chief Science Officer", "Head of Research") outfit = /datum/outfit/job/rd diff --git a/code/modules/jobs/job_types/roboticist.dm b/code/modules/jobs/job_types/roboticist.dm index 76d7835b750f..87fc5d0e9eed 100644 --- a/code/modules/jobs/job_types/roboticist.dm +++ b/code/modules/jobs/job_types/roboticist.dm @@ -10,7 +10,7 @@ selection_color = "#ffeeff" exp_requirements = 60 exp_type = EXP_TYPE_CREW - alt_titles = list("Biomechanical Engineer","Mechatronic Engineer") + alt_titles = list("Augmentation Theorist", "Cyborg Maintainer", "Robotics Intern", "Biomechanical Engineer", "Mechatronic Engineer") outfit = /datum/outfit/job/roboticist diff --git a/code/modules/jobs/job_types/scientist.dm b/code/modules/jobs/job_types/scientist.dm index 696831aa50e9..a9a4f0b0d021 100644 --- a/code/modules/jobs/job_types/scientist.dm +++ b/code/modules/jobs/job_types/scientist.dm @@ -10,7 +10,7 @@ selection_color = "#ffeeff" exp_requirements = 180 exp_type = EXP_TYPE_CREW - + alt_titles = list("Researcher", "Toxins Specialist", "Physicist", "Science Intern", "Anomalist", "Quantum Physicist", "Xenobiologist", "Bomb Specialist") outfit = /datum/outfit/job/scientist diff --git a/code/modules/jobs/job_types/shaft_miner.dm b/code/modules/jobs/job_types/shaft_miner.dm index 57114fca9922..3cb25ae9e2b0 100644 --- a/code/modules/jobs/job_types/shaft_miner.dm +++ b/code/modules/jobs/job_types/shaft_miner.dm @@ -8,6 +8,7 @@ spawn_positions = 3 supervisors = "the quartermaster and the head of personnel" selection_color = "#dcba97" + alt_titles = list("Lavaland Scout", "Prospector", "Junior Miner", "Major Miner") outfit = /datum/outfit/job/miner diff --git a/code/modules/jobs/job_types/station_engineer.dm b/code/modules/jobs/job_types/station_engineer.dm index 8b0f3a36b270..17c6013dcc3f 100644 --- a/code/modules/jobs/job_types/station_engineer.dm +++ b/code/modules/jobs/job_types/station_engineer.dm @@ -10,6 +10,7 @@ selection_color = "#fff5cc" exp_requirements = 180 exp_type = EXP_TYPE_CREW + alt_titles = list("Engine Technician", "Solar Engineer", "Project Engineer", "Junior Engineer", "Construction Specialist") outfit = /datum/outfit/job/engineer diff --git a/code/modules/jobs/job_types/virologist.dm b/code/modules/jobs/job_types/virologist.dm index d3f9685887f6..72e8fab706d9 100644 --- a/code/modules/jobs/job_types/virologist.dm +++ b/code/modules/jobs/job_types/virologist.dm @@ -14,6 +14,8 @@ outfit = /datum/outfit/job/virologist + alt_titles = list("Microbiologist", "Pathologist", "Junior Disease Researcher", "Epidemiologist") + access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_MECH_MEDICAL, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_MINERAL_STOREROOM) minimal_access = list(ACCESS_MEDICAL, ACCESS_VIROLOGY, ACCESS_MECH_MEDICAL, ACCESS_MINERAL_STOREROOM) paycheck = PAYCHECK_MEDIUM diff --git a/code/modules/jobs/job_types/warden.dm b/code/modules/jobs/job_types/warden.dm index d31081017363..2ff370631e9f 100644 --- a/code/modules/jobs/job_types/warden.dm +++ b/code/modules/jobs/job_types/warden.dm @@ -16,6 +16,8 @@ outfit = /datum/outfit/job/warden + alt_titles = list("Security Overseer", "Brig Superintendent", "Security Lt. Commander") + access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_MECH_SECURITY, ACCESS_MAINT_TUNNELS, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_FORENSICS_LOCKERS, ACCESS_MINERAL_STOREROOM) minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_MECH_SECURITY, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM) // See /datum/job/warden/get_access() paycheck = PAYCHECK_HARD diff --git a/yogstation/code/modules/jobs/job_types/clerk.dm b/yogstation/code/modules/jobs/job_types/clerk.dm index 45256ed8c44f..44535c0214cf 100644 --- a/yogstation/code/modules/jobs/job_types/clerk.dm +++ b/yogstation/code/modules/jobs/job_types/clerk.dm @@ -10,7 +10,7 @@ selection_color = "#dddddd" access = list(ACCESS_MANUFACTURING) minimal_access = list(ACCESS_MANUFACTURING) - + alt_titles = list("Salesman", "Gift Shop Attendent", "Retail Worker") outfit = /datum/outfit/job/clerk paycheck = PAYCHECK_EASY paycheck_department = ACCOUNT_SRV diff --git a/yogstation/code/modules/jobs/job_types/paramedic.dm b/yogstation/code/modules/jobs/job_types/paramedic.dm index 870c2c10fb24..a127e66cc3dd 100644 --- a/yogstation/code/modules/jobs/job_types/paramedic.dm +++ b/yogstation/code/modules/jobs/job_types/paramedic.dm @@ -8,6 +8,7 @@ spawn_positions = 2 supervisors = "the chief medical officer" selection_color = "#d4ebf2" + alt_titles = list("EMT", "ERT", "Paramedic Trainee", "Rapid Response Medic") outfit = /datum/outfit/job/paramedic diff --git a/yogstation/code/modules/jobs/job_types/psychiatrist.dm b/yogstation/code/modules/jobs/job_types/psychiatrist.dm index f6603bd052fc..e26efb8e67c9 100644 --- a/yogstation/code/modules/jobs/job_types/psychiatrist.dm +++ b/yogstation/code/modules/jobs/job_types/psychiatrist.dm @@ -8,6 +8,7 @@ spawn_positions = 1 supervisors = "the chief medical officer" selection_color = "#d4ebf2" + alt_titles = list("Councilor", "Therapist", "Mentalist") outfit = /datum/outfit/job/psych @@ -33,4 +34,4 @@ l_hand = /obj/item/storage/briefcase glasses = /obj/item/clothing/glasses/regular belt = /obj/item/pda - ears = /obj/item/radio/headset/headset_med \ No newline at end of file + ears = /obj/item/radio/headset/headset_med diff --git a/yogstation/code/modules/jobs/job_types/signal_technician.dm b/yogstation/code/modules/jobs/job_types/signal_technician.dm index c52a5c679c80..22642d50c7a2 100644 --- a/yogstation/code/modules/jobs/job_types/signal_technician.dm +++ b/yogstation/code/modules/jobs/job_types/signal_technician.dm @@ -11,6 +11,8 @@ outfit = /datum/outfit/job/signal_tech + alt_titles = list("NTSL Programmer", "Comms Tech", "Station IT Support") + access = list(ACCESS_TCOMSAT, ACCESS_TCOM_ADMIN, ACCESS_TECH_STORAGE, ACCESS_RC_ANNOUNCE, ACCESS_CONSTRUCTION, ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_MAINT_TUNNELS, ACCESS_MECH_ENGINE) minimal_access = list(ACCESS_TCOMSAT, ACCESS_TCOM_ADMIN, ACCESS_TECH_STORAGE, ACCESS_RC_ANNOUNCE, ACCESS_CONSTRUCTION, ACCESS_MECH_ENGINE) @@ -41,4 +43,4 @@ satchel = /obj/item/storage/backpack/satchel/eng duffelbag = /obj/item/storage/backpack/duffelbag/engineering box = /obj/item/storage/box/engineer - pda_slot = SLOT_L_STORE \ No newline at end of file + pda_slot = SLOT_L_STORE diff --git a/yogstation/code/modules/jobs/job_types/tourist.dm b/yogstation/code/modules/jobs/job_types/tourist.dm index 4770909b1b29..826766b68b00 100644 --- a/yogstation/code/modules/jobs/job_types/tourist.dm +++ b/yogstation/code/modules/jobs/job_types/tourist.dm @@ -9,7 +9,7 @@ selection_color = "#dddddd" access = list() minimal_access = list() - + alt_titles = list("Visitor", "Traveler", "Siteseer") outfit = /datum/outfit/job/tourist paycheck = PAYCHECK_EASY paycheck_department = ACCOUNT_CIV @@ -26,4 +26,4 @@ backpack_contents = list(/obj/item/camera_film, /obj/item/stack/spacecash/c20, /obj/item/stack/spacecash/c20, /obj/item/stack/spacecash/c20) r_hand = /obj/item/camera l_pocket = /obj/item/camera_film - r_pocket = /obj/item/camera_film \ No newline at end of file + r_pocket = /obj/item/camera_film From 78cf1cf53377c5415487e7184b16db83dce7f924 Mon Sep 17 00:00:00 2001 From: Jamie D <993128+JamieD1@users.noreply.github.com> Date: Sun, 15 Aug 2021 17:46:13 +0100 Subject: [PATCH 06/10] CHANGES --- code/game/machinery/computer/crew.dm | 2 +- code/game/objects/items/cards_ids.dm | 1 + code/modules/jobs/access.dm | 2 + code/modules/jobs/job_types/_job.dm | 5 + code/modules/jobs/job_types/assistant.dm | 2 + .../jobs/job_types/cargo_technician.dm | 2 + code/modules/jobs/job_types/chemist.dm | 2 + code/modules/jobs/job_types/detective.dm | 2 +- code/modules/jobs/job_types/medical_doctor.dm | 2 +- .../jobs/job_types/security_officer.dm | 2 + code/modules/jobs/jobs.dm | 102 +++++++++--------- .../modules/mob/living/silicon/robot/robot.dm | 5 +- .../modules/jobs/job_types/mining_medic.dm | 2 + .../code/modules/jobs/job_types/paramedic.dm | 2 +- .../modules/jobs/job_types/psychiatrist.dm | 2 +- 15 files changed, 76 insertions(+), 59 deletions(-) diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index 10720aa19b4f..eeb8bc2b8366 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -149,7 +149,7 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new) if (I) name = I.registered_name - assignment = I.assignment + assignment = I.originalassignment ijob = jobs[I.assignment] else name = "Unknown" diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index 9bf01989f063..76db08a0e318 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -117,6 +117,7 @@ var/list/access = list() var/registered_name = null // The name registered_name on the card var/assignment = null + var/originalassignment = null var/access_txt // mapping aid var/datum/bank_account/registered_account var/obj/machinery/paystand/my_store diff --git a/code/modules/jobs/access.dm b/code/modules/jobs/access.dm index 1e5a3212cb5a..f2b423794653 100644 --- a/code/modules/jobs/access.dm +++ b/code/modules/jobs/access.dm @@ -378,6 +378,8 @@ if(!I) return var/jobName = I.assignment + if(I.originalassignment) + jobName = I.originalassignment if(jobName in get_all_job_icons()) //Check if the job has a hud icon return jobName if(jobName in get_all_centcom_jobs()) //Return with the NT logo if it is a CentCom job diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm index edb594137d1b..501f09957775 100644 --- a/code/modules/jobs/job_types/_job.dm +++ b/code/modules/jobs/job_types/_job.dm @@ -266,6 +266,7 @@ C.assignment = H.mind.role_alt_title else C.assignment = J.title + C.originalassignment = H.mind.assigned_role if(H.age) C.registered_age = H.age C.update_label() @@ -280,6 +281,10 @@ var/obj/item/pda/PDA = H.get_item_by_slot(pda_slot) if(istype(PDA)) PDA.owner = H.real_name + if(H.mind?.role_alt_title) + PDA.ownjob = H.mind.role_alt_title + else + PDA.ownjob = J.title PDA.ownjob = J.title PDA.update_label() diff --git a/code/modules/jobs/job_types/assistant.dm b/code/modules/jobs/job_types/assistant.dm index 4bb6e73ff748..ce2353de5bb9 100644 --- a/code/modules/jobs/job_types/assistant.dm +++ b/code/modules/jobs/job_types/assistant.dm @@ -18,6 +18,8 @@ Assistant paycheck_department = ACCOUNT_CIV display_order = JOB_DISPLAY_ORDER_ASSISTANT + alt_titles = list("Intern", "Apprentice", "Subordinate", "Temporary Worker", "Colleague", "Associate") + /datum/job/assistant/get_access() if(CONFIG_GET(flag/assistants_have_maint_access) || !CONFIG_GET(flag/jobs_have_minimal_access)) //Config has assistant maint access set . = ..() diff --git a/code/modules/jobs/job_types/cargo_technician.dm b/code/modules/jobs/job_types/cargo_technician.dm index dfb998add446..9eb6fcd98c5b 100644 --- a/code/modules/jobs/job_types/cargo_technician.dm +++ b/code/modules/jobs/job_types/cargo_technician.dm @@ -11,6 +11,8 @@ outfit = /datum/outfit/job/cargo_tech + alt_titles = list("Deliveryperson", "Mail Service", "Exports Handler", "Cargo Trainee", "Crate Pusher") + access = list(ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_QM, ACCESS_MINING, ACCESS_MECH_MINING, ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM) minimal_access = list(ACCESS_MAINT_TUNNELS, ACCESS_CARGO, ACCESS_MAILSORTING, ACCESS_MINERAL_STOREROOM) paycheck = PAYCHECK_EASY diff --git a/code/modules/jobs/job_types/chemist.dm b/code/modules/jobs/job_types/chemist.dm index 3e860d92f532..aa9cfadfec6b 100644 --- a/code/modules/jobs/job_types/chemist.dm +++ b/code/modules/jobs/job_types/chemist.dm @@ -12,6 +12,8 @@ exp_requirements = 120 exp_type_department = EXP_TYPE_MEDICAL + alt_titles = list("Pharmacist", "Chemical Analyst", "Chemistry Lab Technician", "Chemical Specialist") + outfit = /datum/outfit/job/chemist access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CHEMISTRY, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_MECH_MEDICAL, ACCESS_MINERAL_STOREROOM) diff --git a/code/modules/jobs/job_types/detective.dm b/code/modules/jobs/job_types/detective.dm index df2faaaf62a5..a26d25e0a758 100644 --- a/code/modules/jobs/job_types/detective.dm +++ b/code/modules/jobs/job_types/detective.dm @@ -15,7 +15,7 @@ outfit = /datum/outfit/job/detective - alt_titles = list("Investigator", "Forensic Analyst", "Investigative Cadet", "Private Eye") + alt_titles = list("Investigator", "Forensic Analyst", "Investigative Cadet", "Private Eye", "Inspector") access = list(ACCESS_SEC_DOORS, ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_MECH_SECURITY, ACCESS_COURT, ACCESS_BRIG, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM) minimal_access = list(ACCESS_SEC_DOORS, ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_MECH_SECURITY, ACCESS_COURT, ACCESS_BRIG, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM) diff --git a/code/modules/jobs/job_types/medical_doctor.dm b/code/modules/jobs/job_types/medical_doctor.dm index 47548e1b2998..37070fc29b83 100644 --- a/code/modules/jobs/job_types/medical_doctor.dm +++ b/code/modules/jobs/job_types/medical_doctor.dm @@ -10,7 +10,7 @@ selection_color = "#d4ebf2" exp_requirements = 180 exp_type = EXP_TYPE_CREW - alt_titles = list("Physician", "Surgeon", "Nurse", "Medical Resident", "Attending Physician", "Chief Surgeon", "Attending Physician", "Chief Surgeon", "Medical Subdirector", "General Practitioner") + alt_titles = list("Physician", "Surgeon", "Nurse", "Medical Resident", "Attending Physician", "Attending Physician", "General Practitioner") outfit = /datum/outfit/job/doctor diff --git a/code/modules/jobs/job_types/security_officer.dm b/code/modules/jobs/job_types/security_officer.dm index 76a8fabbfb08..47ede25e69ee 100644 --- a/code/modules/jobs/job_types/security_officer.dm +++ b/code/modules/jobs/job_types/security_officer.dm @@ -15,6 +15,8 @@ outfit = /datum/outfit/job/security + alt_titles = list("Security Guard", "Threat Response Officer", "Civilan Protection Officer", "Security Cadet", "Security Staff Sergeant") + access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_MECH_SECURITY, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_FORENSICS_LOCKERS, ACCESS_MINERAL_STOREROOM) minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_MECH_SECURITY, ACCESS_MINERAL_STOREROOM) // See /datum/job/officer/get_access() paycheck = PAYCHECK_HARD diff --git a/code/modules/jobs/jobs.dm b/code/modules/jobs/jobs.dm index ed91482e5aa4..249d8b8cc17c 100644 --- a/code/modules/jobs/jobs.dm +++ b/code/modules/jobs/jobs.dm @@ -1,87 +1,83 @@ GLOBAL_LIST_INIT(command_positions, list( - "Captain", - "Head of Personnel", - "Head of Security", - "Chief Engineer", - "Research Director", - "Chief Medical Officer")) + "Captain", "Station Commander", "Facility Overseer", + "Head of Personnel", "Chief of Staff", "Head of Internal Affairs", + "Head of Security", "Security Commander", "Security Chief", + "Chief Engineer", "Head of Engineering", "Engineering Director", + "Research Director", "Chief Science Officer", "Head of Research", + "Chief Medical Officer", "Medical Director", "Head of Medical")) GLOBAL_LIST_INIT(engineering_positions, list( - "Chief Engineer", - "Station Engineer", - // yogs start - Yog jobs - "Atmospheric Technician", - "Signal Technician")) - // yogs end + "Chief Engineer", "Head of Engineering", "Engineering Director", + "Station Engineer", "Engine Technician", "Solar Engineer", "Project Engineer", "Junior Engineer", "Construction Specialist", + "Atmospheric Technician", "Breach Fixer", "Habitation Technician", "Fire Supression Technician", "Atmospherics Trainee", "Environmental Maintainer", + "Signal Technician", "NTSL Programmer", "Comms Tech", "Station IT Support" + )) GLOBAL_LIST_INIT(medical_positions, list( - "Chief Medical Officer", - "Medical Doctor", - "Geneticist", - "Virologist", - // yogs start - Yog jobs - "Chemist", - "Paramedic", - "Psychiatrist", - "Mining Medic")) - // yogs end + "Chief Medical Officer", "Medical Director", "Head of Medical", + "Medical Doctor", "Physician", "Surgeon", "Nurse", "Medical Resident", "Attending Physician", "Chief Surgeon", "Attending Physician", "Chief Surgeon", "Medical Subdirector", "General Practitioner", + "Geneticist", "DNA Mechanic", "Bioengineer", "Junior Geneticist", "Gene Splicer", + "Virologist", "Microbiologist", "Pathologist", "Junior Disease Researcher", "Epidemiologist", + "Chemist", "Pharmacist", "Chemical Analyst", "Chemistry Lab Technician", "Chemical Specialist", + "Paramedic", "EMT", "Paramedic Trainee", "Rapid Response Medic", + "Psychiatrist", "Councilor", "Therapist", "Mentalist", + "Mining Medic", "Mining Medical Support", "Lavaland Medical Care Unit", "Junior Mining Medic", "Planetside Health Officer")) GLOBAL_LIST_INIT(science_positions, list( - "Research Director", - "Scientist", - "Roboticist")) + "Research Director", "Chief Science Officer", "Head of Research", + "Scientist", "Researcher", "Toxins Specialist", "Physicist", "Science Intern", "Anomalist", "Quantum Physicist", "Xenobiologist", "Bomb Specialist", + "Roboticist", "Augmentation Theorist", "Cyborg Maintainer", "Robotics Intern", "Biomechanical Engineer", "Mechatronic Engineer")) GLOBAL_LIST_INIT(supply_positions, list( - "Head of Personnel", - "Quartermaster", - "Cargo Technician", - "Shaft Miner")) + "Head of Personnel", "Chief of Staff", "Head of Internal Affairs", + "Quartermaster", "Stock Controller", "Cargo Coordinator", "Shipping Overseer", + "Cargo Technician", "Deliveryperson", "Mail Service", "Exports Handler", "Cargo Trainee", "Crate Pusher", + "Shaft Miner", "Lavaland Scout", "Prospector", "Junior Miner", "Major Miner")) GLOBAL_LIST_INIT(civilian_positions, list( - "Bartender", - "Botanist", - "Cook", - "Janitor", - "Curator", - "Lawyer", - "Chaplain", - "Clown", - "Mime", - // yogs start - Yog jobs - "Assistant", - "Clerk", - "Tourist", - "Artist")) - // yogs end + "Bartender", "Barkeep", "Tapster", "Barista", "Mixologist", + "Botanist", "Ecologist", "Agriculturist", "Botany Greenhorn", "Hydroponicist", + "Cook", "Chef", "Hash Slinger", "Sous-chef", "Culinary Artist", + "Janitor", "Custodian", "Sanitation Worker", "Cleaner", "Caretaker", + "Curator", "Librarian", "Journalist", "Archivist", + "Lawyer", "Prosecutor", "Defense Attorney", "Paralegal", "Ace Attorney", + "Chaplain", "Priest", "Preacher", "Cleric", + "Clown", "Entertainer", "Comedian", "Jester", + "Mime", "Mute Entertainer", "Silent Jokester", "Pantomimist", + "Assistant", "Intern", "Apprentice", "Subordinate", "Temporary Worker", "Colleague", "Associate", + "Clerk", "Salesman", "Gift Shop Attendent", "Retail Worker", + "Tourist", "Visitor", "Traveler", "Siteseer", + "Artist", "Composer", "Artisan" + )) GLOBAL_LIST_INIT(security_positions, list( - "Head of Security", - "Warden", - "Detective", - "Security Officer")) + "Head of Security", "Security Commander", "Security Chief", + "Warden", "Security Overseer", "Brig Superintendent", "Security Lt. Commander", + "Detective", "Investigator", "Forensic Analyst", "Investigative Cadet", "Private Eye", "Inspector", + "Security Officer", "Security Guard", "Threat Response Officer", "Civilan Protection Officer", "Security Cadet", "Security Staff Sergeant",)) GLOBAL_LIST_INIT(nonhuman_positions, list( - "AI", - "Cyborg", + "AI", "Station Central Processor", "Central Silicon Intelligence", "Cyborg Overlord", + "Cyborg", "Android", "Robot", ROLE_PAI)) GLOBAL_LIST_INIT(exp_jobsmap, list( - EXP_TYPE_CREW = list("titles" = command_positions | engineering_positions | medical_positions | science_positions | supply_positions | security_positions | civilian_positions | list("AI","Cyborg")), // crew positions + EXP_TYPE_CREW = list("titles" = command_positions | engineering_positions | medical_positions | science_positions | supply_positions | security_positions | civilian_positions | nonhuman_positions), // crew positions EXP_TYPE_COMMAND = list("titles" = command_positions), EXP_TYPE_ENGINEERING = list("titles" = engineering_positions), EXP_TYPE_MEDICAL = list("titles" = medical_positions), EXP_TYPE_SCIENCE = list("titles" = science_positions), EXP_TYPE_SUPPLY = list("titles" = supply_positions), EXP_TYPE_SECURITY = list("titles" = security_positions), - EXP_TYPE_SILICON = list("titles" = list("AI","Cyborg")), - EXP_TYPE_SERVICE = list("titles" = civilian_positions), + EXP_TYPE_SILICON = list("titles" = nonhuman_positions), + EXP_TYPE_SERVICE = list("titles" = civilian_positions) )) GLOBAL_LIST_INIT(exp_specialmap, list( diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 72406435af3d..a7a370c8c5b3 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -150,7 +150,10 @@ //MMI stuff. Held togheter by magic. ~Miauw else if(!mmi || !mmi.brainmob) - mmi = new (src) + if(mind.role_alt_title != "Cyborg") + mmi = new /obj/item/mmi/posibrain + else + mmi = new (src) mmi.brain = new /obj/item/organ/brain(mmi) mmi.brain.name = "[real_name]'s brain" mmi.name = "[initial(mmi.name)]: [real_name]" diff --git a/yogstation/code/modules/jobs/job_types/mining_medic.dm b/yogstation/code/modules/jobs/job_types/mining_medic.dm index cfda9318ba5a..57538d9c0d39 100644 --- a/yogstation/code/modules/jobs/job_types/mining_medic.dm +++ b/yogstation/code/modules/jobs/job_types/mining_medic.dm @@ -11,6 +11,8 @@ outfit = /datum/outfit/job/miningmedic + alt_titles = list("Mining Medical Support", "Lavaland Medical Care Unit", "Junior Mining Medic", "Planetside Health Officer") + minimal_character_age = 24 // "According to age statistics published by the Association of American Medical Colleges, the average age among medical students who matriculated at U.S. medical schools in the 2017-2018 school year was 24" access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CARGO, ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_MAILSORTING, ACCESS_MINERAL_STOREROOM, ACCESS_MECH_MINING, ACCESS_MECH_MEDICAL) diff --git a/yogstation/code/modules/jobs/job_types/paramedic.dm b/yogstation/code/modules/jobs/job_types/paramedic.dm index a127e66cc3dd..7b085fdcb095 100644 --- a/yogstation/code/modules/jobs/job_types/paramedic.dm +++ b/yogstation/code/modules/jobs/job_types/paramedic.dm @@ -8,7 +8,7 @@ spawn_positions = 2 supervisors = "the chief medical officer" selection_color = "#d4ebf2" - alt_titles = list("EMT", "ERT", "Paramedic Trainee", "Rapid Response Medic") + alt_titles = list("EMT", "Paramedic Trainee", "Rapid Response Medic") outfit = /datum/outfit/job/paramedic diff --git a/yogstation/code/modules/jobs/job_types/psychiatrist.dm b/yogstation/code/modules/jobs/job_types/psychiatrist.dm index e26efb8e67c9..45153da1b146 100644 --- a/yogstation/code/modules/jobs/job_types/psychiatrist.dm +++ b/yogstation/code/modules/jobs/job_types/psychiatrist.dm @@ -8,7 +8,7 @@ spawn_positions = 1 supervisors = "the chief medical officer" selection_color = "#d4ebf2" - alt_titles = list("Councilor", "Therapist", "Mentalist") + alt_titles = list("Counsellor", "Therapist", "Mentalist") outfit = /datum/outfit/job/psych From 4bec40033cb3b0470441cd9f4ec6cd675dc31b3e Mon Sep 17 00:00:00 2001 From: Jamie D <993128+JamieD1@users.noreply.github.com> Date: Mon, 16 Aug 2021 09:15:24 +0100 Subject: [PATCH 07/10] Might fix borgs --- code/modules/mob/living/silicon/robot/robot.dm | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index a7a370c8c5b3..72406435af3d 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -150,10 +150,7 @@ //MMI stuff. Held togheter by magic. ~Miauw else if(!mmi || !mmi.brainmob) - if(mind.role_alt_title != "Cyborg") - mmi = new /obj/item/mmi/posibrain - else - mmi = new (src) + mmi = new (src) mmi.brain = new /obj/item/organ/brain(mmi) mmi.brain.name = "[real_name]'s brain" mmi.name = "[initial(mmi.name)]: [real_name]" From fb6eda61afa869fba0e2782de4af4a1e0466ea5a Mon Sep 17 00:00:00 2001 From: adamsong Date: Mon, 16 Aug 2021 14:08:51 -0500 Subject: [PATCH 08/10] Update code/modules/jobs/jobs.dm to prevent merge conflicts --- code/modules/jobs/jobs.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/jobs/jobs.dm b/code/modules/jobs/jobs.dm index 249d8b8cc17c..28b6bdc621be 100644 --- a/code/modules/jobs/jobs.dm +++ b/code/modules/jobs/jobs.dm @@ -60,7 +60,8 @@ GLOBAL_LIST_INIT(security_positions, list( "Head of Security", "Security Commander", "Security Chief", "Warden", "Security Overseer", "Brig Superintendent", "Security Lt. Commander", "Detective", "Investigator", "Forensic Analyst", "Investigative Cadet", "Private Eye", "Inspector", - "Security Officer", "Security Guard", "Threat Response Officer", "Civilan Protection Officer", "Security Cadet", "Security Staff Sergeant",)) + "Security Officer", "Security Guard", "Threat Response Officer", "Civilan Protection Officer", "Security Cadet", "Security Staff Sergeant", + )) GLOBAL_LIST_INIT(nonhuman_positions, list( From 63b21d444678f21431f5f167bef34a3fdd55cfd9 Mon Sep 17 00:00:00 2001 From: Jamie D <993128+JamieD1@users.noreply.github.com> Date: Tue, 17 Aug 2021 01:22:19 +0100 Subject: [PATCH 09/10] BugFixes! Woohooo! --- code/game/machinery/computer/crew.dm | 2 +- code/modules/admin/sql_ban_system.dm | 16 +- code/modules/jobs/job_types/_job.dm | 1 - code/modules/jobs/jobs.dm | 189 ++++++++++++------ .../code/game/objects/items/cards_ids.dm | 2 +- 5 files changed, 136 insertions(+), 74 deletions(-) diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index eeb8bc2b8366..66bcce3bdf0d 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -150,7 +150,7 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new) if (I) name = I.registered_name assignment = I.originalassignment - ijob = jobs[I.assignment] + ijob = jobs[I.originalassignment] else name = "Unknown" assignment = "" diff --git a/code/modules/admin/sql_ban_system.dm b/code/modules/admin/sql_ban_system.dm index 814cce00c729..bfaaf9bdad07 100644 --- a/code/modules/admin/sql_ban_system.dm +++ b/code/modules/admin/sql_ban_system.dm @@ -218,7 +218,7 @@ output += "
" //all heads are listed twice so have a javascript call to toggle both their checkboxes when one is pressed //for simplicity this also includes the captain even though it doesn't do anything - for(var/job in GLOB.command_positions) + for(var/job in GLOB.original_command_positions) if(break_counter > 0 && (break_counter % 3 == 0)) output += "
" output += {"
" //standard departments all have identical handling - var/list/job_lists = list("Security" = GLOB.security_positions, - "Engineering" = GLOB.engineering_positions, - "Medical" = GLOB.medical_positions, - "Science" = GLOB.science_positions, - "Supply" = GLOB.supply_positions) + var/list/job_lists = list("Security" = GLOB.original_security_positions, + "Engineering" = GLOB.original_engineering_positions, + "Medical" = GLOB.original_medical_positions, + "Science" = GLOB.original_science_positions, + "Supply" = GLOB.original_supply_positions) for(var/department in job_lists) //the first element is the department head so they need the same javascript call as above output += "
" @@ -251,7 +251,7 @@ break_counter++ output += "
" //departments/groups that don't have command staff would throw a javascript error since there's no corresponding reference for toggle_head() - var/list/headless_job_lists = list("Silicon" = GLOB.nonhuman_positions, + var/list/headless_job_lists = list("Silicon" = GLOB.original_nonhuman_positions, "Abstract" = list("Appearance", "Emote", "OOC", "Voice Announcements")) for(var/department in headless_job_lists) output += "
" @@ -265,7 +265,7 @@ "} break_counter++ output += "
" - var/list/long_job_lists = list("Civilian" = GLOB.civilian_positions, + var/list/long_job_lists = list("Civilian" = GLOB.original_civilian_positions, "Ghost and Other Roles" = list(ROLE_BRAINWASHED, ROLE_DEATHSQUAD, ROLE_DRONE, ROLE_FUGITIVE, ROLE_HOLOPARASITE, ROLE_LAVALAND, ROLE_MIND_TRANSFER, ROLE_POSIBRAIN, ROLE_SENTIENCE), "Antagonist Positions" = list(ROLE_ABDUCTOR, ROLE_ALIEN, ROLE_BLOB, ROLE_BROTHER, ROLE_CHANGELING, ROLE_CULTIST, diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm index 501f09957775..1a18217549c1 100644 --- a/code/modules/jobs/job_types/_job.dm +++ b/code/modules/jobs/job_types/_job.dm @@ -285,7 +285,6 @@ PDA.ownjob = H.mind.role_alt_title else PDA.ownjob = J.title - PDA.ownjob = J.title PDA.update_label() /datum/outfit/job/get_chameleon_disguise_info() diff --git a/code/modules/jobs/jobs.dm b/code/modules/jobs/jobs.dm index 28b6bdc621be..355a154ffdb9 100644 --- a/code/modules/jobs/jobs.dm +++ b/code/modules/jobs/jobs.dm @@ -1,74 +1,137 @@ -GLOBAL_LIST_INIT(command_positions, list( - "Captain", "Station Commander", "Facility Overseer", - "Head of Personnel", "Chief of Staff", "Head of Internal Affairs", - "Head of Security", "Security Commander", "Security Chief", - "Chief Engineer", "Head of Engineering", "Engineering Director", - "Research Director", "Chief Science Officer", "Head of Research", - "Chief Medical Officer", "Medical Director", "Head of Medical")) - - -GLOBAL_LIST_INIT(engineering_positions, list( - "Chief Engineer", "Head of Engineering", "Engineering Director", - "Station Engineer", "Engine Technician", "Solar Engineer", "Project Engineer", "Junior Engineer", "Construction Specialist", - "Atmospheric Technician", "Breach Fixer", "Habitation Technician", "Fire Supression Technician", "Atmospherics Trainee", "Environmental Maintainer", - "Signal Technician", "NTSL Programmer", "Comms Tech", "Station IT Support" - )) - +GLOBAL_LIST_INIT(original_command_positions, list( + "Captain", + "Head of Personnel", + "Head of Security", + "Chief Engineer", + "Research Director", + "Chief Medical Officer")) + +GLOBAL_LIST_INIT(original_engineering_positions, list( + "Chief Engineer", + "Station Engineer", + "Atmospheric Technician", + "Signal Technician")) + +GLOBAL_LIST_INIT(original_medical_positions, list( + "Chief Medical Officer", + "Medical Doctor", + "Geneticist", + "Virologist", + "Chemist", + "Paramedic", + "Psychiatrist", + "Mining Medic")) + +GLOBAL_LIST_INIT(original_science_positions, list( + "Research Director", + "Scientist", + "Roboticist")) + +GLOBAL_LIST_INIT(original_supply_positions, list( + "Head of Personnel", + "Quartermaster", + "Cargo Technician", + "Shaft Miner")) + +GLOBAL_LIST_INIT(original_civilian_positions, list( + "Bartender", + "Botanist", + "Cook", + "Janitor", + "Curator", + "Lawyer", + "Chaplain", + "Clown", + "Mime", + "Assistant", + "Clerk", + "Tourist", + "Artist")) + +GLOBAL_LIST_INIT(original_security_positions, list( + "Head of Security", + "Warden", + "Detective", + "Security Officer")) + +GLOBAL_LIST_INIT(original_nonhuman_positions, list( + "AI", + "Cyborg", + ROLE_PAI)) -GLOBAL_LIST_INIT(medical_positions, list( - "Chief Medical Officer", "Medical Director", "Head of Medical", - "Medical Doctor", "Physician", "Surgeon", "Nurse", "Medical Resident", "Attending Physician", "Chief Surgeon", "Attending Physician", "Chief Surgeon", "Medical Subdirector", "General Practitioner", - "Geneticist", "DNA Mechanic", "Bioengineer", "Junior Geneticist", "Gene Splicer", - "Virologist", "Microbiologist", "Pathologist", "Junior Disease Researcher", "Epidemiologist", - "Chemist", "Pharmacist", "Chemical Analyst", "Chemistry Lab Technician", "Chemical Specialist", - "Paramedic", "EMT", "Paramedic Trainee", "Rapid Response Medic", - "Psychiatrist", "Councilor", "Therapist", "Mentalist", - "Mining Medic", "Mining Medical Support", "Lavaland Medical Care Unit", "Junior Mining Medic", "Planetside Health Officer")) - - -GLOBAL_LIST_INIT(science_positions, list( - "Research Director", "Chief Science Officer", "Head of Research", - "Scientist", "Researcher", "Toxins Specialist", "Physicist", "Science Intern", "Anomalist", "Quantum Physicist", "Xenobiologist", "Bomb Specialist", - "Roboticist", "Augmentation Theorist", "Cyborg Maintainer", "Robotics Intern", "Biomechanical Engineer", "Mechatronic Engineer")) - - -GLOBAL_LIST_INIT(supply_positions, list( - "Head of Personnel", "Chief of Staff", "Head of Internal Affairs", - "Quartermaster", "Stock Controller", "Cargo Coordinator", "Shipping Overseer", - "Cargo Technician", "Deliveryperson", "Mail Service", "Exports Handler", "Cargo Trainee", "Crate Pusher", - "Shaft Miner", "Lavaland Scout", "Prospector", "Junior Miner", "Major Miner")) - - -GLOBAL_LIST_INIT(civilian_positions, list( - "Bartender", "Barkeep", "Tapster", "Barista", "Mixologist", - "Botanist", "Ecologist", "Agriculturist", "Botany Greenhorn", "Hydroponicist", - "Cook", "Chef", "Hash Slinger", "Sous-chef", "Culinary Artist", - "Janitor", "Custodian", "Sanitation Worker", "Cleaner", "Caretaker", - "Curator", "Librarian", "Journalist", "Archivist", - "Lawyer", "Prosecutor", "Defense Attorney", "Paralegal", "Ace Attorney", - "Chaplain", "Priest", "Preacher", "Cleric", - "Clown", "Entertainer", "Comedian", "Jester", - "Mime", "Mute Entertainer", "Silent Jokester", "Pantomimist", - "Assistant", "Intern", "Apprentice", "Subordinate", "Temporary Worker", "Colleague", "Associate", - "Clerk", "Salesman", "Gift Shop Attendent", "Retail Worker", - "Tourist", "Visitor", "Traveler", "Siteseer", - "Artist", "Composer", "Artisan" +GLOBAL_LIST_INIT(alt_command_positions, list( + "Station Commander", "Facility Overseer", + "Chief of Staff", "Head of Internal Affairs", + "Security Commander", "Security Chief", + "Head of Engineering", "Engineering Director", + "Chief Science Officer", "Head of Research", + "Medical Director", "Head of Medical")) + +GLOBAL_LIST_INIT(alt_engineering_positions, list( + "Head of Engineering", "Engineering Director", + "Engine Technician", "Solar Engineer", "Project Engineer", "Junior Engineer", "Construction Specialist", + "Habitation Technician", "Fire Supression Technician", "Atmospherics Trainee", "Environmental Maintainer", + "NTSL Programmer", "Comms Tech", "Station IT Support" )) - -GLOBAL_LIST_INIT(security_positions, list( - "Head of Security", "Security Commander", "Security Chief", - "Warden", "Security Overseer", "Brig Superintendent", "Security Lt. Commander", - "Detective", "Investigator", "Forensic Analyst", "Investigative Cadet", "Private Eye", "Inspector", - "Security Officer", "Security Guard", "Threat Response Officer", "Civilan Protection Officer", "Security Cadet", "Security Staff Sergeant", +GLOBAL_LIST_INIT(alt_medical_positions, list( + "Medical Director", "Head of Medical", + "Physician", "Surgeon", "Nurse", "Medical Resident", "Attending Physician", "Chief Surgeon", "Attending Physician", "Chief Surgeon", "Medical Subdirector", "General Practitioner", + "DNA Mechanic", "Bioengineer", "Junior Geneticist", "Gene Splicer", + "Microbiologist", "Pathologist", "Junior Disease Researcher", "Epidemiologist", + "Pharmacist", "Chemical Analyst", "Chemistry Lab Technician", "Chemical Specialist", + "EMT", "Paramedic Trainee", "Rapid Response Medic", + "Councilor", "Therapist", "Mentalist", + "Mining Medical Support", "Lavaland Medical Care Unit", "Junior Mining Medic", "Planetside Health Officer")) + +GLOBAL_LIST_INIT(alt_science_positions, list( + "Chief Science Officer", "Head of Research", + "Researcher", "Toxins Specialist", "Physicist", "Science Intern", "Anomalist", "Quantum Physicist", "Xenobiologist", "Bomb Specialist", + "Augmentation Theorist", "Cyborg Maintainer", "Robotics Intern", "Biomechanical Engineer", "Mechatronic Engineer")) + +GLOBAL_LIST_INIT(alt_supply_positions, list( + "Chief of Staff", "Head of Internal Affairs", + "Stock Controller", "Cargo Coordinator", "Shipping Overseer", + "Deliveryperson", "Mail Service", "Exports Handler", "Cargo Trainee", "Crate Pusher", + "Lavaland Scout", "Prospector", "Junior Miner", "Major Miner")) + +GLOBAL_LIST_INIT(alt_civilian_positions, list( + "Barkeep", "Tapster", "Barista", "Mixologist", + "Ecologist", "Agriculturist", "Botany Greenhorn", "Hydroponicist", + "Chef", "Hash Slinger", "Sous-chef", "Culinary Artist", + "Custodian", "Sanitation Worker", "Cleaner", "Caretaker", + "Librarian", "Journalist", "Archivist", + "Prosecutor", "Defense Attorney", "Paralegal", "Ace Attorney", + "Priest", "Preacher", "Cleric", + "Entertainer", "Comedian", "Jester", + "Mute Entertainer", "Silent Jokester", "Pantomimist", + "Intern", "Apprentice", "Subordinate", "Temporary Worker", "Colleague", "Associate", + "Salesman", "Gift Shop Attendent", "Retail Worker", + "Visitor", "Traveler", "Siteseer", + "Composer", "Artisan" )) +GLOBAL_LIST_INIT(alt_security_positions, list( + "Security Commander", "Security Chief", + "Security Overseer", "Brig Superintendent", "Security Lt. Commander", "Security Dispatcher", "Prison Supervisor", + "Investigator", "Forensic Analyst", "Investigative Cadet", "Private Eye", "Inspector", + "Security Guard", "Threat Response Officer", "Civilan Protection Officer", "Security Cadet", "Security Staff Sergeant", + )) -GLOBAL_LIST_INIT(nonhuman_positions, list( - "AI", "Station Central Processor", "Central Silicon Intelligence", "Cyborg Overlord", - "Cyborg", "Android", "Robot", +GLOBAL_LIST_INIT(alt_nonhuman_positions, list( + "Station Central Processor", "Central Silicon Intelligence", "Station Super Computer", + "Android", "Robot", ROLE_PAI)) +GLOBAL_LIST_INIT(command_positions, original_command_positions | alt_command_positions) +GLOBAL_LIST_INIT(engineering_positions, original_engineering_positions | alt_engineering_positions) +GLOBAL_LIST_INIT(medical_positions, original_medical_positions | alt_medical_positions) +GLOBAL_LIST_INIT(science_positions, original_science_positions | alt_science_positions) +GLOBAL_LIST_INIT(supply_positions, original_supply_positions | alt_supply_positions) +GLOBAL_LIST_INIT(security_positions, original_security_positions | alt_security_positions) +GLOBAL_LIST_INIT(nonhuman_positions, original_nonhuman_positions | alt_nonhuman_positions) +GLOBAL_LIST_INIT(civilian_positions, original_civilian_positions | alt_civilian_positions) + GLOBAL_LIST_INIT(exp_jobsmap, list( EXP_TYPE_CREW = list("titles" = command_positions | engineering_positions | medical_positions | science_positions | supply_positions | security_positions | civilian_positions | nonhuman_positions), // crew positions EXP_TYPE_COMMAND = list("titles" = command_positions), diff --git a/yogstation/code/game/objects/items/cards_ids.dm b/yogstation/code/game/objects/items/cards_ids.dm index 1bcd88d44b88..24e5b02e1fcc 100644 --- a/yogstation/code/game/objects/items/cards_ids.dm +++ b/yogstation/code/game/objects/items/cards_ids.dm @@ -7,7 +7,7 @@ ID_fluff() /obj/item/card/id/proc/ID_fluff() - var/job = assignment + var/job = originalassignment var/list/idfluff = list( "Assistant" = list("civillian","green"), "Captain" = list("captain","gold"), From eea1afce5b47509cb923a802ee17f9d2da276e38 Mon Sep 17 00:00:00 2001 From: Jamie D <993128+JamieD1@users.noreply.github.com> Date: Tue, 17 Aug 2021 01:41:35 +0100 Subject: [PATCH 10/10] Bugfix 2 --- .../modules/jobs/job_types/atmospheric_technician.dm | 2 +- code/modules/jobs/job_types/warden.dm | 2 +- code/modules/jobs/jobs.dm | 4 ++-- .../modular_computers/file_system/programs/card.dm | 12 ++++++------ 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/code/modules/jobs/job_types/atmospheric_technician.dm b/code/modules/jobs/job_types/atmospheric_technician.dm index 7e9c3d13f628..8c46a483bbcf 100644 --- a/code/modules/jobs/job_types/atmospheric_technician.dm +++ b/code/modules/jobs/job_types/atmospheric_technician.dm @@ -10,7 +10,7 @@ selection_color = "#fff5cc" exp_requirements = 180 exp_type = EXP_TYPE_CREW - alt_titles = list("Breach Fixer", "Radiation Creator", "Habitation Technician", "Fire Supression Technician", "Atmospherics Trainee", "Environmental Maintainer") + alt_titles = list("Breach Fixer", "Radiation Creator", "Habitation Technician", "Fire Suppression Technician", "Atmospherics Trainee", "Environmental Maintainer") outfit = /datum/outfit/job/atmos diff --git a/code/modules/jobs/job_types/warden.dm b/code/modules/jobs/job_types/warden.dm index 2ff370631e9f..301c2549b1bd 100644 --- a/code/modules/jobs/job_types/warden.dm +++ b/code/modules/jobs/job_types/warden.dm @@ -16,7 +16,7 @@ outfit = /datum/outfit/job/warden - alt_titles = list("Security Overseer", "Brig Superintendent", "Security Lt. Commander") + alt_titles = list("Brig Watchman", "Brig Superintendent", "Security Lt. Commander", "Security Dispatcher", "Prison Supervisor") access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_MECH_SECURITY, ACCESS_MAINT_TUNNELS, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_FORENSICS_LOCKERS, ACCESS_MINERAL_STOREROOM) minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_MECH_SECURITY, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM) // See /datum/job/warden/get_access() diff --git a/code/modules/jobs/jobs.dm b/code/modules/jobs/jobs.dm index 355a154ffdb9..9c7f5b4abc03 100644 --- a/code/modules/jobs/jobs.dm +++ b/code/modules/jobs/jobs.dm @@ -70,7 +70,7 @@ GLOBAL_LIST_INIT(alt_command_positions, list( GLOBAL_LIST_INIT(alt_engineering_positions, list( "Head of Engineering", "Engineering Director", "Engine Technician", "Solar Engineer", "Project Engineer", "Junior Engineer", "Construction Specialist", - "Habitation Technician", "Fire Supression Technician", "Atmospherics Trainee", "Environmental Maintainer", + "Habitation Technician", "Fire Suppression Technician", "Atmospherics Trainee", "Environmental Maintainer", "NTSL Programmer", "Comms Tech", "Station IT Support" )) @@ -113,7 +113,7 @@ GLOBAL_LIST_INIT(alt_civilian_positions, list( GLOBAL_LIST_INIT(alt_security_positions, list( "Security Commander", "Security Chief", - "Security Overseer", "Brig Superintendent", "Security Lt. Commander", "Security Dispatcher", "Prison Supervisor", + "Brig Watchman", "Brig Superintendent", "Security Lt. Commander", "Security Dispatcher", "Prison Supervisor", "Investigator", "Forensic Analyst", "Investigative Cadet", "Private Eye", "Inspector", "Security Guard", "Threat Response Officer", "Civilan Protection Officer", "Security Cadet", "Security Staff Sergeant", )) diff --git a/code/modules/modular_computers/file_system/programs/card.dm b/code/modules/modular_computers/file_system/programs/card.dm index 49f65d2d6535..a31a300e7ad1 100644 --- a/code/modules/modular_computers/file_system/programs/card.dm +++ b/code/modules/modular_computers/file_system/programs/card.dm @@ -274,12 +274,12 @@ else if(isnull(departments)) departments = list( CARDCON_DEPARTMENT_COMMAND = list("Captain"),//lol - CARDCON_DEPARTMENT_ENGINEERING = GLOB.engineering_positions, - CARDCON_DEPARTMENT_MEDICAL = GLOB.medical_positions, - CARDCON_DEPARTMENT_SCIENCE = GLOB.science_positions, - CARDCON_DEPARTMENT_SECURITY = GLOB.security_positions, - CARDCON_DEPARTMENT_SUPPLY = GLOB.supply_positions, - CARDCON_DEPARTMENT_SERVICE = GLOB.civilian_positions + CARDCON_DEPARTMENT_ENGINEERING = GLOB.original_engineering_positions, + CARDCON_DEPARTMENT_MEDICAL = GLOB.original_medical_positions, + CARDCON_DEPARTMENT_SCIENCE = GLOB.original_science_positions, + CARDCON_DEPARTMENT_SECURITY = GLOB.original_security_positions, + CARDCON_DEPARTMENT_SUPPLY = GLOB.original_supply_positions, + CARDCON_DEPARTMENT_SERVICE = GLOB.original_civilian_positions ) data["jobs"] = list() for(var/department in departments)