mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-11 16:14:08 +01:00
[MIRROR] Adds new station traits that gives departments / everyone death rattle implants (#3683)
* Adds new station traits that gives departments / everyone death rattle implants * Update jobs.dm Co-authored-by: Qustinnus <Floydje123@hotmail.com> Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
This commit is contained in:
@@ -48,3 +48,13 @@
|
||||
#define JOB_DISPLAY_ORDER_SECURITY_MEDIC 36 //SKYRAT EDIT ADDITON - SEC_HAUL
|
||||
#define JOB_DISPLAY_ORDER_PRISONER 37
|
||||
#define JOB_DISPLAY_ORDER_BLUESHIELD 38 //SKYRAT EDIT ADDITON - BLUESHIELD
|
||||
|
||||
#define DEPARTMENT_SECURITY (1<<0)
|
||||
#define DEPARTMENT_COMMAND (1<<1)
|
||||
#define DEPARTMENT_SERVICE (1<<2)
|
||||
#define DEPARTMENT_CARGO (1<<3)
|
||||
#define DEPARTMENT_ENGINEERING (1<<4)
|
||||
#define DEPARTMENT_SCIENCE (1<<5)
|
||||
#define DEPARTMENT_MEDICAL (1<<6)
|
||||
#define DEPARTMENT_SILICON (1<<7)
|
||||
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
#define STATION_TRAIT_POSITIVE 1
|
||||
#define STATION_TRAIT_NEUTRAL 2
|
||||
#define STATION_TRAIT_NEGATIVE 3
|
||||
|
||||
|
||||
#define STATION_TRAIT_ABSTRACT (1<<0)
|
||||
|
||||
@@ -27,6 +27,8 @@ PROCESSING_SUBSYSTEM_DEF(station)
|
||||
/datum/controller/subsystem/processing/station/proc/SetupTraits()
|
||||
for(var/i in subtypesof(/datum/station_trait))
|
||||
var/datum/station_trait/trait_typepath = i
|
||||
if(initial(trait_typepath.trait_flags) & STATION_TRAIT_ABSTRACT)
|
||||
continue //Dont add abstract ones to it
|
||||
selectable_traits_by_types[initial(trait_typepath.trait_type)][trait_typepath] = initial(trait_typepath.weight)
|
||||
|
||||
var/positive_trait_count = pick(12;0, 5;1, 1;2)
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
var/trait_to_give
|
||||
///What traits are incompatible with this one?
|
||||
var/blacklist
|
||||
///Extra flags for station traits such as it being abstract
|
||||
var/trait_flags
|
||||
|
||||
|
||||
/datum/station_trait/New()
|
||||
|
||||
@@ -114,7 +114,7 @@
|
||||
|
||||
/datum/station_trait/quick_shuttle
|
||||
name = "Quick Shuttle"
|
||||
trait_type = STATION_TRAIT_NEUTRAL
|
||||
trait_type = STATION_TRAIT_POSITIVE
|
||||
weight = 5
|
||||
show_in_report = TRUE
|
||||
report_message = "Due to proximity to our supply station, the cargo shuttle will have a quicker flight time to your cargo department/"
|
||||
@@ -123,3 +123,97 @@
|
||||
/datum/station_trait/quick_shuttle/on_round_start()
|
||||
. = ..()
|
||||
SSshuttle.supply.callTime *= 0.5
|
||||
|
||||
/datum/station_trait/deathrattle_department
|
||||
name = "deathrattled department"
|
||||
trait_type = STATION_TRAIT_POSITIVE
|
||||
show_in_report = TRUE
|
||||
trait_flags = STATION_TRAIT_ABSTRACT
|
||||
blacklist = list(/datum/station_trait/deathrattle_all)
|
||||
|
||||
var/department_to_apply_to
|
||||
var/department_name = "department"
|
||||
var/datum/deathrattle_group/deathrattle_group
|
||||
|
||||
/datum/station_trait/deathrattle_department/New()
|
||||
. = ..()
|
||||
deathrattle_group = new("[department_name] group")
|
||||
blacklist += subtypesof(/datum/station_trait/deathrattle_department) - type //All but ourselves
|
||||
name = "deathrattled [department_name]"
|
||||
report_message = "All members of [department_name] have received an implant to notify each other if one of them dies. This should help improve job-safety!"
|
||||
RegisterSignal(SSdcs, COMSIG_GLOB_JOB_AFTER_SPAWN, .proc/on_job_after_spawn)
|
||||
|
||||
/datum/station_trait/deathrattle_department/proc/on_job_after_spawn(datum/source, datum/job/job, mob/living/living_mob, mob/M, joined_late)
|
||||
SIGNAL_HANDLER
|
||||
|
||||
if(!(job.departments & department_to_apply_to))
|
||||
return
|
||||
|
||||
var/obj/item/implant/deathrattle/implant_to_give = new()
|
||||
deathrattle_group.register(implant_to_give)
|
||||
implant_to_give.implant(living_mob, living_mob, TRUE, TRUE)
|
||||
|
||||
|
||||
/datum/station_trait/deathrattle_department/service
|
||||
trait_flags = NONE
|
||||
weight = 1
|
||||
department_to_apply_to = DEPARTMENT_SERVICE
|
||||
department_name = "Service"
|
||||
|
||||
/datum/station_trait/deathrattle_department/cargo
|
||||
trait_flags = NONE
|
||||
weight = 1
|
||||
department_to_apply_to = DEPARTMENT_CARGO
|
||||
department_name = "Cargo"
|
||||
|
||||
/datum/station_trait/deathrattle_department/engineering
|
||||
trait_flags = NONE
|
||||
weight = 1
|
||||
department_to_apply_to = DEPARTMENT_ENGINEERING
|
||||
department_name = "Engineering"
|
||||
|
||||
/datum/station_trait/deathrattle_department/command
|
||||
trait_flags = NONE
|
||||
weight = 1
|
||||
department_to_apply_to = DEPARTMENT_COMMAND
|
||||
department_name = "Command"
|
||||
|
||||
/datum/station_trait/deathrattle_department/science
|
||||
trait_flags = NONE
|
||||
weight = 1
|
||||
department_to_apply_to = DEPARTMENT_SCIENCE
|
||||
department_name = "Science"
|
||||
|
||||
/datum/station_trait/deathrattle_department/security
|
||||
trait_flags = NONE
|
||||
weight = 1
|
||||
department_to_apply_to = DEPARTMENT_SECURITY
|
||||
department_name = "Security"
|
||||
|
||||
/datum/station_trait/deathrattle_department/medical
|
||||
trait_flags = NONE
|
||||
weight = 1
|
||||
department_to_apply_to = DEPARTMENT_MEDICAL
|
||||
department_name = "Medical"
|
||||
|
||||
/datum/station_trait/deathrattle_all
|
||||
name = "deathrattled station"
|
||||
trait_type = STATION_TRAIT_POSITIVE
|
||||
show_in_report = TRUE
|
||||
weight = 1
|
||||
report_message = "All members of the station have received an implant to notify each other if one of them dies. This should help improve job-safety!"
|
||||
var/datum/deathrattle_group/deathrattle_group
|
||||
|
||||
|
||||
/datum/station_trait/deathrattle_all/New()
|
||||
. = ..()
|
||||
deathrattle_group = new("station group")
|
||||
blacklist = subtypesof(/datum/station_trait/deathrattle_department)
|
||||
RegisterSignal(SSdcs, COMSIG_GLOB_JOB_AFTER_SPAWN, .proc/on_job_after_spawn)
|
||||
|
||||
/datum/station_trait/deathrattle_all/proc/on_job_after_spawn(datum/source, datum/job/job, mob/living/living_mob, mob/M, joined_late)
|
||||
SIGNAL_HANDLER
|
||||
|
||||
var/obj/item/implant/deathrattle/implant_to_give = new()
|
||||
deathrattle_group.register(implant_to_give)
|
||||
implant_to_give.implant(living_mob, living_mob, TRUE, TRUE)
|
||||
|
||||
@@ -68,6 +68,9 @@
|
||||
|
||||
var/bounty_types = CIV_JOB_BASIC
|
||||
|
||||
///Bitfield of departments this job belongs wit
|
||||
var/departments = NONE
|
||||
|
||||
/// Should this job be allowed to be picked for the bureaucratic error event?
|
||||
var/allow_bureaucratic_error = TRUE
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
exp_type_department = EXP_TYPE_SILICON
|
||||
display_order = JOB_DISPLAY_ORDER_AI
|
||||
allow_bureaucratic_error = FALSE
|
||||
departments = DEPARTMENT_SILICON
|
||||
var/do_special_check = TRUE
|
||||
|
||||
/datum/job/ai/equip(mob/living/carbon/human/H, visualsOnly, announce, latejoin, datum/outfit/outfit_override, client/preference_source = null)
|
||||
|
||||
@@ -13,6 +13,7 @@ Assistant
|
||||
outfit = /datum/outfit/job/assistant
|
||||
antag_rep = 7
|
||||
paycheck = PAYCHECK_ASSISTANT // Get a job. Job reassignment changes your paycheck now. Get over it.
|
||||
departments = DEPARTMENT_SERVICE
|
||||
|
||||
liver_traits = list(TRAIT_GREYTIDE_METABOLISM)
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_ATMOSPHERIC_TECHNICIAN
|
||||
bounty_types = CIV_JOB_ENG
|
||||
departments = DEPARTMENT_ENGINEERING
|
||||
|
||||
/datum/outfit/job/atmos
|
||||
name = "Atmospheric Technician"
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
paycheck_department = ACCOUNT_SRV
|
||||
display_order = JOB_DISPLAY_ORDER_BARTENDER
|
||||
bounty_types = CIV_JOB_DRINK
|
||||
departments = DEPARTMENT_SERVICE
|
||||
|
||||
/datum/outfit/job/bartender
|
||||
name = "Bartender"
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
paycheck_department = ACCOUNT_SRV
|
||||
display_order = JOB_DISPLAY_ORDER_BOTANIST
|
||||
bounty_types = CIV_JOB_GROW
|
||||
departments = DEPARTMENT_SERVICE
|
||||
|
||||
/datum/outfit/job/botanist
|
||||
name = "Botanist"
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
liver_traits = list(TRAIT_ROYAL_METABOLISM)
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_CAPTAIN
|
||||
departments = DEPARTMENT_COMMAND
|
||||
|
||||
/datum/job/captain/get_access()
|
||||
return get_all_accesses()
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
paycheck_department = ACCOUNT_CAR
|
||||
display_order = JOB_DISPLAY_ORDER_CARGO_TECHNICIAN
|
||||
bounty_types = CIV_JOB_RANDOM
|
||||
departments = DEPARTMENT_CARGO
|
||||
|
||||
/datum/outfit/job/cargo_tech
|
||||
name = "Cargo Technician"
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
paycheck_department = ACCOUNT_SRV
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_CHAPLAIN
|
||||
departments = DEPARTMENT_SERVICE
|
||||
|
||||
|
||||
/datum/job/chaplain/after_spawn(mob/living/H, mob/M)
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_CHEMIST
|
||||
bounty_types = CIV_JOB_CHEM
|
||||
departments = DEPARTMENT_MEDICAL
|
||||
|
||||
/datum/outfit/job/chemist
|
||||
name = "Chemist"
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
exp_type_department = EXP_TYPE_ENGINEERING
|
||||
|
||||
outfit = /datum/outfit/job/ce
|
||||
departments = DEPARTMENT_ENGINEERING | DEPARTMENT_COMMAND
|
||||
|
||||
access = list(ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_TECH_STORAGE, ACCESS_MAINT_TUNNELS,
|
||||
ACCESS_EXTERNAL_AIRLOCKS, ACCESS_ATMOSPHERICS, ACCESS_EVA, ACCESS_AUX_BASE,
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
exp_type_department = EXP_TYPE_MEDICAL
|
||||
|
||||
outfit = /datum/outfit/job/cmo
|
||||
departments = DEPARTMENT_MEDICAL | DEPARTMENT_COMMAND
|
||||
|
||||
access = list(ACCESS_MEDICAL, ACCESS_PSYCHOLOGY, ACCESS_MORGUE, ACCESS_PHARMACY, ACCESS_HEADS, ACCESS_MINERAL_STOREROOM,
|
||||
ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_CMO, ACCESS_SURGERY, ACCESS_RC_ANNOUNCE, ACCESS_MECH_MEDICAL,
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
liver_traits = list(TRAIT_COMEDY_METABOLISM)
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_CLOWN
|
||||
departments = DEPARTMENT_SERVICE
|
||||
|
||||
|
||||
/datum/job/clown/after_spawn(mob/living/carbon/human/H, mob/M)
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_COOK
|
||||
bounty_types = CIV_JOB_CHEF
|
||||
departments = DEPARTMENT_SERVICE
|
||||
|
||||
/datum/outfit/job/cook
|
||||
name = "Cook"
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
paycheck_department = ACCOUNT_SRV
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_CURATOR
|
||||
departments = DEPARTMENT_SERVICE
|
||||
|
||||
/datum/outfit/job/curator
|
||||
name = "Curator"
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
exp_type = EXP_TYPE_CREW
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_CYBORG
|
||||
departments = DEPARTMENT_SILICON
|
||||
|
||||
/datum/job/cyborg/equip(mob/living/carbon/human/H, visualsOnly = FALSE, announce = TRUE, latejoin = FALSE, datum/outfit/outfit_override = null, client/preference_source = null)
|
||||
if(visualsOnly)
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
exp_type = EXP_TYPE_CREW
|
||||
|
||||
outfit = /datum/outfit/job/detective
|
||||
departments = DEPARTMENT_SECURITY
|
||||
|
||||
access = list(ACCESS_SEC_DOORS, ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_MECH_SECURITY, ACCESS_COURT, ACCESS_BRIG, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM)
|
||||
minimal_access = list(ACCESS_SEC_DOORS, ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_MECH_SECURITY, ACCESS_COURT, ACCESS_BRIG, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM)
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
exp_requirements = 60
|
||||
|
||||
outfit = /datum/outfit/job/geneticist
|
||||
departments = DEPARTMENT_MEDICAL
|
||||
|
||||
access = list(ACCESS_MORGUE, ACCESS_GENETICS, ACCESS_MECH_SCIENCE, ACCESS_RESEARCH, ACCESS_XENOBIOLOGY, ACCESS_ROBOTICS, ACCESS_MINERAL_STOREROOM, ACCESS_TECH_STORAGE, ACCESS_RND)
|
||||
minimal_access = list(ACCESS_MORGUE, ACCESS_GENETICS, ACCESS_MECH_SCIENCE, ACCESS_RESEARCH, ACCESS_MINERAL_STOREROOM, ACCESS_RND)
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
exp_type_department = EXP_TYPE_SERVICE
|
||||
|
||||
outfit = /datum/outfit/job/hop
|
||||
departments = DEPARTMENT_COMMAND | DEPARTMENT_SERVICE
|
||||
|
||||
//SKYRAT EDIT CHANGE BEGIN
|
||||
/*
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
exp_type_department = EXP_TYPE_SECURITY
|
||||
|
||||
outfit = /datum/outfit/job/hos
|
||||
departments = DEPARTMENT_SECURITY | DEPARTMENT_COMMAND
|
||||
|
||||
mind_traits = list(TRAIT_DONUT_LOVER)
|
||||
liver_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM, TRAIT_ROYAL_METABOLISM)
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
paycheck_department = ACCOUNT_SRV
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_JANITOR
|
||||
departments = DEPARTMENT_SERVICE
|
||||
|
||||
/datum/outfit/job/janitor
|
||||
name = "Janitor"
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
liver_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM)
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_LAWYER
|
||||
departments = DEPARTMENT_SERVICE
|
||||
|
||||
/datum/outfit/job/lawyer
|
||||
name = "Lawyer"
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_MEDICAL_DOCTOR
|
||||
bounty_types = CIV_JOB_MED
|
||||
departments = DEPARTMENT_MEDICAL
|
||||
|
||||
/datum/outfit/job/doctor
|
||||
name = "Medical Doctor"
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
paycheck_department = ACCOUNT_SRV
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_MIME
|
||||
departments = DEPARTMENT_SERVICE
|
||||
|
||||
/datum/job/mime/after_spawn(mob/living/carbon/human/H, mob/M)
|
||||
H.apply_pref_name("mime", M.client)
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_PARAMEDIC
|
||||
bounty_types = CIV_JOB_MED
|
||||
departments = DEPARTMENT_MEDICAL
|
||||
|
||||
/datum/outfit/job/paramedic
|
||||
name = "Paramedic"
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
liver_traits = list(TRAIT_MEDICAL_METABOLISM)
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_PSYCHOLOGIST
|
||||
departments = DEPARTMENT_SERVICE
|
||||
|
||||
/datum/outfit/job/psychologist
|
||||
name = "Psychologist"
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_QUARTERMASTER
|
||||
bounty_types = CIV_JOB_RANDOM
|
||||
departments = DEPARTMENT_CARGO
|
||||
|
||||
/datum/outfit/job/quartermaster
|
||||
name = "Quartermaster"
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
exp_type = EXP_TYPE_CREW
|
||||
|
||||
outfit = /datum/outfit/job/rd
|
||||
departments = DEPARTMENT_SCIENCE | DEPARTMENT_COMMAND
|
||||
|
||||
access = list(ACCESS_RD, ACCESS_HEADS, ACCESS_RND, ACCESS_GENETICS, ACCESS_MORGUE,
|
||||
ACCESS_TOXINS, ACCESS_TELEPORTER, ACCESS_SEC_DOORS, ACCESS_MECH_SCIENCE,
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
bounty_types = CIV_JOB_ROBO
|
||||
|
||||
outfit = /datum/outfit/job/roboticist
|
||||
departments = DEPARTMENT_SCIENCE
|
||||
|
||||
access = list(ACCESS_ROBOTICS, ACCESS_RND, ACCESS_TOXINS, ACCESS_TOXINS_STORAGE, ACCESS_TECH_STORAGE, ACCESS_MORGUE, ACCESS_MECH_SCIENCE,
|
||||
ACCESS_RESEARCH, ACCESS_MINERAL_STOREROOM, ACCESS_XENOBIOLOGY, ACCESS_GENETICS, ACCESS_AUX_BASE)
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_SCIENTIST
|
||||
bounty_types = CIV_JOB_SCI
|
||||
departments = DEPARTMENT_SCIENCE
|
||||
|
||||
/datum/outfit/job/scientist
|
||||
name = "Scientist"
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_SECURITY_OFFICER
|
||||
bounty_types = CIV_JOB_SEC
|
||||
departments = DEPARTMENT_SECURITY
|
||||
|
||||
/datum/job/officer/get_access()
|
||||
var/list/L = list()
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_SHAFT_MINER
|
||||
bounty_types = CIV_JOB_MINE
|
||||
departments = DEPARTMENT_CARGO
|
||||
|
||||
/datum/outfit/job/miner
|
||||
name = "Shaft Miner"
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_STATION_ENGINEER
|
||||
bounty_types = CIV_JOB_ENG
|
||||
departments = DEPARTMENT_ENGINEERING
|
||||
|
||||
/datum/outfit/job/engineer
|
||||
name = "Station Engineer"
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_VIROLOGIST
|
||||
bounty_types = CIV_JOB_VIRO
|
||||
departments = DEPARTMENT_MEDICAL
|
||||
|
||||
/datum/outfit/job/virologist
|
||||
name = "Virologist"
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_WARDEN
|
||||
bounty_types = CIV_JOB_SEC
|
||||
departments = DEPARTMENT_SECURITY
|
||||
|
||||
/datum/job/warden/get_access()
|
||||
var/list/L = list()
|
||||
|
||||
Reference in New Issue
Block a user