diff --git a/code/game/jobs/jobprocs.dm b/code/game/jobs/jobprocs.dm index 451e40b712b..381bf8d203d 100644 --- a/code/game/jobs/jobprocs.dm +++ b/code/game/jobs/jobprocs.dm @@ -83,7 +83,9 @@ if (unassigned.len == 0) break var/list/candidates = FindOccupationCandidates(unassigned, occupation, level) - for (var/mob/new_player/candidate in candidates) + while (candidates.len && assistant_occupations[occupation]) + assistant_occupations[occupation]-- + var/mob/new_player/candidate = pick_n_take(candidates) candidate.mind.assigned_role = occupation unassigned -= candidate //Now everyone else @@ -116,7 +118,12 @@ for(var/mob/new_player/player in unassigned) if (unassigned.len == 0) break - player.mind.assigned_role = pick(assistant_occupations) + var/list/occupationsPossible = list() + for(var/occ in assistant_occupations) + if(assistant_occupations[occ]) + occupationsPossible += assistant_occupations[occ] + player.mind.assigned_role = pick(occupationsPossible) + assistant_occupations[player.mind.assigned_role]-- return 1 @@ -158,9 +165,6 @@ B.name = "Uplifting Primer" if("toolboxia") B.name = "Toolbox Manifesto" - if("nazism") - B.name = "Mein Kampf" - if(prob(50)) brainloss = 60 // probably starts off retarded? if("homosexuality") B.name = "Guys Gone Wild" if("lol", "wtf", "gay", "penis", "ass", "poo", "badmin", "shitmin", "deadmin", "cock", "cocks") diff --git a/code/game/jobs/jobs.dm b/code/game/jobs/jobs.dm index 4d72f637b6e..bc414fdadf4 100644 --- a/code/game/jobs/jobs.dm +++ b/code/game/jobs/jobs.dm @@ -298,9 +298,6 @@ var/list/occupations = list( //soul "Clown" = 1, "Mime" = 1, - "Chaplain" = 1, - "Librarian" = 1, - "Lawyer" = 1, //body "Bartender" = 1, "Chef" = 1, @@ -312,7 +309,6 @@ var/list/occupations = list( //engineering "Chief Engineer" = 1, "Station Engineer" = 5, - "Atmospheric Technician" = 4, "Roboticist" = 1, //red shirts @@ -340,7 +336,11 @@ var/list/occupations = list( ) var/list/assistant_occupations = list( - "Assistant", + "Assistant" = -1, //infinite assistants + "Chaplain" = 1, + "Librarian" = 1, + "Lawyer" = 1, + "Atmospheric Technician" = 4, //"Tourist", //I am not going to implement these jobs at the moment. Just listed it as examples. --rastaf0 //"Monkey", //"Prisoneer", diff --git a/code/modules/mob/new_player/preferences.dm b/code/modules/mob/new_player/preferences.dm index fc7cd4fe71c..b0c8691a891 100644 --- a/code/modules/mob/new_player/preferences.dm +++ b/code/modules/mob/new_player/preferences.dm @@ -514,7 +514,7 @@ datum/preferences return proc/SetJob(mob/user, occ=1, job="Captain") - if ((!( occupations.Find(job) ) && !( assistant_occupations.Find(job) ) && (job != "Captain" && job != "AI"))) + if ((!( occupations.Find(job) ) && !( assistant_occupations.Find(job) ) && (job != "Captain" && job != "AI" && job != "No Preference"))) return if (job=="AI" && (!config.allow_ai)) return