job
Vars | |
all_occupations | List of all jobs. |
---|---|
assigned_captain | If TRUE, some player has been assigned Captaincy or Acting Captaincy at some point during the shift and has been given the spare ID safe code. |
chain_of_command | Keys should be assigned job roles. Values should be >= 1. Represents the chain of command on the station. Lower numbers mean higher priority. Used to give the Cap's Spare safe code to a an appropriate player. Assumed Captain is always the highest in the chain of command. See [/datum/controller/subsystem/ticker/proc/equip_characters] |
departments | List of all departments. |
departments_by_type | List of all departments indexed by their typepath, sorted by their own display order. |
dynamic_forced_occupations | Lazylist of mob:occupation_string pairs. |
experience_jobs_map | Dictionary of jobs indexed by the experience type they grant. |
job_priorities_to_strings | Dictionary that maps job priorities to low/medium/high. Keys have to be number-strings as assoc lists cannot be indexed by integers. Set in setup_job_lists. |
joinable_occupations | List of jobs that can be joined through the starting menu. |
name_occupations | Dictionary of all jobs, keys are titles. |
safe_code_request_loc | The loc to which the emergency safe code has been requested for delivery. |
safe_code_requested | Whether the emergency safe code has been requested via a comms console on shifts with no Captain or Acting Captain. |
safe_code_timer_id | Timer ID for the emergency safe code request. |
temporary_heads_by_dep | A k:v list of department_path : name, where name is the name of the player who was given head access at roundstart |
type_occupations | Dictionary of all jobs, keys are types. |
Procs | |
AssignRole | Assigns the given job role to the player. |
CheckHeadPositions | Attempts to fill out all possible head positions for players with that job at a a given job priority level. |
DivideOccupations | |
DropLandAtRandomHallwayPoint | Lands specified mob at a random spot in the hallways |
FillHeadPosition | Will try to select a head, ignoring ALL non-head preferences for every level until. |
assign_captain | Finds a captain first a foremost. Returns success or failure |
assign_priority_positions | Blindly assigns the required roles to every player in the dynamic_forced_occupations list. |
check_job_eligibility | Runs a standard suite of eligibility checks to make sure the player can take the reqeusted job. |
fill_ai_positions | Attempts to fill out all available AI positions. |
get_necessary_departments | Returns a list of department paths that must be filled. |
job_priority_level_to_string | Takes a job priority #define such as JP_LOW and gets its string representation for logging. |
promote_to_department_head | Called when there's no department head present. |
send_spare_id_safe_code | Send a drop pod containing a piece of paper with the spare ID safe code to loc |
setup_alt_job_items | Shows a list of all current and future polls and buttons to edit or delete them or create a new poll. |
setup_job_lists | Builds various lists of jobs based on station, centcom and additional jobs with icons associated with them. |
Var Details
all_occupations
List of all jobs.
assigned_captain
If TRUE, some player has been assigned Captaincy or Acting Captaincy at some point during the shift and has been given the spare ID safe code.
chain_of_command
Keys should be assigned job roles. Values should be >= 1. Represents the chain of command on the station. Lower numbers mean higher priority. Used to give the Cap's Spare safe code to a an appropriate player. Assumed Captain is always the highest in the chain of command. See [/datum/controller/subsystem/ticker/proc/equip_characters]
departments
List of all departments.
departments_by_type
List of all departments indexed by their typepath, sorted by their own display order.
dynamic_forced_occupations
Lazylist of mob:occupation_string pairs.
experience_jobs_map
Dictionary of jobs indexed by the experience type they grant.
job_priorities_to_strings
Dictionary that maps job priorities to low/medium/high. Keys have to be number-strings as assoc lists cannot be indexed by integers. Set in setup_job_lists.
joinable_occupations
List of jobs that can be joined through the starting menu.
name_occupations
Dictionary of all jobs, keys are titles.
safe_code_request_loc
The loc to which the emergency safe code has been requested for delivery.
safe_code_requested
Whether the emergency safe code has been requested via a comms console on shifts with no Captain or Acting Captain.
safe_code_timer_id
Timer ID for the emergency safe code request.
temporary_heads_by_dep
A k:v list of department_path : name, where name is the name of the player who was given head access at roundstart
type_occupations
Dictionary of all jobs, keys are types.
Proc Details
AssignRole
Assigns the given job role to the player.
Arguments:
- player - The player to assign the job to
- job - The job to assign
- latejoin - Set to TRUE if this is a latejoin role assignment.
- do_eligibility_checks - Set to TRUE to conduct all job eligibility tests and reject on failure. Set to FALSE if job eligibility has been tested elsewhere and they can be safely skipped.
CheckHeadPositions
Attempts to fill out all possible head positions for players with that job at a a given job priority level.
Arguments:
- level - One of the JP_LOW, JP_MEDIUM or JP_HIGH defines. Attempts to find candidates with head jobs at this priority only.
DivideOccupations
- Proc DivideOccupations
- fills var "assigned_role" for all ready players.
- This proc must not have any side effect besides of modifying "assigned_role".
DropLandAtRandomHallwayPoint
Lands specified mob at a random spot in the hallways
FillHeadPosition
Will try to select a head, ignoring ALL non-head preferences for every level until.
Basically tries to ensure there is at least one head in every shift if anyone has that job preference enabled at all.
assign_captain
Finds a captain first a foremost. Returns success or failure
assign_priority_positions
Blindly assigns the required roles to every player in the dynamic_forced_occupations list.
check_job_eligibility
Runs a standard suite of eligibility checks to make sure the player can take the reqeusted job.
Checks:
- Role bans
- How many days old the player account is
- Whether the player has the required hours in other jobs to take that role
- If the job is in the mind's restricted roles, for example if they have an antag datum that's incompatible with certain roles.
Arguments:
- player - The player to check for job eligibility.
- possible_job - The job to check for eligibility against.
- debug_prefix - Logging prefix for the JobDebug log entries. For example, GRJ during GiveRandomJob or DO during DivideOccupations.
- add_job_to_log - If TRUE, appends the job type to the log entry. If FALSE, does not. Set to FALSE when check is part of iterating over players for a specific job, set to TRUE when check is part of iterating over jobs for a specific player and you don't want extra log entry spam.
fill_ai_positions
Attempts to fill out all available AI positions.
get_necessary_departments
Returns a list of department paths that must be filled.
job_priority_level_to_string
Takes a job priority #define such as JP_LOW and gets its string representation for logging.
promote_to_department_head
Called when there's no department head present.
send_spare_id_safe_code
Send a drop pod containing a piece of paper with the spare ID safe code to loc
setup_alt_job_items
Shows a list of all current and future polls and buttons to edit or delete them or create a new poll.
All extra functionality to run on new player mobs, in a place where we actually have the client, and haven't called COMSIG_GLOB_JOB_AFTER_SPAWN yet, so we are running before the wallet trait, and other things that rely on items already being settled.
setup_job_lists
Builds various lists of jobs based on station, centcom and additional jobs with icons associated with them.