From 6b51eecab29227e2b3e3fa1bd179a59ea80d4618 Mon Sep 17 00:00:00 2001 From: Meghan-Rossi <56671765+Meghan-Rossi@users.noreply.github.com> Date: Sun, 15 Mar 2020 01:27:58 +0000 Subject: [PATCH] Timeclock fixes Fixes https://github.com/VOREStation/VOREStation/issues/6863 Also makes timeclock display all departments a job is in and which it earns/requires PTO for --- code/game/machinery/computer/timeclock_vr.dm | 35 +++++++------------- nano/templates/timeclock_vr.tmpl | 8 ++--- 2 files changed, 16 insertions(+), 27 deletions(-) diff --git a/code/game/machinery/computer/timeclock_vr.dm b/code/game/machinery/computer/timeclock_vr.dm index 4d648bc2aff..9264f31361f 100644 --- a/code/game/machinery/computer/timeclock_vr.dm +++ b/code/game/machinery/computer/timeclock_vr.dm @@ -84,15 +84,16 @@ if (job) data["job_datum"] = list( "title" = job.title, - "department" = job.departments[1], + "departments" = english_list(job.departments), "selection_color" = job.selection_color, "economic_modifier" = job.economic_modifier, - "timeoff_factor" = job.timeoff_factor + "timeoff_factor" = job.timeoff_factor, + "pto_department" = job.pto_earning ) if(config.time_off && config.pto_job_change) data["allow_change_job"] = TRUE 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.departments[1]) + data["job_choices"] = getOpenOnDutyJobs(user, job.pto_earning) ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) @@ -141,23 +142,17 @@ var/list/available_jobs = list() 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.departments[1] == department && !job.disallow_jobhop && job.timeoff_factor > 0) + if(job.pto_earning == department && !job.disallow_jobhop && job.timeoff_factor > 0) available_jobs += job.title if(job.alt_titles) for(var/alt_job in job.alt_titles) - available_jobs += alt_job + if(alt_job != job.title) + available_jobs += alt_job return available_jobs /obj/machinery/computer/timeclock/proc/makeOnDuty(var/newjob) - var/datum/job/foundjob = null - for(var/datum/job/job in job_master.occupations) - if(newjob == job.title) - foundjob = job - break - if(newjob in job.alt_titles) - foundjob = job - break - if(!newjob in getOpenOnDutyJobs(usr, job_master.GetJob(card.rank).department)) + var/datum/job/foundjob = job_master.GetJob(card.rank) + if(!newjob in getOpenOnDutyJobs(usr, foundjob.pto_earning)) return if(foundjob && card) card.access = foundjob.get_access() @@ -175,19 +170,13 @@ return /obj/machinery/computer/timeclock/proc/makeOffDuty() - var/datum/job/foundjob = null - for(var/datum/job/job in job_master.occupations) - if(card.rank == job.title) - foundjob = job - break + var/datum/job/foundjob = job_master.GetJob(card.rank) if(!foundjob) return - var/real_dept = foundjob.departments[1] - if(real_dept && real_dept == "Command") - real_dept = "Civilian" + var/new_dept = foundjob.pto_earning || PTO_CIVILIAN var/datum/job/ptojob = null for(var/datum/job/job in job_master.occupations) - if(job.departments[1] == real_dept && job.timeoff_factor < 0) + if(job.pto_earning == new_dept && job.timeoff_factor < 0) ptojob = job break if(ptojob && card) diff --git a/nano/templates/timeclock_vr.tmpl b/nano/templates/timeclock_vr.tmpl index 8549d824eff..181caf534b0 100644 --- a/nano/templates/timeclock_vr.tmpl +++ b/nano/templates/timeclock_vr.tmpl @@ -31,8 +31,8 @@
-
Department:
-
{{:data.job_datum.department}}
+
Departments:
+
{{:data.job_datum.departments}}
Pay Scale:
@@ -42,11 +42,11 @@
PTO Eligibility:
{{if data.job_datum.timeoff_factor > 0 }}
- Earns PTO + Earns PTO - {{:data.job_datum.pto_department}}
{{else data.job_datum.timeoff_factor < 0}}
- Requires PTO + Requires PTO - {{:data.job_datum.pto_department}}
{{else}}