Allow the HoP to give custom titles their own categories (#21447)

* Relative => Absolute

* Should work ; doesn't

* Update card.dm
This commit is contained in:
ShiftyRail
2019-02-25 09:29:06 +01:00
committed by Kurfursten
parent 32c272995b
commit a5440e7a60
3 changed files with 84 additions and 29 deletions

View File

@@ -117,28 +117,27 @@
isactive[name] = (SSD ? "SSD" : (active ? "Active" : "Inactive"))
else
isactive[name] = t.fields["p_stat"]
// to_chat(world, "[name]: [rank]")
//cael - to prevent multiple appearances of a player/job combination, add a continue after each line
var/department = 0
if(real_rank in command_positions)
if((real_rank in command_positions) || (t.fields["override_dept"] == "Command"))
heads[name] = rank
department = 1
if(real_rank in security_positions)
if((real_rank in security_positions) || (t.fields["override_dept"] == "Security"))
sec[name] = rank
department = 1
if(real_rank in engineering_positions)
if((real_rank in engineering_positions) || (t.fields["override_dept"] == "Engineering"))
eng[name] = rank
department = 1
if(real_rank in medical_positions)
if((real_rank in medical_positions) || (t.fields["override_dept"] == "Medical"))
med[name] = rank
department = 1
if(real_rank in science_positions)
if((real_rank in science_positions) || (t.fields["override_dept"] == "Science"))
sci[name] = rank
department = 1
if(real_rank in cargo_positions)
if((real_rank in cargo_positions) || (t.fields["override_dept"] == "Cargo"))
cgo[name] = rank
department = 1
if(real_rank in civilian_positions)
if((real_rank in civilian_positions) || (t.fields["override_dept"] == "Civilian"))
civ[name] = rank
department = 1
if(real_rank in nonhuman_positions)

View File

@@ -124,6 +124,53 @@ var/list/misc_positions = list(
"Trader",
)
var/list/all_jobs_txt = list(
"Captain",
"Head of Personnel",
"Head of Security",
"Chief Engineer",
"Research Director",
"Chief Medical Officer",
"Station Engineer",
"Atmospheric Technician",
"Mechanic",
"Medical Doctor",
"Geneticist",
"Virologist",
// "Psychiatrist",
"Paramedic",
"Chemist",
"Research Director",
"Scientist",
"Roboticist",
"Bartender",
"Botanist",
"Chef",
"Janitor",
"Librarian",
"Internal Affairs Agent",
"Chaplain",
"Clown",
"Mime",
"Assistant",
"Quartermaster",
"Cargo Technician",
"Shaft Miner",
"Warden",
"Detective",
"Security Officer",
)
var/list/departement_list = list(
"Command",
"Security",
"Cargo",
"Engineering",
"Medical",
"Science",
"Civilian",
)
/proc/guest_jobbans(var/job)
return ((job in command_positions) || (job in nonhuman_positions) || (job in security_positions))

View File

@@ -47,33 +47,33 @@
light_color = LIGHT_COLOR_BLUE
proc/is_centcom()
return istype(src, /obj/machinery/computer/card/centcom)
/obj/machinery/computer/card/proc/is_centcom()
return istype(src, /obj/machinery/computer/card/centcom)
proc/is_authenticated()
return scan ? check_access(scan) : 0
/obj/machinery/computer/card/proc/is_authenticated()
return scan ? check_access(scan) : 0
proc/get_target_rank()
return modify && modify.assignment ? modify.assignment : "Unassigned"
/obj/machinery/computer/card/proc/get_target_rank()
return modify && modify.assignment ? modify.assignment : "Unassigned"
proc/format_jobs(list/jobs)
var/list/formatted = list()
for(var/job in jobs)
formatted.Add(list(list(
"display_name" = replacetext(job, " ", " "),
"target_rank" = get_target_rank(),
"job" = job)))
/obj/machinery/computer/card/proc/format_jobs(list/jobs)
var/list/formatted = list()
for(var/job in jobs)
formatted.Add(list(list(
"display_name" = replacetext(job, " ", " "),
"target_rank" = get_target_rank(),
"job" = job)))
return formatted
return formatted
proc/format_card_skins(list/card_skins)
var/list/formatted = list()
for(var/skin in card_skins)
formatted.Add(list(list(
"display_name" = replacetext(skin, " ", " "),
"skin" = skin)))
/obj/machinery/computer/card/proc/format_card_skins(list/card_skins)
var/list/formatted = list()
for(var/skin in card_skins)
formatted.Add(list(list(
"display_name" = replacetext(skin, " ", " "),
"skin" = skin)))
return formatted
return formatted
/obj/machinery/computer/card/verb/eject_id()
set category = "Object"
@@ -264,6 +264,15 @@
//let custom jobs function as an impromptu alt title, mainly for sechuds
if(temp_t && modify)
modify.assignment = temp_t
if (!(temp_t in all_jobs_txt))
var/new_dept = input("Choose the departement this job belongs to.") as null|anything in departement_list
if (new_dept)
for (var/list/L in list(data_core.general, data_core.medical, data_core.security,data_core.locked))
if (L.len)
var/datum/data/record/R = find_record("name", modify.registered_name, L)
if (R)
R.fields["override_dept"] = new_dept
else
var/list/access = list()
if(is_centcom())