Distinguish Between Service and Civilian on Crew Manifest (#13670)

This commit is contained in:
SleepyGemmy
2022-05-06 14:27:18 +02:00
committed by GitHub
parent 4b88513f32
commit e3ae5e734a
10 changed files with 101 additions and 52 deletions

View File

@@ -1,16 +1,18 @@
#define COMMAND_ROLES list(/datum/job/captain, /datum/job/xo, /datum/job/chief_engineer, /datum/job/cmo, /datum/job/rd, /datum/job/hos, /datum/job/operations_manager, /datum/job/bridge_crew, /datum/job/ai, /datum/job/cyborg, /datum/job/visitor)
// Groups
#define COMMAND_ROLES list(/datum/job/captain, /datum/job/xo, /datum/job/chief_engineer, /datum/job/cmo, /datum/job/rd, /datum/job/hos, /datum/job/operations_manager, /datum/job/bridge_crew)
#define ENGINEERING_ROLES list(/datum/job/engineer, /datum/job/atmos, /datum/job/intern_eng)
#define SERVICE_ROLES list(/datum/job/chaplain, /datum/job/bartender, /datum/job/chef, /datum/job/hydro, /datum/job/janitor, /datum/job/journalist, /datum/job/librarian)
#define CIVILIAN_ROLES list(/datum/job/assistant, /datum/job/visitor, /datum/job/passenger)
#define OPERATIONS_ROLES list(/datum/job/hangar_tech, /datum/job/mining, /datum/job/machinist)
#define MEDICAL_ROLES list(/datum/job/doctor, /datum/job/surgeon, /datum/job/pharmacist, /datum/job/psychiatrist, /datum/job/med_tech, /datum/job/intern_med)
#define SCIENCE_ROLES list(/datum/job/scientist, /datum/job/xenobiologist, /datum/job/intern_sci)
#define SECURITY_ROLES list(/datum/job/warden, /datum/job/investigator, /datum/job/officer, /datum/job/intern_sec)
#define SMALL_ROLES list(/datum/job/assistant, /datum/job/visitor)
#define EQUIPMENT_ROLES list(/datum/job/ai, /datum/job/cyborg)
#define INDEP_ROLES list(/datum/job/merchant, /datum/job/passenger, /datum/job/consular, /datum/job/journalist, /datum/job/chaplain)
#define ALL_FACTION_ROLES list(/datum/job/assistant, /datum/job/visitor, /datum/job/representative)
#define MISC_ROLE list(/datum/job/assistant, /datum/job/representative)
#define ALL_JOBS list(COMMAND_ROLES, ENGINEERING_ROLES, SERVICE_ROLES, CARGO_ROLES, MEDICAL_ROLES, SCIENCE_ROLES, SECURITY_ROLES, INDEP_ROLES, MISC_ROLE)
#define ALL_JOBS list(COMMAND_ROLES, ENGINEERING_ROLES, SERVICE_ROLES, CIVILIAN_ROLES, CARGO_ROLES, MEDICAL_ROLES, SCIENCE_ROLES, SECURITY_ROLES, EQUIPMENT_ROLES, INDEP_ROLES)
// Factions
#define IDRIS_ROLES list(SECURITY_ROLES, SERVICE_ROLES, ALL_FACTION_ROLES)
#define ZAVOD_ROLES list(SECURITY_ROLES, SCIENCE_ROLES, ENGINEERING_ROLES, ALL_FACTION_ROLES)
#define PMC_ROLES list(SECURITY_ROLES, MEDICAL_ROLES, ALL_FACTION_ROLES)

View File

@@ -116,6 +116,7 @@
#define DEPARTMENT_SCIENCE "Science"
#define DEPARTMENT_CARGO "Operations"
#define DEPARTMENT_SERVICE "Service"
#define DEPARTMENT_CIVILIAN "Civilian"
#define DEPARTMENT_EQUIPMENT "Equipment"
#define DEPARTMENT_MISCELLANEOUS "Miscellaneous"
#define DEPARTMENTS_LIST_INIT list(\
@@ -126,6 +127,7 @@
DEPARTMENT_SCIENCE = list(),\
DEPARTMENT_CARGO = list(),\
DEPARTMENT_SERVICE = list(),\
DEPARTMENT_CIVILIAN = list(),\
DEPARTMENT_EQUIPMENT = list(),\
DEPARTMENT_MISCELLANEOUS = list(),\
)

View File

@@ -1,7 +1,7 @@
/datum/job/assistant
title = "Assistant"
flag = ASSISTANT
departments = SIMPLEDEPT(DEPARTMENT_SERVICE)
departments = SIMPLEDEPT(DEPARTMENT_CIVILIAN)
department_flag = SERVICE
faction = "Station"
total_positions = -1
@@ -31,7 +31,7 @@
/datum/job/visitor
title = "Off-Duty Crew Member"
flag = VISITOR
departments = SIMPLEDEPT(DEPARTMENT_SERVICE)
departments = SIMPLEDEPT(DEPARTMENT_CIVILIAN)
department_flag = SERVICE
faction = "Station"
total_positions = -1
@@ -54,7 +54,7 @@
/datum/job/passenger
title = "Passenger"
flag = PASSENGER
departments = SIMPLEDEPT(DEPARTMENT_SERVICE)
departments = SIMPLEDEPT(DEPARTMENT_CIVILIAN)
department_flag = SERVICE
faction = "Station"
total_positions = -1

View File

@@ -1,4 +1,6 @@
var/const/NUM_JOB_DEPTS = 3 //ENGSEC, MEDSCI and SERVICE
// ENGSEC
var/const/ENGSEC =(1<<0)
var/const/CAPTAIN =(1<<0)
@@ -16,6 +18,7 @@ var/const/INTERN_ENG =(1<<11)
var/const/BRIDGE_CREW =(1<<12)
var/const/OPERATIONS_MANAGER =(1<<13)
// MEDSCI
var/const/MEDSCI =(1<<1)
var/const/RD =(1<<0)
@@ -32,7 +35,7 @@ var/const/MED_TECH =(1<<10)
var/const/INTERN_MED =(1<<11)
var/const/INTERN_SCI =(1<<12)
// SERVICE
var/const/SERVICE =(1<<2)
var/const/XO =(1<<0)
@@ -52,7 +55,7 @@ var/const/MERCHANT =(1<<13)
var/const/JOURNALIST =(1<<14)
var/const/ASSISTANT =(1<<15)
// Positions Lists
var/list/command_positions = list(
"Captain",
"Executive Officer",
@@ -63,7 +66,6 @@ var/list/command_positions = list(
"Operations Manager"
)
var/list/engineering_positions = list(
"Chief Engineer",
"Engineer",
@@ -71,7 +73,6 @@ var/list/engineering_positions = list(
"Engineering Apprentice"
)
var/list/medical_positions = list(
"Chief Medical Officer",
"Physician",
@@ -82,7 +83,6 @@ var/list/medical_positions = list(
"Medical Intern"
)
var/list/science_positions = list(
"Research Director",
"Scientist",
@@ -90,7 +90,6 @@ var/list/science_positions = list(
"Lab Assistant"
)
//BS12 EDIT
var/list/cargo_positions = list(
"Operations Manager",
"Hangar Technician",
@@ -108,12 +107,15 @@ var/list/service_positions = list(
"Librarian",
"Corporate Reporter",
"Chaplain",
"Assistant",
"Bridge Crew",
"Off-Duty Crew Member",
"Passenger"
"Bridge Crew"
)
var/list/civilian_positions = list(
"Assistant",
"Off-Duty Crew Member",
"Passenger",
"Merchant"
)
var/list/security_positions = list(
"Head of Security",
@@ -126,8 +128,7 @@ var/list/security_positions = list(
var/list/nonhuman_positions = list(
"AI",
"Cyborg",
"pAI",
"Merchant"
"pAI"
)
/proc/guest_jobbans(var/job)
@@ -153,5 +154,3 @@ var/list/nonhuman_positions = list(
titles = J.alt_titles
return titles
//Mahzel : Job preview not added because code don't exist in BS12

View File

@@ -319,9 +319,9 @@ var/list/jobban_keylist = list() // Global jobban list.
************************************WARNING!***********************************/
var/counter = 0
//Regular jobs
//Command (Blue)
//Command
jobs += "<table cellpadding='1' cellspacing='0' width='100%'>"
jobs += "<tr align='center' bgcolor='ccccff'><th colspan='[length(command_positions)]'><a href='?src=\ref[src];jobban_job=commanddept;jobban_tgt=[ckey]'>Command Positions</a></th></tr><tr align='center'>"
jobs += "<tr align='center' bgcolor='114dc1'><th colspan='[length(command_positions)]'><a href='?src=\ref[src];jobban_job=commanddept;jobban_tgt=[ckey]'>Command Positions</a></th></tr><tr align='center'>"
for (var/jobPos in command_positions)
if (!jobPos)
continue
@@ -341,10 +341,10 @@ var/list/jobban_keylist = list() // Global jobban list.
counter = 0
jobs += "</tr></table>"
//Security (Red)
//Security
counter = 0
jobs += "<table cellpadding='1' cellspacing='0' width='100%'>"
jobs += "<tr bgcolor='ffddf0'><th colspan='[length(security_positions)]'><a href='?src=\ref[src];jobban_job=securitydept;jobban_tgt=[ckey]'>Security Positions</a></th></tr><tr align='center'>"
jobs += "<tr bgcolor='991818'><th colspan='[length(security_positions)]'><a href='?src=\ref[src];jobban_job=securitydept;jobban_tgt=[ckey]'>Security Positions</a></th></tr><tr align='center'>"
for (var/jobPos in security_positions)
if (!jobPos)
continue
@@ -364,10 +364,10 @@ var/list/jobban_keylist = list() // Global jobban list.
counter = 0
jobs += "</tr></table>"
//Engineering (Yellow)
//Engineering
counter = 0
jobs += "<table cellpadding='1' cellspacing='0' width='100%'>"
jobs += "<tr bgcolor='fff5cc'><th colspan='[length(engineering_positions)]'><a href='?src=\ref[src];jobban_job=engineeringdept;jobban_tgt=[ckey]'>Engineering Positions</a></th></tr><tr align='center'>"
jobs += "<tr bgcolor='c67519'><th colspan='[length(engineering_positions)]'><a href='?src=\ref[src];jobban_job=engineeringdept;jobban_tgt=[ckey]'>Engineering Positions</a></th></tr><tr align='center'>"
for (var/jobPos in engineering_positions)
if (!jobPos)
continue
@@ -387,10 +387,10 @@ var/list/jobban_keylist = list() // Global jobban list.
counter = 0
jobs += "</tr></table>"
//Medical (White)
//Medical
counter = 0
jobs += "<table cellpadding='1' cellspacing='0' width='100%'>"
jobs += "<tr bgcolor='ffeef0'><th colspan='[length(medical_positions)]'><a href='?src=\ref[src];jobban_job=medicaldept;jobban_tgt=[ckey]'>Medical Positions</a></th></tr><tr align='center'>"
jobs += "<tr bgcolor='15903a'><th colspan='[length(medical_positions)]'><a href='?src=\ref[src];jobban_job=medicaldept;jobban_tgt=[ckey]'>Medical Positions</a></th></tr><tr align='center'>"
for (var/jobPos in medical_positions)
if (!jobPos)
continue
@@ -410,10 +410,10 @@ var/list/jobban_keylist = list() // Global jobban list.
counter = 0
jobs += "</tr></table>"
//Science (Purple)
//Science
counter = 0
jobs += "<table cellpadding='1' cellspacing='0' width='100%'>"
jobs += "<tr bgcolor='e79fff'><th colspan='[length(science_positions)]'><a href='?src=\ref[src];jobban_job=sciencedept;jobban_tgt=[ckey]'>Science Positions</a></th></tr><tr align='center'>"
jobs += "<tr bgcolor='a44799'><th colspan='[length(science_positions)]'><a href='?src=\ref[src];jobban_job=sciencedept;jobban_tgt=[ckey]'>Science Positions</a></th></tr><tr align='center'>"
for (var/jobPos in science_positions)
if (!jobPos)
continue
@@ -433,10 +433,10 @@ var/list/jobban_keylist = list() // Global jobban list.
counter = 0
jobs += "</tr></table>"
//Cargo (Brown ish)
//Cargo
counter = 0
jobs += "<table cellpadding='1' cellspacing='0' width='100%'>"
jobs += "<tr bgcolor='f49d50'><th colspan='[length(cargo_positions)]'><a href='?src=\ref[src];jobban_job=cargodept;jobban_tgt=[ckey]'>Cargo Positions</a></th></tr><tr align='center'>"
jobs += "<tr bgcolor='593616'><th colspan='[length(cargo_positions)]'><a href='?src=\ref[src];jobban_job=cargodept;jobban_tgt=[ckey]'>Cargo Positions</a></th></tr><tr align='center'>"
for (var/jobPos in cargo_positions)
if (!jobPos)
continue
@@ -455,10 +455,10 @@ var/list/jobban_keylist = list() // Global jobban list.
jobs += "</tr><tr align='center'>"
counter = 0
//Civilian (Grey)
//Service
counter = 0
jobs += "<table cellpadding='1' cellspacing='0' width='100%'>"
jobs += "<tr bgcolor='dddddd'><th colspan='[length(service_positions)]'><a href='?src=\ref[src];jobban_job=civiliandept;jobban_tgt=[ckey]'>Civilian Positions</a></th></tr><tr align='center'>"
jobs += "<tr bgcolor='90524b'><th colspan='[length(service_positions)]'><a href='?src=\ref[src];jobban_job=servicedept;jobban_tgt=[ckey]'>Service Positions</a></th></tr><tr align='center'>"
for (var/jobPos in service_positions)
if (!jobPos)
continue
@@ -476,9 +476,30 @@ var/list/jobban_keylist = list() // Global jobban list.
if (counter >= 5) //So things dont get squiiiiished!
jobs += "</tr><tr align='center'>"
counter = 0
jobs += "</tr></table>"
//Civilian
counter = 0
jobs += "<table cellpadding='1' cellspacing='0' width='100%'>"
jobs += "<tr bgcolor='999999'><th colspan='[length(civilian_positions)]'><a href='?src=\ref[src];jobban_job=civiliandept;jobban_tgt=[ckey]'>Civilian Positions</a></th></tr><tr align='center'>"
for (var/jobPos in civilian_positions)
if (!jobPos)
continue
var/datum/job/job = SSjobs.GetJob(jobPos)
if (!job)
continue
if (jobban_isbanned(ckey, job.title))
jobs += "<td width='20%'><a href='?src=\ref[src];jobban_job=[job.title];jobban_tgt=[ckey]'><font color=red>[replacetext(job.title, " ", "&nbsp")]</font></a></td>"
counter++
else
jobs += "<td width='20%'><a href='?src=\ref[src];jobban_job=[job.title];jobban_tgt=[ckey]'>[replacetext(job.title, " ", "&nbsp")]</a></td>"
counter++
if (counter >= 5) //So things dont get squiiiiished!
jobs += "</tr><tr align='center'>"
counter = 0
//Non-Human (Green)
counter = 0
jobs += "<table cellpadding='1' cellspacing='0' width='100%'>"
@@ -500,6 +521,7 @@ var/list/jobban_keylist = list() // Global jobban list.
if (counter >= 5) //So things dont get squiiiiished!
jobs += "</tr><tr align='center'>"
counter = 0
jobs += "</tr></table>"
//pAI isn't technically a job, but it goes in here.
@@ -514,12 +536,10 @@ var/list/jobban_keylist = list() // Global jobban list.
jobs += "</tr></table>"
//Antagonist (Orange)
counter = 0
var/isbanned_dept = jobban_isbanned(ckey, "Antagonist")
jobs += "<table cellpadding='1' cellspacing='0' width='100%'>"
jobs += "<tr bgcolor='ffeeaa'><th colspan='10'><a href='?src=\ref[src];jobban_job=Antagonist;jobban_tgt=[ckey]'>Antagonist Positions</a></th></tr><tr align='center'>"
// Antagonists.
counter = 0
for (var/antag_type in all_antag_types)
var/datum/antagonist/antag = all_antag_types[antag_type]
if (!antag || !antag.bantype)
@@ -534,10 +554,9 @@ var/list/jobban_keylist = list() // Global jobban list.
if (counter >= 5) //So things dont get squiiiiished!
jobs += "</tr><tr align='center'>"
counter = 0
jobs += "</tr></table>"
//Other races (BLUE, because I have no idea what other color to make this)
//Other Races
jobs += "<table cellpadding='1' cellspacing='0' width='100%'>"
jobs += "<tr bgcolor='ccccff'><th colspan='1'>Other Races</th></tr><tr align='center'>"
@@ -628,7 +647,7 @@ var/list/jobban_keylist = list() // Global jobban list.
if (!temp)
continue
joblist += temp.title
if ("civiliandept")
if ("servicedept")
for (var/jobPos in service_positions)
if (!jobPos)
continue
@@ -636,6 +655,14 @@ var/list/jobban_keylist = list() // Global jobban list.
if (!temp)
continue
joblist += temp.title
if ("civiliandept")
for (var/jobPos in civilian_positions)
if (!jobPos)
continue
var/datum/job/temp = SSjobs.GetJob(jobPos)
if (!temp)
continue
joblist += temp.title
if ("nonhumandept")
joblist += "pAI"
for (var/jobPos in nonhuman_positions)

View File

@@ -40,13 +40,13 @@
data["id_owner"] = id_card && id_card.registered_name ? id_card.registered_name : "-----"
data["id_name"] = id_card ? id_card.name : "-----"
data["engineering_jobs"] = format_jobs(engineering_positions)
data["medical_jobs"] = format_jobs(medical_positions)
data["science_jobs"] = format_jobs(science_positions)
data["security_jobs"] = format_jobs(security_positions)
data["cargo_jobs"] = format_jobs(cargo_positions)
data["civilian_jobs"] = format_jobs(service_positions)
data["service_jobs"] = format_jobs(service_positions)
data["civilian_jobs"] = format_jobs(civilian_positions)
data["centcom_jobs"] = format_jobs(get_all_centcom_jobs())
data["all_centcom_access"] = is_centcom ? get_accesses(1) : null

View File

@@ -191,7 +191,8 @@
"eng" = engineering_positions,
"med" = medical_positions,
"sci" = science_positions,
"civ" = service_positions,
"ser" = service_positions,
"civ" = civilian_positions,
"bot" = nonhuman_positions
)

View File

@@ -0,0 +1,7 @@
author: SleepyGemmy
delete-after: True
changes:
- tweak: "The crew manifest now distinguishes between service and civilian."
- backend: "The job ban menu now uses standardized colours."

View File

@@ -118,7 +118,17 @@
</td>
</tr>
<tr>
<th style="color: '#808080';">Civilian</th>
<th style="color: '#90524b';">Service</th>
<td>
{{for data.service_jobs}}
{{if index && index % 6 === 0}}
</td></tr><tr><th></th><td>
{{/if}}
{{:helper.link(value.display_name, '', {'action' : 'assign', 'assign_target' : value.job}, data.id_rank == value.job ? 'disabled' : null)}}
{{/for}}
</td>
</tr>
<th style="color: '#999999';">Civilian</th>
<td>
{{for data.civilian_jobs}}
{{if index && index % 6 === 0}}
@@ -130,7 +140,7 @@
</tr>
{{if data.centcom_access}}
<tr>
<th style="color: '#A52A2A';">CentCom</th>
<th style="color: '#a52a2a';">CentCom</th>
<td>
{{for data.centcom_jobs}}
{{if index % 6 === 0}}

View File

@@ -6,6 +6,7 @@ $departmental-colors: (
"Science": #a44799,
"Operations": #593616,
"Service": #90524b,
"Civilian": #999999,
"Equipment": #6c5b73,
"Miscellaneous": #5d6a67,
);