Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
d26db3a
Alternative Job Titles
theselfish Jan 26, 2026
0f1b5f5
fuck this
theselfish Jan 26, 2026
e19a583
maybe???
theselfish Jan 26, 2026
2bbbada
idk bro i really do
theselfish Jan 26, 2026
127fd30
I don't know the scientific explanation, but fire made it good
theselfish Jan 26, 2026
02e89f3
oh yeah tgui exists whoopsy
theselfish Jan 26, 2026
02d9a52
Update JobsPage.tsx
theselfish Jan 26, 2026
db37420
TGUI
theselfish Jan 26, 2026
25d064a
Apply suggestions from code review
theselfish Jan 27, 2026
f60bdc4
Fixed?
theselfish Jan 27, 2026
80757d6
Merge branch 'alttitles' of https://github.com/theselfish/SecondCity …
theselfish Jan 27, 2026
4b26f55
Update tgui/packages/tgui/interfaces/PreferencesMenu/types.ts
theselfish Jan 27, 2026
2da5b22
Merge branch 'alttitles' of https://github.com/theselfish/SecondCity …
theselfish Jan 27, 2026
6ce1bf0
Update job.dm
theselfish Jan 27, 2026
46d00af
Merge branch 'master' into alttitles
theselfish Jan 28, 2026
9f6b600
Apply suggestions from code review
theselfish Jan 29, 2026
f154f9e
killkillkill
theselfish Jan 29, 2026
9f70529
Merge branch 'alttitles' of https://github.com/theselfish/SecondCity …
theselfish Jan 29, 2026
14bcda6
Update tgstation.dme
theselfish Jan 29, 2026
70b3ca5
Update tgstation.dme
theselfish Jan 29, 2026
612294d
Update job.dm
theselfish Jan 29, 2026
bee291b
Apply suggestions from code review
theselfish Jan 29, 2026
e872f21
Merge branch 'master' into alttitles
theselfish Jan 29, 2026
f5520e2
Merge branch 'master' into alttitles
theselfish Jan 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions code/__DEFINES/~darkpack/dcs/signals/signals_global.dm
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
#define COMSIG_GLOB_REPORT_CRIME "report_crime"

///from base of /datum/preference_middleware/jobs/proc/set_job_title() and /datum/preference_middleware/jobs/proc/set_job_preference: ()
#define COMSIG_JOB_PREF_UPDATED "job_pref_updated"

8 changes: 6 additions & 2 deletions code/controllers/subsystem/job.dm
Original file line number Diff line number Diff line change
Expand Up @@ -599,13 +599,17 @@ SUBSYSTEM_DEF(job)

//Gives the player the stuff he should have with his rank
/datum/controller/subsystem/job/proc/equip_rank(mob/living/equipping, datum/job/job, client/player_client)
// DARKPACK EDIT ADDITION BEGIN - ALTERNATIVE_JOB_TITLES
// The alt job title, if user picked one, or the default
var/alt_title = player_client?.prefs.alt_job_titles?[job.title] || job.title
// DARKPACK EDIT ADDITION END
equipping.job = job.title

SEND_SIGNAL(equipping, COMSIG_JOB_RECEIVED, job)

equipping.mind?.set_assigned_role_with_greeting(job, player_client)
equipping.mind?.set_assigned_role_with_greeting(job, player_client, alt_title) // DARKPACK EDIT CHANGE - ALTERNATIVE_JOB_TITLES - ORIGINAL: equipping.mind?.set_assigned_role_with_greeting(job, player_client)
equipping.on_job_equipping(job, player_client)
job.announce_job(equipping)
job.announce_job(equipping, alt_title) // DARKPACK EDIT CHANGE - ALTERNATIVE_JOB_TITLES - ORIGINAL: job.announce_job(equipping)

if(player_client?.holder)
if(CONFIG_GET(flag/auto_deadmin_always) || (player_client.prefs?.toggles & DEADMIN_ALWAYS))
Expand Down
4 changes: 2 additions & 2 deletions code/datums/mind/_mind.dm
Original file line number Diff line number Diff line change
Expand Up @@ -515,12 +515,12 @@
/// Sets us to the passed job datum, then greets them to their new job.
/// Use this one for when you're assigning this mind to a new job for the first time,
/// or for when someone's receiving a job they'd really want to be greeted to.
/datum/mind/proc/set_assigned_role_with_greeting(datum/job/new_role, client/incoming_client)
/datum/mind/proc/set_assigned_role_with_greeting(datum/job/new_role, client/incoming_client, alt_title) // DARKPACK EDIT CHANGE - ALTERNATIVE_JOB_TITLES - ORIGINAL: /datum/mind/proc/set_assigned_role_with_greeting(datum/job/new_role, client/incoming_client)
. = set_assigned_role(new_role)
if(assigned_role != new_role)
return

var/intro_message = new_role.get_spawn_message()
var/intro_message = new_role.get_spawn_message(alt_title) // DARKPACK EDIT CHANGE - ALTERNATIVE_JOB_TITLES - ORIGINAL: var/intro_message = new_role.get_spawn_message()
if(incoming_client && intro_message)
to_chat(incoming_client, intro_message)

Expand Down
13 changes: 11 additions & 2 deletions code/datums/records/manifest.dm
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,10 @@ GLOBAL_DATUM_INIT(manifest, /datum/manifest, new)
var/name = target.name
var/rank = target.rank // user-visible job
var/trim = target.trim // internal jobs by trim type
// DARKPACK EDIT ADDITION START - bare minimum data the station records need to possess to show up on the crew manifest
if((name == "Unknown") || (rank == "Unassigned" || rank == "Unknown")) // records are unassigned by default, but if edited without input becomes unknown
continue
Comment thread
theselfish marked this conversation as resolved.
// DARKPACK EDIT ADDITION END
var/datum/job/job = SSjob.get_job(trim)
if(!job || !(job.job_flags & JOB_CREW_MANIFEST) || !LAZYLEN(job.departments_list)) // In case an unlawful custom rank is added.
var/list/misc_list = manifest_out[DEPARTMENT_UNASSIGNED]
Expand Down Expand Up @@ -121,6 +125,11 @@ GLOBAL_DATUM_INIT(manifest, /datum/manifest, new)
var/datum/dna/stored/record_dna = new()
person.dna.copy_dna(record_dna)

// DARKPACK EDIT ADD START - ALTERNATIVE_JOB_TITLES
// The alt job title is set to the ID's assignment before we inject
var/chosen_assignment = id_card?.assignment || assignment
// DARKPACK EDIT ADD END

var/datum/record/locked/lockfile = new(
age = person.age,
blood_type = person.get_bloodtype()?.name || "UNKNOWN",
Expand All @@ -130,7 +139,7 @@ GLOBAL_DATUM_INIT(manifest, /datum/manifest, new)
gender = person_gender,
initial_rank = assignment,
name = person.real_name,
rank = assignment,
rank = chosen_assignment, // DARKPACK EDIT - ALTERNATIVE_JOB_TITLES - ORIGINAL: rank = assignment,
species = record_dna.species.name,
trim = assignment,
// Locked specifics
Expand All @@ -147,7 +156,7 @@ GLOBAL_DATUM_INIT(manifest, /datum/manifest, new)
gender = person_gender,
initial_rank = assignment,
name = person.real_name,
rank = assignment,
rank = chosen_assignment, // DARKPACK EDIT CHANGE - ALTERNATIVE_JOB_TITLES - ORIGINAL: rank = assignment,
species = record_dna.species.name,
trim = assignment,
// Crew specific
Expand Down
2 changes: 1 addition & 1 deletion code/modules/admin/verbs/admingame.dm
Original file line number Diff line number Diff line change
Expand Up @@ -337,7 +337,7 @@ ADMIN_VERB(respawn_character, R_ADMIN, "Respawn Character", "Respawn a player th
if(!record_found && (new_character.mind.assigned_role.job_flags & JOB_CREW_MEMBER))
//Power to the user!
if(tgui_alert(new_character,"Warning: No data core entry detected. Would you like to announce the arrival of this character by adding them to various databases, such as medical records?",,list("No","Yes")) == "Yes")
GLOB.manifest.inject(new_character)
GLOB.manifest.inject(new_character, person_client = src) // DARKPACK EDIT CHANGE - ALTERNATIVE_JOB_TITLES - Original: GLOB.manifest.inject(new_character)

if(tgui_alert(new_character,"Would you like an active AI to announce this character?",,list("No","Yes")) == "Yes")
announce_arrival(new_character, new_character.mind.assigned_role.title)
Expand Down
5 changes: 4 additions & 1 deletion code/modules/client/preferences.dm
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,10 @@ GLOBAL_LIST_EMPTY(preferences_datums)
// DARKPACK EDIT ADD START - STORYTELLR_STATS
var/list/preference_storyteller_stats = list()
// DARKPACK EDIT ADD END

// DARKPACK EDIT ADD START - ALTERNATIVE_JOB_TITLES
/// Alternative job titles stored in preferences. Assoc list, ie. alt_job_titles["Scientist"] = "Cytologist"
var/list/alt_job_titles = list()
// DARKPACK EDIT ADD END
/// The current window, PREFERENCE_TAB_* in [`code/__DEFINES/preferences.dm`]
var/current_window = PREFERENCE_TAB_CHARACTER_PREFERENCES

Expand Down
30 changes: 30 additions & 0 deletions code/modules/client/preferences/middleware/jobs.dm
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
/datum/preference_middleware/jobs
action_delegations = list(
"set_job_preference" = PROC_REF(set_job_preference),
// DARKPACK EDIT ADD START - ALTERNATIVE_JOB_TITLES
"set_job_title" = PROC_REF(set_job_title),
// DARKPACK EDIT ADD END
)

/datum/preference_middleware/jobs/proc/set_job_preference(list/params, mob/user)
Expand All @@ -25,6 +28,24 @@

return TRUE

// DARKPACK EDIT ADDITION START - ALTERNATIVE_JOB_TITLES
/datum/preference_middleware/jobs/proc/set_job_title(list/params, mob/user)
var/job_title = params["job"]
var/new_job_title = params["new_title"]

var/datum/job/job = SSjob.get_job(job_title)

if (isnull(job))
return FALSE

if (!(new_job_title in job.alt_titles))
return FALSE

preferences.alt_job_titles[job_title] = new_job_title

return TRUE
// DARKPACK EDIT ADDITION END

/datum/preference_middleware/jobs/get_constant_data()
var/list/data = list()

Expand Down Expand Up @@ -54,6 +75,7 @@
jobs[job.title] = list(
"description" = job.description,
"department" = department_name,
"alt_titles" = job.alt_titles, // DARKPACK EDIT ADD - ALTERNATIVE_JOB_TITLES
)

data["departments"] = departments
Expand All @@ -64,8 +86,16 @@
/datum/preference_middleware/jobs/get_ui_data(mob/user)
var/list/data = list()

// DARKPACK EDIT ADD START - ALTERNATIVE_JOB_TITLES
if(isnull(preferences.alt_job_titles))
preferences.alt_job_titles = list()
// DARKPACK EDIT ADD END
data["job_preferences"] = preferences.job_preferences

// DARKPACK EDIT ADD START - ALTERNATIVE_JOB_TITLES
data["job_alt_titles"] = preferences.alt_job_titles
// DARKPACK EDIT ADD END

return data

/datum/preference_middleware/jobs/get_ui_static_data(mob/user)
Expand Down
32 changes: 21 additions & 11 deletions code/modules/jobs/job_types/_job.dm
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,10 @@
/// String. If set to a non-empty one, it will be the key for the policy text value to show this role on spawn.
var/policy_index = ""

// DARKPACK EDIT ADD START - ALTERNATIVE_JOB_TITLES
/// Job title to use for spawning. Allows a job to spawn without needing map edits.
var/job_spawn_title
// DARKPACK EDIT ADD END
/// RPG job names, for the memes
var/rpg_title

Expand All @@ -134,6 +138,10 @@

/datum/job/New()
. = ..()
// DARKPACK EDIT ADD START - ALTERNATIVE_JOB_TITLES
if(!job_spawn_title)
job_spawn_title = title
// DARKPACK EDIT ADD END
var/new_spawn_positions = CHECK_MAP_JOB_CHANGE(title, "spawn_positions")
if(isnum(new_spawn_positions))
spawn_positions = new_spawn_positions
Expand Down Expand Up @@ -182,9 +190,9 @@

/// Announce that this job as joined the round to all crew members.
/// Note the joining mob has no client at this point.
/datum/job/proc/announce_job(mob/living/joining_mob)
/datum/job/proc/announce_job(mob/living/joining_mob, job_title) // DARKPACK EDIT CHANGE - ALTERNATIVE_JOB_TITLES - Original: /datum/job/proc/announce_job(mob/living/joining_mob)
if(head_announce)
announce_head(joining_mob, list(head_announce))
announce_head(joining_mob, list(head_announce), job_title) // DARKPACK EDIT CHANGE - ALTERNATIVE_JOB_TITLES - Original: announce_head(joining_mob, list(head_announce))


//Used for a special check of whether to allow a client to latejoin as this job.
Expand Down Expand Up @@ -225,7 +233,7 @@
dna.species.pre_equip_species_outfit(equipping, src, visual_only)
equip_outfit_and_loadout(equipping.get_outfit(consistent), player_client?.prefs, visual_only)

/datum/job/proc/announce_head(mob/living/carbon/human/human, channels) //tells the given channel that the given mob is the new department head. See communications.dm for valid channels.
/datum/job/proc/announce_head(mob/living/carbon/human/human, channels, job_title) //tells the given channel that the given mob is the new department head. See communications.dm for valid channels. // DARKPACK EDIT CHANGE - ALTERNATIVE_JOB_TITLES
if(human)
//timer because these should come after the captain announcement
SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_addtimer), CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(aas_config_announce), /datum/aas_config_entry/newhead, list("PERSON" = human.real_name, "RANK" = human.job), null, channels, null, TRUE), 1))
Expand Down Expand Up @@ -291,21 +299,22 @@
return TRUE

/// Gets the message that shows up when spawning as this job
/datum/job/proc/get_spawn_message()
/datum/job/proc/get_spawn_message(alt_title) // DARKPACK EDIT CHANGE - ALTERNATIVE_JOB_TITLES - ORIGINAL: /datum/job/proc/get_spawn_message()
SHOULD_NOT_OVERRIDE(TRUE)
return boxed_message(span_infoplain(jointext(get_spawn_message_information(), "\n• ")))
return boxed_message(span_infoplain(jointext(get_spawn_message_information(alt_title), "\n• "))) // DARKPACK EDIT CHANGE - ALTERNATIVE_JOB_TITLES - ORIGINAL: return boxed_message(span_infoplain(jointext(get_spawn_message_information(), "\n• ")))


/// Returns a list of strings that correspond to chat messages sent to this mob when they join the round.
/datum/job/proc/get_spawn_message_information()
/datum/job/proc/get_spawn_message_information(alt_title = title) // DARKPACK EDIT CHANGE - ALTERNATIVE_JOB_TITLES - ORIGINAL: /datum/job/proc/get_spawn_message_information()
SHOULD_CALL_PARENT(TRUE)
var/list/info = list()
info += "<b>You are the [title].</b>\n"
info += "<b>You are the [alt_title].</b>\n" // DARKPACK EDIT CHANGE - ALTERNATIVE_JOB_TITLES - ORIGINAL: info += "<b>You are the [title].</b>\n"
var/related_policy = get_policy(policy_override || title)
var/radio_info = get_radio_information()
if(related_policy)
info += related_policy
if(supervisors)
info += "As the [title] you answer directly to [supervisors]. Special circumstances may change this."
info += "As the [alt_title == title ? alt_title : "[alt_title] ([title])"] you answer directly to [supervisors]. Special circumstances may change this." // DARKPACK EDIT CHANGE - ALTERNATIVE_JOB_TITLES - ORIGINAL: info += "As the [title] you answer directly to [supervisors]. Special circumstances may change this."
if(radio_info)
info += radio_info
if(req_admin_notify)
Expand All @@ -315,7 +324,6 @@
info += span_boldnotice("As this station was initially staffed with a \
[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.")

Comment thread
FalloutFalcon marked this conversation as resolved.
return info

/// Returns information pertaining to this job's radio.
Expand Down Expand Up @@ -479,8 +487,10 @@
hangover_landmark.used = TRUE
break
return hangover_spawn_point || get_latejoin_spawn_point()
if(length(GLOB.jobspawn_overrides[title]))
return pick(GLOB.jobspawn_overrides[title])
// DARKPACK EDIT CHANGE START - ALTERNATIVE_JOB_TITLES
if(length(GLOB.jobspawn_overrides[job_spawn_title]))
return pick(GLOB.jobspawn_overrides[job_spawn_title])
// DARKPACK EDIT CHANGE END
var/obj/effect/landmark/start/spawn_point = get_default_roundstart_spawn_point()
if(!spawn_point) //if there isn't a spawnpoint send them to latejoin, if there's no latejoin go yell at your mapper
return get_latejoin_spawn_point()
Expand Down
5 changes: 3 additions & 2 deletions code/modules/mob/dead/new_player/new_player.dm
Original file line number Diff line number Diff line change
Expand Up @@ -241,10 +241,11 @@
humanc = character //Let's retypecast the var to be human,

if(humanc) //These procs all expect humans
var/chosen_rank = humanc.client?.prefs.alt_job_titles?[rank] || rank // DARKPACK EDIT ADDITION - ALTERNATIVE_JOB_TITLES
if(SSshuttle.arrivals)
SSshuttle.arrivals.QueueAnnounce(humanc, rank)
SSshuttle.arrivals.QueueAnnounce(humanc, chosen_rank) // DARKPACK EDIT CHANGE - ALTERNATIVE_JOB_TITLES - ORIGINAL: SSshuttle.arrivals.QueueAnnounce(humanc, rank)
else
announce_arrival(humanc, rank)
announce_arrival(humanc, chosen_rank) // DARKPACK EDIT CHANGE - ALTERNATIVE_JOB_TITLES - ORIGINAL: announce_arrival(humanc, rank)
AddEmploymentContract(humanc)

humanc.increment_scar_slot()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/datum/preference
/// If set to TRUE, this preference will not be applied unless the character has the preference's relevant inherent trait
var/must_have_relevant_trait = FALSE

Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

guestbook_names = save_data?["guestbook_names"]
guestbook_names = SANITIZE_LIST(guestbook_names)
alt_job_titles = save_data?["alt_job_titles"] // ALTERNATIVE_JOB_TITLES

/datum/preferences/save_character()
. = ..()
Expand All @@ -20,3 +21,4 @@
var/save_data = savefile.get_entry(tree_key)

save_data["guestbook_names"] = guestbook_names
save_data["alt_job_titles"] = alt_job_titles // ALTERNATIVE_JOB_TITLES
3 changes: 3 additions & 0 deletions modular_darkpack/modules/jobs/code/_jobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@
/// Character must be at least this age (in years) since embrace (chronological_age - age) to join as role.
var/minimum_immortal_age = 0

/// The list of alternative job titles people can pick from, null by default.
var/list/alt_titles = null // ALTERNATIVE_JOB_TITLES

///List of splats that are allowed to do this job.
var/list/allowed_splats = list(SPLAT_NONE, SPLAT_GHOUL, SPLAT_KINDRED)
///List of species that are limited to a certain amount of that species doing this job.
Expand Down
11 changes: 11 additions & 0 deletions modular_darkpack/modules/jobs/code/anarchs/bruiser.dm
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,17 @@
/datum/job_department/anarch,
)

alt_titles = list(
"Bouncer",
"Coyote",
"Piper",
"Rotten Apple",
"Houdini",
"Prospect",
"Cleaver",
"Molotov",
)

known_contacts = list("Baron", "Bouncer", "Emissary", "Sweeper")
allowed_clans = list(VAMPIRE_CLAN_DAUGHTERS_OF_CACOPHONY, VAMPIRE_CLAN_TRUE_BRUJAH, VAMPIRE_CLAN_BRUJAH, VAMPIRE_CLAN_NOSFERATU, VAMPIRE_CLAN_GANGREL, VAMPIRE_CLAN_CITY_GANGREL, VAMPIRE_CLAN_TOREADOR, VAMPIRE_CLAN_TREMERE, VAMPIRE_CLAN_MALKAVIAN, VAMPIRE_CLAN_BANU_HAQIM, VAMPIRE_CLAN_TZIMISCE, VAMPIRE_CLAN_CAITIFF, VAMPIRE_CLAN_VENTRUE, VAMPIRE_CLAN_LASOMBRA, VAMPIRE_CLAN_GARGOYLE, VAMPIRE_CLAN_KIASYD, VAMPIRE_CLAN_CAPPADOCIAN, VAMPIRE_CLAN_SETITE, VAMPIRE_CLAN_SALUBRI)
allowed_splats = list(SPLAT_KINDRED)
Expand Down
10 changes: 10 additions & 0 deletions modular_darkpack/modules/jobs/code/anarchs/tapster.dm
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,16 @@
/datum/job_department/anarch,
)

alt_titles = list(
"Bartender",
"Barkeeper",
"Tapster",
"Server",
"Soda Jerk", //I always loved this as a title and I am mad it isn't in common use anymore.
"Waiter",
"Waitress"
)

known_contacts = list("Baron", "Bouncer", "Emissary", "Sweeper")
allowed_splats = list(SPLAT_NONE, SPLAT_GHOUL)
splat_slots = list(SPLAT_NONE = 2, SPLAT_GHOUL = 2)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,15 @@
/datum/job_department/camarilla,
)

alt_titles = list(
"Tower Employee",
"Tower Cleaner",
"Tower Assistant",
"Tower Security Guard",
"Tower Personal Driver",
"Tower Personal Attendant"
)

known_contacts = list("Prince", "Sheriff", "Seneschal")
allowed_splats = list(SPLAT_NONE, SPLAT_GHOUL, SPLAT_KINDRED)
allowed_clans = list(VAMPIRE_CLAN_TRUE_BRUJAH, VAMPIRE_CLAN_DAUGHTERS_OF_CACOPHONY, VAMPIRE_CLAN_BRUJAH, VAMPIRE_CLAN_TREMERE, VAMPIRE_CLAN_VENTRUE, VAMPIRE_CLAN_NOSFERATU, VAMPIRE_CLAN_GANGREL, VAMPIRE_CLAN_CITY_GANGREL, VAMPIRE_CLAN_TOREADOR, VAMPIRE_CLAN_MALKAVIAN, VAMPIRE_CLAN_BANU_HAQIM, VAMPIRE_CLAN_SETITE, VAMPIRE_CLAN_LASOMBRA, VAMPIRE_CLAN_GARGOYLE, VAMPIRE_CLAN_KIASYD, VAMPIRE_CLAN_CAPPADOCIAN, VAMPIRE_CLAN_TZIMISCE)
Expand Down
14 changes: 14 additions & 0 deletions modular_darkpack/modules/jobs/code/clinic/doctor.dm
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,20 @@
allowed_clans = list(VAMPIRE_CLAN_DAUGHTERS_OF_CACOPHONY, VAMPIRE_CLAN_SALUBRI, VAMPIRE_CLAN_BAALI, VAMPIRE_CLAN_BRUJAH, VAMPIRE_CLAN_TREMERE, VAMPIRE_CLAN_VENTRUE, VAMPIRE_CLAN_NOSFERATU, VAMPIRE_CLAN_GANGREL, VAMPIRE_CLAN_CITY_GANGREL, VAMPIRE_CLAN_TOREADOR, VAMPIRE_CLAN_MALKAVIAN, VAMPIRE_CLAN_BANU_HAQIM, VAMPIRE_CLAN_GIOVANNI, VAMPIRE_CLAN_SETITE, VAMPIRE_CLAN_TZIMISCE, VAMPIRE_CLAN_LASOMBRA, VAMPIRE_CLAN_CAITIFF, VAMPIRE_CLAN_KIASYD)
known_contacts = list("Clinic Director")

alt_titles = list(
"Doctor",
"Medical Student",
"Intern",
"Nurse",
"Resident",
"General Practitioner",
"Surgeon",
"Physician",
"Paramedic",
"EMT",
)


/datum/outfit/job/vampire/clinic_doctor
name = "Doctor"
jobtype = /datum/job/vampire/doctor
Expand Down
15 changes: 15 additions & 0 deletions modular_darkpack/modules/jobs/code/miscelllaneous/citizen.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,21 @@
job_flags = CITY_JOB_FLAGS
allowed_splats = list(SPLAT_KINDRED, SPLAT_GHOUL, SPLAT_NONE)
minimal_masquerade = 0
alt_titles = list(
"Citizen",
"Private Investigator",
"Private Security",
"Tourist",
"Visitor",
"Entertainer",
"Entrepreneur",
"Contractor",
"Fixer",
"Lawyer",
"Attorney",
"Paralegal",
)


/datum/outfit/job/vampire/citizen
name = JOB_CITIZEN
Expand Down
Loading
Loading