Converts off duty system to new system

This commit is contained in:
Unknown
2020-03-09 15:37:45 -04:00
parent cee18b54a6
commit b2cd0eade0
4 changed files with 15 additions and 14 deletions

View File

@@ -36,15 +36,15 @@ SUBSYSTEM_DEF(persist)
// Try and detect job and department of mob // Try and detect job and department of mob
var/datum/job/J = detect_job(M) var/datum/job/J = detect_job(M)
if(!istype(J) || !J.department || !J.timeoff_factor) if(!istype(J) || !J.departments[1] || !J.timeoff_factor)
if (MC_TICK_CHECK) if (MC_TICK_CHECK)
return return
continue continue
// Do not collect useless PTO // Do not collect useless PTO
var/department_earning = J.department var/department_earning = J.departments[1]
if(J.department == "Command") if(J.departments[1] == DEPARTMENT_COMMAND)
department_earning = "Civilian" department_earning = DEPARTMENT_CIVILIAN
clear_unused_pto(M) clear_unused_pto(M)
// Update client whatever // Update client whatever
@@ -90,6 +90,6 @@ SUBSYSTEM_DEF(persist)
/datum/controller/subsystem/persist/proc/clear_unused_pto(var/mob/M) /datum/controller/subsystem/persist/proc/clear_unused_pto(var/mob/M)
var/client/C = M.client var/client/C = M.client
LAZYINITLIST(C.department_hours) LAZYINITLIST(C.department_hours)
if(C.department_hours["Command"]) if(C.department_hours[DEPARTMENT_COMMAND])
C.department_hours["Command"] = null C.department_hours[DEPARTMENT_COMMAND] = null
C.department_hours.Remove("Command") C.department_hours.Remove(DEPARTMENT_COMMAND)

View File

@@ -13,4 +13,4 @@
// Check client-specific availability rules. // Check client-specific availability rules.
/datum/job/proc/player_has_enough_pto(client/C) /datum/job/proc/player_has_enough_pto(client/C)
return timeoff_factor >= 0 || (C && LAZYACCESS(C.department_hours, department) > 0) return timeoff_factor >= 0 || (C && LAZYACCESS(C.department_hours, departments[1]) > 0)

View File

@@ -84,7 +84,7 @@
if (job) if (job)
data["job_datum"] = list( data["job_datum"] = list(
"title" = job.title, "title" = job.title,
"department" = job.department, "department" = job.departments[1],
"selection_color" = job.selection_color, "selection_color" = job.selection_color,
"economic_modifier" = job.economic_modifier, "economic_modifier" = job.economic_modifier,
"timeoff_factor" = job.timeoff_factor "timeoff_factor" = job.timeoff_factor
@@ -92,7 +92,7 @@
if(config.time_off && config.pto_job_change) if(config.time_off && config.pto_job_change)
data["allow_change_job"] = TRUE data["allow_change_job"] = TRUE
if(job && job.timeoff_factor < 0) // Currently are Off Duty, so gotta lookup what on-duty jobs are open if(job && job.timeoff_factor < 0) // Currently are Off Duty, so gotta lookup what on-duty jobs are open
data["job_choices"] = getOpenOnDutyJobs(user, job.department) data["job_choices"] = getOpenOnDutyJobs(user, job.departments[1])
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open) ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open)
if (!ui) if (!ui)
@@ -141,7 +141,7 @@
var/list/available_jobs = list() var/list/available_jobs = list()
for(var/datum/job/job in job_master.occupations) for(var/datum/job/job in job_master.occupations)
if(job && job.is_position_available() && !job.whitelist_only && !jobban_isbanned(user,job.title) && job.player_old_enough(user.client)) if(job && job.is_position_available() && !job.whitelist_only && !jobban_isbanned(user,job.title) && job.player_old_enough(user.client))
if(job.department == department && !job.disallow_jobhop && job.timeoff_factor > 0) if(job.departments[1] == department && !job.disallow_jobhop && job.timeoff_factor > 0)
available_jobs += job.title available_jobs += job.title
if(job.alt_titles) if(job.alt_titles)
for(var/alt_job in job.alt_titles) for(var/alt_job in job.alt_titles)
@@ -182,12 +182,12 @@
break break
if(!foundjob) if(!foundjob)
return return
var/real_dept = foundjob.department var/real_dept = foundjob.departments[1]
if(real_dept && real_dept == "Command") if(real_dept && real_dept == "Command")
real_dept = "Civilian" real_dept = "Civilian"
var/datum/job/ptojob = null var/datum/job/ptojob = null
for(var/datum/job/job in job_master.occupations) for(var/datum/job/job in job_master.occupations)
if(job.department == real_dept && job.timeoff_factor < 0) if(job.departments[1] == real_dept && job.timeoff_factor < 0)
ptojob = job ptojob = job
break break
if(ptojob && card) if(ptojob && card)

View File

@@ -26,7 +26,7 @@ var/const/SAR =(1<<14)
/datum/department/planetside /datum/department/planetside
name = DEPARTMENT_PLANET name = DEPARTMENT_PLANET
color = "#555555" color = "#bab421"
sorting_order = 2 // Same as cargo in importance. sorting_order = 2 // Same as cargo in importance.
/datum/job/pathfinder /datum/job/pathfinder
@@ -34,6 +34,7 @@ var/const/SAR =(1<<14)
flag = PATHFINDER flag = PATHFINDER
departments = list(DEPARTMENT_PLANET) departments = list(DEPARTMENT_PLANET)
head_position = 1 head_position = 1
sorting_order = 1 // above the other explorers
department_flag = MEDSCI department_flag = MEDSCI
faction = "Station" faction = "Station"
total_positions = 1 total_positions = 1