mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-08-29 08:09:34 +01:00
Adds Job Description code
This commit is contained in:
+8
-3
@@ -58,9 +58,14 @@
|
||||
#define to_world(message) world << message
|
||||
#define to_world_log(message) world.log << message
|
||||
// TODO - Baystation has this log to crazy places. For now lets just world.log, but maybe look into it later.
|
||||
#define log_world(message) world.log << message
|
||||
#define to_file(file_entry, source_var) file_entry << source_var
|
||||
#define from_file(file_entry, target_var) file_entry >> target_var
|
||||
#define log_world(message) world.log << message
|
||||
#define to_file(file_entry, source_var) file_entry << source_var
|
||||
#define from_file(file_entry, target_var) file_entry >> target_var
|
||||
#define show_browser(target, browser_content, browser_name) target << browse(browser_content, browser_name)
|
||||
#define close_browser(target, browser_name) target << browse(null, browser_name)
|
||||
#define show_image(target, image) target << image
|
||||
#define send_rsc(target, rsc_content, rsc_name) target << browse_rsc(rsc_content, rsc_name)
|
||||
#define open_link(target, url) target << link(url)
|
||||
|
||||
|
||||
#define CanInteract(user, state) (CanUseTopic(user, state) == STATUS_INTERACTIVE)
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
/////////////////////////////////////////
|
||||
// Alt Title Code
|
||||
/////////////////////////////////////////
|
||||
|
||||
/datum/alt_title
|
||||
var/title = "GENERIC ALT TITLE" // What the Alt-Title is called
|
||||
var/title_outfit = null // The outfit used by the alt-title. If it's the same as the base job, leave this null.
|
||||
var/title_blurb = null // What's amended to the job description for this Job title. If nothing's added, leave null.
|
||||
|
||||
|
||||
// Inputs a string to return an alt_title datum
|
||||
/datum/job/proc/find_alt_title(var/target_title)
|
||||
for(var/datum/alt_title/A in alt_titles)
|
||||
if(A.title == target_title)
|
||||
return A
|
||||
return null
|
||||
@@ -11,7 +11,9 @@
|
||||
economic_modifier = 1
|
||||
access = list() //See /datum/job/assistant/get_access()
|
||||
minimal_access = list() //See /datum/job/assistant/get_access()
|
||||
|
||||
outfit_type = /decl/hierarchy/outfit/job/assistant
|
||||
job_description = "An Assistant does whatever is requested of them. Though they are part of the crew, they have no real authority."
|
||||
alt_titles = list("Technical Assistant","Medical Intern","Research Assistant",
|
||||
"Visitor" = /decl/hierarchy/outfit/job/assistant/visitor,
|
||||
"Resident" = /decl/hierarchy/outfit/job/assistant/resident)
|
||||
|
||||
@@ -22,6 +22,9 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1)
|
||||
ideal_character_age = 70 // Old geezer captains ftw
|
||||
|
||||
outfit_type = /decl/hierarchy/outfit/job/captain
|
||||
job_description = "The Colony Director manages the other Command Staff, and through them the rest of the station. Though they have access to everything, \
|
||||
they do not understand everything, and are expected to delegate tasks to the appropriate crew member. The Colony Director is expected to \
|
||||
have an understanding of Standard Operating Procedure, and is subject to it, and legal action, in the same way as every other crew member."
|
||||
alt_titles = list("Site Manager", "Overseer")
|
||||
|
||||
/*
|
||||
@@ -30,6 +33,7 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1)
|
||||
if(.)
|
||||
H.implant_loyalty(src)
|
||||
*/
|
||||
|
||||
/datum/job/captain/get_access()
|
||||
return get_all_station_access()
|
||||
|
||||
@@ -53,6 +57,9 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1)
|
||||
ideal_character_age = 50
|
||||
|
||||
outfit_type = /decl/hierarchy/outfit/job/hop
|
||||
job_description = "The Head of Personnel manages the Service department, the Exploration team, and most other civilians. They also \
|
||||
manage the Supply department, through the Quartermaster. In addition, the Head of Personnel oversees the personal accounts \
|
||||
of the crew, including their money and access. If necessary, the Head of Personnel is first in line to assume Acting Command."
|
||||
alt_titles = list("Crew Resources Officer")
|
||||
|
||||
access = list(access_security, access_sec_doors, access_brig, access_forensics_lockers,
|
||||
@@ -72,7 +79,6 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1)
|
||||
title = "Command Secretary"
|
||||
flag = BRIDGE
|
||||
department = "Command"
|
||||
head_position = 1
|
||||
department_flag = CIVILIAN
|
||||
faction = "Station"
|
||||
total_positions = 2
|
||||
@@ -87,3 +93,5 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1)
|
||||
minimal_access = list(access_heads, access_keycard_auth)
|
||||
|
||||
outfit_type = /decl/hierarchy/outfit/job/secretary
|
||||
job_description = "A Command Secretary handles paperwork duty for the Heads of Staff, so they can better focus on managing their departments. \
|
||||
They are not Heads of Staff, and have no real authority."
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
minimal_access = list(access_bar)
|
||||
|
||||
outfit_type = /decl/hierarchy/outfit/job/service/bartender
|
||||
job_description = "A Bartender mixes drinks for the crew. They generally have permission to charge for drinks or deny service to unruly patrons."
|
||||
alt_titles = list("Barista" = /decl/hierarchy/outfit/job/service/bartender/barista)
|
||||
|
||||
|
||||
@@ -32,6 +33,7 @@
|
||||
minimal_access = list(access_kitchen)
|
||||
|
||||
outfit_type = /decl/hierarchy/outfit/job/service/chef
|
||||
job_description = "A Chef cooks food for the crew. They generally have permission to charge for food or deny service to unruly diners."
|
||||
alt_titles = list("Cook")
|
||||
|
||||
/datum/job/hydro
|
||||
@@ -49,6 +51,7 @@
|
||||
minimal_access = list(access_hydroponics)
|
||||
|
||||
outfit_type = /decl/hierarchy/outfit/job/service/gardener
|
||||
job_description = "A Botanist grows plants for the Chef and Bartender."
|
||||
alt_titles = list("Gardener")
|
||||
|
||||
//Cargo
|
||||
@@ -71,6 +74,7 @@
|
||||
ideal_character_age = 40
|
||||
|
||||
outfit_type = /decl/hierarchy/outfit/job/cargo/qm
|
||||
job_description = "The Quartermaster manages the Supply department, checking cargo orders and ensuring supplies get to where they are needed."
|
||||
alt_titles = list("Supply Chief")
|
||||
|
||||
/datum/job/cargo_tech
|
||||
@@ -88,6 +92,8 @@
|
||||
minimal_access = list(access_maint_tunnels, access_cargo, access_cargo_bot, access_mailsorting)
|
||||
|
||||
outfit_type = /decl/hierarchy/outfit/job/cargo/cargo_tech
|
||||
job_description = "A Cargo Technician fills and delivers cargo orders. They are encouraged to return delivered crates to the Cargo Shuttle, \
|
||||
because Central Command gives a partial refund."
|
||||
|
||||
/datum/job/mining
|
||||
title = "Shaft Miner"
|
||||
@@ -105,6 +111,7 @@
|
||||
minimal_access = list(access_mining, access_mining_station, access_mailsorting)
|
||||
|
||||
outfit_type = /decl/hierarchy/outfit/job/cargo/mining
|
||||
job_description = "A Shaft Miner mines and smelts minerals to be delivered to departments that need them."
|
||||
alt_titles = list("Drill Technician")
|
||||
|
||||
//Service
|
||||
@@ -123,6 +130,7 @@
|
||||
minimal_access = list(access_janitor, access_maint_tunnels)
|
||||
|
||||
outfit_type = /decl/hierarchy/outfit/job/service/janitor
|
||||
job_description = "A Janitor keeps the station clean, as long as it doesn't interfere with active crime scenes."
|
||||
alt_titles = list("Custodian")
|
||||
|
||||
//More or less assistants
|
||||
@@ -141,13 +149,14 @@
|
||||
minimal_access = list(access_library)
|
||||
|
||||
outfit_type = /decl/hierarchy/outfit/job/librarian
|
||||
job_description = "The Librarian curates the book selection in the Library, so the crew might enjoy it."
|
||||
alt_titles = list("Journalist", "Writer")
|
||||
|
||||
//var/global/lawyer = 0//Checks for another lawyer //This changed clothes on 2nd lawyer, both IA get the same dreds.
|
||||
/datum/job/lawyer
|
||||
title = "Internal Affairs Agent"
|
||||
flag = LAWYER
|
||||
department = "Civilian"
|
||||
department = "Internal Affairs"
|
||||
department_flag = CIVILIAN
|
||||
faction = "Station"
|
||||
total_positions = 2
|
||||
@@ -161,6 +170,9 @@
|
||||
minimal_player_age = 7
|
||||
|
||||
outfit_type = /decl/hierarchy/outfit/job/internal_affairs_agent
|
||||
job_description = "An Internal Affairs Agent makes sure that the crew is following Standard Operating Procedure. They also \
|
||||
handle complaints against crew members, and can have issues brought to the attention of Central Command, \
|
||||
assuming their paperwork is in order."
|
||||
|
||||
/*
|
||||
/datum/job/lawyer/equip(var/mob/living/carbon/human/H)
|
||||
|
||||
@@ -12,9 +12,10 @@
|
||||
idtype = /obj/item/weapon/card/id/civilian/chaplain
|
||||
access = list(access_morgue, access_chapel_office, access_crematorium, access_maint_tunnels)
|
||||
minimal_access = list(access_chapel_office, access_crematorium)
|
||||
alt_titles = list("Counselor")
|
||||
|
||||
outfit_type = /decl/hierarchy/outfit/job/chaplain
|
||||
job_description = "The Chaplain ministers to the spiritual needs of the crew."
|
||||
alt_titles = list("Counselor")
|
||||
|
||||
/datum/job/chaplain/equip(var/mob/living/carbon/human/H, var/alt_title, var/ask_questions = TRUE)
|
||||
. = ..()
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
var/supervisors = null // Supervisors, who this person answers to directly
|
||||
var/selection_color = "#ffffff" // Selection screen color
|
||||
var/idtype = /obj/item/weapon/card/id // The type of the ID the player will have
|
||||
var/list/alt_titles // List of alternate titles, if any
|
||||
var/list/alt_titles = list() // List of alternate titles, if any
|
||||
var/req_admin_notify // If this is set to 1, a text is printed to the player when jobs are assigned, telling him that he should let admins know that he has to disconnect.
|
||||
var/minimal_player_age = 0 // If you have use_age_restriction_for_jobs config option enabled and the database set up, this option will add a requirement for players to be at least minimal_player_age days old. (meaning they first signed in at least that many days before.)
|
||||
var/department = null // Does this position have a department tag?
|
||||
@@ -25,7 +25,10 @@
|
||||
var/account_allowed = 1 // Does this job type come with a station account?
|
||||
var/economic_modifier = 2 // With how much does this job modify the initial account amount?
|
||||
|
||||
var/outfit_type
|
||||
var/outfit_type // What outfit datum does this job use in its default title?
|
||||
|
||||
// Description of the job's role and minimum responsibilities.
|
||||
var/job_description = "This Job doesn't have a description! Please report it!"
|
||||
|
||||
/datum/job/proc/equip(var/mob/living/carbon/human/H, var/alt_title)
|
||||
var/decl/hierarchy/outfit/outfit = get_outfit(H, alt_title)
|
||||
@@ -117,4 +120,33 @@
|
||||
return (current_positions < total_positions) || (total_positions == -1)
|
||||
|
||||
/datum/job/proc/has_alt_title(var/mob/H, var/supplied_title, var/desired_title)
|
||||
return (supplied_title == desired_title) || (H.mind && H.mind.role_alt_title == desired_title)
|
||||
return (supplied_title == desired_title) || (H.mind && H.mind.role_alt_title == desired_title)
|
||||
|
||||
/datum/job/proc/get_description_blurb()
|
||||
var/message = ""
|
||||
message += job_description
|
||||
/* if(alt_titles)
|
||||
//DO THING
|
||||
|
||||
*/
|
||||
return message
|
||||
|
||||
/datum/job/proc/get_job_icon()
|
||||
if(!job_master.job_icons[title])
|
||||
var/mob/living/carbon/human/dummy/mannequin/mannequin = get_mannequin("#job_icon")
|
||||
dress_mannequin(mannequin)
|
||||
mannequin.dir = SOUTH
|
||||
var/icon/preview_icon = getFlatIcon(mannequin)
|
||||
|
||||
preview_icon.Scale(preview_icon.Width() * 2, preview_icon.Height() * 2) // Scaling here to prevent blurring in the browser.
|
||||
job_master.job_icons[title] = preview_icon
|
||||
|
||||
return job_master.job_icons[title]
|
||||
|
||||
/datum/job/proc/dress_mannequin(var/mob/living/carbon/human/dummy/mannequin/mannequin)
|
||||
mannequin.delete_inventory(TRUE)
|
||||
equip_preview(mannequin)
|
||||
if(mannequin.back)
|
||||
var/obj/O = mannequin.back
|
||||
mannequin.drop_from_inventory(O)
|
||||
qdel(O)
|
||||
@@ -24,6 +24,10 @@
|
||||
minimal_player_age = 14
|
||||
|
||||
outfit_type = /decl/hierarchy/outfit/job/security/hos
|
||||
job_description = "You manage the Security Department, working to keep your Security Officers in place and able to properly handle threats, criminal or otherwise. \
|
||||
You are also expected to keep your fellow Department Heads, as well as the crew, aware of developing situations. \
|
||||
On top of your management role, you may, if necessary, perform the duties of absent Security roles, such as distributing gear from the Armory. \
|
||||
Remember: No one is above the Law. Not even you."
|
||||
alt_titles = list("Security Commander", "Chief of Security")
|
||||
|
||||
/datum/job/warden
|
||||
@@ -41,7 +45,10 @@
|
||||
access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, access_maint_tunnels, access_morgue, access_external_airlocks)
|
||||
minimal_access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, access_maint_tunnels, access_external_airlocks)
|
||||
minimal_player_age = 5
|
||||
|
||||
outfit_type = /decl/hierarchy/outfit/job/security/warden
|
||||
job_description = "You watch over the Armory, the Brig, and any prisoners brought in. You may be called upon to take charge of the Security Department, \
|
||||
if no Head of Security is present."
|
||||
|
||||
/datum/job/detective
|
||||
title = "Detective"
|
||||
@@ -58,7 +65,9 @@
|
||||
minimal_access = list(access_security, access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_eva, access_external_airlocks)
|
||||
economic_modifier = 5
|
||||
minimal_player_age = 3
|
||||
|
||||
outfit_type = /decl/hierarchy/outfit/job/security/detective
|
||||
job_description = "You use your forensics training to help determine who has commited crimes that no one witnessed, or no one survived."
|
||||
alt_titles = list("Forensic Technician" = /decl/hierarchy/outfit/job/security/detective/forensic, "Investigator")
|
||||
|
||||
/datum/job/officer
|
||||
@@ -76,5 +85,7 @@
|
||||
access = list(access_security, access_eva, access_sec_doors, access_brig, access_maint_tunnels, access_morgue, access_external_airlocks)
|
||||
minimal_access = list(access_security, access_eva, access_sec_doors, access_brig, access_maint_tunnels, access_external_airlocks)
|
||||
minimal_player_age = 3
|
||||
|
||||
outfit_type = /decl/hierarchy/outfit/job/security/officer
|
||||
job_description = "Get Baton. Set Intent to Harm."
|
||||
alt_titles = list("Junior Officer")
|
||||
@@ -11,6 +11,7 @@
|
||||
minimal_player_age = 7
|
||||
account_allowed = 0
|
||||
economic_modifier = 0
|
||||
outfit_type = /decl/hierarchy/outfit/job/silicon/ai
|
||||
|
||||
/datum/job/ai/equip(var/mob/living/carbon/human/H)
|
||||
if(!H) return 0
|
||||
@@ -45,6 +46,7 @@
|
||||
alt_titles = list("Robot", "Drone")
|
||||
account_allowed = 0
|
||||
economic_modifier = 0
|
||||
outfit_type = /decl/hierarchy/outfit/job/silicon/cyborg
|
||||
|
||||
/datum/job/cyborg/equip(var/mob/living/carbon/human/H)
|
||||
if(!H) return 0
|
||||
|
||||
@@ -11,7 +11,8 @@ var/global/datum/controller/occupations/job_master
|
||||
var/list/unassigned = list()
|
||||
//Debug info
|
||||
var/list/job_debug = list()
|
||||
|
||||
//Cache of icons for job info window
|
||||
var/list/job_icons = list()
|
||||
|
||||
proc/SetupOccupations(var/faction = "Station")
|
||||
occupations = list()
|
||||
|
||||
@@ -82,8 +82,10 @@
|
||||
index = 0
|
||||
|
||||
. += "<tr bgcolor='[job.selection_color]'><td width='60%' align='right'>"
|
||||
|
||||
var/rank = job.title
|
||||
lastJob = job
|
||||
. += "<a href='?src=\ref[src];job_info=[rank]'>"
|
||||
if(jobban_isbanned(user, rank))
|
||||
. += "<del>[rank]</del></td><td><b> \[BANNED]</b></td></tr>"
|
||||
continue
|
||||
@@ -166,6 +168,39 @@
|
||||
else if(href_list["set_job"])
|
||||
if(SetJob(user, href_list["set_job"])) return (pref.equip_preview_mob ? TOPIC_REFRESH_UPDATE_PREVIEW : TOPIC_REFRESH)
|
||||
|
||||
|
||||
else if(href_list["job_info"])
|
||||
var/rank = href_list["job_info"]
|
||||
var/datum/job/job = job_master.GetJob(rank)
|
||||
var/dat = list()
|
||||
|
||||
dat += "<p style='background-color: [job.selection_color]'><br><br><p>"
|
||||
if(job.alt_titles)
|
||||
dat += "<i><b>Alternate titles:</b> [english_list(job.alt_titles)].</i>"
|
||||
send_rsc(user, job.get_job_icon(), "job[ckey(rank)].png")
|
||||
dat += "<img src=job[ckey(rank)].png width=96 height=96 style='float:left;'>"
|
||||
if(job.department)
|
||||
dat += "<b>Department:</b> [job.department]."
|
||||
if(job.head_position)
|
||||
dat += "You manage this department."
|
||||
|
||||
dat += "You answer to <b>[job.supervisors]</b> normally."
|
||||
|
||||
dat += "<hr style='clear:left;'>"
|
||||
if(config.wikiurl)
|
||||
dat += "<a href='?src=\ref[src];job_wiki=[rank]'>Open wiki page in browser</a>"
|
||||
|
||||
var/description = job.get_description_blurb()
|
||||
if(description)
|
||||
dat += html_encode(description)
|
||||
var/datum/browser/popup = new(user, "Job Info", "[capitalize(rank)]", 430, 520, src)
|
||||
popup.set_content(jointext(dat,"<br>"))
|
||||
popup.open()
|
||||
|
||||
else if(href_list["job_wiki"])
|
||||
var/rank = href_list["job_wiki"]
|
||||
open_link(user,"[config.wikiurl][rank]")
|
||||
|
||||
return ..()
|
||||
|
||||
/datum/category_item/player_setup_item/occupation/proc/SetPlayerAltTitle(datum/job/job, new_title)
|
||||
|
||||
@@ -82,7 +82,9 @@ var/const/access_explorer = 43
|
||||
economic_modifier = 4
|
||||
access = list(access_pilot, access_cargo, access_mining, access_mining_station)
|
||||
minimal_access = list(access_pilot, access_cargo, access_mining, access_mining_station)
|
||||
|
||||
outfit_type = /decl/hierarchy/outfit/job/pilot
|
||||
job_description = "You fly one of the shuttles that dock in the station hangars."
|
||||
|
||||
/datum/job/explorer
|
||||
title = "Explorer"
|
||||
@@ -98,7 +100,9 @@ var/const/access_explorer = 43
|
||||
economic_modifier = 4
|
||||
access = list(access_explorer)
|
||||
minimal_access = list(access_explorer)
|
||||
|
||||
outfit_type = /decl/hierarchy/outfit/job/explorer2
|
||||
|
||||
/*
|
||||
alt_titles = list(
|
||||
"Explorer Technician" = /decl/hierarchy/outfit/job/explorer2/technician,
|
||||
|
||||
+2
-1
@@ -578,6 +578,7 @@
|
||||
#include "code\game\jobs\job_controller.dm"
|
||||
#include "code\game\jobs\jobs.dm"
|
||||
#include "code\game\jobs\whitelist.dm"
|
||||
#include "code\game\jobs\job\_alt_title_helpers.dm"
|
||||
#include "code\game\jobs\job\assistant.dm"
|
||||
#include "code\game\jobs\job\captain.dm"
|
||||
#include "code\game\jobs\job\civilian.dm"
|
||||
@@ -2433,7 +2434,7 @@
|
||||
#include "code\ZAS\Zone.dm"
|
||||
#include "interface\interface.dm"
|
||||
#include "interface\skin.dmf"
|
||||
#include "maps\southern_cross\southern_cross.dm"
|
||||
#include "maps\example\example.dm"
|
||||
#include "maps\submaps\_readme.dm"
|
||||
#include "maps\submaps\space_submaps\space.dm"
|
||||
#include "maps\submaps\surface_submaps\mountains\mountains.dm"
|
||||
|
||||
Reference in New Issue
Block a user