mirror of
https://github.com/Sandstorm-Station/Sandstorm-Station-13.git
synced 2026-08-23 21:27:23 +01:00
@@ -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
|
||||
|
||||
@@ -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>")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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")
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user