mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-27 17:41:50 +00:00
140 lines
4.5 KiB
Plaintext
140 lines
4.5 KiB
Plaintext
/// Possible assignments corpses can have, both for flavor and to push them towards contributing to the round
|
|
/datum/corpse_assignment
|
|
/// Message we send to the player upon revival concerning their job
|
|
var/job_lore
|
|
/// Gear to give to the crewie in a special locked box
|
|
var/list/job_stuffs
|
|
/// Trim on the ID we give to the revived person (no trim = no id)
|
|
var/datum/id_trim/trim
|
|
/// Job datum to apply to the human
|
|
var/datum/job/job_datum
|
|
|
|
/datum/corpse_assignment/proc/apply_assignment(mob/living/carbon/human/working_dead, list/job_gear, list/datum/callback/on_revive_and_player_occupancy)
|
|
if(!job_gear)
|
|
return
|
|
|
|
for(var/item in job_stuffs)
|
|
job_gear += new item ()
|
|
job_gear += job_stuffs
|
|
|
|
if(job_datum)
|
|
on_revive_and_player_occupancy += CALLBACK(src, PROC_REF(assign_job), working_dead) //this needs to happen once the body has been successfully occupied and revived
|
|
|
|
if(trim)
|
|
var/obj/item/card/id/advanced/card = new()
|
|
card.registered_name = working_dead.name
|
|
card.registered_age = working_dead.age
|
|
SSid_access.apply_trim_to_card(card, trim)
|
|
job_gear += card
|
|
|
|
/datum/corpse_assignment/proc/assign_job(mob/living/carbon/human/working_undead)
|
|
working_undead.mind.set_assigned_role_with_greeting(new job_datum (), working_undead.client)
|
|
|
|
/datum/corpse_assignment/engineer
|
|
job_lore = "I was employed as an engineer"
|
|
job_stuffs = list(/obj/item/clothing/under/rank/engineering/engineer)
|
|
trim = /datum/id_trim/job/visiting_engineer
|
|
job_datum = /datum/job/recovered_crew/engineer
|
|
|
|
/datum/id_trim/job/visiting_engineer
|
|
assignment = JOB_LOSTCREW_ENGINEER
|
|
trim_state = "trim_stationengineer"
|
|
department_color = COLOR_ENGINEERING_ORANGE
|
|
subdepartment_color = COLOR_ENGINEERING_ORANGE
|
|
sechud_icon_state = SECHUD_STATION_ENGINEER
|
|
minimal_access = list(
|
|
ACCESS_CONSTRUCTION,
|
|
ACCESS_EXTERNAL_AIRLOCKS,
|
|
ACCESS_MAINT_TUNNELS,
|
|
)
|
|
|
|
/datum/corpse_assignment/medical
|
|
job_lore = "I was employed as a doctor"
|
|
job_stuffs = list(/obj/item/clothing/under/rank/medical/doctor)
|
|
trim = /datum/id_trim/job/visiting_doctor
|
|
job_datum = /datum/job/recovered_crew/doctor
|
|
|
|
/datum/id_trim/job/visiting_doctor
|
|
assignment = JOB_LOSTCREW_MEDICAL
|
|
trim_state = "trim_medicaldoctor"
|
|
department_color = COLOR_MEDICAL_BLUE
|
|
subdepartment_color = COLOR_MEDICAL_BLUE
|
|
sechud_icon_state = SECHUD_MEDICAL_DOCTOR
|
|
|
|
minimal_access = list(
|
|
ACCESS_MEDICAL,
|
|
)
|
|
|
|
/datum/corpse_assignment/security
|
|
job_lore = "I was employed as security"
|
|
job_stuffs = list(/obj/item/clothing/under/rank/security/officer)
|
|
trim = /datum/id_trim/job/visiting_security
|
|
job_datum = /datum/job/recovered_crew/security
|
|
|
|
/datum/corpse_assignment/security/apply_assignment(mob/living/carbon/human/working_dead, list/job_gear)
|
|
. = ..()
|
|
|
|
var/obj/item/implant/mindshield/shield = new()
|
|
shield.implant(working_dead)
|
|
|
|
/datum/id_trim/job/visiting_security
|
|
assignment = JOB_LOSTCREW_SECURITY
|
|
trim_state = "trim_securityofficer"
|
|
department_color = COLOR_SECURITY_RED
|
|
subdepartment_color = COLOR_SECURITY_RED
|
|
sechud_icon_state = SECHUD_SECURITY_OFFICER
|
|
|
|
minimal_access = list(
|
|
ACCESS_BRIG_ENTRANCE,
|
|
)
|
|
|
|
/datum/corpse_assignment/science
|
|
job_lore = "I was employed as a scientist"
|
|
job_stuffs = list(/obj/item/clothing/under/rank/rnd/scientist)
|
|
trim = /datum/id_trim/job/visiting_scientist
|
|
job_datum = /datum/job/recovered_crew/scientist
|
|
|
|
/datum/id_trim/job/visiting_scientist
|
|
assignment = JOB_LOSTCREW_SCIENCE
|
|
trim_state = "trim_scientist"
|
|
department_color = COLOR_SCIENCE_PINK
|
|
subdepartment_color = COLOR_SCIENCE_PINK
|
|
sechud_icon_state = SECHUD_SCIENTIST
|
|
minimal_access = list(
|
|
ACCESS_AUX_BASE,
|
|
ACCESS_SCIENCE,
|
|
)
|
|
|
|
/datum/corpse_assignment/cargo
|
|
job_lore = "I was employed as a technician"
|
|
job_stuffs = list(/obj/item/clothing/under/rank/cargo/tech)
|
|
trim = /datum/id_trim/job/visiting_technician
|
|
job_datum = /datum/job/recovered_crew/cargo
|
|
|
|
/datum/id_trim/job/visiting_technician
|
|
assignment = JOB_LOSTCREW_CARGO
|
|
trim_state = "trim_cargotechnician"
|
|
department_color = COLOR_CARGO_BROWN
|
|
subdepartment_color = COLOR_CARGO_BROWN
|
|
sechud_icon_state = SECHUD_CARGO_TECHNICIAN
|
|
minimal_access = list(
|
|
ACCESS_CARGO,
|
|
ACCESS_MAINT_TUNNELS,
|
|
)
|
|
|
|
/datum/corpse_assignment/civillian
|
|
job_lore = "I was employed as a civllian"
|
|
job_stuffs = list(/obj/item/clothing/under/color/grey)
|
|
trim = /datum/id_trim/job/visiting_civillian
|
|
job_datum = /datum/job/recovered_crew/civillian
|
|
|
|
/datum/id_trim/job/visiting_civillian
|
|
assignment = JOB_LOSTCREW_CIVILLIAN
|
|
trim_state = "trim_assistant"
|
|
sechud_icon_state = SECHUD_ASSISTANT
|
|
minimal_access = list()
|
|
extra_access = list(
|
|
ACCESS_MAINT_TUNNELS,
|
|
ACCESS_SERVICE,
|
|
)
|