Alternative job titles (#146)

* upload files

* more titles + fix hydro
This commit is contained in:
SandPoot
2021-03-18 14:12:00 -03:00
committed by GitHub
parent c1d0559576
commit 9d60cd6df5
10 changed files with 179 additions and 10 deletions
+6 -1
View File
@@ -562,8 +562,13 @@
if((character.mind.assigned_role == "Cyborg") || (character.mind.assigned_role == character.mind.special_role))
return
//Skyrat changes
var/displayed_rank = rank
if(character.client && character.client.prefs && character.client.prefs.alt_titles_preferences[rank])
displayed_rank = character.client.prefs.alt_titles_preferences[rank]
var/obj/machinery/announcement_system/announcer = pick(GLOB.announcement_systems)
announcer.announce("ARRIVAL", character.real_name, rank, list()) //make the list empty to make it announce it in common
announcer.announce("ARRIVAL", character.real_name, displayed_rank, list()) //make the list empty to make it announce it in common
//End of skyrat changes
/proc/lavaland_equipment_pressure_check(turf/T)
. = FALSE
+7 -2
View File
@@ -470,9 +470,14 @@ SUBSYSTEM_DEF(job)
else
handle_auto_deadmin_roles(M.client, rank) */
to_chat(M, "<b>You are the [rank].</b>")
//Skyrat changes
var/display_rank = rank
if(M.client && M.client.prefs && M.client.prefs.alt_titles_preferences[rank])
display_rank = M.client.prefs.alt_titles_preferences[rank]
//End of skyrat changes
to_chat(M, "<b>You are the [display_rank].</b>") //Skyrat change
if(job)
to_chat(M, "<b>As the [rank] you answer directly to [job.supervisors]. Special circumstances may change this.</b>")
to_chat(M, "<b>As the [display_rank] you answer directly to [job.supervisors]. Special circumstances may change this.</b>") //Skyrat change
job.radio_help_message(M)
if(job.req_admin_notify)
to_chat(M, "<b>You are playing a job that is important for Game Progression. If you have to disconnect immediately, please notify the admins via adminhelp. Otherwise put your locker gear back into the locker and cryo out.</b>")
+4
View File
@@ -246,6 +246,10 @@
assignment = H.job
else
assignment = "Unassigned"
//Skyrat changes
if(C && C.prefs && C.prefs.alt_titles_preferences[assignment])
assignment = C.prefs.alt_titles_preferences[assignment]
//End of skyrat changes
var/static/record_id_num = 1001
var/id = num2hex(record_id_num++,6)
+31 -2
View File
@@ -116,6 +116,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/see_chat_emotes = TRUE
var/enable_personal_chat_color = FALSE
var/personal_chat_color = "#ffffff"
var/list/alt_titles_preferences = list()
//SKYRAT CHANGES END
var/underwear = "Nude" //underwear type
var/undie_color = "FFFFFF"
@@ -1211,6 +1212,11 @@ GLOBAL_LIST_EMPTY(preferences_datums)
HTML += "<tr bgcolor='[job.selection_color]'><td width='60%' align='right'>"
var/rank = job.title
//Skyrat changes
var/displayed_rank = rank
if(job.alt_titles.len && (rank in alt_titles_preferences))
displayed_rank = alt_titles_preferences[rank]
//End of skyrat changes
lastJob = job
if(jobban_isbanned(user, rank))
HTML += "<font color=red>[rank]</font></td><td><a href='?_src_=prefs;bancheck=[rank]'> BANNED</a></td></tr>"
@@ -1232,10 +1238,16 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if((job_preferences["[SSjob.overflow_role]"] == JP_LOW) && (rank != SSjob.overflow_role) && !jobban_isbanned(user, SSjob.overflow_role))
HTML += "<font color=orange>[rank]</font></td><td></td></tr>"
continue
//Skyrat changes
var/rank_title_line = "[displayed_rank]"
if((rank in GLOB.command_positions) || (rank == "AI"))//Bold head jobs
HTML += "<b><span class='dark'>[rank]</span></b>"
rank_title_line = "<b>[rank_title_line]</b>"
if(job.alt_titles.len)
rank_title_line = "<a href='?_src_=prefs;preference=job;task=alt_title;job_title=[job.title]'>[rank_title_line]</a>"
else
HTML += "<span class='dark'>[rank]</span>"
rank_title_line = "<span class='dark'>[rank_title_line]</span>" //Make it dark if we're not adding a button for alt titles
HTML += rank_title_line
//End of skyrat changes
HTML += "</td><td width='40%'>"
@@ -1481,6 +1493,23 @@ GLOBAL_LIST_EMPTY(preferences_datums)
SetChoices(user)
if("setJobLevel")
UpdateJobPreference(user, href_list["text"], text2num(href_list["level"]))
//SKYRAT CHANGES
if("alt_title")
var/job_title = href_list["job_title"]
var/titles_list = list(job_title)
var/datum/job/J = SSjob.GetJob(job_title)
for(var/i in J.alt_titles)
titles_list += i
var/chosen_title
chosen_title = input(user, "Choose your job's title:", "Job Preference") as null|anything in titles_list
if(chosen_title)
if(chosen_title == job_title)
if(alt_titles_preferences[job_title])
alt_titles_preferences.Remove(job_title)
else
alt_titles_preferences[job_title] = chosen_title
SetChoices(user)
//END OF SKYRAT CHANGES
else
SetChoices(user)
return 1
+12 -2
View File
@@ -289,7 +289,12 @@
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
//Skyrat change
if(preference_source && preference_source.prefs && preference_source.prefs.alt_titles_preferences[J.title])
C.assignment = preference_source.prefs.alt_titles_preferences[J.title]
else
C.assignment = J.title
//End of skyrat change
C.update_label()
for(var/A in SSeconomy.bank_accounts)
var/datum/bank_account/B = A
@@ -302,7 +307,12 @@
var/obj/item/pda/PDA = H.get_item_by_slot(pda_slot)
if(istype(PDA))
PDA.owner = H.real_name
PDA.ownjob = J.title
//Skyrat change
if(preference_source && preference_source.prefs && preference_source.prefs.alt_titles_preferences[J.title])
PDA.ownjob = preference_source.prefs.alt_titles_preferences[J.title]
else
PDA.ownjob = J.title
//End of skyrat change
PDA.update_label()
if(preference_source && !PDA.equipped) //PDA's screen color, font style and look depend on client preferences.
PDA.update_style(preference_source)
@@ -673,10 +673,15 @@
var/command_bold = ""
if(job in GLOB.command_positions)
command_bold = " command"
//SKYRAT CHANGES
var/jobline = "[job_datum.title] ([job_datum.current_positions])"
if(job_datum in SSjob.prioritized_jobs)
dept_dat += "<a class='job[command_bold]' style='display:block;width:170px' href='byond://?src=[REF(src)];SelectedJob=[job_datum.title]'><span class='priority'>[job_datum.title] ([job_datum.current_positions])</span></a>"
else
dept_dat += "<a class='job[command_bold]' style='display:block;width:170px' href='byond://?src=[REF(src)];SelectedJob=[job_datum.title]'>[job_datum.title] ([job_datum.current_positions])</a>"
jobline = "<span class='priority'>[jobline]</span>"
if(client && client.prefs && client.prefs.alt_titles_preferences[job_datum.title])
jobline = "[jobline]<br><span style='color:#BBBBBB; font-style: italic;'>(as [client.prefs.alt_titles_preferences[job_datum.title]])</span>"
jobline = "<a class='job[command_bold]' style='display:block;width:170px' href='byond://?src=[REF(src)];SelectedJob=[job_datum.title]'>[jobline]</a>"
dept_dat += jobline
//END OF SKYRAT CHANGES
if(!dept_dat.len)
dept_dat += "<span class='nopositions'>No positions open.</span>"
dat += jointext(dept_dat, "")
@@ -17,6 +17,15 @@
// SKYRAT CHANGE START
S["enable_personal_chat_color"] >> enable_personal_chat_color
S["personal_chat_color"] >> personal_chat_color
S["alt_titles_preferences"] >> alt_titles_preferences
alt_titles_preferences = SANITIZE_LIST(alt_titles_preferences)
if(SSjob)
for(var/datum/job/job in sortList(SSjob.occupations, /proc/cmp_job_display_asc))
if(alt_titles_preferences[job.title])
if(!(alt_titles_preferences[job.title] in job.alt_titles))
alt_titles_preferences.Remove(job.title)
skyrat_ooc_notes = sanitize_text(S["skyrat_ooc_notes"])
skyrat_ooc_notes = strip_html_simple(skyrat_ooc_notes, MAX_FLAVOR_LEN, TRUE)
erppref = sanitize_text(S["erp_pref"], "Ask")
@@ -70,3 +79,4 @@
WRITE_FILE(S["extremeharm"], extremeharm)
WRITE_FILE(S["enable_personal_chat_color"], enable_personal_chat_color)
WRITE_FILE(S["personal_chat_color"], personal_chat_color)
WRITE_FILE(S["alt_titles_preferences"], alt_titles_preferences)
@@ -0,0 +1,2 @@
/datum/job
var/list/alt_titles = list()
@@ -0,0 +1,97 @@
//Command
/datum/job/captain
alt_titles = list("Colony Overseer")
/datum/job/chief_engineer
alt_titles = list("Senior Engineer")
/datum/job/hop
alt_titles = list("Crew Resource Officer", "Executive Officer")
/datum/job/hos
alt_titles = list("Chief of Security", "Sheriff")
/datum/job/qm
alt_titles = list("Resource Manager", "Logistics Supervisor")
/datum/job/rd
alt_titles = list("Chief Science Officer", "Research Overseer")
//Engineering
/datum/job/atmos
alt_titles = list("Firefighter", "Life Support Specialist")
/datum/job/engineer
alt_titles = list("Maintenance Technician", "Engine Technician", "Electrician")
//Service
/datum/job/assistant
alt_titles = list("Civilian", "Visitor", "Businessman", "Trader", "Entertainer", "Intern")
/datum/job/bartender
alt_titles = list("Barista")
/datum/job/chaplain
alt_titles = list("Priest", "Cult Leader", "Pope", "Bichop")
/datum/job/clown //The most useless role in the game, delet this
alt_titles = list("Entertainer")
/datum/job/cook
alt_titles = list("Culinary Artist", "Butcher", "Chef", "Nutritionist")
/datum/job/curator
alt_titles = list("Journalist", "Librarian")
/datum/job/hydro
alt_titles = list("Gardener", "Herbalist", "Botanical Researcher", "Florist")
/datum/job/janitor
alt_titles = list("Custodian", "Sanitation Technician", "Maid")
/datum/job/lawyer
alt_titles = list("Human Resources Agent", "Internal Affairs Agent")
/datum/job/mime
alt_titles = list("Performer")
//Science
/datum/job/roboticist
alt_titles = list("Biomechanical Engineer", "Mechatronic Engineer", "Mechanic", "Robotics Operator")
/datum/job/scientist
alt_titles = list("Circuitry Designer", "Xenobiologist", "Xenobotanist", "Chemical Researcher")
//Medical
/datum/job/chemist
alt_titles = list("Pharmacist", "Pharmacologist")
/datum/job/doctor
alt_titles = list("Nurse", "Surgeon", "Medical Secretary")
/datum/job/geneticist
alt_titles = list("Genetic Therapist")
/datum/job/paramedic
alt_titles = list("Emergency Medical Technician")
/datum/job/virologist
alt_titles = list("Pathologist")
//Security
/datum/job/detective
alt_titles = list("Forensics Technician", "Private Investigator")
/datum/job/officer
alt_titles = list("Security Cadet", "Security Guard", "Peacekeeper", "Enforcer")
/datum/job/warden
alt_titles = list("Brig Chief")
//Cargo
/datum/job/cargo_tech
alt_titles = list("Shipping Specialist", "Delivery Manager")
/datum/job/mining
alt_titles = list("Explorer")
+2
View File
@@ -3831,6 +3831,8 @@
#include "modular_sand\code\modules\integrated_electronics\subtypes\input.dm"
#include "modular_sand\code\modules\integrated_electronics\subtypes\manipulation.dm"
#include "modular_sand\code\modules\integrated_electronics\subtypes\output.dm"
#include "modular_sand\code\modules\jobs\job_types\_job.dm"
#include "modular_sand\code\modules\jobs\job_types\_job_alt_titles.dm"
#include "modular_sand\code\modules\keybindings\keybind\carbon.dm"
#include "modular_sand\code\modules\language\dragon.dm"
#include "modular_sand\code\modules\language\language.dm"