The Nanotrasen Representative (MY WAY) (#6368)
* AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA * Ads * dddd * a * a * a * Update uniform_digi.dmi * Update uniform_digi.dmi * Update uniform_digi.dmi * Some random new potted plants! * a * Update flora.dm * a * fixes * a * a * e
@@ -14,44 +14,46 @@
|
||||
#define JOB_DISPLAY_ORDER_ASSISTANT 1
|
||||
#define JOB_DISPLAY_ORDER_CAPTAIN 2
|
||||
#define JOB_DISPLAY_ORDER_HEAD_OF_PERSONNEL 3
|
||||
#define JOB_DISPLAY_ORDER_BLUESHIELD 4 //SKYRAT EDIT ADD - BLUESHIELD
|
||||
#define JOB_DISPLAY_ORDER_BARTENDER 5
|
||||
#define JOB_DISPLAY_ORDER_BOTANIST 6
|
||||
#define JOB_DISPLAY_ORDER_COOK 7
|
||||
#define JOB_DISPLAY_ORDER_JANITOR 8
|
||||
#define JOB_DISPLAY_ORDER_CLOWN 9
|
||||
#define JOB_DISPLAY_ORDER_MIME 10
|
||||
#define JOB_DISPLAY_ORDER_CURATOR 11
|
||||
#define JOB_DISPLAY_ORDER_LAWYER 12
|
||||
#define JOB_DISPLAY_ORDER_CHAPLAIN 13
|
||||
#define JOB_DISPLAY_ORDER_PSYCHOLOGIST 14
|
||||
#define JOB_DISPLAY_ORDER_AI 15
|
||||
#define JOB_DISPLAY_ORDER_CYBORG 16
|
||||
#define JOB_DISPLAY_ORDER_CHIEF_ENGINEER 17
|
||||
#define JOB_DISPLAY_ORDER_STATION_ENGINEER 18
|
||||
#define JOB_DISPLAY_ORDER_ATMOSPHERIC_TECHNICIAN 19
|
||||
#define JOB_DISPLAY_ORDER_QUARTERMASTER 20
|
||||
#define JOB_DISPLAY_ORDER_CARGO_TECHNICIAN 21
|
||||
#define JOB_DISPLAY_ORDER_SHAFT_MINER 22
|
||||
#define JOB_DISPLAY_ORDER_CHIEF_MEDICAL_OFFICER 23
|
||||
#define JOB_DISPLAY_ORDER_MEDICAL_DOCTOR 24
|
||||
#define JOB_DISPLAY_ORDER_PARAMEDIC 25
|
||||
#define JOB_DISPLAY_ORDER_CHEMIST 26
|
||||
#define JOB_DISPLAY_ORDER_VIROLOGIST 27
|
||||
#define JOB_DISPLAY_ORDER_RESEARCH_DIRECTOR 28
|
||||
#define JOB_DISPLAY_ORDER_SCIENTIST 29
|
||||
#define JOB_DISPLAY_ORDER_ROBOTICIST 30
|
||||
#define JOB_DISPLAY_ORDER_GENETICIST 31
|
||||
#define JOB_DISPLAY_ORDER_EXP_CORPS 32 //SKYRAT EDIT ADDITON
|
||||
#define JOB_DISPLAY_ORDER_HEAD_OF_SECURITY 33
|
||||
#define JOB_DISPLAY_ORDER_WARDEN 34
|
||||
#define JOB_DISPLAY_ORDER_SECURITY_SERGEANT 35 //SKYRAT EDIT ADDITON
|
||||
#define JOB_DISPLAY_ORDER_DETECTIVE 36
|
||||
#define JOB_DISPLAY_ORDER_SECURITY_OFFICER 37
|
||||
#define JOB_DISPLAY_ORDER_JUNIOR_SECURITY_OFFICER 38
|
||||
#define JOB_DISPLAY_ORDER_SECURITY_MEDIC 39 //SKYRAT EDIT ADDITON
|
||||
#define JOB_DISPLAY_ORDER_PRISONER 40
|
||||
#define JOB_DISPLAY_ORDER_BRIGOFF 41 //SKYRAT EDIT ADDITON
|
||||
#define JOB_DISPLAY_ORDER_BARTENDER 4
|
||||
#define JOB_DISPLAY_ORDER_BOTANIST 5
|
||||
#define JOB_DISPLAY_ORDER_COOK 6
|
||||
#define JOB_DISPLAY_ORDER_JANITOR 7
|
||||
#define JOB_DISPLAY_ORDER_CLOWN 8
|
||||
#define JOB_DISPLAY_ORDER_MIME 9
|
||||
#define JOB_DISPLAY_ORDER_CURATOR 10
|
||||
#define JOB_DISPLAY_ORDER_LAWYER 11
|
||||
#define JOB_DISPLAY_ORDER_CHAPLAIN 12
|
||||
#define JOB_DISPLAY_ORDER_PSYCHOLOGIST 13
|
||||
#define JOB_DISPLAY_ORDER_AI 14
|
||||
#define JOB_DISPLAY_ORDER_CYBORG 15
|
||||
#define JOB_DISPLAY_ORDER_CHIEF_ENGINEER 16
|
||||
#define JOB_DISPLAY_ORDER_STATION_ENGINEER 17
|
||||
#define JOB_DISPLAY_ORDER_ATMOSPHERIC_TECHNICIAN 18
|
||||
#define JOB_DISPLAY_ORDER_QUARTERMASTER 19
|
||||
#define JOB_DISPLAY_ORDER_CARGO_TECHNICIAN 20
|
||||
#define JOB_DISPLAY_ORDER_SHAFT_MINER 21
|
||||
#define JOB_DISPLAY_ORDER_CHIEF_MEDICAL_OFFICER 22
|
||||
#define JOB_DISPLAY_ORDER_MEDICAL_DOCTOR 23
|
||||
#define JOB_DISPLAY_ORDER_PARAMEDIC 24
|
||||
#define JOB_DISPLAY_ORDER_CHEMIST 25
|
||||
#define JOB_DISPLAY_ORDER_VIROLOGIST 26
|
||||
#define JOB_DISPLAY_ORDER_RESEARCH_DIRECTOR 27
|
||||
#define JOB_DISPLAY_ORDER_SCIENTIST 28
|
||||
#define JOB_DISPLAY_ORDER_ROBOTICIST 29
|
||||
#define JOB_DISPLAY_ORDER_GENETICIST 30
|
||||
#define JOB_DISPLAY_ORDER_EXP_CORPS 31 //SKYRAT EDIT ADDITON
|
||||
#define JOB_DISPLAY_ORDER_HEAD_OF_SECURITY 32
|
||||
#define JOB_DISPLAY_ORDER_WARDEN 33
|
||||
#define JOB_DISPLAY_ORDER_SECURITY_SERGEANT 34 //SKYRAT EDIT ADDITON
|
||||
#define JOB_DISPLAY_ORDER_DETECTIVE 35
|
||||
#define JOB_DISPLAY_ORDER_SECURITY_OFFICER 36
|
||||
#define JOB_DISPLAY_ORDER_JUNIOR_SECURITY_OFFICER 37
|
||||
#define JOB_DISPLAY_ORDER_SECURITY_MEDIC 38 //SKYRAT EDIT ADDITON
|
||||
#define JOB_DISPLAY_ORDER_PRISONER 39
|
||||
#define JOB_DISPLAY_ORDER_BRIGOFF 40 //SKYRAT EDIT ADDITON
|
||||
#define JOB_DISPLAY_ORDER_NANOTRASEN_REPRESENTATIVE 41 //SKYRAT EDIT ADDITON - CENTRAL ROLES BELOW HERE!
|
||||
#define JOB_DISPLAY_ORDER_BLUESHIELD 42
|
||||
|
||||
|
||||
#define DEPARTMENT_SECURITY (1<<0)
|
||||
#define DEPARTMENT_COMMAND (1<<1)
|
||||
@@ -61,4 +63,5 @@
|
||||
#define DEPARTMENT_SCIENCE (1<<5)
|
||||
#define DEPARTMENT_MEDICAL (1<<6)
|
||||
#define DEPARTMENT_SILICON (1<<7)
|
||||
#define DEPARTMENT_CENTRAL_COMMAND (1<<8)
|
||||
|
||||
|
||||
@@ -73,6 +73,7 @@
|
||||
// Playtime tracking system, see jobs_exp.dm
|
||||
#define EXP_TYPE_LIVING "Living"
|
||||
#define EXP_TYPE_CREW "Crew"
|
||||
#define EXP_TYPE_CENTRAL_COMMAND "Central Command"
|
||||
#define EXP_TYPE_COMMAND "Command"
|
||||
#define EXP_TYPE_ENGINEERING "Engineering"
|
||||
#define EXP_TYPE_MEDICAL "Medical"
|
||||
|
||||
@@ -6,3 +6,6 @@
|
||||
|
||||
/// The caliber used by the Automag.
|
||||
#define CALIBER_44 ".44 AMP"
|
||||
|
||||
/// The caliber used by the M45A5
|
||||
#define CALIBER_460 ".460 RM JHP"
|
||||
|
||||
@@ -48,9 +48,33 @@
|
||||
|
||||
//Laugh types
|
||||
for(var/spath in subtypesof(/datum/laugh_type))
|
||||
var/datum/scream_type/S = new spath()
|
||||
GLOB.laugh_types[S.name] = spath
|
||||
var/datum/laugh_type/L = new spath()
|
||||
GLOB.laugh_types[L.name] = spath
|
||||
sortList(GLOB.laugh_types, /proc/cmp_typepaths_asc)
|
||||
|
||||
//For alt titles.
|
||||
for(var/spath in subtypesof(/datum/job))
|
||||
var/datum/job/J = new spath()
|
||||
if(istype(J, /datum/job/captain))
|
||||
GLOB.captain_alttitles += J.alt_titles
|
||||
if((J.departments & DEPARTMENT_CENTRAL_COMMAND))
|
||||
GLOB.central_command_alttitles += J.alt_titles
|
||||
if((J.departments & DEPARTMENT_COMMAND))
|
||||
GLOB.command_alttitles += J.alt_titles
|
||||
if((J.departments & DEPARTMENT_SECURITY))
|
||||
GLOB.security_alttitles += J.alt_titles
|
||||
if((J.departments & DEPARTMENT_CARGO))
|
||||
GLOB.supply_alttitles += J.alt_titles
|
||||
if((J.departments & DEPARTMENT_SERVICE))
|
||||
GLOB.service_alttitles += J.alt_titles
|
||||
if((J.departments & DEPARTMENT_MEDICAL))
|
||||
GLOB.medical_alttitles += J.alt_titles
|
||||
if((J.departments & DEPARTMENT_SCIENCE))
|
||||
GLOB.science_alttitles += J.alt_titles
|
||||
if((J.departments & DEPARTMENT_ENGINEERING))
|
||||
GLOB.engineering_alttitles += J.alt_titles
|
||||
if((J.departments & DEPARTMENT_SILICON))
|
||||
GLOB.nonhuman_alttitles += J.alt_titles
|
||||
//SKYRAT EDIT END
|
||||
|
||||
//Species
|
||||
|
||||
@@ -209,6 +209,11 @@ SUBSYSTEM_DEF(job)
|
||||
if(job.title in GLOB.command_positions) //If you want a command position, select it!
|
||||
continue
|
||||
|
||||
//SKYRAT EDIT ADDITION
|
||||
if(job.title in GLOB.central_command_positions) //If you want a CC position, select it!
|
||||
continue
|
||||
//SKYRAT EDIT END
|
||||
|
||||
if(is_banned_from(player.ckey, job.title) || QDELETED(player))
|
||||
if(QDELETED(player))
|
||||
JobDebug("GRJ isbanned failed, Player deleted")
|
||||
|
||||
@@ -38,6 +38,7 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
|
||||
"Clown", //SKYRAT EDIT: Host request
|
||||
"Security Sergeant", //SKYRAT EDIT ADDITION - SEC_HAUL
|
||||
"Blueshield", //SKYRAT EDIT: Blueshield slots should never be above 1.
|
||||
"Nanotrasen Representative", //SKYRAT EDIT ADDITION
|
||||
"Prisoner")
|
||||
|
||||
//The scaling factor of max total positions in relation to the total amount of people on board the station in %
|
||||
|
||||
@@ -217,7 +217,7 @@
|
||||
|
||||
/obj/item/banner/command/Initialize()
|
||||
. = ..()
|
||||
job_loyalties = GLOB.command_positions
|
||||
job_loyalties = GLOB.command_positions + GLOB.central_command_positions //SKYRAT EDIT ADDITION
|
||||
|
||||
/obj/item/banner/command/mundane
|
||||
inspiration_available = FALSE
|
||||
|
||||
@@ -317,6 +317,8 @@
|
||||
var/trimmable = TRUE
|
||||
var/list/static/random_plant_states
|
||||
|
||||
var/random_state_cap = 43 //SKYRAT EDIT ADDITION - KEEP THIS TO THE HIGHEST POTTED PLANT ICON STATE
|
||||
|
||||
/obj/item/kirbyplants/ComponentInitialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/tactical)
|
||||
@@ -345,21 +347,16 @@
|
||||
|
||||
/obj/item/kirbyplants/random/Initialize()
|
||||
. = ..()
|
||||
icon = 'icons/obj/flora/plants.dmi'
|
||||
icon = 'modular_skyrat/modules/aesthetics/plants/plants.dmi' //SKYRAT EDIT CHANGE
|
||||
if(!random_plant_states)
|
||||
generate_states()
|
||||
icon_state = pick(random_plant_states)
|
||||
|
||||
/obj/item/kirbyplants/proc/generate_states()
|
||||
random_plant_states = list()
|
||||
for(var/i in 1 to 25)
|
||||
var/number
|
||||
if(i < 10)
|
||||
number = "0[i]"
|
||||
else
|
||||
number = "[i]"
|
||||
random_plant_states += "plant-[number]"
|
||||
random_plant_states += "applebush"
|
||||
for(var/i in 1 to random_state_cap) //SKYRAT EDIT CHANGE
|
||||
random_plant_states += "plant-[i]" //SKYRAT EDIT CHANGE
|
||||
random_plant_states += list("applebush", "monkeyplant") //SKYRAT EDIT CHANGE
|
||||
|
||||
|
||||
/obj/item/kirbyplants/dead
|
||||
@@ -368,10 +365,18 @@
|
||||
icon_state = "plant-25"
|
||||
trimmable = FALSE
|
||||
|
||||
//SKYRAT EDIT START
|
||||
/obj/item/kirbyplants/monkey
|
||||
name = "monkey plant"
|
||||
desc = "Something that seems to have been made by the Nanotrasen science division, one might call it an abomination. It's heads seem... alive."
|
||||
icon_state = "monkeyplant"
|
||||
trimmable = FALSE
|
||||
//SKYRAT EDIT END
|
||||
|
||||
/obj/item/kirbyplants/photosynthetic
|
||||
name = "photosynthetic potted plant"
|
||||
desc = "A bioluminescent plant."
|
||||
icon_state = "plant-09"
|
||||
icon_state = "plant-9" //SKYRAT EDIT CHANGE
|
||||
light_color = COLOR_BRIGHT_BLUE
|
||||
light_range = 3
|
||||
|
||||
|
||||
@@ -276,6 +276,20 @@
|
||||
"}
|
||||
break_counter++
|
||||
output += "</div></div>"
|
||||
//SKYRAT EDIT ADDITION
|
||||
output += "<div class='row'><div class='column'><label class='rolegroup command'><input type='checkbox' name='Central Command' class='hidden' [usr.client.prefs.tgui_fancy ? " onClick='toggle_checkboxes(this, \"_dep\")'" : ""]>Central Command</label><div class='content'>"
|
||||
//all heads are listed twice so have a javascript call to toggle both their checkboxes when one is pressed
|
||||
//for simplicity this also includes the captain even though it doesn't do anything
|
||||
for(var/job in GLOB.central_command_positions)
|
||||
if(break_counter > 0 && (break_counter % 3 == 0))
|
||||
output += "<br>"
|
||||
output += {"<label class='inputlabel checkbox'>[job]
|
||||
<input type='checkbox' id='[job]_com' name='[job]' class='Command' value='1'[usr.client.prefs.tgui_fancy ? " onClick='toggle_head(this, \"_dep\")'" : ""]>
|
||||
<div class='inputbox[(job in banned_from) ? " banned" : ""]'></div></label>
|
||||
"}
|
||||
break_counter++
|
||||
output += "</div></div>"
|
||||
//SKYRAT EDIT END
|
||||
//standard departments all have identical handling
|
||||
var/list/job_lists = list("Security" = GLOB.security_positions,
|
||||
"Engineering" = GLOB.engineering_positions,
|
||||
|
||||
@@ -23,6 +23,10 @@
|
||||
if(.)
|
||||
if(new_owner.assigned_role in GLOB.command_positions)
|
||||
return FALSE
|
||||
//SKYRAT EDIT ADDITION
|
||||
if(new_owner.assigned_role in GLOB.central_command_positions)
|
||||
return FALSE
|
||||
//SKYRAT EDIT ADDITION
|
||||
if(new_owner.unconvertable)
|
||||
return FALSE
|
||||
if(new_owner.current && HAS_TRAIT(new_owner.current, TRAIT_MINDSHIELD))
|
||||
@@ -416,7 +420,7 @@
|
||||
if (isnull(mind))
|
||||
continue
|
||||
|
||||
if (!(mind.assigned_role in GLOB.command_positions + GLOB.security_positions))
|
||||
if (!(mind.assigned_role in GLOB.command_positions + GLOB.security_positions + GLOB.central_command_positions)) //SKYRAT EDIT CHANGE
|
||||
continue
|
||||
|
||||
if (mind in ex_revs + ex_headrevs)
|
||||
@@ -434,7 +438,7 @@
|
||||
else
|
||||
mind.announce_objectives()
|
||||
|
||||
for (var/job_name in GLOB.command_positions + GLOB.security_positions)
|
||||
for (var/job_name in GLOB.command_positions + GLOB.security_positions + GLOB.central_command_positions) //SKYRAT EDIT CHANGE
|
||||
var/datum/job/job = SSjob.GetJob(job_name)
|
||||
job.allow_bureaucratic_error = FALSE
|
||||
job.total_positions = 0
|
||||
|
||||
@@ -26,22 +26,22 @@ GLOBAL_PROTECT(exp_to_update)
|
||||
return (job_requirement - my_exp)
|
||||
|
||||
/datum/job/proc/get_exp_req_amount()
|
||||
if(title in (GLOB.command_positions | list("AI")))
|
||||
if(title in (GLOB.central_command_positions | GLOB.command_positions | list("AI"))) //SKYRAT EDIT CHANGE
|
||||
var/uerhh = CONFIG_GET(number/use_exp_restrictions_heads_hours)
|
||||
if(uerhh)
|
||||
return uerhh * 60
|
||||
return exp_requirements
|
||||
|
||||
/datum/job/proc/get_exp_req_type()
|
||||
if(title in (GLOB.command_positions | list("AI")))
|
||||
if(title in (GLOB.central_command_positions | GLOB.command_positions | list("AI"))) //SKYRAT EDIT CHANGE
|
||||
if(CONFIG_GET(flag/use_exp_restrictions_heads_department) && exp_type_department)
|
||||
return exp_type_department
|
||||
return exp_type
|
||||
|
||||
/proc/job_is_xp_locked(jobtitle)
|
||||
if(!CONFIG_GET(flag/use_exp_restrictions_heads) && (jobtitle in (GLOB.command_positions | list("AI"))))
|
||||
if(!CONFIG_GET(flag/use_exp_restrictions_heads) && (jobtitle in (GLOB.central_command_positions | GLOB.command_positions | list("AI")))) //SKYRAT EDIT CHANGE
|
||||
return FALSE
|
||||
if(!CONFIG_GET(flag/use_exp_restrictions_other) && !(jobtitle in (GLOB.command_positions | list("AI"))))
|
||||
if(!CONFIG_GET(flag/use_exp_restrictions_other) && !(jobtitle in (GLOB.central_command_positions | GLOB.command_positions | list("AI")))) //SKYRAT EDIT CHANGE
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
|
||||
@@ -1,4 +1,11 @@
|
||||
//THIS FILE WAS EDITED BY SKYRAT EDIT
|
||||
|
||||
//SKYRAT EDIT ADDITION
|
||||
GLOBAL_LIST_INIT(central_command_positions, list(
|
||||
"Nanotrasen Representative",
|
||||
"Blueshield"))
|
||||
//SKYRAT EDIT END
|
||||
|
||||
GLOBAL_LIST_INIT(command_positions, list(
|
||||
"Captain",
|
||||
"Head of Personnel",
|
||||
@@ -66,7 +73,6 @@ GLOBAL_LIST_INIT(security_positions, list(
|
||||
"Security Medic",
|
||||
"Security Sergeant",
|
||||
"Civil Disputes Officer",
|
||||
"Blueshield",
|
||||
"Corrections Officer")) //SKYRAT EDIT - LIST AMENDED
|
||||
|
||||
/// These aren't defacto jobs, but are the special departmental variants for sec officers.
|
||||
@@ -84,6 +90,7 @@ GLOBAL_LIST_INIT(nonhuman_positions, list(
|
||||
|
||||
// job categories for rendering the late join menu
|
||||
GLOBAL_LIST_INIT(position_categories, list(
|
||||
EXP_TYPE_CENTRAL_COMMAND = list("jobs" = central_command_positions, "#8df1b7"), //SKYRAT EDIT ADDITION
|
||||
EXP_TYPE_COMMAND = list("jobs" = command_positions, "color" = "#ccccff"),
|
||||
EXP_TYPE_ENGINEERING = list("jobs" = engineering_positions, "color" = "#ffeeaa"),
|
||||
EXP_TYPE_SUPPLY = list("jobs" = supply_positions, "color" = "#ddddff"),
|
||||
@@ -95,7 +102,8 @@ GLOBAL_LIST_INIT(position_categories, list(
|
||||
))
|
||||
|
||||
GLOBAL_LIST_INIT(exp_jobsmap, list(
|
||||
EXP_TYPE_CREW = list("titles" = command_positions | engineering_positions | medical_positions | science_positions | supply_positions | security_positions | service_positions | list("AI","Cyborg")), // crew positions
|
||||
EXP_TYPE_CREW = list("titles" = central_command_positions | command_positions | engineering_positions | medical_positions | science_positions | supply_positions | security_positions | service_positions | list("AI","Cyborg")), // crew positions //SKYRAT EDIT ADDITION
|
||||
EXP_TYPE_CENTRAL_COMMAND = list("titles" = central_command_positions), //SKYRAT EDIT ADDITION
|
||||
EXP_TYPE_COMMAND = list("titles" = command_positions),
|
||||
EXP_TYPE_ENGINEERING = list("titles" = engineering_positions),
|
||||
EXP_TYPE_MEDICAL = list("titles" = medical_positions),
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
|
||||
/datum/crew_manifest/ui_data(mob/user)
|
||||
var/list/positions = list(
|
||||
"Central Command" = list("exceptions" = list(), "open" = 0),
|
||||
"Command" = list("exceptions" = list(), "open" = 0),
|
||||
"Security" = list("exceptions" = list(), "open" = 0),
|
||||
"Engineering" = list("exceptions" = list(), "open" = 0),
|
||||
@@ -30,6 +31,7 @@
|
||||
"Silicon" = list("exceptions" = list(), "open" = 0)
|
||||
)
|
||||
var/list/departments = list(
|
||||
list("flag" = DEPARTMENT_CENTRAL_COMMAND, "name" = "Central Command"), //SKYRAT EDIT CHANGE
|
||||
list("flag" = DEPARTMENT_COMMAND, "name" = "Command"),
|
||||
list("flag" = DEPARTMENT_SECURITY, "name" = "Security"),
|
||||
list("flag" = DEPARTMENT_ENGINEERING, "name" = "Engineering"),
|
||||
|
||||
@@ -27,7 +27,8 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
|
||||
"Security Sergeant", //SKYRAT EDIT CHANGE START
|
||||
"Security Medic",
|
||||
"Clown",
|
||||
"Blueshield", //SKYRAT EDIT END
|
||||
"Blueshield",
|
||||
"Nanotrasen Representative",//SKYRAT EDIT END
|
||||
"Chief Medical Officer",
|
||||
"Quartermaster",
|
||||
"Shuttle Pilot")
|
||||
|
||||
@@ -71,6 +71,29 @@
|
||||
config_job = "blueshield"
|
||||
template_access = list(ACCESS_CAPTAIN, ACCESS_CHANGE_IDS)
|
||||
|
||||
/datum/id_trim/job/nanotrasen_representative
|
||||
assignment = "Nanotrasen Representative"
|
||||
trim_icon = 'modular_skyrat/master_files/icons/obj/card.dmi'
|
||||
trim_state = "trim_nanotrasenrepresentative"
|
||||
full_access = list(ACCESS_COURT, ACCESS_WEAPONS,
|
||||
ACCESS_CHANGE_IDS, ACCESS_EVA, ACCESS_HEADS,
|
||||
ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_MAINT_TUNNELS, ACCESS_BAR, ACCESS_JANITOR, ACCESS_MORGUE,
|
||||
ACCESS_CREMATORIUM, ACCESS_KITCHEN, ACCESS_HYDROPONICS, ACCESS_LAWYER,
|
||||
ACCESS_THEATRE, ACCESS_CHAPEL_OFFICE, ACCESS_LIBRARY, ACCESS_VAULT,
|
||||
ACCESS_MECH_ENGINE, ACCESS_MECH_SCIENCE, ACCESS_MECH_SECURITY, ACCESS_MECH_MEDICAL,
|
||||
ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_TELEPORTER, ACCESS_CENT_GENERAL)
|
||||
minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_COURT, ACCESS_WEAPONS,
|
||||
ACCESS_MEDICAL, ACCESS_PSYCHOLOGY, ACCESS_ENGINE, ACCESS_CHANGE_IDS, ACCESS_AI_UPLOAD, ACCESS_EVA, ACCESS_HEADS,
|
||||
ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_MAINT_TUNNELS, ACCESS_BAR, ACCESS_JANITOR, ACCESS_CONSTRUCTION, ACCESS_MORGUE,
|
||||
ACCESS_CREMATORIUM, ACCESS_KITCHEN, ACCESS_HYDROPONICS, ACCESS_LAWYER,
|
||||
ACCESS_MECH_ENGINE, ACCESS_MECH_SCIENCE, ACCESS_MECH_SECURITY, ACCESS_MECH_MEDICAL,
|
||||
ACCESS_THEATRE, ACCESS_CHAPEL_OFFICE, ACCESS_LIBRARY, ACCESS_RESEARCH, ACCESS_VAULT, ACCESS_MINING_STATION,
|
||||
ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM, ACCESS_AUX_BASE, ACCESS_TELEPORTER, ACCESS_CENT_GENERAL)
|
||||
full_wildcard_access = list(ACCESS_CAPTAIN, ACCESS_CENT_GENERAL)
|
||||
minimal_wildcard_access = list(ACCESS_CAPTAIN, ACCESS_CENT_GENERAL)
|
||||
config_job = "nanotrasen_representative"
|
||||
template_access = list(ACCESS_CAPTAIN, ACCESS_CHANGE_IDS)
|
||||
|
||||
/datum/id_trim/job/captain/shuttle_pilot
|
||||
assignment = "Shuttle Pilot"
|
||||
trim_state = "trim_shuttlepilot"
|
||||
|
||||
|
Before Width: | Height: | Size: 260 KiB After Width: | Height: | Size: 255 KiB |
|
Before Width: | Height: | Size: 601 KiB After Width: | Height: | Size: 603 KiB |
|
Before Width: | Height: | Size: 732 KiB After Width: | Height: | Size: 728 KiB |
|
Before Width: | Height: | Size: 750 KiB After Width: | Height: | Size: 755 KiB |
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.3 KiB |
|
Before Width: | Height: | Size: 133 KiB After Width: | Height: | Size: 134 KiB |
|
Before Width: | Height: | Size: 237 KiB After Width: | Height: | Size: 238 KiB |
|
Before Width: | Height: | Size: 461 KiB After Width: | Height: | Size: 453 KiB |
|
After Width: | Height: | Size: 35 KiB |
@@ -10,6 +10,7 @@
|
||||
"Silicon"
|
||||
)
|
||||
var/list/departments = list(
|
||||
"Central Command" = GLOB.central_command_positions + GLOB.central_command_alttitles,
|
||||
"Command" = GLOB.command_positions + GLOB.command_alttitles,
|
||||
"Security" = GLOB.security_positions + GLOB.security_sub_positions + GLOB.security_alttitles,
|
||||
"Engineering" = GLOB.engineering_positions + GLOB.engineering_alttitles,
|
||||
|
||||
@@ -1,69 +1,19 @@
|
||||
GLOBAL_LIST_INIT(captain_alttitles, list(
|
||||
"Station Commander", "Commanding Officer", "Site Manager")) // for sorting the command part of the manifest
|
||||
GLOBAL_LIST_EMPTY(captain_alttitles)
|
||||
|
||||
GLOBAL_LIST_INIT(command_alttitles, list(
|
||||
"Station Commander", "Commanding Officer", "Site Manager", //Captain
|
||||
"Executive Officer", "Employment Officer", "Crew Supervisor", //HoP
|
||||
"Security Commander", "Chief Constable", "Chief of Security", "Sheriff", //HoS
|
||||
"Engineering Foreman", //CE
|
||||
"Silicon Administrator", "Lead Researcher", "Biorobotics Director", "Research Supervisor", "Chief Science Officer", //RD
|
||||
"Deck Chief", "Cargo Foreman", //QM
|
||||
"Medical Director")) //CMO
|
||||
GLOBAL_LIST_EMPTY(central_command_alttitles)
|
||||
|
||||
GLOBAL_LIST_EMPTY(command_alttitles)
|
||||
|
||||
GLOBAL_LIST_INIT(engineering_alttitles, list(
|
||||
"Engineering Foreman", //CE
|
||||
"Emergency Damage Control Technician", "Electrician", "Engine Technician", "EVA Technician", "Engineer", //Engie
|
||||
"Life Support Technician", "Emergency Fire Technician")) //Atmos
|
||||
GLOBAL_LIST_EMPTY(engineering_alttitles)
|
||||
|
||||
GLOBAL_LIST_EMPTY(medical_alttitles)
|
||||
|
||||
GLOBAL_LIST_INIT(medical_alttitles, list(
|
||||
"Medical Director", //CMO
|
||||
"Surgeon", "Nurse", //Doctor
|
||||
"Emergency Medical Technician", "Search and Rescue Technician", //Paramed
|
||||
"Pathologist", //Viro
|
||||
"Pharmacist", "Pharmacologist")) //Chem
|
||||
GLOBAL_LIST_EMPTY(science_alttitles)
|
||||
|
||||
GLOBAL_LIST_EMPTY(supply_alttitles)
|
||||
|
||||
GLOBAL_LIST_INIT(science_alttitles, list(
|
||||
"Silicon Administrator", "Lead Researcher", "Biorobotics Director", "Research Supervisor", "Chief Science Officer", //RD
|
||||
"Circuitry Designer", "Xenobiologist", "Cytologist", "Nanomachine Programmer", "Plasma Researcher", "Anomalist", "Lab Technician", //Sci
|
||||
"Mutation Researcher", //Genetics
|
||||
"Biomechanical Engineer", "Mechatronic Engineer")) //Robo
|
||||
GLOBAL_LIST_EMPTY(service_alttitles)
|
||||
|
||||
GLOBAL_LIST_EMPTY(security_alttitles)
|
||||
|
||||
GLOBAL_LIST_INIT(supply_alttitles, list(
|
||||
"Deck Chief", //QM
|
||||
"Deck Worker", "Mailman", //Cargo
|
||||
"Excavator")) //Miner
|
||||
|
||||
|
||||
GLOBAL_LIST_INIT(service_alttitles, list(
|
||||
"Executive Officer", "Employment Officer", "Crew Supervisor", //HoP
|
||||
"Mixologist", "Barkeeper", //Bartender
|
||||
"Hydroponicist", "Gardener", "Botanical Researcher", "Herbalist", //Botanist
|
||||
"Chef", "Butcher", "Culinary Artist", "Sous-Chef", //Cook
|
||||
"Custodian", "Custodial Technicial", "Sanitation Technician", "Maid", //Janitor
|
||||
"Librarian", "Journalist", "Archivist", //Curator
|
||||
"Psychiatrist", "Therapist", "Counsellor", //Psych
|
||||
"Internal Affairs Agent", "Human Resources Agent","Defence Attorney", "Public Defender", "Barrister", "Prosecutor", //Lawyer
|
||||
"Priest", "Preacher", //Chap
|
||||
"Pantomimist", //Mime
|
||||
"Jester", //Honkmaster Supreme
|
||||
"Low Risk Prisoner", "High Risk Prisoner", "Extreme Risk Prisoner", "Protective Custody Prisoner", //Prisoner
|
||||
"Civilian", "Tourist", "Businessman", "Trader", "Entertainer", "Off-Duty Staff", "Freelancer")) //Asistant
|
||||
|
||||
GLOBAL_LIST_INIT(security_alttitles, list(
|
||||
"Security Commander", "Chief Constable", "Chief of Security", "Sheriff", //HoS
|
||||
"Brig Sergeant", "Dispatch Officer", "Brig Governor", "Jailer", //Warden
|
||||
"Forensic Technician", "Private Investigator", "Forensic Scientist", //Det
|
||||
"Security Operative", "Peacekeeper", //Sec
|
||||
"Field Medic", "Security Corpsman", "Brig Physician", //Secmed
|
||||
"Security Squad Leader", "Security Task Force Leader", "Security Fireteam Leader","Security Enforcer", //Sarge
|
||||
"Station Police", "Civil Protection Officer", "Parole Officer", //CDO
|
||||
"Brig Officer", "Prison Guard", //Brigoff
|
||||
"Command Bodyguard", "Executive Protection Agent", "Personal Protection Specialist")) //Bluey
|
||||
|
||||
GLOBAL_LIST_INIT(nonhuman_alttitles, list(
|
||||
"Station Intelligence", "Automated Overseer", //AI
|
||||
"Robot", "Android")) //Borg
|
||||
GLOBAL_LIST_EMPTY(nonhuman_alttitles)
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
/datum/dynamic_ruleset/roundstart/traitor
|
||||
protected_roles = list("Prisoner", "Blueshield", "Corrections Officer", "Security Officer", "Warden", "Detective", "Security Medic", "Security Sergeant", "Civil Disputes Officer", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
|
||||
protected_roles = list("Prisoner", "Blueshield", "Corrections Officer", "Security Officer", "Warden", "Detective", "Security Medic", "Security Sergeant", "Civil Disputes Officer", "Head of Security", "Captain", "Nanotrasen Representative", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
|
||||
|
||||
/datum/dynamic_ruleset/roundstart/traitorbro
|
||||
protected_roles = list("Prisoner", "Blueshield", "Corrections Officer", "Security Officer", "Warden", "Detective", "Security Medic", "Security Sergeant", "Civil Disputes Officer", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
|
||||
protected_roles = list("Prisoner", "Blueshield", "Corrections Officer", "Security Officer", "Warden", "Detective", "Security Medic", "Security Sergeant", "Civil Disputes Officer", "Head of Security", "Captain", "Nanotrasen Representative", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
|
||||
|
||||
/datum/dynamic_ruleset/roundstart/changeling
|
||||
protected_roles = list("Prisoner", "Blueshield", "Corrections Officer", "Security Officer", "Warden", "Detective", "Security Medic", "Security Sergeant", "Civil Disputes Officer", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
|
||||
protected_roles = list("Prisoner", "Blueshield", "Corrections Officer", "Security Officer", "Warden", "Detective", "Security Medic", "Security Sergeant", "Civil Disputes Officer", "Head of Security", "Captain", "Nanotrasen Representative", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
|
||||
|
||||
/datum/dynamic_ruleset/roundstart/heretics
|
||||
protected_roles = list("Prisoner", "Blueshield", "Corrections Officer", "Security Officer", "Warden", "Detective", "Security Medic", "Security Sergeant", "Civil Disputes Officer", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
|
||||
protected_roles = list("Prisoner", "Blueshield", "Corrections Officer", "Security Officer", "Warden", "Detective", "Security Medic", "Security Sergeant", "Civil Disputes Officer", "Head of Security", "Captain", "Nanotrasen Representative", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
|
||||
|
||||
/datum/dynamic_ruleset/midround/autotraitor
|
||||
protected_roles = list("Prisoner", "Blueshield", "Corrections Officer", "Security Officer", "Warden", "Detective", "Security Medic", "Security Sergeant", "Civil Disputes Officer", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
|
||||
protected_roles = list("Prisoner", "Blueshield", "Corrections Officer", "Security Officer", "Warden", "Detective", "Security Medic", "Security Sergeant", "Civil Disputes Officer", "Head of Security", "Captain", "Nanotrasen Representative", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
|
||||
|
||||
/datum/dynamic_ruleset/latejoin/infiltrator
|
||||
protected_roles = list("Prisoner", "Blueshield", "Corrections Officer", "Security Officer", "Warden", "Detective", "Security Medic", "Security Sergeant", "Civil Disputes Officer", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
|
||||
protected_roles = list("Prisoner", "Blueshield", "Corrections Officer", "Security Officer", "Warden", "Detective", "Security Medic", "Security Sergeant", "Civil Disputes Officer", "Head of Security", "Captain", "Nanotrasen Representative", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/datum/job/blueshield
|
||||
title = "Blueshield"
|
||||
auto_deadmin_role_flags = DEADMIN_POSITION_SECURITY
|
||||
department_head = list("Central Command")
|
||||
department_head = list("Nanotrasen Representative")
|
||||
faction = "Station"
|
||||
total_positions = 1
|
||||
spawn_positions = 1
|
||||
supervisors = "Central Command"
|
||||
selection_color = "#ddddff"
|
||||
supervisors = "Central Command and the Nanotrasen Representative"
|
||||
selection_color = "#c6ffe0"
|
||||
minimal_player_age = 7
|
||||
exp_requirements = 2400
|
||||
exp_type = EXP_TYPE_SECURITY
|
||||
@@ -18,7 +18,7 @@
|
||||
plasmaman_outfit = /datum/outfit/plasmaman/blueshield
|
||||
display_order = JOB_DISPLAY_ORDER_BLUESHIELD
|
||||
bounty_types = CIV_JOB_SEC
|
||||
departments = DEPARTMENT_COMMAND
|
||||
departments = DEPARTMENT_CENTRAL_COMMAND
|
||||
liver_traits = list(TRAIT_PRETENDER_ROYAL_METABOLISM)
|
||||
|
||||
family_heirlooms = list(/obj/item/bedsheet/captain, /obj/item/clothing/head/beret/blueshield)
|
||||
@@ -59,3 +59,13 @@
|
||||
uniform = /obj/item/clothing/under/plasmaman/blueshield
|
||||
|
||||
|
||||
/obj/item/storage/box/gunset/blueshield
|
||||
name = "CFA 'Lynx' Gunset"
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
|
||||
/obj/item/storage/box/gunset/blueshield/PopulateContents()
|
||||
. = ..()
|
||||
new /obj/item/gun/ballistic/automatic/cfa_lynx/no_mag(src)
|
||||
new /obj/item/ammo_box/magazine/multi_sprite/cfa_lynx(src)
|
||||
new /obj/item/ammo_box/magazine/multi_sprite/cfa_lynx(src)
|
||||
new /obj/item/ammo_box/magazine/multi_sprite/cfa_lynx(src)
|
||||
|
||||
@@ -66,6 +66,9 @@
|
||||
/datum/job/blueshield
|
||||
banned_quirks = list(SEC_RESTRICTED_QUIRKS)
|
||||
|
||||
/datum/job/nanotrasen_representative
|
||||
banned_quirks = list(SEC_RESTRICTED_QUIRKS)
|
||||
|
||||
// Command
|
||||
/datum/job/captain
|
||||
banned_quirks = list(HEAD_RESTRICTED_QUIRKS)
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
|
||||
|
||||
/obj/item/clothing/suit/armor/vest/nanotrasen_representative
|
||||
name = "nanotrasen officers coat"
|
||||
desc = "A premium black coat with real fur round the neck, it seems to have some armor padding inside as well."
|
||||
icon = 'modular_skyrat/master_files/icons/obj/clothing/suits.dmi'
|
||||
worn_icon = 'modular_skyrat/master_files/icons/mob/clothing/suit.dmi'
|
||||
icon_state = "bladerunner"
|
||||
inhand_icon_state = "armoralt"
|
||||
blood_overlay_type = "suit"
|
||||
dog_fashion = null
|
||||
body_parts_covered = CHEST|GROIN|ARMS
|
||||
cold_protection = CHEST|GROIN|ARMS
|
||||
min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
|
||||
heat_protection = CHEST|ARMS|GROIN
|
||||
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
|
||||
mutant_variants = NONE
|
||||
|
||||
/obj/item/clothing/under/rank/nanotrasen_representative
|
||||
desc = "It's a green jumpsuit with some gold markings denoting the rank of \"Nanotrasen Representative\"."
|
||||
name = "nanotrasen representative's jumpsuit"
|
||||
icon_state = "ntrep"
|
||||
inhand_icon_state = "b_suit"
|
||||
sensor_mode = SENSOR_COORDS
|
||||
random_sensor = FALSE
|
||||
icon = 'modular_skyrat/master_files/icons/obj/clothing/uniforms.dmi'
|
||||
worn_icon = 'modular_skyrat/master_files/icons/mob/clothing/uniform.dmi'
|
||||
|
||||
/obj/item/clothing/under/rank/nanotrasen_representative/skirt
|
||||
name = "nanotrasen representative's jumpskirt"
|
||||
desc = "It's a green jumpskirt with some gold markings denoting the rank of \"Nanotrasen Representative\"."
|
||||
icon_state = "ntrep_skirt"
|
||||
inhand_icon_state = "b_suit"
|
||||
body_parts_covered = CHEST|GROIN|ARMS
|
||||
dying_key = DYE_REGISTRY_JUMPSKIRT
|
||||
fitted = FEMALE_UNIFORM_TOP
|
||||
|
||||
/obj/item/clothing/head/beret/nanotrasen_representative
|
||||
name = "nanotrasen representative's beret"
|
||||
desc = "A beret made from durathread, it has an insignia on the front denoting the rank of a Nanotrasen Representative."
|
||||
icon = 'modular_skyrat/master_files/icons/obj/clothing/hats.dmi'
|
||||
worn_icon = 'modular_skyrat/master_files/icons/mob/clothing/head.dmi'
|
||||
icon_state = "ntrep_beret"
|
||||
armor = list(MELEE = 15, BULLET = 5, LASER = 15, ENERGY = 25, BOMB = 10, BIO = 0, RAD = 0, FIRE = 30, ACID = 5, WOUND = 4)
|
||||
mutant_variants = NONE
|
||||
|
||||
/obj/item/clothing/head/nanotrasen_representative
|
||||
name = "nanotrasen representative's hat"
|
||||
desc = "A cap made from durathread, it has an insignia on the front denoting the rank of a Nanotrasen Representative."
|
||||
icon = 'modular_skyrat/master_files/icons/obj/clothing/hats.dmi'
|
||||
worn_icon = 'modular_skyrat/master_files/icons/mob/clothing/head.dmi'
|
||||
icon_state = "ntrep_cap"
|
||||
inhand_icon_state = "that"
|
||||
flags_inv = 0
|
||||
armor = list(MELEE = 15, BULLET = 5, LASER = 15, ENERGY = 25, BOMB = 10, BIO = 0, RAD = 0, FIRE = 30, ACID = 5, WOUND = 4)
|
||||
strip_delay = 60
|
||||
dog_fashion = null
|
||||
mutant_variants = NONE
|
||||
@@ -1,18 +1,4 @@
|
||||
/obj/item/ammo_casing/b460
|
||||
name = ".460 Rowland Magnum bullet casing"
|
||||
desc = "A .460 Rowland Magnum casing."
|
||||
icon = 'modular_skyrat/modules/sec_haul/icons/guns/ammo_cartridges.dmi'
|
||||
icon_state = "sl-casing"
|
||||
caliber = "460"
|
||||
projectile_type = /obj/projectile/bullet/b460
|
||||
|
||||
/obj/projectile/bullet/b460
|
||||
name = ".460 RM JHP bullet"
|
||||
damage = 36
|
||||
stamina = 12
|
||||
wound_bonus = 35
|
||||
weak_against_armour = TRUE
|
||||
speed = 2.25
|
||||
|
||||
/obj/item/gun/ballistic/automatic/pistol/m45a5
|
||||
name = "\improper M45A5 Elite"
|
||||
@@ -39,22 +25,22 @@
|
||||
icon = 'modular_skyrat/modules/blueshield/icons/obj/guns/M45A5.dmi'
|
||||
icon_state = "rowlandmodular"
|
||||
ammo_type = /obj/item/ammo_casing/b460
|
||||
caliber = ".460"
|
||||
caliber = CALIBER_460
|
||||
max_ammo = 10 //Increased length single stacks.
|
||||
multiple_sprites = AMMO_BOX_FULL_EMPTY_BASIC
|
||||
|
||||
/obj/item/storage/box/gunset/blueshield
|
||||
name = "CFA 'Lynx' Gunset"
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
/obj/item/ammo_casing/b460
|
||||
name = ".460 Rowland Magnum bullet casing"
|
||||
desc = "A .460 Rowland Magnum casing."
|
||||
icon = 'modular_skyrat/modules/sec_haul/icons/guns/ammo_cartridges.dmi'
|
||||
icon_state = "sl-casing"
|
||||
caliber = CALIBER_460
|
||||
projectile_type = /obj/projectile/bullet/b460
|
||||
|
||||
/obj/item/gun/ballistic/automatic/pistol/m45a5/nomag
|
||||
spawnwithmagazine = FALSE
|
||||
|
||||
/obj/item/storage/box/gunset/blueshield/PopulateContents()
|
||||
. = ..()
|
||||
new /obj/item/gun/ballistic/automatic/cfa_lynx/no_mag(src)
|
||||
new /obj/item/ammo_box/magazine/multi_sprite/cfa_lynx(src)
|
||||
new /obj/item/ammo_box/magazine/multi_sprite/cfa_lynx(src)
|
||||
new /obj/item/ammo_box/magazine/multi_sprite/cfa_lynx(src)
|
||||
new /obj/item/ammo_box/magazine/multi_sprite/cfa_lynx(src)
|
||||
/obj/projectile/bullet/b460
|
||||
name = ".460 RM JHP bullet"
|
||||
damage = 30
|
||||
wound_bonus = 30
|
||||
weak_against_armour = TRUE
|
||||
speed = 2.25
|
||||
|
||||
@@ -0,0 +1,149 @@
|
||||
/datum/job/nanotrasen_representative
|
||||
title = "Nanotrasen Representative"
|
||||
department_head = list("Central Command")
|
||||
faction = "Station"
|
||||
total_positions = 1
|
||||
spawn_positions = 1
|
||||
supervisors = "Central Command"
|
||||
selection_color = "#c6ffe0"
|
||||
minimal_player_age = 14
|
||||
exp_requirements = 600
|
||||
exp_type = EXP_TYPE_CREW
|
||||
exp_type_department = EXP_TYPE_COMMAND
|
||||
|
||||
departments = DEPARTMENT_COMMAND | DEPARTMENT_CENTRAL_COMMAND
|
||||
|
||||
outfit = /datum/outfit/job/nanotrasen_representative
|
||||
plasmaman_outfit = /datum/outfit/plasmaman/nanotrasen_representative
|
||||
|
||||
paycheck = PAYCHECK_HARD
|
||||
paycheck_department = ACCOUNT_SEC
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_NANOTRASEN_REPRESENTATIVE
|
||||
bounty_types = CIV_JOB_SEC
|
||||
|
||||
family_heirlooms = list(/obj/item/book/manual/wiki/security_space_law)
|
||||
|
||||
mail_goodies = list(
|
||||
/obj/item/clothing/mask/cigarette/cigar/havana = 20,
|
||||
/obj/item/storage/fancy/cigarettes/cigars/havana = 15,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/champagne = 10
|
||||
)
|
||||
|
||||
veteran_only = TRUE
|
||||
|
||||
alt_titles = list("Nanotrasen Diplomat", "Central Command Representative")
|
||||
|
||||
/datum/job/nanotrasen_representative/after_spawn(mob/living/H, mob/M, latejoin)
|
||||
. = ..()
|
||||
to_chat(H, span_boldannounce("As the Nanotrasen Representative, you are required to follow the following placeholder policy and SOP: https://paradisestation.org/wiki/index.php/Nanotrasen_Representative"))
|
||||
//REMOVE THIS AFTER FAX MACHINES ARE ADDED!!!!
|
||||
to_chat(H, span_boldannounce("If you require IC admin intervention, send an admin help until the fax machine is added."))
|
||||
|
||||
/datum/outfit/job/nanotrasen_representative
|
||||
name = "Nanotrasen Representative"
|
||||
jobtype = /datum/job/nanotrasen_representative
|
||||
|
||||
belt = /obj/item/pda/nanotrasen_representative
|
||||
glasses = /obj/item/clothing/glasses/sunglasses
|
||||
ears = /obj/item/radio/headset/heads/nanotrasen_representative
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
uniform = /obj/item/clothing/under/rank/nanotrasen_representative
|
||||
suit = /obj/item/clothing/suit/armor/vest/nanotrasen_representative
|
||||
shoes = /obj/item/clothing/shoes/jackboots
|
||||
head = /obj/item/clothing/head/nanotrasen_representative
|
||||
backpack_contents = list(/obj/item/melee/classic_baton/telescopic)
|
||||
|
||||
skillchips = list(/obj/item/skillchip/disk_verifier)
|
||||
|
||||
backpack = /obj/item/storage/backpack
|
||||
satchel = /obj/item/storage/backpack/satchel
|
||||
duffelbag = /obj/item/storage/backpack/duffelbag
|
||||
|
||||
implants = list(/obj/item/implant/mindshield)
|
||||
accessory = /obj/item/clothing/accessory/medal/gold/nanotrasen_representative
|
||||
|
||||
chameleon_extras = list(/obj/item/gun/energy/e_gun, /obj/item/stamp/centcom)
|
||||
|
||||
id = /obj/item/card/id/advanced/centcom
|
||||
id_trim = /datum/id_trim/job/nanotrasen_representative
|
||||
|
||||
/obj/item/radio/headset/heads/nanotrasen_representative
|
||||
name = "\proper the nanotrasen representative's headset"
|
||||
desc = "An official Central Command headset."
|
||||
icon_state = "cent_headset"
|
||||
keyslot = new /obj/item/encryptionkey/headset_com
|
||||
keyslot2 = new /obj/item/encryptionkey/headset_cent
|
||||
|
||||
/obj/item/radio/headset/heads/nanotrasen_representative/alt
|
||||
name = "\proper the nanotrasen representative's bowman headset"
|
||||
desc = "An official Central Command headset. Protects ears from flashbangs."
|
||||
icon_state = "cent_headset_alt"
|
||||
inhand_icon_state = "cent_headset_alt"
|
||||
|
||||
/obj/item/radio/headset/heads/nanotrasen_representative/alt/ComponentInitialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_EARS))
|
||||
|
||||
/obj/effect/landmark/start/nanotrasen_representative
|
||||
name = "Nanotrasen Representative"
|
||||
icon_state = "Captain"
|
||||
|
||||
/obj/item/clothing/accessory/medal/gold/nanotrasen_representative
|
||||
name = "medal of diplomacy"
|
||||
desc = "A golden medal awarded exclusively to those promoted to the rank of Nanotrasen Representative. It signifies the diplomatic abilities of said individual and their sheer dedication to Nanotrasen."
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
|
||||
|
||||
/datum/outfit/plasmaman/nanotrasen_representative
|
||||
name = "Nanotrasen Representative Plasmaman"
|
||||
|
||||
uniform = /obj/item/clothing/under/plasmaman/centcom_official
|
||||
gloves = /obj/item/clothing/gloves/color/captain //Too iconic to be replaced with a plasma version
|
||||
head = /obj/item/clothing/head/helmet/space/plasmaman/centcom_official
|
||||
|
||||
/obj/structure/closet/secure_closet/nanotrasen_representative
|
||||
name = "\proper captain's locker"
|
||||
req_access = list(ACCESS_CAPTAIN, ACCESS_CENT_GENERAL)
|
||||
icon_state = "cap"
|
||||
|
||||
/obj/structure/closet/secure_closet/nanotrasen_representative/PopulateContents()
|
||||
..()
|
||||
new /obj/item/clothing/suit/armor/vest/nanotrasen_representative(src)
|
||||
new /obj/item/storage/backpack/satchel/leather(src)
|
||||
new /obj/item/clothing/neck/petcollar(src)
|
||||
new /obj/item/pet_carrier(src)
|
||||
new /obj/item/clothing/shoes/sneakers/brown(src)
|
||||
new /obj/item/clothing/under/rank/nanotrasen_representative(src)
|
||||
new /obj/item/clothing/under/rank/nanotrasen_representative/skirt(src)
|
||||
new /obj/item/clothing/suit/armor/vest(src)
|
||||
new /obj/item/clothing/head/nanotrasen_representative(src)
|
||||
new /obj/item/clothing/head/beret/nanotrasen_representative(src)
|
||||
new /obj/item/cartridge/captain(src)
|
||||
new /obj/item/radio/headset/heads/nanotrasen_representative/alt(src)
|
||||
new /obj/item/radio/headset/heads/nanotrasen_representative(src)
|
||||
new /obj/item/clothing/glasses/sunglasses/gar/supergar(src)
|
||||
new /obj/item/clothing/gloves/combat(src)
|
||||
new /obj/item/storage/box/gunset/nanotrasen_representative(src)
|
||||
new /obj/item/storage/photo_album/personal(src)
|
||||
new /obj/item/stamp/centcom(src)
|
||||
|
||||
/obj/item/pda/nanotrasen_representative
|
||||
name = "nanotrasen representatives PDA"
|
||||
default_cartridge = /obj/item/cartridge/captain
|
||||
inserted_item = /obj/item/pen/fountain/captain
|
||||
greyscale_colors = "#017941#0060b8"
|
||||
|
||||
/obj/item/storage/box/gunset/nanotrasen_representative
|
||||
name = "M45A5 Gunset"
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
|
||||
/obj/item/gun/ballistic/automatic/pistol/m45a5/nomag
|
||||
spawnwithmagazine = FALSE
|
||||
|
||||
/obj/item/storage/box/gunset/nanotrasen_representative/PopulateContents()
|
||||
. = ..()
|
||||
new /obj/item/gun/ballistic/automatic/pistol/m45a5/nomag(src)
|
||||
new /obj/item/ammo_box/magazine/m45a5(src)
|
||||
new /obj/item/ammo_box/magazine/m45a5(src)
|
||||
new /obj/item/ammo_box/magazine/m45a5(src)
|
||||
new /obj/item/ammo_box/magazine/m45a5(src)
|
||||
@@ -3868,7 +3868,6 @@
|
||||
#include "modular_skyrat\modules\blueshield\code\modules\clothing\under\jobs\security.dm"
|
||||
#include "modular_skyrat\modules\blueshield\code\modules\clothing\under\jobs\Plasmaman\security.dm"
|
||||
#include "modular_skyrat\modules\blueshield\code\modules\jobs\job_types\blueshield.dm"
|
||||
#include "modular_skyrat\modules\blueshield\code\modules\projectiles\guns\ballistic\ballistic.dm"
|
||||
#include "modular_skyrat\modules\blueshield\code\modules\projectiles\guns\energy\special.dm"
|
||||
#include "modular_skyrat\modules\bluespace_locker\code\__HELPERS\unsorted.dm"
|
||||
#include "modular_skyrat\modules\bluespace_locker\code\controllers\subsystem\bluespace_locker.dm"
|
||||
@@ -4305,6 +4304,9 @@
|
||||
#include "modular_skyrat\modules\mutants\code\mutant_event.dm"
|
||||
#include "modular_skyrat\modules\mutants\code\mutant_species.dm"
|
||||
#include "modular_skyrat\modules\mutants\code\mutant_techweb.dm"
|
||||
#include "modular_skyrat\modules\nanotrasen_rep\code\clothing.dm"
|
||||
#include "modular_skyrat\modules\nanotrasen_rep\code\m45a5.dm"
|
||||
#include "modular_skyrat\modules\nanotrasen_rep\code\nanotrasen_representative.dm"
|
||||
#include "modular_skyrat\modules\nsfw\aphros\code\chemistry\aphro_keg.dm"
|
||||
#include "modular_skyrat\modules\nsfw\aphros\code\chemistry\reagents\aphrodisiac_reagent.dm"
|
||||
#include "modular_skyrat\modules\nsfw\aphros\code\chemistry\recipes\aphrodisiac.dm"
|
||||
|
||||