diff --git a/code/__DEFINES/jobs.dm b/code/__DEFINES/jobs.dm index 907b4ed5dae4..a183d79b9150 100644 --- a/code/__DEFINES/jobs.dm +++ b/code/__DEFINES/jobs.dm @@ -121,6 +121,7 @@ #define JOB_DISPLAY_ORDER_ASSISTANT 1 #define JOB_DISPLAY_ORDER_CAPTAIN 2 +#define JOB_DISPLAY_ORDER_NANOTRASEN_REPRESENTATIVE 2.25 //monkestation edit: nanotrasen representative #define JOB_DISPLAY_ORDER_BLUESHIELD 2.5 // monkestation edit: blueshield #define JOB_DISPLAY_ORDER_HEAD_OF_PERSONNEL 3 #define JOB_DISPLAY_ORDER_BARTENDER 4 diff --git a/code/__DEFINES/~monkestation/dcs/signals/signals_component.dm b/code/__DEFINES/~monkestation/dcs/signals/signals_component.dm new file mode 100644 index 000000000000..f778af1ca2cf --- /dev/null +++ b/code/__DEFINES/~monkestation/dcs/signals/signals_component.dm @@ -0,0 +1,3 @@ +/// From base of /datum/component/proc/crank_gun/gun_crank(): (user) +#define COMSIG_GUN_CRANKED "gun_cranked" +#define COMSIG_GUN_CRANKING "gun_cranking" diff --git a/code/__DEFINES/~monkestation/jobs.dm b/code/__DEFINES/~monkestation/jobs.dm index 164be9a3f20e..c7862b04e7c8 100644 --- a/code/__DEFINES/~monkestation/jobs.dm +++ b/code/__DEFINES/~monkestation/jobs.dm @@ -2,5 +2,6 @@ #define JOB_SIGNAL_TECHNICIAN "Signal Technician" +#define JOB_NANOTRASEN_REPRESENTATIVE "Nanotrasen Representative" /// Whether this job is enabled/disabled by the spooktober config #define JOB_SPOOKTOBER (1<<16) diff --git a/code/datums/components/gun_crank.dm b/code/datums/components/gun_crank.dm index 0091bddddcb7..3768615907db 100644 --- a/code/datums/components/gun_crank.dm +++ b/code/datums/components/gun_crank.dm @@ -50,10 +50,13 @@ COOLDOWN_START(src, charge_sound_cooldown, charge_sound_cooldown_time) playsound(source, charge_sound, 40) source.balloon_alert(user, "charging...") + SEND_SIGNAL(source, COMSIG_GUN_CRANKING, user) // monkestation edit if(!do_after(user, cooldown_time, source, interaction_key = DOAFTER_SOURCE_CHARGE_GUNCRANK)) is_charging = FALSE return charging_cell.give(charge_amount) source.update_appearance() is_charging = FALSE + SEND_SIGNAL(source, COMSIG_GUN_CRANKED, user) // monkestation edit source.balloon_alert(user, "charged") + diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index b94cada9b7c5..5ddc9179c543 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -157,6 +157,7 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new) JOB_ERT_DEATHSQUAD = 227, JOB_NT_REP = 230, JOB_BLUESHIELD = 231, + JOB_NANOTRASEN_REPRESENTATIVE = 230, // ANYTHING ELSE = UNKNOWN_JOB_ID, Unknowns/custom jobs will appear after civilians, and before assistants JOB_PRISONER = 998, diff --git a/icons/mob/landmarks.dmi b/icons/mob/landmarks.dmi index f94069e7985e..e156a233e732 100644 Binary files a/icons/mob/landmarks.dmi and b/icons/mob/landmarks.dmi differ diff --git a/monkestation/code/modules/NTrep/NTrep.dm b/monkestation/code/modules/NTrep/NTrep.dm new file mode 100644 index 000000000000..c7861efe3974 --- /dev/null +++ b/monkestation/code/modules/NTrep/NTrep.dm @@ -0,0 +1,114 @@ +/datum/job/nanotrasen_representative + title = JOB_NANOTRASEN_REPRESENTATIVE + description = "Ensure company interests and Standard Operating Procedure is upheld onboard the station, and get out as soon as you can when it inevitably falls apart." + auto_deadmin_role_flags = DEADMIN_POSITION_HEAD + department_head = list("CentCom") + faction = FACTION_STATION + total_positions = 1 + spawn_positions = 1 + supervisors = "Central Command" + req_admin_notify = 1 + minimal_player_age = 30 + exp_requirements = 3000 + exp_required_type = EXP_TYPE_CREW + exp_required_type_department = EXP_TYPE_CENTRAL_COMMAND + exp_granted_type = EXP_TYPE_CREW + config_tag = "NANOTRASEN_REPRESENTATIVE" + + allow_bureaucratic_error = FALSE + allow_overflow = FALSE + + outfit = /datum/outfit/job/nanotrasen_representative + plasmaman_outfit = /datum/outfit/plasmaman/centcom_official + + paycheck = PAYCHECK_COMMAND + paycheck_department = ACCOUNT_CMD + + liver_traits = list(TRAIT_PRETENDER_ROYAL_METABOLISM) + + display_order = JOB_DISPLAY_ORDER_NANOTRASEN_REPRESENTATIVE + bounty_types = CIV_JOB_BASIC + departments_list = list( + /datum/job_department/central_command, + /datum/job_department/command, + ) + + family_heirlooms = list(/obj/item/pen/fountain, /obj/item/lighter, /obj/item/reagent_containers/cup/glass/flask) + + mail_goodies = list( + /obj/item/pen/fountain = 30, + /obj/item/food/moonfish_caviar = 25, + /obj/item/clothing/mask/cigarette/cigar/havana = 20, + /obj/item/storage/fancy/cigarettes/cigars/havana = 15, + /obj/item/reagent_containers/cup/glass/bottle/champagne = 15, + /obj/item/reagent_containers/cup/glass/bottle/champagne/cursed = 5, + ) + exclusive_mail_goodies = TRUE + rpg_title = "Diplomat" + job_flags = STATION_JOB_FLAGS | JOB_BOLD_SELECT_TEXT | JOB_CANNOT_OPEN_SLOTS + + voice_of_god_power = 1.4 //Command staff has authority + + alt_titles = list( + "Corporate Liaison", + "Nanotrasen Fax Operater", + "Nanotrasen Official", + "Nanotrasen Informant", + ) + job_tone = "incoming message" + +/datum/outfit/job/nanotrasen_representative + name = "Nanotrasen Representative" + jobtype = /datum/job/nanotrasen_representative + id = /obj/item/card/id/advanced/centcom + id_trim = /datum/id_trim/job/nanotrasen_representative + uniform = /obj/item/clothing/under/rank/centcom/nanotrasen_representative + suit = /obj/item/clothing/suit/armor/vest/nanotrasen_representative + head = /obj/item/clothing/head/hats/nanotrasen_representative + backpack_contents = list( + /obj/item/stamp/centcom = 1, + /obj/item/melee/baton/telescopic = 1, + /obj/item/folder/blue = 1, + ) + belt = /obj/item/gun/energy/laser/plasmacore + shoes = /obj/item/clothing/shoes/laceup + l_pocket = /obj/item/pen/fountain + r_pocket = /obj/item/modular_computer/pda/heads + l_hand = /obj/item/storage/secure/briefcase/cash + glasses = /obj/item/clothing/glasses/sunglasses + ears = /obj/item/radio/headset/headset_cent + gloves = /obj/item/clothing/gloves/color/black + shoes = /obj/item/clothing/shoes/laceup + + chameleon_extras = list( + /obj/item/gun/energy/laser/plasmacore, + /obj/item/stamp/centcom, + ) + + implants = list(/obj/item/implant/mindshield) + pda_slot = ITEM_SLOT_RPOCKET + skillchips = list( + /obj/item/skillchip/disk_verifier, + ) + +/datum/id_trim/job/nanotrasen_representative + assignment = "Nanotrasen Representative" + trim_state = "trim_centcom" + department_color = COLOR_CENTCOM_BLUE + subdepartment_color = COLOR_CENTCOM_BLUE + sechud_icon_state = SECHUD_CENTCOM + minimal_access = list( + ACCESS_BRIG_ENTRANCE, + ACCESS_COMMAND, + ACCESS_MAINT_TUNNELS, + ACCESS_WEAPONS, + ACCESS_CENT_GENERAL, + ACCESS_CENT_LIVING, + ) + extra_access = list( + ACCESS_BAR, + ) + template_access = list( + ) + job = /datum/job/nanotrasen_representative + diff --git a/monkestation/code/modules/NTrep/NTrep_locker.dm b/monkestation/code/modules/NTrep/NTrep_locker.dm new file mode 100644 index 000000000000..c6eef48a86a7 --- /dev/null +++ b/monkestation/code/modules/NTrep/NTrep_locker.dm @@ -0,0 +1,15 @@ +/obj/structure/closet/secure_closet/nanotrasen_representative + name = "Nanotrasen representative's locker" + req_access = list(ACCESS_CENT_GENERAL) + icon_state = "cc" + icon = 'monkestation/code/modules/blueshift/icons/obj/closet.dmi' + +/obj/structure/closet/secure_closet/nanotrasen_representative/PopulateContents() + ..() + new /obj/item/storage/bag/garment/stolen(src) + new /obj/item/storage/backpack/satchel/leather(src) + new /obj/item/storage/photo_album/personal(src) + new /obj/item/assembly/flash(src) + new /obj/item/bedsheet/centcom(src) + new /obj/item/storage/bag/garment/nanotrasen_representative(src) + new /obj/item/circuitboard/machine/fax(src) diff --git a/monkestation/code/modules/NTrep/NTrep_spawn.dm b/monkestation/code/modules/NTrep/NTrep_spawn.dm new file mode 100644 index 000000000000..1826eb77047b --- /dev/null +++ b/monkestation/code/modules/NTrep/NTrep_spawn.dm @@ -0,0 +1,3 @@ +/obj/effect/landmark/start/nanotrasen_representative + name = "Nanotrasen Representative" + icon_state = "Nanotrasen Representative" diff --git a/monkestation/code/modules/NTrep/clothing/NTrep_clothing.dm b/monkestation/code/modules/NTrep/clothing/NTrep_clothing.dm new file mode 100644 index 000000000000..86a16e502f72 --- /dev/null +++ b/monkestation/code/modules/NTrep/clothing/NTrep_clothing.dm @@ -0,0 +1,92 @@ +/obj/item/clothing/under/rank/centcom/nanotrasen_representative + name = "representative's suit" + desc = "Worn by those who work for the company. But don't let that fool you, they are pretty okay." + inhand_icon_state = "dg_suit" + icon = 'monkestation/icons/obj/clothing/jobs/nanotrasen_representative_clothing_item.dmi' + worn_icon = 'monkestation/icons/mob/clothing/jobs/nanotrasen_representative_clothing.dmi' + worn_icon_digitigrade = 'monkestation/icons/mob/clothing/jobs/nanotrasen_representative_clothing-digi.dmi' + icon_state = "representative_jumpsuit" + can_adjust = FALSE + + +/obj/item/clothing/under/rank/centcom/nanotrasen_representative/skirt + name = "representative's suitskirt" + desc = "Worn by those who work for the company. But don't let that fool you, they are pretty okay." + inhand_icon_state = "dg_suit" + icon = 'monkestation/icons/obj/clothing/jobs/nanotrasen_representative_clothing_item.dmi' + worn_icon = 'monkestation/icons/mob/clothing/jobs/nanotrasen_representative_clothing.dmi' + icon_state = "representative_jumpskirt" + body_parts_covered = CHEST|GROIN|ARMS + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/head/hats/nanotrasen_representative + name = "representative's hat" + desc = "Born to be obsessive and snotty." + icon = 'monkestation/icons/obj/clothing/jobs/nanotrasen_representative_clothing_item.dmi' + worn_icon = 'monkestation/icons/mob/clothing/jobs/nanotrasen_representative_clothing.dmi' + icon_state = "representative_hat" + +/obj/item/clothing/suit/armor/vest/nanotrasen_representative + name = "representative's armored vest" + desc = "The pen is mightier than the sword but a sword still hurts." + icon = 'monkestation/icons/obj/clothing/jobs/nanotrasen_representative_clothing_item.dmi' + worn_icon = 'monkestation/icons/mob/clothing/jobs/nanotrasen_representative_clothing.dmi' + icon_state = "representative_vest" + +/obj/item/clothing/suit/armor/vest/nanotrasen_representative/Initialize(mapload) + . = ..() + AddComponent(/datum/component/toggle_icon) + + +/obj/item/clothing/suit/armor/vest/nanotrasen_representative/bathrobe + name = "representative's bathrobe" + desc = "For those who are lazy and fit right in this time and place." + inhand_icon_state = "dg_suit" + icon = 'monkestation/icons/obj/clothing/jobs/nanotrasen_representative_clothing_item.dmi' + worn_icon = 'monkestation/icons/mob/clothing/jobs/nanotrasen_representative_clothing.dmi' + icon_state = "representative_bathrobe" + body_parts_covered = CHEST|GROIN|ARMS|LEGS + armor_type = /datum/armor/nanotrasen_representative_bathrobe + +/datum/armor/nanotrasen_representative_bathrobe + melee = 25 + bullet = 10 + energy = 10 + bomb = 10 + fire = -10 //more flammable + acid = 10 + wound = 10 + +/obj/item/storage/secure/briefcase/cash +// LOADSAMONEY +/obj/item/storage/secure/briefcase/cash/PopulateContents() + ..() + for(var/iterator in 1 to 5) + new /obj/item/stack/spacecash/c500(src) + +/obj/item/storage/bag/garment/nanotrasen_representative + name = "representative's garment bag" + desc = "A bag for storing extra clothes and shoes. This one belongs to the Nanotrasen representative." + +/obj/item/storage/bag/garment/nanotrasen_representative/PopulateContents() + new /obj/item/clothing/under/rank/centcom/nanotrasen_representative(src) + new /obj/item/clothing/under/rank/centcom/nanotrasen_representative/skirt(src) + new /obj/item/clothing/head/hats/nanotrasen_representative(src) + new /obj/item/clothing/suit/armor/vest/nanotrasen_representative/bathrobe(src) + new /obj/item/clothing/suit/armor/vest/nanotrasen_representative(src) + new /obj/item/clothing/gloves/color/black(src) + new /obj/item/clothing/shoes/laceup(src) + +/obj/item/storage/bag/garment/stolen + name = "stolen garment bag" + desc = "Somewhere a CentCom commander is livid about their drycleaning going missing." + +/obj/item/storage/bag/garment/stolen/PopulateContents() + new /obj/item/clothing/head/hats/centhat(src) + new /obj/item/clothing/under/rank/centcom/commander(src) + new /obj/item/clothing/suit/armor/centcom_formal(src) + new /obj/item/clothing/gloves/tackler/combat(src) + new /obj/item/clothing/shoes/laceup(src) + + + diff --git a/monkestation/code/modules/NTrep/coolgun/plasmacore.dm b/monkestation/code/modules/NTrep/coolgun/plasmacore.dm new file mode 100644 index 000000000000..71fc391ba16d --- /dev/null +++ b/monkestation/code/modules/NTrep/coolgun/plasmacore.dm @@ -0,0 +1,49 @@ +/obj/item/gun/energy/laser/plasmacore + name = "PlasmaCore-6e" + desc = "The PlasmaCore-6e is the newest gun in Nanotrasen's cutting edge line of laser weaponry. Featuring an experimental plasma based cell that can be mechanically recharged. Glory to Nanotrasen." + icon = 'monkestation/icons/obj/weapons/guns/plasmacoresixe.dmi' + icon_state = "plasma_core_six" + charge_sections = 6 + cell_type = /obj/item/stock_parts/cell/plasmacore + w_class = WEIGHT_CLASS_NORMAL + ammo_type = list(/obj/item/ammo_casing/energy/laser/hellfire) + can_charge = FALSE + verb_say = "states" + var/cranking = FALSE + + +/obj/item/gun/energy/laser/plasmacore/Initialize(mapload) + . = ..() + AddComponent( \ + /datum/component/gun_crank, \ + charging_cell = get_cell(), \ + charge_amount = 100, \ + cooldown_time = 1.5 SECONDS, \ + charge_sound = 'sound/weapons/laser_crank.ogg', \ + charge_sound_cooldown_time = 1.3 SECONDS, \ + ) + mutable_appearance(icon, "plasma_core_six_cell_backwards") + RegisterSignal(src, COMSIG_GUN_CRANKING, PROC_REF(on_cranking)) + RegisterSignal(src, COMSIG_GUN_CRANKED, PROC_REF(on_cranked)) + +/obj/item/gun/energy/laser/plasmacore/proc/on_cranking(datum/source, mob/user) + cranking = TRUE + update_icon(UPDATE_OVERLAYS) + +/obj/item/gun/energy/laser/plasmacore/proc/on_cranked(datum/source, mob/user) + SIGNAL_HANDLER + if(cell.charge == cell.maxcharge) + say("Glory to Nanotrasen") + cranking = FALSE + update_icon(UPDATE_OVERLAYS) + +/obj/item/gun/energy/laser/plasmacore/update_overlays() + . = ..() + . += "plasma_core_six_cell_[cranking ? "forwards" : "backwards"]" + +/obj/item/stock_parts/cell/plasmacore + name = "PlasmaCore-6e experimental cell" + maxcharge = 600 //same as the secborg cell but i'm not reusing that here + icon = 'icons/obj/power.dmi' + icon_state = "icell" + custom_materials = list(/datum/material/glass=SMALL_MATERIAL_AMOUNT*0.4, /datum/material/plasma=SMALL_MATERIAL_AMOUNT) diff --git a/monkestation/code/modules/blueshield/devices/crew_monitor.dm b/monkestation/code/modules/blueshield/devices/crew_monitor.dm index b16c04247b97..87462eb7e29e 100644 --- a/monkestation/code/modules/blueshield/devices/crew_monitor.dm +++ b/monkestation/code/modules/blueshield/devices/crew_monitor.dm @@ -32,7 +32,7 @@ GLOBAL_DATUM_INIT(blueshield_crewmonitor, /datum/crewmonitor/blueshield, new) JOB_ERT_CHAPLAIN = 225, JOB_ERT_JANITOR = 226, JOB_ERT_DEATHSQUAD = 227, - JOB_NT_REP = 230, + JOB_NANOTRASEN_REPRESENTATIVE = 230, JOB_BLUESHIELD = 231, ) diff --git a/monkestation/code/modules/blueshield/job.dm b/monkestation/code/modules/blueshield/job.dm index 81a46da6f5c0..9ed67e532228 100644 --- a/monkestation/code/modules/blueshield/job.dm +++ b/monkestation/code/modules/blueshield/job.dm @@ -6,7 +6,7 @@ faction = FACTION_STATION total_positions = 1 spawn_positions = 1 - supervisors = "the Heads of Staff" + supervisors = "the Nanotrasen Representative and Central Command" minimal_player_age = 30 exp_requirements = 7200 exp_required_type = EXP_TYPE_CREW diff --git a/monkestation/code/modules/blueshift/areas/station.dm b/monkestation/code/modules/blueshift/areas/station.dm index fff014bc55a8..e4a5eb02dbaf 100644 --- a/monkestation/code/modules/blueshift/areas/station.dm +++ b/monkestation/code/modules/blueshift/areas/station.dm @@ -27,7 +27,7 @@ // NT Consultant area /area/station/command/heads_quarters/nt_rep - name = "Nanotrasen Consultant's Office" + name = "Nanotrasen Representative's Office" icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' icon_state = "nt_rep" diff --git a/monkestation/code/modules/blueshift/structures/locker.dm b/monkestation/code/modules/blueshift/structures/locker.dm index ce8340aac777..4504bb981588 100644 --- a/monkestation/code/modules/blueshift/structures/locker.dm +++ b/monkestation/code/modules/blueshift/structures/locker.dm @@ -18,19 +18,19 @@ /obj/structure/closet/secure_closet/nanotrasen_consultant name = "nanotrasen consultant's locker" - req_access = list(ACCESS_CAPTAIN) + req_access = list(ACCESS_CENT_GENERAL) icon_state = "cc" icon = 'monkestation/code/modules/blueshift/icons/obj/closet.dmi' /obj/structure/closet/secure_closet/nanotrasen_consultant/PopulateContents() ..() + new /obj/item/storage/bag/garment/stolen(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/suit/armor/vest(src) - new /obj/item/computer_disk/command/captain(src) new /obj/item/storage/photo_album/personal(src) + new /obj/item/assembly/flash(src) new /obj/item/bedsheet/centcom(src) + new /obj/item/storage/bag/garment/nanotrasen_representative(src) + new /obj/item/circuitboard/machine/fax(src) /obj/structure/closet/preopen opened = TRUE diff --git a/monkestation/code/modules/storytellers/converted_events/solo/bloodcult.dm b/monkestation/code/modules/storytellers/converted_events/solo/bloodcult.dm index 03b34742e7ca..6537de94516e 100644 --- a/monkestation/code/modules/storytellers/converted_events/solo/bloodcult.dm +++ b/monkestation/code/modules/storytellers/converted_events/solo/bloodcult.dm @@ -8,6 +8,7 @@ restricted_roles = list( JOB_AI, JOB_CAPTAIN, + JOB_NANOTRASEN_REPRESENTATIVE, JOB_BLUESHIELD, JOB_CHAPLAIN, JOB_CYBORG, diff --git a/monkestation/code/modules/storytellers/converted_events/solo/bloodsuckers.dm b/monkestation/code/modules/storytellers/converted_events/solo/bloodsuckers.dm index bcf08d77896e..4eb5f9e06631 100644 --- a/monkestation/code/modules/storytellers/converted_events/solo/bloodsuckers.dm +++ b/monkestation/code/modules/storytellers/converted_events/solo/bloodsuckers.dm @@ -4,6 +4,7 @@ antag_datum = /datum/antagonist/bloodsucker protected_roles = list( JOB_CAPTAIN, + JOB_NANOTRASEN_REPRESENTATIVE, JOB_BLUESHIELD, JOB_HEAD_OF_PERSONNEL, JOB_CHIEF_ENGINEER, diff --git a/monkestation/code/modules/storytellers/converted_events/solo/brother.dm b/monkestation/code/modules/storytellers/converted_events/solo/brother.dm index 90a6f492aba0..393c89eb9ecd 100644 --- a/monkestation/code/modules/storytellers/converted_events/solo/brother.dm +++ b/monkestation/code/modules/storytellers/converted_events/solo/brother.dm @@ -6,6 +6,7 @@ protected_roles = list( JOB_CAPTAIN, JOB_BLUESHIELD, + JOB_NANOTRASEN_REPRESENTATIVE, JOB_HEAD_OF_PERSONNEL, JOB_CHIEF_ENGINEER, JOB_CHIEF_MEDICAL_OFFICER, diff --git a/monkestation/code/modules/storytellers/converted_events/solo/changeling.dm b/monkestation/code/modules/storytellers/converted_events/solo/changeling.dm index 64fa6e73fb32..6669d52d0d62 100644 --- a/monkestation/code/modules/storytellers/converted_events/solo/changeling.dm +++ b/monkestation/code/modules/storytellers/converted_events/solo/changeling.dm @@ -5,6 +5,7 @@ protected_roles = list( JOB_CAPTAIN, JOB_BLUESHIELD, + JOB_NANOTRASEN_REPRESENTATIVE, JOB_HEAD_OF_PERSONNEL, JOB_CHIEF_ENGINEER, JOB_CHIEF_MEDICAL_OFFICER, diff --git a/monkestation/code/modules/storytellers/converted_events/solo/clockwork_cult.dm b/monkestation/code/modules/storytellers/converted_events/solo/clockwork_cult.dm index 920f243a5d90..90c8a533750d 100644 --- a/monkestation/code/modules/storytellers/converted_events/solo/clockwork_cult.dm +++ b/monkestation/code/modules/storytellers/converted_events/solo/clockwork_cult.dm @@ -8,6 +8,7 @@ restricted_roles = list( JOB_AI, JOB_CAPTAIN, + JOB_NANOTRASEN_REPRESENTATIVE, JOB_BLUESHIELD, JOB_CHAPLAIN, JOB_CYBORG, diff --git a/monkestation/code/modules/storytellers/converted_events/solo/clown_operative.dm b/monkestation/code/modules/storytellers/converted_events/solo/clown_operative.dm index dadeb02fe81b..8575c81fbd8e 100644 --- a/monkestation/code/modules/storytellers/converted_events/solo/clown_operative.dm +++ b/monkestation/code/modules/storytellers/converted_events/solo/clown_operative.dm @@ -8,6 +8,7 @@ restricted_roles = list( JOB_AI, JOB_CAPTAIN, + JOB_NANOTRASEN_REPRESENTATIVE, JOB_BLUESHIELD, JOB_CHIEF_ENGINEER, JOB_CHIEF_MEDICAL_OFFICER, diff --git a/monkestation/code/modules/storytellers/converted_events/solo/ghosts/nuclear_operative_ghost.dm b/monkestation/code/modules/storytellers/converted_events/solo/ghosts/nuclear_operative_ghost.dm index a4a13b709752..ed1e13df804a 100644 --- a/monkestation/code/modules/storytellers/converted_events/solo/ghosts/nuclear_operative_ghost.dm +++ b/monkestation/code/modules/storytellers/converted_events/solo/ghosts/nuclear_operative_ghost.dm @@ -7,6 +7,7 @@ restricted_roles = list( JOB_AI, JOB_CAPTAIN, + JOB_NANOTRASEN_REPRESENTATIVE, JOB_CHIEF_ENGINEER, JOB_CHIEF_MEDICAL_OFFICER, JOB_CYBORG, diff --git a/monkestation/code/modules/storytellers/converted_events/solo/heretic.dm b/monkestation/code/modules/storytellers/converted_events/solo/heretic.dm index 9050bbdf1941..932c0ac6eb5b 100644 --- a/monkestation/code/modules/storytellers/converted_events/solo/heretic.dm +++ b/monkestation/code/modules/storytellers/converted_events/solo/heretic.dm @@ -4,6 +4,7 @@ antag_datum = /datum/antagonist/heretic protected_roles = list( JOB_CAPTAIN, + JOB_NANOTRASEN_REPRESENTATIVE, JOB_BLUESHIELD, JOB_HEAD_OF_PERSONNEL, JOB_CHIEF_ENGINEER, diff --git a/monkestation/code/modules/storytellers/converted_events/solo/monsterhunter.dm b/monkestation/code/modules/storytellers/converted_events/solo/monsterhunter.dm index 01441f7a84b5..6107ac8a6be8 100644 --- a/monkestation/code/modules/storytellers/converted_events/solo/monsterhunter.dm +++ b/monkestation/code/modules/storytellers/converted_events/solo/monsterhunter.dm @@ -8,6 +8,7 @@ antag_datum = /datum/antagonist/monsterhunter protected_roles = list( JOB_CAPTAIN, + JOB_NANOTRASEN_REPRESENTATIVE, JOB_BLUESHIELD, JOB_HEAD_OF_PERSONNEL, JOB_CHIEF_ENGINEER, diff --git a/monkestation/code/modules/storytellers/converted_events/solo/nuclear_operative.dm b/monkestation/code/modules/storytellers/converted_events/solo/nuclear_operative.dm index 310142058e65..f9885a0fdbbe 100644 --- a/monkestation/code/modules/storytellers/converted_events/solo/nuclear_operative.dm +++ b/monkestation/code/modules/storytellers/converted_events/solo/nuclear_operative.dm @@ -8,6 +8,7 @@ restricted_roles = list( JOB_AI, JOB_CAPTAIN, + JOB_NANOTRASEN_REPRESENTATIVE, JOB_BLUESHIELD, JOB_CHIEF_ENGINEER, JOB_CHIEF_MEDICAL_OFFICER, diff --git a/monkestation/code/modules/storytellers/converted_events/solo/obsessed.dm b/monkestation/code/modules/storytellers/converted_events/solo/obsessed.dm index deb7b8b1e792..a4a85f3b6f03 100644 --- a/monkestation/code/modules/storytellers/converted_events/solo/obsessed.dm +++ b/monkestation/code/modules/storytellers/converted_events/solo/obsessed.dm @@ -5,6 +5,7 @@ typepath = /datum/round_event/antagonist/solo/obsessed restricted_roles = list( JOB_CAPTAIN, + JOB_NANOTRASEN_REPRESENTATIVE, JOB_BLUESHIELD, JOB_HEAD_OF_PERSONNEL, JOB_CHIEF_ENGINEER, diff --git a/monkestation/code/modules/storytellers/converted_events/solo/revolutionary.dm b/monkestation/code/modules/storytellers/converted_events/solo/revolutionary.dm index 3500a4cf21b8..19cb4c1308c3 100644 --- a/monkestation/code/modules/storytellers/converted_events/solo/revolutionary.dm +++ b/monkestation/code/modules/storytellers/converted_events/solo/revolutionary.dm @@ -8,6 +8,7 @@ restricted_roles = list( JOB_AI, JOB_CAPTAIN, + JOB_NANOTRASEN_REPRESENTATIVE, JOB_BLUESHIELD, JOB_CHIEF_ENGINEER, JOB_CHIEF_MEDICAL_OFFICER, diff --git a/monkestation/code/modules/storytellers/converted_events/solo/traitor.dm b/monkestation/code/modules/storytellers/converted_events/solo/traitor.dm index abe18dabcf91..ad0b67eddf9c 100644 --- a/monkestation/code/modules/storytellers/converted_events/solo/traitor.dm +++ b/monkestation/code/modules/storytellers/converted_events/solo/traitor.dm @@ -4,6 +4,7 @@ antag_datum = /datum/antagonist/traitor/infiltrator protected_roles = list( JOB_CAPTAIN, + JOB_NANOTRASEN_REPRESENTATIVE, JOB_BLUESHIELD, JOB_HEAD_OF_PERSONNEL, JOB_CHIEF_ENGINEER, diff --git a/monkestation/icons/mob/clothing/jobs/nanotrasen_representative_clothing-digi.dmi b/monkestation/icons/mob/clothing/jobs/nanotrasen_representative_clothing-digi.dmi new file mode 100644 index 000000000000..35612f27c4f4 Binary files /dev/null and b/monkestation/icons/mob/clothing/jobs/nanotrasen_representative_clothing-digi.dmi differ diff --git a/monkestation/icons/mob/clothing/jobs/nanotrasen_representative_clothing.dmi b/monkestation/icons/mob/clothing/jobs/nanotrasen_representative_clothing.dmi new file mode 100644 index 000000000000..e82fd671f021 Binary files /dev/null and b/monkestation/icons/mob/clothing/jobs/nanotrasen_representative_clothing.dmi differ diff --git a/monkestation/icons/obj/clothing/jobs/nanotrasen_representative_clothing_item.dmi b/monkestation/icons/obj/clothing/jobs/nanotrasen_representative_clothing_item.dmi new file mode 100644 index 000000000000..db13674a392f Binary files /dev/null and b/monkestation/icons/obj/clothing/jobs/nanotrasen_representative_clothing_item.dmi differ diff --git a/monkestation/icons/obj/weapons/guns/plasmacoresixe.dmi b/monkestation/icons/obj/weapons/guns/plasmacoresixe.dmi new file mode 100644 index 000000000000..6f2d898826d5 Binary files /dev/null and b/monkestation/icons/obj/weapons/guns/plasmacoresixe.dmi differ diff --git a/tgstation.dme b/tgstation.dme index d074c0ae2dff..62e28d28b731 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -471,6 +471,7 @@ #include "code\__DEFINES\~monkestation\dcs\signals\signals_atom.dm" #include "code\__DEFINES\~monkestation\dcs\signals\signals_blueshift.dm" #include "code\__DEFINES\~monkestation\dcs\signals\signals_carbon.dm" +#include "code\__DEFINES\~monkestation\dcs\signals\signals_component.dm" #include "code\__DEFINES\~monkestation\dcs\signals\signals_element.dm" #include "code\__DEFINES\~monkestation\dcs\signals\signals_food.dm" #include "code\__DEFINES\~monkestation\dcs\signals\signals_guns.dm" @@ -7482,6 +7483,11 @@ #include "monkestation\code\modules\modular_guns\components\gun_stat_modifiers.dm" #include "monkestation\code\modules\modular_guns\crafting\part_recipes.dm" #include "monkestation\code\modules\modular_guns\makeshift_effects\__base_effect.dm" +#include "monkestation\code\modules\NTrep\NTrep.dm" +#include "monkestation\code\modules\NTrep\NTrep_locker.dm" +#include "monkestation\code\modules\NTrep\NTrep_spawn.dm" +#include "monkestation\code\modules\NTrep\clothing\NTrep_clothing.dm" +#include "monkestation\code\modules\NTrep\coolgun\plasmacore.dm" #include "monkestation\code\modules\NTSL\code\achievements.dm" #include "monkestation\code\modules\NTSL\code\filter.dm" #include "monkestation\code\modules\NTSL\code\global.dm" diff --git a/tgui/packages/tgui/interfaces/common/JobToIcon.ts b/tgui/packages/tgui/interfaces/common/JobToIcon.ts index 6943df66262c..fb6bdcd0dc22 100644 --- a/tgui/packages/tgui/interfaces/common/JobToIcon.ts +++ b/tgui/packages/tgui/interfaces/common/JobToIcon.ts @@ -17,6 +17,7 @@ const BASEICONS = { 'CentCom Head Intern': 'pen-fancy', 'CentCom Intern': 'pen-alt', 'CentCom Official': 'medal', + 'Nanotrasen Representative': 'medal', Chaplain: 'cross', Chef: 'utensils', Chemist: 'prescription-bottle',