mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-30 12:03:11 +00:00
Allows you to right click to lower job preference
This commit is contained in:
@@ -61,6 +61,7 @@
|
||||
. = list()
|
||||
. += "<tt><center>"
|
||||
. += "<b>Choose occupation chances</b><br>Unavailable occupations are crossed out.<br>"
|
||||
. += "<script type='text/javascript'>function setJobPrefRedirect(level, rank) { window.location.href='?src=\ref[src];level=' + level + ';set_job=' + encodeURIComponent(rank); return false; }</script>"
|
||||
. += "<table width='100%' cellpadding='1' cellspacing='0'><tr><td width='20%' valign='top'>" // Table within a table for alignment, also allows you to easily add more columns.
|
||||
. += "<table width='100%' cellpadding='1' cellspacing='0'>"
|
||||
var/index = -1
|
||||
@@ -140,7 +141,32 @@
|
||||
|
||||
. += "</td><td width='40%'>"
|
||||
|
||||
. += "<a href='?src=\ref[src];set_job=[rank]'>"
|
||||
var/prefLevelLabel = "ERROR"
|
||||
var/prefLevelColor = "pink"
|
||||
var/prefUpperLevel = -1 // level to assign on left click
|
||||
var/prefLowerLevel = -1 // level to assign on right click
|
||||
if(pref.GetJobDepartment(job, 1) & job.flag)
|
||||
prefLevelLabel = "High"
|
||||
prefLevelColor = "55cc55"
|
||||
prefUpperLevel = 4
|
||||
prefLowerLevel = 2
|
||||
else if(pref.GetJobDepartment(job, 2) & job.flag)
|
||||
prefLevelLabel = "Medium"
|
||||
prefLevelColor = "eecc22"
|
||||
prefUpperLevel = 1
|
||||
prefLowerLevel = 3
|
||||
else if(pref.GetJobDepartment(job, 3) & job.flag)
|
||||
prefLevelLabel = "Low"
|
||||
prefLevelColor = "cc5555"
|
||||
prefUpperLevel = 2
|
||||
prefLowerLevel = 4
|
||||
else
|
||||
prefLevelLabel = "NEVER"
|
||||
prefLevelColor = "black"
|
||||
prefUpperLevel = 3
|
||||
prefLowerLevel = 1
|
||||
|
||||
. += "<a href='?src=\ref[src];set_job=[rank];level=[prefUpperLevel]' oncontextmenu='javascript:return setJobPrefRedirect([prefLowerLevel], \"[rank]\");'>"
|
||||
|
||||
if(job.type == /datum/job/assistant)//Assistant is special
|
||||
if(pref.job_civilian_low & ASSISTANT)
|
||||
@@ -152,14 +178,7 @@
|
||||
. += "</a></td></tr>"
|
||||
continue
|
||||
|
||||
if(pref.GetJobDepartment(job, 1) & job.flag)
|
||||
. += " <font color=55cc55>\[High]</font>"
|
||||
else if(pref.GetJobDepartment(job, 2) & job.flag)
|
||||
. += " <font color=eecc22>\[Medium]</font>"
|
||||
else if(pref.GetJobDepartment(job, 3) & job.flag)
|
||||
. += " <font color=cc5555>\[Low]</font>"
|
||||
else
|
||||
. += " <font color=black>\[NEVER]</font>"
|
||||
. += " <font color=[prefLevelColor]>\[[prefLevelLabel]]</font>"
|
||||
if(LAZYLEN(job.alt_titles))
|
||||
. += "</a></td></tr><tr bgcolor='[lastJob.selection_color]'><td width='60%' align='center'> </td><td><a href='?src=\ref[src];select_alt_title=\ref[job]'>\[[pref.GetPlayerAltTitle(job)]\]</a></td></tr>"
|
||||
. += "</a></td></tr>"
|
||||
@@ -200,8 +219,8 @@
|
||||
return (pref.equip_preview_mob ? TOPIC_REFRESH_UPDATE_PREVIEW : TOPIC_REFRESH)
|
||||
|
||||
else if(href_list["set_job"])
|
||||
if(SetJob(user, href_list["set_job"])) return (pref.equip_preview_mob ? TOPIC_REFRESH_UPDATE_PREVIEW : TOPIC_REFRESH)
|
||||
|
||||
if(SetJob(user, href_list["set_job"], text2num(href_list["level"])))
|
||||
return (pref.equip_preview_mob ? TOPIC_REFRESH_UPDATE_PREVIEW : TOPIC_REFRESH)
|
||||
|
||||
else if(href_list["job_info"])
|
||||
var/rank = href_list["job_info"]
|
||||
@@ -250,7 +269,7 @@
|
||||
if(job.title != new_title)
|
||||
pref.player_alt_titles[job.title] = new_title
|
||||
|
||||
/datum/category_item/player_setup_item/occupation/proc/SetJob(mob/user, role)
|
||||
/datum/category_item/player_setup_item/occupation/proc/SetJob(mob/user, role, level)
|
||||
var/datum/job/job = job_master.GetJob(role)
|
||||
if(!job)
|
||||
return 0
|
||||
@@ -262,63 +281,58 @@
|
||||
pref.job_civilian_low |= job.flag
|
||||
return 1
|
||||
|
||||
if(pref.GetJobDepartment(job, 1) & job.flag)
|
||||
SetJobDepartment(job, 1)
|
||||
else if(pref.GetJobDepartment(job, 2) & job.flag)
|
||||
SetJobDepartment(job, 2)
|
||||
else if(pref.GetJobDepartment(job, 3) & job.flag)
|
||||
SetJobDepartment(job, 3)
|
||||
else//job = Never
|
||||
SetJobDepartment(job, 4)
|
||||
|
||||
SetJobDepartment(job, level)
|
||||
return 1
|
||||
|
||||
/datum/category_item/player_setup_item/occupation/proc/reset_jobhigh()
|
||||
pref.job_civilian_med |= pref.job_civilian_high
|
||||
pref.job_medsci_med |= pref.job_medsci_high
|
||||
pref.job_engsec_med |= pref.job_engsec_high
|
||||
pref.job_civilian_high = 0
|
||||
pref.job_medsci_high = 0
|
||||
pref.job_engsec_high = 0
|
||||
|
||||
// Level is equal to the desired new level of the job. So for a value of 4, we want to disable the job.
|
||||
/datum/category_item/player_setup_item/occupation/proc/SetJobDepartment(var/datum/job/job, var/level)
|
||||
if(!job || !level) return 0
|
||||
switch(level)
|
||||
if(1)//Only one of these should ever be active at once so clear them all here
|
||||
pref.job_civilian_high = 0
|
||||
pref.job_medsci_high = 0
|
||||
pref.job_engsec_high = 0
|
||||
return 1
|
||||
if(2)//Set current highs to med, then reset them
|
||||
pref.job_civilian_med |= pref.job_civilian_high
|
||||
pref.job_medsci_med |= pref.job_medsci_high
|
||||
pref.job_engsec_med |= pref.job_engsec_high
|
||||
pref.job_civilian_high = 0
|
||||
pref.job_medsci_high = 0
|
||||
pref.job_engsec_high = 0
|
||||
if(!job || !level)
|
||||
return 0
|
||||
|
||||
switch(job.department_flag)
|
||||
if(CIVILIAN)
|
||||
pref.job_civilian_low &= ~job.flag
|
||||
pref.job_civilian_med &= ~job.flag
|
||||
pref.job_civilian_high &= ~job.flag
|
||||
switch(level)
|
||||
if(2)
|
||||
if(1)
|
||||
reset_jobhigh()
|
||||
pref.job_civilian_high = job.flag
|
||||
pref.job_civilian_med &= ~job.flag
|
||||
if(3)
|
||||
if(2)
|
||||
pref.job_civilian_med |= job.flag
|
||||
pref.job_civilian_low &= ~job.flag
|
||||
else
|
||||
if(3)
|
||||
pref.job_civilian_low |= job.flag
|
||||
if(MEDSCI)
|
||||
pref.job_medsci_low &= ~job.flag
|
||||
pref.job_medsci_med &= ~job.flag
|
||||
pref.job_medsci_high &= ~job.flag
|
||||
switch(level)
|
||||
if(2)
|
||||
if(1)
|
||||
reset_jobhigh()
|
||||
pref.job_medsci_high = job.flag
|
||||
pref.job_medsci_med &= ~job.flag
|
||||
if(3)
|
||||
if(2)
|
||||
pref.job_medsci_med |= job.flag
|
||||
pref.job_medsci_low &= ~job.flag
|
||||
else
|
||||
if(3)
|
||||
pref.job_medsci_low |= job.flag
|
||||
if(ENGSEC)
|
||||
pref.job_engsec_low &= ~job.flag
|
||||
pref.job_engsec_med &= ~job.flag
|
||||
pref.job_engsec_high &= ~job.flag
|
||||
switch(level)
|
||||
if(2)
|
||||
if(1)
|
||||
reset_jobhigh()
|
||||
pref.job_engsec_high = job.flag
|
||||
pref.job_engsec_med &= ~job.flag
|
||||
if(3)
|
||||
if(2)
|
||||
pref.job_engsec_med |= job.flag
|
||||
pref.job_engsec_low &= ~job.flag
|
||||
else
|
||||
if(3)
|
||||
pref.job_engsec_low |= job.flag
|
||||
return 1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user