diff --git a/code/__defines/access.dm b/code/__defines/access.dm index d01bf0d83fc9..1f4297af238d 100644 --- a/code/__defines/access.dm +++ b/code/__defines/access.dm @@ -60,7 +60,7 @@ #define ACCESS_MINING_OFFICE 49 #define ACCESS_MAILSORTING 50 -// #define UNUSED 51 +#define ACCESS_MECHA 51 // PY Edit - Mech Engineer jobs // #define UNUSED 52 #define ACCESS_HEADS_VAULT 53 diff --git a/code/__defines/jobs.dm b/code/__defines/jobs.dm index 98943f342e79..41054e4bacdf 100644 --- a/code/__defines/jobs.dm +++ b/code/__defines/jobs.dm @@ -304,7 +304,7 @@ #define JOB_ROBOTICIST "Roboticist" // Roboticist alt titles #define JOB_ALT_ASSEMBLY_TECHNICIAN "Assembly Technician" - #define JOB_ALT_BIOMECHANICAL_ENGINEER "Biomechanical Engineer" + #define JOB_ALT_BIOMECHANICAL_ENGINEER "Biomechanical Surgeon" // PY Edit - Change to Surgeon #define JOB_ALT_MECHATRONIC_ENGINEER "Mechatronic Engineer" #define JOB_ALT_SOFTWARE_ENGINEER "Software Engineer" @@ -387,6 +387,9 @@ #define JOB_ALT_TALON_EXCAVATOR "Talon Excavator" //___________________________________________________________ +// PY Edit Start - Mechatronic Engineer +#define JOB_MECHATRONIC_ENGINEER "Mechatronic Engineer" +// PY Edit End // Mind jobs #define JOB_SLIME "slime" @@ -480,6 +483,7 @@ #define EXPLORER (1<<12) #define SAR (1<<13) #define XENOBOTANIST (1<<14) +#define MECHENG (1<<15) // PY Add - Mech Eng #define CIVILIAN (1<<2) diff --git a/code/controllers/subsystems/transcore_vr.dm b/code/controllers/subsystems/transcore_vr.dm index 31a80fef08f9..da674a418a60 100644 --- a/code/controllers/subsystems/transcore_vr.dm +++ b/code/controllers/subsystems/transcore_vr.dm @@ -183,7 +183,7 @@ SUBSYSTEM_DEF(transcore) return db // These are now just interfaces to databases -/datum/controller/subsystem/transcore/proc/m_backup(var/datum/mind/mind, var/nif /* PY edit - Nif removal var/obj/item/nif/nif */, var/one_time = FALSE, var/database_key) +/datum/controller/subsystem/transcore/proc/m_backup(datum/mind/mind, nif /* PY edit - Nif removal obj/item/nif/nif */, one_time = FALSE, database_key) var/datum/transcore_db/db = db_by_key(database_key) db.m_backup(mind=mind, nif=nif, one_time=one_time) @@ -217,7 +217,7 @@ SUBSYSTEM_DEF(transcore) var/core_dumped = FALSE var/key // Key for this DB -/datum/transcore_db/proc/m_backup(var/datum/mind/mind, var/nif /* PY edit - Nif removal var/obj/item/nif/nif */, var/one_time = FALSE) +/datum/transcore_db/proc/m_backup(datum/mind/mind, nif /* PY edit - Nif removal obj/item/nif/nif */, one_time = FALSE) ASSERT(mind) if(!mind.name || core_dumped) return 0 diff --git a/code/modules/client/preference_setup/loadout/loadout_eyes.dm b/code/modules/client/preference_setup/loadout/loadout_eyes.dm index 89cf6dde0fe3..97d6ed847ad5 100644 --- a/code/modules/client/preference_setup/loadout/loadout_eyes.dm +++ b/code/modules/client/preference_setup/loadout/loadout_eyes.dm @@ -233,7 +233,7 @@ /datum/gear/eyes/arglasses_eng display_name = "AR-Engineering glasses" path = /obj/item/clothing/glasses/omnihud/eng - allowed_roles = list(JOB_ENGINEER,JOB_CHIEF_ENGINEER,JOB_ATMOSPHERIC_TECHNICIAN) + allowed_roles = list(JOB_ENGINEER,JOB_CHIEF_ENGINEER,JOB_ATMOSPHERIC_TECHNICIAN,JOB_MECHATRONIC_ENGINEER) // PY Edit - Mech Eng /datum/gear/eyes/arglasses_eng/New() ..() @@ -303,7 +303,7 @@ display_name = "Augmented Reality Mantle (Eng)" description = "A full-face, partially-obscuring visor. Covers the face and eyes. Has an engineering-oriented augmented-reality display on the inside, and can be toggled into a corrective vision mode. UV lining blocks flashes and welding glare." path = /obj/item/clothing/glasses/omnihud/mantle/eng - allowed_roles = list(JOB_ENGINEER,JOB_CHIEF_ENGINEER,JOB_ATMOSPHERIC_TECHNICIAN) + allowed_roles = list(JOB_ENGINEER,JOB_CHIEF_ENGINEER,JOB_ATMOSPHERIC_TECHNICIAN,JOB_MECHATRONIC_ENGINEER) // PY Edit - Mech Eng /datum/gear/eyes/ar_mantle_cmd display_name = "Augmented Reality Mantle (Command)" diff --git a/code/modules/client/preference_setup/loadout/loadout_head.dm b/code/modules/client/preference_setup/loadout/loadout_head.dm index d2f26adb270d..c55a527b51fc 100644 --- a/code/modules/client/preference_setup/loadout/loadout_head.dm +++ b/code/modules/client/preference_setup/loadout/loadout_head.dm @@ -292,7 +292,7 @@ description = "Select from a range of welding masks (engineering crew/roboticists only)" path = /obj/item/clothing/head/welding cost = 2 - allowed_roles = list(JOB_CHIEF_ENGINEER,JOB_ENGINEER,JOB_ATMOSPHERIC_TECHNICIAN,JOB_RESEARCH_DIRECTOR,JOB_ROBOTICIST) + allowed_roles = list(JOB_CHIEF_ENGINEER,JOB_ENGINEER,JOB_ATMOSPHERIC_TECHNICIAN,JOB_RESEARCH_DIRECTOR,JOB_ROBOTICIST,JOB_MECHATRONIC_ENGINEER) // PY Edit - Mech Eng /datum/gear/head/welding/New() ..() diff --git a/code/modules/client/preference_setup/loadout/loadout_suit.dm b/code/modules/client/preference_setup/loadout/loadout_suit.dm index 3c5e02503416..1b4d74026a7a 100644 --- a/code/modules/client/preference_setup/loadout/loadout_suit.dm +++ b/code/modules/client/preference_setup/loadout/loadout_suit.dm @@ -194,7 +194,7 @@ /datum/gear/suit/roles/surgical_apron display_name = "surgical apron" path = /obj/item/clothing/suit/surgicalapron - allowed_roles = list(JOB_MEDICAL_DOCTOR,JOB_CHIEF_MEDICAL_OFFICER) + allowed_roles = list(JOB_MEDICAL_DOCTOR,JOB_CHIEF_MEDICAL_OFFICER, JOB_ROBOTICIST) // PY Edit - Roboticist /datum/gear/suit/overalls display_name = "overalls" @@ -441,13 +441,13 @@ /datum/gear/suit/wintercoat/medical display_name = "winter coat, medical" path = /obj/item/clothing/suit/storage/hooded/wintercoat/medical - allowed_roles = list(JOB_MEDICAL_DOCTOR,JOB_CHIEF_MEDICAL_OFFICER,JOB_CHEMIST,JOB_PARAMEDIC,JOB_GENETICIST, JOB_PSYCHIATRIST) + allowed_roles = list(JOB_MEDICAL_DOCTOR,JOB_CHIEF_MEDICAL_OFFICER,JOB_CHEMIST,JOB_PARAMEDIC,JOB_GENETICIST, JOB_PSYCHIATRIST, JOB_ROBOTICIST) // PY Edit - Roboticist show_roles = FALSE /datum/gear/suit/wintercoat/medical/alt display_name = "winter coat, medical alt" path = /obj/item/clothing/suit/storage/hooded/wintercoat/medical/alt - allowed_roles = list(JOB_MEDICAL_DOCTOR,JOB_CHIEF_MEDICAL_OFFICER,JOB_CHEMIST,JOB_PARAMEDIC,JOB_GENETICIST, JOB_PSYCHIATRIST) + allowed_roles = list(JOB_MEDICAL_DOCTOR,JOB_CHIEF_MEDICAL_OFFICER,JOB_CHEMIST,JOB_PARAMEDIC,JOB_GENETICIST, JOB_PSYCHIATRIST, JOB_ROBOTICIST) // PY Edit - Roboticist show_roles = FALSE /datum/gear/suit/wintercoat/medical/viro @@ -501,7 +501,7 @@ /datum/gear/suit/wintercoat/engineering display_name = "winter coat, engineering" path = /obj/item/clothing/suit/storage/hooded/wintercoat/engineering - allowed_roles = list(JOB_CHIEF_ENGINEER,JOB_ATMOSPHERIC_TECHNICIAN, JOB_ENGINEER) + allowed_roles = list(JOB_CHIEF_ENGINEER,JOB_ATMOSPHERIC_TECHNICIAN, JOB_ENGINEER, JOB_MECHATRONIC_ENGINEER) // PY Edit - Mech Eng show_roles = FALSE /datum/gear/suit/wintercoat/engineering/atmos @@ -700,7 +700,7 @@ /datum/gear/suit/snowsuit/engineering display_name = "snowsuit, engineering" path = /obj/item/clothing/suit/storage/snowsuit/engineering - allowed_roles = list(JOB_CHIEF_ENGINEER,JOB_ATMOSPHERIC_TECHNICIAN, JOB_ENGINEER) + allowed_roles = list(JOB_CHIEF_ENGINEER,JOB_ATMOSPHERIC_TECHNICIAN, JOB_ENGINEER, JOB_MECHATRONIC_ENGINEER) // PY Edit - Mech Eng show_roles = FALSE /datum/gear/suit/snowsuit/cargo @@ -823,7 +823,7 @@ path = /obj/item/clothing/suit/storage/toggle/bomber/pilot /datum/gear/suit/snowsuit/medical - allowed_roles = list(JOB_MEDICAL_DOCTOR,JOB_CHIEF_MEDICAL_OFFICER,JOB_CHEMIST,JOB_PARAMEDIC,JOB_GENETICIST, JOB_PSYCHIATRIST) + allowed_roles = list(JOB_MEDICAL_DOCTOR,JOB_CHIEF_MEDICAL_OFFICER,JOB_CHEMIST,JOB_PARAMEDIC,JOB_GENETICIST, JOB_PSYCHIATRIST, JOB_ROBOTICIST) // PY Edit - Roboticist /datum/gear/suit/labcoat_colorable display_name = "labcoat, colorable" @@ -1200,4 +1200,4 @@ Talon winter coat /datum/gear/suit/neo_medical_coat display_name = "medical coat" path = /obj/item/clothing/suit/neo_medical_coat - allowed_roles = list(JOB_CHIEF_MEDICAL_OFFICER,JOB_MEDICAL_DOCTOR,JOB_CHEMIST,JOB_PSYCHIATRIST,JOB_PARAMEDIC,JOB_TALON_DOCTOR) + allowed_roles = list(JOB_CHIEF_MEDICAL_OFFICER,JOB_MEDICAL_DOCTOR,JOB_CHEMIST,JOB_PSYCHIATRIST,JOB_PARAMEDIC,JOB_TALON_DOCTOR,JOB_ROBOTICIST) // PY Edit - Roboticist diff --git a/modular_pyraxis/code/datums/outfits/jobs/engineering.dm b/modular_pyraxis/code/datums/outfits/jobs/engineering.dm new file mode 100644 index 000000000000..1b7228d5459a --- /dev/null +++ b/modular_pyraxis/code/datums/outfits/jobs/engineering.dm @@ -0,0 +1,8 @@ +/datum/decl/hierarchy/outfit/job/engineering/mechatronic + name = OUTFIT_JOB_NAME(JOB_MECHATRONIC_ENGINEER) + shoes = /obj/item/clothing/shoes/black + belt = /obj/item/storage/belt/utility/full/multitool + head = /obj/item/clothing/head/hardhat + uniform = /obj/item/clothing/under/rank/engineer + id_type = /obj/item/card/id/engineering + pda_type = /obj/item/pda/engineering diff --git a/modular_pyraxis/code/datums/outfits/jobs/medical.dm b/modular_pyraxis/code/datums/outfits/jobs/medical.dm new file mode 100644 index 000000000000..5e5b2539caa4 --- /dev/null +++ b/modular_pyraxis/code/datums/outfits/jobs/medical.dm @@ -0,0 +1,11 @@ +/datum/decl/hierarchy/outfit/job/medical/roboticist + name = OUTFIT_JOB_NAME(JOB_ROBOTICIST) + uniform = /obj/item/clothing/under/rank/roboticist + shoes = /obj/item/clothing/shoes/white + belt = /obj/item/storage/belt/utility/full/multitool + id_type = /obj/item/card/id/medical + pda_slot = slot_r_store + pda_type = /obj/item/pda/roboticist + backpack = /obj/item/storage/backpack/medic + satchel_one = /obj/item/storage/backpack/satchel/med + suit = /obj/item/clothing/suit/storage/toggle/labcoat/roboticist diff --git a/modular_pyraxis/code/datums/outfits/jobs/science.dm b/modular_pyraxis/code/datums/outfits/jobs/science.dm new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/modular_pyraxis/code/game/jobs/job/engineering.dm b/modular_pyraxis/code/game/jobs/job/engineering.dm new file mode 100644 index 000000000000..3e297a457b65 --- /dev/null +++ b/modular_pyraxis/code/game/jobs/job/engineering.dm @@ -0,0 +1,34 @@ +/datum/job/chief_engineer/New() + . = ..() + access |= list(ACCESS_MECHA, ACCESS_CHANGE_IDS) + minimal_access |= list(ACCESS_MECHA, ACCESS_CHANGE_IDS) + +/datum/job/engineer/New() + . = ..() + access |= list(ACCESS_MECHA, ACCESS_ATMOSPHERICS) + +/datum/job/atmos/New() + . = ..() + access |= list(ACCESS_MECHA) + +/datum/job/mechatronic_engineer + title = JOB_MECHATRONIC_ENGINEER + flag = MECHENG + departments = list(DEPARTMENT_ENGINEERING) + department_flag = MEDSCI + faction = FACTION_STATION + total_positions = 3 + spawn_positions = 3 + pto_type = PTO_ENGINEERING + supervisors = "the " + JOB_CHIEF_ENGINEER + selection_color = "#5B4D20" + economic_modifier = 5 + access = list(ACCESS_MECHA, ACCESS_EVA, ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_TECH_STORAGE, ACCESS_MAINT_TUNNELS, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_ATMOSPHERICS, ACCESS_EXTERNAL_AIRLOCKS) + minimal_access = list(ACCESS_MECHA, ACCESS_EVA, ACCESS_ENGINE, ACCESS_ATMOSPHERICS, ACCESS_MAINT_TUNNELS, ACCESS_EMERGENCY_STORAGE, ACCESS_CONSTRUCTION, ACCESS_EXTERNAL_AIRLOCKS) + + // alt_titles + + minimal_player_age = 3 + min_age_by_species = list(SPECIES_PROMETHEAN = 2) + outfit_type = /datum/decl/hierarchy/outfit/job/engineering/mechatronic + job_description = "A " + JOB_MECHATRONIC_ENGINEER + " is primarly concerned about the station's large machinery, like Cyborgs, mechs, and the AI." diff --git a/modular_pyraxis/code/game/jobs/job/science.dm b/modular_pyraxis/code/game/jobs/job/science.dm new file mode 100644 index 000000000000..a67cdd2dc602 --- /dev/null +++ b/modular_pyraxis/code/game/jobs/job/science.dm @@ -0,0 +1,25 @@ +/datum/job/rd/New() + . = ..() + access -= list(ACCESS_ROBOTICS, ACCESS_AI_UPLOAD) + access |= list(ACCESS_MAINT_TUNNELS, ACCESS_CHANGE_IDS) + minimal_access -= list(ACCESS_ROBOTICS, ACCESS_AI_UPLOAD) + minimal_access |= list(ACCESS_MAINT_TUNNELS, ACCESS_CHANGE_IDS) + +/datum/job/scientist/New() + . = ..() + access -= list(ACCESS_ROBOTICS, ACCESS_AI_UPLOAD) + alt_titles -= list(JOB_ALT_CIRCUIT_DESIGNER, JOB_ALT_CIRCUIT_PROGRAMMER) + +/datum/job/roboticist + departments = list(DEPARTMENT_MEDICAL) + department_flag = ENGSEC + supervisors = "the " + JOB_CHIEF_MEDICAL_OFFICER + selection_color = "#013D3B" + pto_type = PTO_MEDICAL + // outfit_type = + access = list(ACCESS_ROBOTICS, ACCESS_EVA, ACCESS_MEDICAL, ACCESS_MEDICAL_EQUIP, ACCESS_MAINT_TUNNELS, ACCESS_EXTERNAL_AIRLOCKS) + minimal_access = list(ACCESS_ROBOTICS, ACCESS_EVA, ACCESS_MAINT_TUNNELS) + alt_titles = list( + JOB_ALT_BIOMECHANICAL_ENGINEER = /datum/alt_title/biomech + ) + outfit_type = /datum/decl/hierarchy/outfit/job/medical/roboticist diff --git a/vorestation.dme b/vorestation.dme index 24c17fe10d4a..e59eab5a2b09 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -5044,11 +5044,15 @@ #include "maps\submaps\surface_submaps\wilderness\wilderness.dm" #include "maps\submaps\surface_submaps\wilderness\wilderness_areas.dm" #include "maps\tether\tether_areas.dm" -#include "maps\tether\tether_jobs.dm" #include "maps\tether\tether_phoronlock.dm" #include "maps\tether\tether_shuttle_defs.dm" #include "maps\tether\tether_telecomm_defs.dm" #include "maps\virtual_reality\constructVR.dm" #include "maps\~map_system\_map_selection.dm" #include "maps\~map_system\maps.dm" +#include "modular_pyraxis\code\datums\outfits\jobs\engineering.dm" +#include "modular_pyraxis\code\datums\outfits\jobs\medical.dm" +#include "modular_pyraxis\code\datums\outfits\jobs\science.dm" +#include "modular_pyraxis\code\game\jobs\job\engineering.dm" +#include "modular_pyraxis\code\game\jobs\job\science.dm" // END_INCLUDE