diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm index 708f823298..2cc2fcb9ac 100644 --- a/code/controllers/subsystem/processing/quirks.dm +++ b/code/controllers/subsystem/processing/quirks.dm @@ -62,6 +62,8 @@ PROCESSING_SUBSYSTEM_DEF(quirks) for(var/i in blacklisted) quirks -= i cut += i + + /* //Code to automatically reduce positive quirks until balance is even. var/points_used = total_points(quirks) if(points_used > 0) //they owe us points, let's collect. @@ -73,6 +75,15 @@ PROCESSING_SUBSYSTEM_DEF(quirks) points_used -= points if(points_used <= 0) break + */ + + //Nah, let's null all non-neutrals out. + if(cut.len) + for(var/i in quirks) + if(quirk_points_by_name(i) != 0) + cut += i + quirks -= i + return cut /datum/controller/subsystem/processing/quirks/proc/GenerateQuirks(client/user) diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 74f9ad0382..ed9ccad538 100755 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -374,7 +374,7 @@ SUBSYSTEM_DEF(ticker) if(player.mind.assigned_role != player.mind.special_role) SSjob.EquipRank(N, player.mind.assigned_role, 0) if(CONFIG_GET(flag/roundstart_traits) && ishuman(N.new_character)) - SSquirks.AssignQuirks(N.new_character, N.client, TRUE) + SSquirks.AssignQuirks(N.new_character, N.client, TRUE, TRUE, SSjob.GetJob(player.mind.assigned_role), FALSE) CHECK_TICK if(captainless) for(var/mob/dead/new_player/N in GLOB.player_list) diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm index e9fa8ec099..af9e57ff2c 100755 --- a/code/modules/jobs/job_types/captain.dm +++ b/code/modules/jobs/job_types/captain.dm @@ -96,7 +96,7 @@ Head of Personnel ACCESS_THEATRE, ACCESS_CHAPEL_OFFICE, ACCESS_LIBRARY, ACCESS_RESEARCH, ACCESS_MINING, ACCESS_VAULT, ACCESS_MINING_STATION, ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM) - blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/insanity) + blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/prosopagnosia) /datum/outfit/job/hop name = "Head of Personnel" diff --git a/code/modules/jobs/job_types/security.dm b/code/modules/jobs/job_types/security.dm index 49a4d390d1..d216320d2d 100644 --- a/code/modules/jobs/job_types/security.dm +++ b/code/modules/jobs/job_types/security.dm @@ -37,7 +37,7 @@ Head of Security mind_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM) - blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/nonviolent) + blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/nonviolent, /datum/quirk/paraplegic) /datum/outfit/job/hos name = "Head of Security" diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 4302341865..dc730bf0fd 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -416,7 +416,7 @@ SSticker.mode.make_antag_chance(humanc) if(humanc && CONFIG_GET(flag/roundstart_traits)) - SSquirks.AssignQuirks(humanc, humanc.client, TRUE, TRUE, job) + SSquirks.AssignQuirks(humanc, humanc.client, TRUE, FALSE, job, FALSE) log_manifest(character.mind.key,character.mind,character,latejoin = TRUE)