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
This commit is contained in:
Gandalf
2021-06-20 02:23:29 +01:00
committed by GitHub
parent 099ff72339
commit d0bfc4de04
34 changed files with 8126 additions and 7824 deletions
File diff suppressed because it is too large Load Diff
+41 -38
View File
@@ -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)
+1
View File
@@ -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"
+26 -2
View File
@@ -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
+5
View File
@@ -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")
+1
View File
@@ -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 %
+1 -1
View File
@@ -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
+15 -10
View File
@@ -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
+14
View File
@@ -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
+4 -4
View File
@@ -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
+10 -2
View File
@@ -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),
+2
View File
@@ -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"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 260 KiB

After

Width:  |  Height:  |  Size: 255 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 601 KiB

After

Width:  |  Height:  |  Size: 603 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 732 KiB

After

Width:  |  Height:  |  Size: 728 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 750 KiB

After

Width:  |  Height:  |  Size: 755 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 237 KiB

After

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 461 KiB

After

Width:  |  Height:  |  Size: 453 KiB

Binary file not shown.

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)
+3 -1
View File
@@ -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"