refactors roles to be prototypes (#7323)

This commit is contained in:
silicons
2025-10-08 09:53:41 +02:00
committed by GitHub
parent 1e309efd39
commit 8563f938be
156 changed files with 764 additions and 778 deletions
+1 -1
View File
@@ -346,7 +346,7 @@
output += "<tr><td width='50%' align='right'><b>Duration:</b> <input type='text' name='dbbaddduration'></td>"
output += "<td width='50%' align='right'><b>Job:</b><select name='dbbanaddjob'>"
output += "<option value=''>--</option>"
for(var/j in SSjob.all_job_titles())
for(var/j in RSroles.legacy_all_job_titles())
output += "<option value='[j]'>[j]</option>"
for(var/j in SSjob.get_job_titles_in_department(DEPARTMENT_SYNTHETIC))
output += "<option value='[j]'>[j]</option>"
+1 -1
View File
@@ -970,7 +970,7 @@ var/list/admin_verbs_event_manager = list(
set category = "Admin"
if(holder)
var/list/jobs = list()
for (var/datum/role/job/J in SSjob.occupations)
for (var/datum/prototype/role/job/J in RSroles.legacy_all_job_datums())
if (J.current_positions >= J.total_positions && J.total_positions != -1)
jobs += J.title
if (!jobs.len)
+18 -18
View File
@@ -394,7 +394,7 @@
jobs += "<tr align='center' bgcolor='ccccff'><th colspan='[length(SSjob.get_job_titles_in_department(DEPARTMENT_COMMAND))]'><a href='?src=\ref[src];jobban3=commanddept;jobban4=\ref[M]'>Command Positions</a></th></tr><tr align='center'>"
for(var/jobPos in SSjob.get_job_titles_in_department(DEPARTMENT_COMMAND))
if(!jobPos) continue
var/datum/role/job/job = SSjob.get_job(jobPos)
var/datum/prototype/role/job/job = RSroles.legacy_job_by_title(jobPos)
if(!job) continue
if(jobban_isbanned(M, job.title))
@@ -415,7 +415,7 @@
jobs += "<tr bgcolor='ffddf0'><th colspan='[length(SSjob.get_job_titles_in_department(DEPARTMENT_SECURITY))]'><a href='?src=\ref[src];jobban3=securitydept;jobban4=\ref[M]'>Security Positions</a></th></tr><tr align='center'>"
for(var/jobPos in SSjob.get_job_titles_in_department(DEPARTMENT_SECURITY))
if(!jobPos) continue
var/datum/role/job/job = SSjob.get_job(jobPos)
var/datum/prototype/role/job/job = RSroles.legacy_job_by_title(jobPos)
if(!job) continue
if(jobban_isbanned(M, job.title))
@@ -436,7 +436,7 @@
jobs += "<tr bgcolor='fff5cc'><th colspan='[length(SSjob.get_job_titles_in_department(DEPARTMENT_ENGINEERING))]'><a href='?src=\ref[src];jobban3=engineeringdept;jobban4=\ref[M]'>Engineering Positions</a></th></tr><tr align='center'>"
for(var/jobPos in SSjob.get_job_titles_in_department(DEPARTMENT_ENGINEERING))
if(!jobPos) continue
var/datum/role/job/job = SSjob.get_job(jobPos)
var/datum/prototype/role/job/job = RSroles.legacy_job_by_title(jobPos)
if(!job) continue
if(jobban_isbanned(M, job.title))
@@ -457,7 +457,7 @@
jobs += "<tr bgcolor='fff5cc'><th colspan='[length(SSjob.get_job_titles_in_department(DEPARTMENT_CARGO))]'><a href='?src=\ref[src];jobban3=cargodept;jobban4=\ref[M]'>Cargo Positions</a></th></tr><tr align='center'>"
for(var/jobPos in SSjob.get_job_titles_in_department(DEPARTMENT_CARGO))
if(!jobPos) continue
var/datum/role/job/job = SSjob.get_job(jobPos)
var/datum/prototype/role/job/job = RSroles.legacy_job_by_title(jobPos)
if(!job) continue
if(jobban_isbanned(M, job.title))
@@ -478,7 +478,7 @@
jobs += "<tr bgcolor='ffeef0'><th colspan='[length(SSjob.get_job_titles_in_department(DEPARTMENT_MEDICAL))]'><a href='?src=\ref[src];jobban3=medicaldept;jobban4=\ref[M]'>Medical Positions</a></th></tr><tr align='center'>"
for(var/jobPos in SSjob.get_job_titles_in_department(DEPARTMENT_MEDICAL))
if(!jobPos) continue
var/datum/role/job/job = SSjob.get_job(jobPos)
var/datum/prototype/role/job/job = RSroles.legacy_job_by_title(jobPos)
if(!job) continue
if(jobban_isbanned(M, job.title))
@@ -499,7 +499,7 @@
jobs += "<tr bgcolor='e79fff'><th colspan='[length(SSjob.get_job_titles_in_department(DEPARTMENT_RESEARCH))]'><a href='?src=\ref[src];jobban3=sciencedept;jobban4=\ref[M]'>Science Positions</a></th></tr><tr align='center'>"
for(var/jobPos in SSjob.get_job_titles_in_department(DEPARTMENT_RESEARCH))
if(!jobPos) continue
var/datum/role/job/job = SSjob.get_job(jobPos)
var/datum/prototype/role/job/job = RSroles.legacy_job_by_title(jobPos)
if(!job) continue
if(jobban_isbanned(M, job.title))
@@ -519,7 +519,7 @@
jobs += "<tr bgcolor='e79fff'><th colspan='[length(SSjob.get_job_titles_in_department(DEPARTMENT_PLANET))]'><a href='?src=\ref[src];jobban3=sciencedept;jobban4=\ref[M]'>Science Positions</a></th></tr><tr align='center'>"
for(var/jobPos in SSjob.get_job_titles_in_department(DEPARTMENT_PLANET))
if(!jobPos) continue
var/datum/role/job/job = SSjob.get_job(jobPos)
var/datum/prototype/role/job/job = RSroles.legacy_job_by_title(jobPos)
if(!job) continue
if(jobban_isbanned(M, job.title))
@@ -539,7 +539,7 @@
jobs += "<tr bgcolor='dddddd'><th colspan='[length(SSjob.get_job_titles_in_department(DEPARTMENT_CIVILIAN))]'><a href='?src=\ref[src];jobban3=civiliandept;jobban4=\ref[M]'>Civilian Positions</a></th></tr><tr align='center'>"
for(var/jobPos in SSjob.get_job_titles_in_department(DEPARTMENT_CIVILIAN))
if(!jobPos) continue
var/datum/role/job/job = SSjob.get_job(jobPos)
var/datum/prototype/role/job/job = RSroles.legacy_job_by_title(jobPos)
if(!job) continue
if(jobban_isbanned(M, job.title))
@@ -566,7 +566,7 @@
jobs += "<tr bgcolor='ccffcc'><th colspan='[length(SSjob.get_job_titles_in_department(DEPARTMENT_SYNTHETIC))+1]'><a href='?src=\ref[src];jobban3=nonhumandept;jobban4=\ref[M]'>Non-human Positions</a></th></tr><tr align='center'>"
for(var/jobPos in SSjob.get_job_titles_in_department(DEPARTMENT_SYNTHETIC))
if(!jobPos) continue
var/datum/role/job/job = SSjob.get_job(jobPos)
var/datum/prototype/role/job/job = RSroles.legacy_job_by_title(jobPos)
if(!job) continue
if(jobban_isbanned(M, job.title))
@@ -649,56 +649,56 @@
if("commanddept")
for(var/jobPos in SSjob.get_job_titles_in_department(DEPARTMENT_COMMAND))
if(!jobPos) continue
var/datum/role/job/temp = SSjob.get_job(jobPos)
var/datum/prototype/role/job/temp = RSroles.legacy_job_by_title(jobPos)
if(!temp) continue
joblist += temp.title
if("securitydept")
for(var/jobPos in SSjob.get_job_titles_in_department(DEPARTMENT_SECURITY))
if(!jobPos) continue
var/datum/role/job/temp = SSjob.get_job(jobPos)
var/datum/prototype/role/job/temp = RSroles.legacy_job_by_title(jobPos)
if(!temp) continue
joblist += temp.title
if("engineeringdept")
for(var/jobPos in SSjob.get_job_titles_in_department(DEPARTMENT_ENGINEERING))
if(!jobPos) continue
var/datum/role/job/temp = SSjob.get_job(jobPos)
var/datum/prototype/role/job/temp = RSroles.legacy_job_by_title(jobPos)
if(!temp) continue
joblist += temp.title
if("cargodept")
for(var/jobPos in SSjob.get_job_titles_in_department(DEPARTMENT_CARGO))
if(!jobPos) continue
var/datum/role/job/temp = SSjob.get_job(jobPos)
var/datum/prototype/role/job/temp = RSroles.legacy_job_by_title(jobPos)
if(!temp) continue
joblist += temp.title
if("medicaldept")
for(var/jobPos in SSjob.get_job_titles_in_department(DEPARTMENT_MEDICAL))
if(!jobPos) continue
var/datum/role/job/temp = SSjob.get_job(jobPos)
var/datum/prototype/role/job/temp = RSroles.legacy_job_by_title(jobPos)
if(!temp) continue
joblist += temp.title
if("sciencedept")
for(var/jobPos in SSjob.get_job_titles_in_department(DEPARTMENT_RESEARCH))
if(!jobPos) continue
var/datum/role/job/temp = SSjob.get_job(jobPos)
var/datum/prototype/role/job/temp = RSroles.legacy_job_by_title(jobPos)
if(!temp) continue
joblist += temp.title
if("explorationdept")
for(var/jobPos in SSjob.get_job_titles_in_department(DEPARTMENT_PLANET))
if(!jobPos) continue
var/datum/role/job/temp = SSjob.get_job(jobPos)
var/datum/prototype/role/job/temp = RSroles.legacy_job_by_title(jobPos)
if(!temp) continue
joblist += temp.title
if("civiliandept")
for(var/jobPos in SSjob.get_job_titles_in_department(DEPARTMENT_CIVILIAN))
if(!jobPos) continue
var/datum/role/job/temp = SSjob.get_job(jobPos)
var/datum/prototype/role/job/temp = RSroles.legacy_job_by_title(jobPos)
if(!temp) continue
joblist += temp.title
if("nonhumandept")
joblist += "pAI"
for(var/jobPos in SSjob.get_job_titles_in_department(DEPARTMENT_SYNTHETIC))
if(!jobPos) continue
var/datum/role/job/temp = SSjob.get_job(jobPos)
var/datum/prototype/role/job/temp = RSroles.legacy_job_by_title(jobPos)
if(!temp) continue
joblist += temp.title
else
+2 -2
View File
@@ -456,7 +456,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
//Well you're not reloading their job or they never had one.
if(!charjob)
var/pickjob = input(src,"Pick a job to assign them (or none).","Job Select","-No Job-") as null|anything in SSjob.all_job_titles() + "-No Job-"
var/pickjob = input(src,"Pick a job to assign them (or none).","Job Select","-No Job-") as null|anything in RSroles.legacy_all_job_titles() + "-No Job-"
if(!pickjob)
return
if(pickjob != "-No Job-")
@@ -649,7 +649,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
to_chat(src, "Only administrators may use this command.")
return
if(SSjob)
for(var/datum/role/job/job in SSjob.occupations)
for(var/datum/prototype/role/job/job in RSroles.legacy_all_job_datums())
to_chat(src, "[job.title]: [job.total_positions]")
feedback_add_details("admin_verb","LFS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
+1 -1
View File
@@ -7,7 +7,7 @@
return
if(SSjob && SSticker)
var/datum/role/job/job = SSjob.get_job("AI")
var/datum/prototype/role/job/job = RSroles.legacy_job_by_title("AI")
if(!job)
to_chat(usr, "Unable to locate the AI job")
return