diff --git a/code/__DEFINES/jobs.dm b/code/__DEFINES/jobs.dm
index e6b1d77f8a..e6eb9f313e 100644
--- a/code/__DEFINES/jobs.dm
+++ b/code/__DEFINES/jobs.dm
@@ -57,18 +57,18 @@
#define JOB_DISPLAY_ORDER_ASSISTANT 1
#define JOB_DISPLAY_ORDER_CAPTAIN 2
#define JOB_DISPLAY_ORDER_HEAD_OF_PERSONNEL 3
-#define JOB_DISPLAY_ORDER_QUARTERMASTER 4
-#define JOB_DISPLAY_ORDER_CARGO_TECHNICIAN 5
-#define JOB_DISPLAY_ORDER_SHAFT_MINER 6
-#define JOB_DISPLAY_ORDER_BARTENDER 7
-#define JOB_DISPLAY_ORDER_COOK 8
-#define JOB_DISPLAY_ORDER_BOTANIST 9
-#define JOB_DISPLAY_ORDER_JANITOR 10
-#define JOB_DISPLAY_ORDER_CLOWN 11
-#define JOB_DISPLAY_ORDER_MIME 12
-#define JOB_DISPLAY_ORDER_CURATOR 13
-#define JOB_DISPLAY_ORDER_LAWYER 14
-#define JOB_DISPLAY_ORDER_CHAPLAIN 15
+#define JOB_DISPLAY_ORDER_BARTENDER 4
+#define JOB_DISPLAY_ORDER_COOK 5
+#define JOB_DISPLAY_ORDER_BOTANIST 6
+#define JOB_DISPLAY_ORDER_JANITOR 7
+#define JOB_DISPLAY_ORDER_CLOWN 8
+#define JOB_DISPLAY_ORDER_MIME 9
+#define JOB_DISPLAY_ORDER_CURATOR 10
+#define JOB_DISPLAY_ORDER_LAWYER 11
+#define JOB_DISPLAY_ORDER_CHAPLAIN 12
+#define JOB_DISPLAY_ORDER_QUARTERMASTER 13
+#define JOB_DISPLAY_ORDER_CARGO_TECHNICIAN 14
+#define JOB_DISPLAY_ORDER_SHAFT_MINER 15
#define JOB_DISPLAY_ORDER_CHIEF_ENGINEER 16
#define JOB_DISPLAY_ORDER_STATION_ENGINEER 17
#define JOB_DISPLAY_ORDER_ATMOSPHERIC_TECHNICIAN 18
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index 041bab4f3f..233eeb31e8 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -473,7 +473,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
joblessrole = sanitize_integer(joblessrole, 1, 3, initial(joblessrole))
//Validate job prefs
for(var/j in job_preferences)
- if(job_preferences[j] != JP_LOW && job_preferences[j] != JP_MEDIUM && job_preferences[j] != JP_LOW)
+ if(job_preferences[j] != JP_LOW && job_preferences[j] != JP_MEDIUM && job_preferences[j] != JP_HIGH)
job_preferences -= j
all_quirks = SANITIZE_LIST(all_quirks)
diff --git a/code/modules/jobs/job_types/atmospheric_technician.dm b/code/modules/jobs/job_types/atmospheric_technician.dm
index 31d66eced2..93775beca9 100644
--- a/code/modules/jobs/job_types/atmospheric_technician.dm
+++ b/code/modules/jobs/job_types/atmospheric_technician.dm
@@ -7,7 +7,7 @@
total_positions = 3
spawn_positions = 2
supervisors = "the chief engineer"
- selection_color = "#fff5cc"
+ selection_color = "#ff9b3d"
exp_requirements = 60
exp_type = EXP_TYPE_CREW
diff --git a/code/modules/jobs/job_types/cargo_technician.dm b/code/modules/jobs/job_types/cargo_technician.dm
index 9699f12be5..3ceb29bae2 100644
--- a/code/modules/jobs/job_types/cargo_technician.dm
+++ b/code/modules/jobs/job_types/cargo_technician.dm
@@ -7,7 +7,7 @@
total_positions = 3
spawn_positions = 2
supervisors = "the quartermaster"
- selection_color = "#dcba97"
+ selection_color = "#ca8f55"
outfit = /datum/outfit/job/cargo_tech
diff --git a/code/modules/jobs/job_types/chemist.dm b/code/modules/jobs/job_types/chemist.dm
index 908209ef69..a915d261ed 100644
--- a/code/modules/jobs/job_types/chemist.dm
+++ b/code/modules/jobs/job_types/chemist.dm
@@ -7,7 +7,7 @@
total_positions = 2
spawn_positions = 2
supervisors = "the chief medical officer"
- selection_color = "#ffeef0"
+ selection_color = "#74b5e0"
exp_type = EXP_TYPE_CREW
exp_requirements = 60
diff --git a/code/modules/jobs/job_types/chief_engineer.dm b/code/modules/jobs/job_types/chief_engineer.dm
index a4b197d479..da3f281267 100644
--- a/code/modules/jobs/job_types/chief_engineer.dm
+++ b/code/modules/jobs/job_types/chief_engineer.dm
@@ -9,7 +9,7 @@
total_positions = 1
spawn_positions = 1
supervisors = "the captain"
- selection_color = "#ffd699"
+ selection_color = "#ee7400"
req_admin_notify = 1
minimal_player_age = 7
exp_requirements = 180
diff --git a/code/modules/jobs/job_types/chief_medical_officer.dm b/code/modules/jobs/job_types/chief_medical_officer.dm
index f0f044e6b1..4c7249f048 100644
--- a/code/modules/jobs/job_types/chief_medical_officer.dm
+++ b/code/modules/jobs/job_types/chief_medical_officer.dm
@@ -9,7 +9,7 @@
total_positions = 1
spawn_positions = 1
supervisors = "the captain"
- selection_color = "#99ffe6"
+ selection_color = "#509ed1"
req_admin_notify = 1
minimal_player_age = 7
exp_requirements = 180
diff --git a/code/modules/jobs/job_types/detective.dm b/code/modules/jobs/job_types/detective.dm
index 82745ae9fb..27a54fbd1f 100644
--- a/code/modules/jobs/job_types/detective.dm
+++ b/code/modules/jobs/job_types/detective.dm
@@ -8,7 +8,7 @@
total_positions = 1
spawn_positions = 1
supervisors = "the head of security"
- selection_color = "#ffeeee"
+ selection_color = "#c02f2f"
minimal_player_age = 7
exp_requirements = 300
exp_type = EXP_TYPE_CREW
diff --git a/code/modules/jobs/job_types/geneticist.dm b/code/modules/jobs/job_types/geneticist.dm
index 6006ff1083..d7f59ff883 100644
--- a/code/modules/jobs/job_types/geneticist.dm
+++ b/code/modules/jobs/job_types/geneticist.dm
@@ -7,7 +7,7 @@
total_positions = 2
spawn_positions = 2
supervisors = "the chief medical officer and research director"
- selection_color = "#ffeef0"
+ selection_color = "#74b5e0"
exp_type = EXP_TYPE_CREW
exp_requirements = 60
diff --git a/code/modules/jobs/job_types/head_of_personnel.dm b/code/modules/jobs/job_types/head_of_personnel.dm
index d373b8c181..e320ce20b4 100644
--- a/code/modules/jobs/job_types/head_of_personnel.dm
+++ b/code/modules/jobs/job_types/head_of_personnel.dm
@@ -9,7 +9,7 @@
total_positions = 1
spawn_positions = 1
supervisors = "the captain"
- selection_color = "#cccccc"
+ selection_color = "#3a8529"
req_admin_notify = 1
minimal_player_age = 10
exp_requirements = 180
diff --git a/code/modules/jobs/job_types/head_of_security.dm b/code/modules/jobs/job_types/head_of_security.dm
index 249e426c96..f6b5dbd3ef 100644
--- a/code/modules/jobs/job_types/head_of_security.dm
+++ b/code/modules/jobs/job_types/head_of_security.dm
@@ -9,7 +9,7 @@
total_positions = 1
spawn_positions = 1
supervisors = "the captain"
- selection_color = "#ff9999"
+ selection_color = "#b90000"
req_admin_notify = 1
minimal_player_age = 14
exp_requirements = 300
diff --git a/code/modules/jobs/job_types/medical_doctor.dm b/code/modules/jobs/job_types/medical_doctor.dm
index e3379e4be1..19fa1c7158 100644
--- a/code/modules/jobs/job_types/medical_doctor.dm
+++ b/code/modules/jobs/job_types/medical_doctor.dm
@@ -7,7 +7,7 @@
total_positions = 5
spawn_positions = 3
supervisors = "the chief medical officer"
- selection_color = "#ffeef0"
+ selection_color = "#74b5e0"
outfit = /datum/outfit/job/doctor
diff --git a/code/modules/jobs/job_types/quartermaster.dm b/code/modules/jobs/job_types/quartermaster.dm
index a3830e389f..49a93026ba 100644
--- a/code/modules/jobs/job_types/quartermaster.dm
+++ b/code/modules/jobs/job_types/quartermaster.dm
@@ -9,7 +9,7 @@
total_positions = 1
spawn_positions = 1
supervisors = "the captain"
- selection_color = "#ead4ae"
+ selection_color = "#a06121"
req_admin_notify = 1
minimal_player_age = 7
exp_requirements = 180
diff --git a/code/modules/jobs/job_types/research_director.dm b/code/modules/jobs/job_types/research_director.dm
index 5b239c44e0..5368ceee64 100644
--- a/code/modules/jobs/job_types/research_director.dm
+++ b/code/modules/jobs/job_types/research_director.dm
@@ -9,7 +9,7 @@
total_positions = 1
spawn_positions = 1
supervisors = "the captain"
- selection_color = "#e6b3e6"
+ selection_color = "#7544cc"
req_admin_notify = 1
minimal_player_age = 7
exp_type_department = EXP_TYPE_SCIENCE
diff --git a/code/modules/jobs/job_types/roboticist.dm b/code/modules/jobs/job_types/roboticist.dm
index ef3c1277a1..782b175ad4 100644
--- a/code/modules/jobs/job_types/roboticist.dm
+++ b/code/modules/jobs/job_types/roboticist.dm
@@ -7,7 +7,7 @@
total_positions = 2
spawn_positions = 2
supervisors = "the research director"
- selection_color = "#ffeeff"
+ selection_color = "#9574cd"
exp_requirements = 60
exp_type = EXP_TYPE_CREW
diff --git a/code/modules/jobs/job_types/scientist.dm b/code/modules/jobs/job_types/scientist.dm
index e3f04f0b29..f40a25d6ba 100644
--- a/code/modules/jobs/job_types/scientist.dm
+++ b/code/modules/jobs/job_types/scientist.dm
@@ -7,7 +7,7 @@
total_positions = 5
spawn_positions = 3
supervisors = "the research director"
- selection_color = "#ffeeff"
+ selection_color = "#9574cd"
exp_requirements = 60
exp_type = EXP_TYPE_CREW
diff --git a/code/modules/jobs/job_types/security_officer.dm b/code/modules/jobs/job_types/security_officer.dm
index bb54ed0a6c..4f12d6a19c 100644
--- a/code/modules/jobs/job_types/security_officer.dm
+++ b/code/modules/jobs/job_types/security_officer.dm
@@ -8,7 +8,7 @@
total_positions = 5 //Handled in /datum/controller/occupations/proc/setup_officer_positions()
spawn_positions = 5 //Handled in /datum/controller/occupations/proc/setup_officer_positions()
supervisors = "the head of security, and the head of your assigned department (if applicable)"
- selection_color = "#ffeeee"
+ selection_color = "#c02f2f"
minimal_player_age = 7
exp_requirements = 300
exp_type = EXP_TYPE_CREW
diff --git a/code/modules/jobs/job_types/shaft_miner.dm b/code/modules/jobs/job_types/shaft_miner.dm
index 1c662b8e8f..c1b0c643c6 100644
--- a/code/modules/jobs/job_types/shaft_miner.dm
+++ b/code/modules/jobs/job_types/shaft_miner.dm
@@ -7,7 +7,7 @@
total_positions = 3
spawn_positions = 3
supervisors = "the quartermaster"
- selection_color = "#dcba97"
+ selection_color = "#ca8f55"
outfit = /datum/outfit/job/miner
diff --git a/code/modules/jobs/job_types/station_engineer.dm b/code/modules/jobs/job_types/station_engineer.dm
index 4a2a2c7fd2..55381549ba 100644
--- a/code/modules/jobs/job_types/station_engineer.dm
+++ b/code/modules/jobs/job_types/station_engineer.dm
@@ -7,7 +7,7 @@
total_positions = 5
spawn_positions = 5
supervisors = "the chief engineer"
- selection_color = "#fff5cc"
+ selection_color = "#ff9b3d"
exp_requirements = 60
exp_type = EXP_TYPE_CREW
diff --git a/code/modules/jobs/job_types/virologist.dm b/code/modules/jobs/job_types/virologist.dm
index 26f38e594b..dcc13af627 100644
--- a/code/modules/jobs/job_types/virologist.dm
+++ b/code/modules/jobs/job_types/virologist.dm
@@ -7,7 +7,7 @@
total_positions = 1
spawn_positions = 1
supervisors = "the chief medical officer"
- selection_color = "#ffeef0"
+ selection_color = "#74b5e0"
exp_type = EXP_TYPE_CREW
exp_requirements = 60
diff --git a/code/modules/jobs/job_types/warden.dm b/code/modules/jobs/job_types/warden.dm
index 23d964dad3..a5c16ab5cf 100644
--- a/code/modules/jobs/job_types/warden.dm
+++ b/code/modules/jobs/job_types/warden.dm
@@ -8,7 +8,7 @@
total_positions = 1
spawn_positions = 1
supervisors = "the head of security"
- selection_color = "#ffeeee"
+ selection_color = "#c02f2f"
minimal_player_age = 7
exp_requirements = 300
exp_type = EXP_TYPE_CREW
diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm
index 5ea556304e..cd0d19f543 100644
--- a/code/modules/mob/dead/new_player/new_player.dm
+++ b/code/modules/mob/dead/new_player/new_player.dm
@@ -37,7 +37,8 @@
return
/mob/dead/new_player/proc/new_player_panel()
- var/output = "
Setup Character
"
+ var/output = "Welcome, [client ? client.prefs.real_name : "Unknown User"]
"
+ output += "Setup Character
"
if(SSticker.current_state <= GAME_STATE_PREGAME)
switch(ready)
@@ -444,7 +445,7 @@
if(SEC_LEVEL_RED)
level = "red"
if(SEC_LEVEL_DELTA)
- level = "delta"
+ level = "delta"
var/dat = "Round Duration: [DisplayTimeText(world.time - SSticker.round_start_time)] Alert Level: [capitalize(level)]
"
if(SSshuttle.emergency)
@@ -457,17 +458,18 @@
for(var/datum/job/prioritized_job in SSjob.prioritized_jobs)
if(prioritized_job.current_positions >= prioritized_job.total_positions)
SSjob.prioritized_jobs -= prioritized_job
- dat += ""
+ dat += ""
var/column_counter = 0
- for(var/list/category in list(GLOB.command_positions) + list(GLOB.engineering_positions) + list(GLOB.supply_positions) + list(GLOB.nonhuman_positions - "pAI") + list(GLOB.civilian_positions) + list(GLOB.medical_positions) + list(GLOB.science_positions) + list(GLOB.security_positions))
+ var/free_space = 0
+ for(var/list/category in list(GLOB.command_positions) + list(GLOB.supply_positions) + list(GLOB.engineering_positions) + list(GLOB.nonhuman_positions - "pAI") + list(GLOB.civilian_positions) + list(GLOB.medical_positions) + list(GLOB.science_positions) + list(GLOB.security_positions))
var/cat_color = "fff" //random default
if(SSjob.name_occupations && SSjob.name_occupations[category[1]])
cat_color = SSjob.name_occupations[category[1]].selection_color //use the color of the first job in the category (the department head) as the category color
else
cat_color = SSjob.occupations[category[1]].selection_color
-
dat += ""
dat += "[SSjob.name_occupations[category[1]].exp_type_department] "
+
var/list/dept_dat = list()
for(var/job in category)
var/datum/job/job_datum = SSjob.name_occupations[job]
@@ -484,10 +486,16 @@
dat += jointext(dept_dat, "")
dat += " "
column_counter++
- if(column_counter > 0 && (column_counter % 3 == 0))
+ if(free_space <=4)
+ free_space++
+ if(column_counter > 0 && (column_counter % 3 == 0))
+ dat += " "
+ if(free_space >= 5 && (free_space % 5 == 0) && (column_counter % 3 != 0))
+ free_space = 0
+ column_counter = 0
dat += " "
- dat += "
"
- dat += ""
+
+ dat += "
"
var/available_ghosts = 0
for(var/spawner in GLOB.mob_spawners)
@@ -502,7 +510,6 @@
if(!available_ghosts)
dat += "There are currently no open ghost spawners.
"
else
- dat += "Currently open Ghost roles:
"
var/list/categorizedJobs = list("Ghost Role" = list(jobs = list(), titles = GLOB.mob_spawners, color = "#ffffff"))
for(var/spawner in GLOB.mob_spawners)
if(!LAZYLEN(spawner))
@@ -512,10 +519,8 @@
continue
categorizedJobs["Ghost Role"]["jobs"] += spawner
- dat += ""
+ dat += ""
for(var/jobcat in categorizedJobs)
- if(categorizedJobs[jobcat]["colBreak"])
- dat += " "
if(!length(categorizedJobs[jobcat]["jobs"]))
continue
var/color = categorizedJobs[jobcat]["color"]
@@ -528,7 +533,7 @@
dat += "
"
dat += ""
- var/datum/browser/popup = new(src, "latechoices", "Choose Profession", 680, 580)
+ var/datum/browser/popup = new(src, "latechoices", "Choose Profession", 720, 600)
popup.add_stylesheet("playeroptions", 'html/browser/playeroptions.css')
popup.set_content(jointext(dat, ""))
popup.open(FALSE) // FALSE is passed to open so that it doesn't use the onclose() proc