mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
Converts off duty system to new system
This commit is contained in:
@@ -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)
|
||||||
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user