From dd60af4afd1ec009065e5e76ee1611a1ab129d81 Mon Sep 17 00:00:00 2001 From: uporotiy Date: Wed, 31 Aug 2011 19:14:04 +0000 Subject: [PATCH] Librarian, lawyer, chaplain and atmos tech moved to assistant priority (means you can't get randomly assigned to them, only if you have them in your preferences). Maybe fixed the "No Preference" bug. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2080 316c924e-a436-60f5-8080-3fe189b3f50e --- code/game/jobs/jobprocs.dm | 14 +++++++++----- code/game/jobs/jobs.dm | 10 +++++----- code/modules/mob/new_player/preferences.dm | 2 +- 3 files changed, 15 insertions(+), 11 deletions(-) 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