A new mind attached list, restricted_roles, will keep incompatible jobsout of rotation.
Players who would otherwise qualify to play as a protected role will spawn
as the most wanted not protected role they qualify for if they are an
onstation antagonist. If they don't qualify for any job in this way
depending on preferences they will either spawn as an assistant or a random
job (which also makes sure they don't end up in an incompatible job).
Note this doesn't impact late join antagonists or mulligan antagonists.
Roundstart only.
Hopefully it works this time, tested locally as extensively as I can.
I have left a _very_ verbose debug line (103) in job_controller.dm which
should be commented out very soon.
Please keep var/Debug2 in global.dm set to 1 for the forseeable future,
to help diagnose job problems.
Before: Every tick each HUD item would recalculate and redo images for every mob in view. For items like the secHUD where we're transversing implants and the various records this gets very expensive.
After: Mobs use their hud_list variable to store varius huditem images, when conditions change for those specific huditem images it updates the specific ones on demand. As a backup every 30 ticks or so the mob will update all of their hud_list.
Also: moved proc/RoundHealth() from 2 seperate locations into __HELPERS/mobs.dm
Conflicts:
code/__HELPERS/mobs.dm
code/game/objects/items/weapons/implants/implanter.dm
code/modules/mob/dead/observer/observer.dm
code/modules/mob/living/carbon/human/human_damage.dm
code/modules/mob/living/carbon/human/life.dm
code/modules/mob/living/living.dm
code/modules/mob/living/living_defines.dm
code/modules/mob/living/silicon/silicon.dm
code/modules/virus2/helpers.dm
code/setup.dm
icons/mob/hud.dmi
For most head positions, a good age is between 25 and 60, with ages towards the middle of that being even better. 25 because I figure for stuff like research, engineer etc. they'll want someone with fresh knowledge. Captain's best age starts at 35 though, due to that being an "old geezer job".