April sync (#360)

* Maps and things no code/icons

* helpers defines globalvars

* Onclick world.dm orphaned_procs

* subsystems

Round vote and shuttle autocall done here too

* datums

* Game folder

* Admin - chatter modules

* clothing - mining

* modular computers - zambies

* client

* mob level 1

* mob stage 2 + simple_animal

* silicons n brains

* mob stage 3 + Alien/Monkey

* human mobs

* icons updated

* some sounds

* emitter y u no commit

* update tgstation.dme

* compile fixes

* travis fixes

Also removes Fast digest mode, because reasons.

* tweaks for travis Mentors are broke again

Also fixes Sizeray guns

* oxygen loss fix for vore code.

* removes unused code

* some code updates

* bulk fixes

* further fixes

* outside things

* whoops.

* Maint bar ported

* GLOBs.
This commit is contained in:
Poojawa
2017-04-13 23:37:00 -05:00
committed by GitHub
parent cdc32c98fa
commit 7e9b96a00f
1322 changed files with 174827 additions and 23888 deletions
+194 -194
View File
@@ -1,101 +1,101 @@
/var/const/access_security = 1 // Security equipment
/var/const/access_brig = 2 // Brig timers and permabrig
/var/const/access_armory = 3
/var/const/access_forensics_lockers= 4
/var/const/access_medical = 5
/var/const/access_morgue = 6
/var/const/access_tox = 7
/var/const/access_tox_storage = 8
/var/const/access_genetics = 9
/var/const/access_engine = 10
/var/const/access_engine_equip= 11
/var/const/access_maint_tunnels = 12
/var/const/access_external_airlocks = 13
/var/const/access_emergency_storage = 14
/var/const/access_change_ids = 15
/var/const/access_ai_upload = 16
/var/const/access_teleporter = 17
/var/const/access_eva = 18
/var/const/access_heads = 19
/var/const/access_captain = 20
/var/const/access_all_personal_lockers = 21
/var/const/access_chapel_office = 22
/var/const/access_tech_storage = 23
/var/const/access_atmospherics = 24
/var/const/access_bar = 25
/var/const/access_janitor = 26
/var/const/access_crematorium = 27
/var/const/access_kitchen = 28
/var/const/access_robotics = 29
/var/const/access_rd = 30
/var/const/access_cargo = 31
/var/const/access_construction = 32
/var/const/access_chemistry = 33
/var/const/access_cargo_bot = 34
/var/const/access_hydroponics = 35
/var/const/access_manufacturing = 36
/var/const/access_library = 37
/var/const/access_lawyer = 38
/var/const/access_virology = 39
/var/const/access_cmo = 40
/var/const/access_qm = 41
/var/const/access_court = 42
/var/const/access_surgery = 45
/var/const/access_theatre = 46
/var/const/access_research = 47
/var/const/access_mining = 48
/var/const/access_mining_office = 49 //not in use
/var/const/access_mailsorting = 50
/var/const/access_mint = 51
/var/const/access_mint_vault = 52
/var/const/access_heads_vault = 53
/var/const/access_mining_station = 54
/var/const/access_xenobiology = 55
/var/const/access_ce = 56
/var/const/access_hop = 57
/var/const/access_hos = 58
/var/const/access_RC_announce = 59 //Request console announcements
/var/const/access_keycard_auth = 60 //Used for events which require at least two people to confirm them
/var/const/access_tcomsat = 61 // has access to the entire telecomms satellite / machinery
/var/const/access_gateway = 62
/var/const/access_sec_doors = 63 // Security front doors
/var/const/access_mineral_storeroom = 64
/var/const/access_minisat = 65
/var/const/access_weapons = 66 //Weapon authorization for secbots
/var/const/access_network = 67
/var/const/access_cloning = 68 //Cloning room
GLOBAL_VAR_CONST(access_security, 1) // Security equipment
GLOBAL_VAR_CONST(access_brig, 2) // Brig timers and permabrig
GLOBAL_VAR_CONST(access_armory, 3)
GLOBAL_VAR_CONST(access_forensics_lockers, 4)
GLOBAL_VAR_CONST(access_medical, 5)
GLOBAL_VAR_CONST(access_morgue, 6)
GLOBAL_VAR_CONST(access_tox, 7)
GLOBAL_VAR_CONST(access_tox_storage, 8)
GLOBAL_VAR_CONST(access_genetics, 9)
GLOBAL_VAR_CONST(access_engine, 10)
GLOBAL_VAR_CONST(access_engine_equip, 11)
GLOBAL_VAR_CONST(access_maint_tunnels, 12)
GLOBAL_VAR_CONST(access_external_airlocks, 13)
GLOBAL_VAR_CONST(access_emergency_storage, 14)
GLOBAL_VAR_CONST(access_change_ids, 15)
GLOBAL_VAR_CONST(access_ai_upload, 16)
GLOBAL_VAR_CONST(access_teleporter, 17)
GLOBAL_VAR_CONST(access_eva, 18)
GLOBAL_VAR_CONST(access_heads, 19)
GLOBAL_VAR_CONST(access_captain, 20)
GLOBAL_VAR_CONST(access_all_personal_lockers, 21)
GLOBAL_VAR_CONST(access_chapel_office, 22)
GLOBAL_VAR_CONST(access_tech_storage, 23)
GLOBAL_VAR_CONST(access_atmospherics, 24)
GLOBAL_VAR_CONST(access_bar, 25)
GLOBAL_VAR_CONST(access_janitor, 26)
GLOBAL_VAR_CONST(access_crematorium, 27)
GLOBAL_VAR_CONST(access_kitchen, 28)
GLOBAL_VAR_CONST(access_robotics, 29)
GLOBAL_VAR_CONST(access_rd, 30)
GLOBAL_VAR_CONST(access_cargo, 31)
GLOBAL_VAR_CONST(access_construction, 32)
GLOBAL_VAR_CONST(access_chemistry, 33)
GLOBAL_VAR_CONST(access_cargo_bot, 34)
GLOBAL_VAR_CONST(access_hydroponics, 35)
GLOBAL_VAR_CONST(access_manufacturing, 36)
GLOBAL_VAR_CONST(access_library, 37)
GLOBAL_VAR_CONST(access_lawyer, 38)
GLOBAL_VAR_CONST(access_virology, 39)
GLOBAL_VAR_CONST(access_cmo, 40)
GLOBAL_VAR_CONST(access_qm, 41)
GLOBAL_VAR_CONST(access_court, 42)
GLOBAL_VAR_CONST(access_surgery, 45)
GLOBAL_VAR_CONST(access_theatre, 46)
GLOBAL_VAR_CONST(access_research, 47)
GLOBAL_VAR_CONST(access_mining, 48)
GLOBAL_VAR_CONST(access_mining_office, 49) //not in use
GLOBAL_VAR_CONST(access_mailsorting, 50)
GLOBAL_VAR_CONST(access_mint, 51)
GLOBAL_VAR_CONST(access_mint_vault, 52)
GLOBAL_VAR_CONST(access_heads_vault, 53)
GLOBAL_VAR_CONST(access_mining_station, 54)
GLOBAL_VAR_CONST(access_xenobiology, 55)
GLOBAL_VAR_CONST(access_ce, 56)
GLOBAL_VAR_CONST(access_hop, 57)
GLOBAL_VAR_CONST(access_hos, 58)
GLOBAL_VAR_CONST(access_RC_announce, 59) //Request console announcements
GLOBAL_VAR_CONST(access_keycard_auth, 60) //Used for events which require at least two people to confirm them
GLOBAL_VAR_CONST(access_tcomsat, 61) // has access to the entire telecomms satellite / machinery
GLOBAL_VAR_CONST(access_gateway, 62)
GLOBAL_VAR_CONST(access_sec_doors, 63) // Security front doors
GLOBAL_VAR_CONST(access_mineral_storeroom, 64)
GLOBAL_VAR_CONST(access_minisat, 65)
GLOBAL_VAR_CONST(access_weapons, 66) //Weapon authorization for secbots
GLOBAL_VAR_CONST(access_network, 67)
GLOBAL_VAR_CONST(access_cloning, 68) //Cloning room
//BEGIN CENTCOM ACCESS
/*Should leave plenty of room if we need to add more access levels.
/var/const/Mostly for admin fun times.*/
/var/const/access_cent_general = 101//General facilities.
/var/const/access_cent_thunder = 102//Thunderdome.
/var/const/access_cent_specops = 103//Special Ops.
/var/const/access_cent_medical = 104//Medical/Research
/var/const/access_cent_living = 105//Living quarters.
/var/const/access_cent_storage = 106//Generic storage areas.
/var/const/access_cent_teleporter = 107//Teleporter.
/var/const/access_cent_captain = 109//Captain's office/ID comp/AI.
/var/const/access_cent_bar = 110 // The non-existent Centcom Bar
Mostly for admin fun times.*/
GLOBAL_VAR_CONST(access_cent_general, 101)//General facilities.
GLOBAL_VAR_CONST(access_cent_thunder, 102)//Thunderdome.
GLOBAL_VAR_CONST(access_cent_specops, 103)//Special Ops.
GLOBAL_VAR_CONST(access_cent_medical, 104)//Medical/Research
GLOBAL_VAR_CONST(access_cent_living, 105)//Living quarters.
GLOBAL_VAR_CONST(access_cent_storage, 106)//Generic storage areas.
GLOBAL_VAR_CONST(access_cent_teleporter, 107)//Teleporter.
GLOBAL_VAR_CONST(access_cent_captain, 109)//Captain's office/ID comp/AI.
GLOBAL_VAR_CONST(access_cent_bar, 110) // The non-existent Centcom Bar
//The Syndicate
/var/const/access_syndicate = 150//General Syndicate Access
/var/const/access_syndicate_leader = 151//Nuke Op Leader Access
GLOBAL_VAR_CONST(access_syndicate, 150)//General Syndicate Access
GLOBAL_VAR_CONST(access_syndicate_leader, 151)//Nuke Op Leader Access
//Away Missions or Ruins
/*For generic away-mission/ruin access. Why would normal crew have access to a long-abandoned derelict
or a 2000 year-old temple? */
/var/const/access_away_general = 200//General facilities.
/var/const/access_away_maint = 201//Away maintenance
/var/const/access_away_med = 202//Away medical
/var/const/access_away_sec = 203//Away security
/var/const/access_away_engine = 204//Away engineering
/var/const/access_away_generic1 = 205//Away generic access
/var/const/access_away_generic2 = 206
/var/const/access_away_generic3 = 207
/var/const/access_away_generic4 = 208
GLOBAL_VAR_CONST(access_away_general, 200)//General facilities.
GLOBAL_VAR_CONST(access_away_maint, 201)//Away maintenance
GLOBAL_VAR_CONST(access_away_med, 202)//Away medical
GLOBAL_VAR_CONST(access_away_sec, 203)//Away security
GLOBAL_VAR_CONST(access_away_engine, 204)//Away engineering
GLOBAL_VAR_CONST(access_away_generic1, 205)//Away generic access
GLOBAL_VAR_CONST(access_away_generic2, 206)
GLOBAL_VAR_CONST(access_away_generic3, 207)
GLOBAL_VAR_CONST(access_away_generic4, 208)
/obj/var/list/req_access = null
/obj/var/req_access_txt = "0"
@@ -203,21 +203,21 @@
/proc/get_centcom_access(job)
switch(job)
if("VIP Guest")
return list(access_cent_general)
return list(GLOB.access_cent_general)
if("Custodian")
return list(access_cent_general, access_cent_living, access_cent_storage)
return list(GLOB.access_cent_general, GLOB.access_cent_living, GLOB.access_cent_storage)
if("Thunderdome Overseer")
return list(access_cent_general, access_cent_thunder)
return list(GLOB.access_cent_general, GLOB.access_cent_thunder)
if("Centcom Official")
return list(access_cent_general, access_cent_living)
return list(GLOB.access_cent_general, GLOB.access_cent_living)
if("Medical Officer")
return list(access_cent_general, access_cent_living, access_cent_medical)
return list(GLOB.access_cent_general, GLOB.access_cent_living, GLOB.access_cent_medical)
if("Death Commando")
return list(access_cent_general, access_cent_specops, access_cent_living, access_cent_storage)
return list(GLOB.access_cent_general, GLOB.access_cent_specops, GLOB.access_cent_living, GLOB.access_cent_storage)
if("Research Officer")
return list(access_cent_general, access_cent_specops, access_cent_medical, access_cent_teleporter, access_cent_storage)
return list(GLOB.access_cent_general, GLOB.access_cent_specops, GLOB.access_cent_medical, GLOB.access_cent_teleporter, GLOB.access_cent_storage)
if("Special Ops Officer")
return list(access_cent_general, access_cent_thunder, access_cent_specops, access_cent_living, access_cent_storage)
return list(GLOB.access_cent_general, GLOB.access_cent_thunder, GLOB.access_cent_specops, GLOB.access_cent_living, GLOB.access_cent_storage)
if("Admiral")
return get_all_centcom_access()
if("Centcom Commander")
@@ -231,56 +231,56 @@
if("Medical Response Officer")
return get_ert_access("med")
if("Centcom Bartender")
return list(access_cent_general, access_cent_living, access_cent_bar)
return list(GLOB.access_cent_general, GLOB.access_cent_living, GLOB.access_cent_bar)
/proc/get_all_accesses()
return list(access_security, access_sec_doors, access_brig, access_armory, access_forensics_lockers, access_court,
access_medical, access_genetics, access_morgue, access_rd,
access_tox, access_tox_storage, access_chemistry, access_engine, access_engine_equip, access_maint_tunnels,
access_external_airlocks, access_change_ids, access_ai_upload,
access_teleporter, access_eva, access_heads, access_captain, access_all_personal_lockers,
access_tech_storage, access_chapel_office, access_atmospherics, access_kitchen,
access_bar, access_janitor, access_crematorium, access_robotics, access_cargo, access_construction,
access_hydroponics, access_library, access_lawyer, access_virology, access_cmo, access_qm, access_surgery,
access_theatre, access_research, access_mining, access_mailsorting, access_weapons,
access_heads_vault, access_mining_station, access_xenobiology, access_ce, access_hop, access_hos, access_RC_announce,
access_keycard_auth, access_tcomsat, access_gateway, access_mineral_storeroom, access_minisat, access_network, access_cloning)
return list(GLOB.access_security, GLOB.access_sec_doors, GLOB.access_brig, GLOB.access_armory, GLOB.access_forensics_lockers, GLOB.access_court,
GLOB.access_medical, GLOB.access_genetics, GLOB.access_morgue, GLOB.access_rd,
GLOB.access_tox, GLOB.access_tox_storage, GLOB.access_chemistry, GLOB.access_engine, GLOB.access_engine_equip, GLOB.access_maint_tunnels,
GLOB.access_external_airlocks, GLOB.access_change_ids, GLOB.access_ai_upload,
GLOB.access_teleporter, GLOB.access_eva, GLOB.access_heads, GLOB.access_captain, GLOB.access_all_personal_lockers,
GLOB.access_tech_storage, GLOB.access_chapel_office, GLOB.access_atmospherics, GLOB.access_kitchen,
GLOB.access_bar, GLOB.access_janitor, GLOB.access_crematorium, GLOB.access_robotics, GLOB.access_cargo, GLOB.access_construction,
GLOB.access_hydroponics, GLOB.access_library, GLOB.access_lawyer, GLOB.access_virology, GLOB.access_cmo, GLOB.access_qm, GLOB.access_surgery,
GLOB.access_theatre, GLOB.access_research, GLOB.access_mining, GLOB.access_mailsorting, GLOB.access_weapons,
GLOB.access_heads_vault, GLOB.access_mining_station, GLOB.access_xenobiology, GLOB.access_ce, GLOB.access_hop, GLOB.access_hos, GLOB.access_RC_announce,
GLOB.access_keycard_auth, GLOB.access_tcomsat, GLOB.access_gateway, GLOB.access_mineral_storeroom, GLOB.access_minisat, GLOB.access_network, GLOB.access_cloning)
/proc/get_all_centcom_access()
return list(access_cent_general, access_cent_thunder, access_cent_specops, access_cent_medical, access_cent_living, access_cent_storage, access_cent_teleporter, access_cent_captain)
return list(GLOB.access_cent_general, GLOB.access_cent_thunder, GLOB.access_cent_specops, GLOB.access_cent_medical, GLOB.access_cent_living, GLOB.access_cent_storage, GLOB.access_cent_teleporter, GLOB.access_cent_captain)
/proc/get_ert_access(class)
switch(class)
if("commander")
return get_all_centcom_access()
if("sec")
return list(access_cent_general, access_cent_specops, access_cent_living)
return list(GLOB.access_cent_general, GLOB.access_cent_specops, GLOB.access_cent_living)
if("eng")
return list(access_cent_general, access_cent_specops, access_cent_living, access_cent_storage)
return list(GLOB.access_cent_general, GLOB.access_cent_specops, GLOB.access_cent_living, GLOB.access_cent_storage)
if("med")
return list(access_cent_general, access_cent_specops, access_cent_medical, access_cent_living)
return list(GLOB.access_cent_general, GLOB.access_cent_specops, GLOB.access_cent_medical, GLOB.access_cent_living)
/proc/get_all_syndicate_access()
return list(access_syndicate, access_syndicate)
return list(GLOB.access_syndicate, GLOB.access_syndicate)
/proc/get_region_accesses(code)
switch(code)
if(0)
return get_all_accesses()
if(1) //station general
return list(access_kitchen,access_bar, access_hydroponics, access_janitor, access_chapel_office, access_crematorium, access_library, access_theatre, access_lawyer)
return list(GLOB.access_kitchen,GLOB.access_bar, GLOB.access_hydroponics, GLOB.access_janitor, GLOB.access_chapel_office, GLOB.access_crematorium, GLOB.access_library, GLOB.access_theatre, GLOB.access_lawyer)
if(2) //security
return list(access_sec_doors, access_weapons, access_security, access_brig, access_armory, access_forensics_lockers, access_court, access_hos)
return list(GLOB.access_sec_doors, GLOB.access_weapons, GLOB.access_security, GLOB.access_brig, GLOB.access_armory, GLOB.access_forensics_lockers, GLOB.access_court, GLOB.access_hos)
if(3) //medbay
return list(access_medical, access_genetics, access_cloning, access_morgue, access_chemistry, access_virology, access_surgery, access_cmo)
return list(GLOB.access_medical, GLOB.access_genetics, GLOB.access_cloning, GLOB.access_morgue, GLOB.access_chemistry, GLOB.access_virology, GLOB.access_surgery, GLOB.access_cmo)
if(4) //research
return list(access_research, access_tox, access_tox_storage, access_genetics, access_robotics, access_xenobiology, access_minisat, access_rd, access_network)
return list(GLOB.access_research, GLOB.access_tox, GLOB.access_tox_storage, GLOB.access_genetics, GLOB.access_robotics, GLOB.access_xenobiology, GLOB.access_minisat, GLOB.access_rd, GLOB.access_network)
if(5) //engineering and maintenance
return list(access_construction, access_maint_tunnels, access_engine, access_engine_equip, access_external_airlocks, access_tech_storage, access_atmospherics, access_tcomsat, access_minisat, access_ce)
return list(GLOB.access_construction, GLOB.access_maint_tunnels, GLOB.access_engine, GLOB.access_engine_equip, GLOB.access_external_airlocks, GLOB.access_tech_storage, GLOB.access_atmospherics, GLOB.access_tcomsat, GLOB.access_minisat, GLOB.access_ce)
if(6) //supply
return list(access_mailsorting, access_mining, access_mining_station, access_mineral_storeroom, access_cargo, access_qm)
return list(GLOB.access_mailsorting, GLOB.access_mining, GLOB.access_mining_station, GLOB.access_mineral_storeroom, GLOB.access_cargo, GLOB.access_qm)
if(7) //command
return list(access_heads, access_RC_announce, access_keycard_auth, access_change_ids, access_ai_upload, access_teleporter, access_eva, access_gateway, access_all_personal_lockers, access_heads_vault, access_hop, access_captain)
return list(GLOB.access_heads, GLOB.access_RC_announce, GLOB.access_keycard_auth, GLOB.access_change_ids, GLOB.access_ai_upload, GLOB.access_teleporter, GLOB.access_eva, GLOB.access_gateway, GLOB.access_all_personal_lockers, GLOB.access_heads_vault, GLOB.access_hop, GLOB.access_captain)
/proc/get_region_accesses_name(code)
switch(code)
@@ -303,158 +303,158 @@
/proc/get_access_desc(A)
switch(A)
if(access_cargo)
if(GLOB.access_cargo)
return "Cargo Bay"
if(access_cargo_bot)
if(GLOB.access_cargo_bot)
return "Delivery Chutes"
if(access_security)
if(GLOB.access_security)
return "Security"
if(access_brig)
if(GLOB.access_brig)
return "Holding Cells"
if(access_court)
if(GLOB.access_court)
return "Courtroom"
if(access_forensics_lockers)
if(GLOB.access_forensics_lockers)
return "Forensics"
if(access_medical)
if(GLOB.access_medical)
return "Medical"
if(access_genetics)
if(GLOB.access_genetics)
return "Genetics Lab"
if(access_morgue)
if(GLOB.access_morgue)
return "Morgue"
if(access_tox)
if(GLOB.access_tox)
return "R&D Lab"
if(access_tox_storage)
if(GLOB.access_tox_storage)
return "Toxins Lab"
if(access_chemistry)
if(GLOB.access_chemistry)
return "Chemistry Lab"
if(access_rd)
if(GLOB.access_rd)
return "RD Office"
if(access_bar)
if(GLOB.access_bar)
return "Bar"
if(access_janitor)
if(GLOB.access_janitor)
return "Custodial Closet"
if(access_engine)
if(GLOB.access_engine)
return "Engineering"
if(access_engine_equip)
if(GLOB.access_engine_equip)
return "Power Equipment"
if(access_maint_tunnels)
if(GLOB.access_maint_tunnels)
return "Maintenance"
if(access_external_airlocks)
if(GLOB.access_external_airlocks)
return "External Airlocks"
if(access_emergency_storage)
if(GLOB.access_emergency_storage)
return "Emergency Storage"
if(access_change_ids)
if(GLOB.access_change_ids)
return "ID Console"
if(access_ai_upload)
if(GLOB.access_ai_upload)
return "AI Chambers"
if(access_teleporter)
if(GLOB.access_teleporter)
return "Teleporter"
if(access_eva)
if(GLOB.access_eva)
return "EVA"
if(access_heads)
if(GLOB.access_heads)
return "Bridge"
if(access_captain)
if(GLOB.access_captain)
return "Captain"
if(access_all_personal_lockers)
if(GLOB.access_all_personal_lockers)
return "Personal Lockers"
if(access_chapel_office)
if(GLOB.access_chapel_office)
return "Chapel Office"
if(access_tech_storage)
if(GLOB.access_tech_storage)
return "Technical Storage"
if(access_atmospherics)
if(GLOB.access_atmospherics)
return "Atmospherics"
if(access_crematorium)
if(GLOB.access_crematorium)
return "Crematorium"
if(access_armory)
if(GLOB.access_armory)
return "Armory"
if(access_construction)
if(GLOB.access_construction)
return "Construction"
if(access_kitchen)
if(GLOB.access_kitchen)
return "Kitchen"
if(access_hydroponics)
if(GLOB.access_hydroponics)
return "Hydroponics"
if(access_library)
if(GLOB.access_library)
return "Library"
if(access_lawyer)
if(GLOB.access_lawyer)
return "Law Office"
if(access_robotics)
if(GLOB.access_robotics)
return "Robotics"
if(access_virology)
if(GLOB.access_virology)
return "Virology"
if(access_cmo)
if(GLOB.access_cmo)
return "CMO Office"
if(access_qm)
if(GLOB.access_qm)
return "Quartermaster"
if(access_surgery)
if(GLOB.access_surgery)
return "Surgery"
if(access_theatre)
if(GLOB.access_theatre)
return "Theatre"
if(access_manufacturing)
if(GLOB.access_manufacturing)
return "Manufacturing"
if(access_research)
if(GLOB.access_research)
return "Science"
if(access_mining)
if(GLOB.access_mining)
return "Mining"
if(access_mining_office)
if(GLOB.access_mining_office)
return "Mining Office"
if(access_mailsorting)
if(GLOB.access_mailsorting)
return "Cargo Office"
if(access_mint)
if(GLOB.access_mint)
return "Mint"
if(access_mint_vault)
if(GLOB.access_mint_vault)
return "Mint Vault"
if(access_heads_vault)
if(GLOB.access_heads_vault)
return "Main Vault"
if(access_mining_station)
if(GLOB.access_mining_station)
return "Mining EVA"
if(access_xenobiology)
if(GLOB.access_xenobiology)
return "Xenobiology Lab"
if(access_hop)
if(GLOB.access_hop)
return "HoP Office"
if(access_hos)
if(GLOB.access_hos)
return "HoS Office"
if(access_ce)
if(GLOB.access_ce)
return "CE Office"
if(access_RC_announce)
if(GLOB.access_RC_announce)
return "RC Announcements"
if(access_keycard_auth)
if(GLOB.access_keycard_auth)
return "Keycode Auth."
if(access_tcomsat)
if(GLOB.access_tcomsat)
return "Telecommunications"
if(access_gateway)
if(GLOB.access_gateway)
return "Gateway"
if(access_sec_doors)
if(GLOB.access_sec_doors)
return "Brig"
if(access_mineral_storeroom)
if(GLOB.access_mineral_storeroom)
return "Mineral Storage"
if(access_minisat)
if(GLOB.access_minisat)
return "AI Satellite"
if(access_weapons)
if(GLOB.access_weapons)
return "Weapon Permit"
if(access_network)
if(GLOB.access_network)
return "Network Access"
if(access_cloning)
if(GLOB.access_cloning)
return "Cloning Room"
/proc/get_centcom_access_desc(A)
switch(A)
if(access_cent_general)
if(GLOB.access_cent_general)
return "Code Grey"
if(access_cent_thunder)
if(GLOB.access_cent_thunder)
return "Code Yellow"
if(access_cent_storage)
if(GLOB.access_cent_storage)
return "Code Orange"
if(access_cent_living)
if(GLOB.access_cent_living)
return "Code Green"
if(access_cent_medical)
if(GLOB.access_cent_medical)
return "Code White"
if(access_cent_teleporter)
if(GLOB.access_cent_teleporter)
return "Code Blue"
if(access_cent_specops)
if(GLOB.access_cent_specops)
return "Code Black"
if(access_cent_captain)
if(GLOB.access_cent_captain)
return "Code Gold"
if(access_cent_bar)
if(GLOB.access_cent_bar)
return "Code Scotch"
/proc/get_all_jobs()
+1 -1
View File
@@ -18,7 +18,7 @@ Assistant
/datum/job/assistant/get_access()
if((config.jobs_have_maint_access & ASSISTANTS_HAVE_MAINT_ACCESS) || !config.jobs_have_minimal_access) //Config has assistant maint access set
. = ..()
. |= list(access_maint_tunnels)
. |= list(GLOB.access_maint_tunnels)
else
return ..()
+13 -13
View File
@@ -24,7 +24,7 @@ Captain
/datum/job/captain/announce(mob/living/carbon/human/H)
..()
minor_announce("Captain [H.real_name] on deck!")
SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, .proc/minor_announce, "Captain [H.real_name] on deck!"))
/datum/outfit/job/captain
name = "Captain"
@@ -67,18 +67,18 @@ Head of Personnel
outfit = /datum/outfit/job/hop
access = list(access_security, access_sec_doors, access_court, access_weapons,
access_medical, 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_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer,
access_theatre, access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station,
access_hop, access_RC_announce, access_keycard_auth, access_gateway, access_mineral_storeroom)
minimal_access = list(access_security, access_sec_doors, access_court, access_weapons,
access_medical, 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_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer,
access_theatre, access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station,
access_hop, access_RC_announce, access_keycard_auth, access_gateway, access_mineral_storeroom)
access = list(GLOB.access_security, GLOB.access_sec_doors, GLOB.access_court, GLOB.access_weapons,
GLOB.access_medical, GLOB.access_engine, GLOB.access_change_ids, GLOB.access_ai_upload, GLOB.access_eva, GLOB.access_heads,
GLOB.access_all_personal_lockers, GLOB.access_maint_tunnels, GLOB.access_bar, GLOB.access_janitor, GLOB.access_construction, GLOB.access_morgue,
GLOB.access_crematorium, GLOB.access_kitchen, GLOB.access_cargo, GLOB.access_cargo_bot, GLOB.access_mailsorting, GLOB.access_qm, GLOB.access_hydroponics, GLOB.access_lawyer,
GLOB.access_theatre, GLOB.access_chapel_office, GLOB.access_library, GLOB.access_research, GLOB.access_mining, GLOB.access_heads_vault, GLOB.access_mining_station,
GLOB.access_hop, GLOB.access_RC_announce, GLOB.access_keycard_auth, GLOB.access_gateway, GLOB.access_mineral_storeroom)
minimal_access = list(GLOB.access_security, GLOB.access_sec_doors, GLOB.access_court, GLOB.access_weapons,
GLOB.access_medical, GLOB.access_engine, GLOB.access_change_ids, GLOB.access_ai_upload, GLOB.access_eva, GLOB.access_heads,
GLOB.access_all_personal_lockers, GLOB.access_maint_tunnels, GLOB.access_bar, GLOB.access_janitor, GLOB.access_construction, GLOB.access_morgue,
GLOB.access_crematorium, GLOB.access_kitchen, GLOB.access_cargo, GLOB.access_cargo_bot, GLOB.access_mailsorting, GLOB.access_qm, GLOB.access_hydroponics, GLOB.access_lawyer,
GLOB.access_theatre, GLOB.access_chapel_office, GLOB.access_library, GLOB.access_research, GLOB.access_mining, GLOB.access_heads_vault, GLOB.access_mining_station,
GLOB.access_hop, GLOB.access_RC_announce, GLOB.access_keycard_auth, GLOB.access_gateway, GLOB.access_mineral_storeroom)
/datum/outfit/job/hop
+14 -14
View File
@@ -14,8 +14,8 @@ Quartermaster
outfit = /datum/outfit/job/quartermaster
access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station, access_mineral_storeroom)
minimal_access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station, access_mineral_storeroom)
access = list(GLOB.access_maint_tunnels, GLOB.access_mailsorting, GLOB.access_cargo, GLOB.access_cargo_bot, GLOB.access_qm, GLOB.access_mining, GLOB.access_mining_station, GLOB.access_mineral_storeroom)
minimal_access = list(GLOB.access_maint_tunnels, GLOB.access_mailsorting, GLOB.access_cargo, GLOB.access_cargo_bot, GLOB.access_qm, GLOB.access_mining, GLOB.access_mining_station, GLOB.access_mineral_storeroom)
/datum/outfit/job/quartermaster
name = "Quartermaster"
@@ -44,8 +44,8 @@ Cargo Technician
outfit = /datum/outfit/job/cargo_tech
access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station, access_mineral_storeroom)
minimal_access = list(access_maint_tunnels, access_cargo, access_cargo_bot, access_mailsorting, access_mineral_storeroom)
access = list(GLOB.access_maint_tunnels, GLOB.access_mailsorting, GLOB.access_cargo, GLOB.access_cargo_bot, GLOB.access_qm, GLOB.access_mining, GLOB.access_mining_station, GLOB.access_mineral_storeroom)
minimal_access = list(GLOB.access_maint_tunnels, GLOB.access_cargo, GLOB.access_cargo_bot, GLOB.access_mailsorting, GLOB.access_mineral_storeroom)
/datum/outfit/job/cargo_tech
name = "Cargo Technician"
@@ -72,8 +72,8 @@ Shaft Miner
outfit = /datum/outfit/job/miner
access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station, access_mineral_storeroom)
minimal_access = list(access_mining, access_mining_station, access_mailsorting, access_mineral_storeroom)
access = list(GLOB.access_maint_tunnels, GLOB.access_mailsorting, GLOB.access_cargo, GLOB.access_cargo_bot, GLOB.access_qm, GLOB.access_mining, GLOB.access_mining_station, GLOB.access_mineral_storeroom)
minimal_access = list(GLOB.access_mining, GLOB.access_mining_station, GLOB.access_mailsorting, GLOB.access_mineral_storeroom)
/datum/outfit/job/miner
name = "Shaft Miner (Lavaland)"
@@ -148,8 +148,8 @@ Bartender
outfit = /datum/outfit/job/bartender
access = list(access_hydroponics, access_bar, access_kitchen, access_morgue, access_weapons)
minimal_access = list(access_bar)
access = list(GLOB.access_hydroponics, GLOB.access_bar, GLOB.access_kitchen, GLOB.access_morgue, GLOB.access_weapons)
minimal_access = list(GLOB.access_bar)
/datum/outfit/job/bartender
@@ -181,8 +181,8 @@ Cook
outfit = /datum/outfit/job/cook
access = list(access_hydroponics, access_bar, access_kitchen, access_morgue)
minimal_access = list(access_kitchen, access_morgue)
access = list(GLOB.access_hydroponics, GLOB.access_bar, GLOB.access_kitchen, GLOB.access_morgue)
minimal_access = list(GLOB.access_kitchen, GLOB.access_morgue)
/datum/outfit/job/cook
name = "Cook"
@@ -228,8 +228,8 @@ Botanist
outfit = /datum/outfit/job/botanist
access = list(access_hydroponics, access_bar, access_kitchen, access_morgue)
minimal_access = list(access_hydroponics, access_morgue)
access = list(GLOB.access_hydroponics, GLOB.access_bar, GLOB.access_kitchen, GLOB.access_morgue)
minimal_access = list(GLOB.access_hydroponics, GLOB.access_morgue)
// Removed tox and chem access because STOP PISSING OFF THE CHEMIST GUYS
// Removed medical access because WHAT THE FUCK YOU AREN'T A DOCTOR YOU GROW WHEAT
// Given Morgue access because they have a viable means of cloning.
@@ -267,8 +267,8 @@ Janitor
outfit = /datum/outfit/job/janitor
access = list(access_janitor, access_maint_tunnels)
minimal_access = list(access_janitor, access_maint_tunnels)
access = list(GLOB.access_janitor, GLOB.access_maint_tunnels)
minimal_access = list(GLOB.access_janitor, GLOB.access_maint_tunnels)
/datum/outfit/job/janitor
name = "Janitor"
+9 -9
View File
@@ -14,8 +14,8 @@ Clown
outfit = /datum/outfit/job/clown
access = list(access_theatre)
minimal_access = list(access_theatre)
access = list(GLOB.access_theatre)
minimal_access = list(GLOB.access_theatre)
/datum/job/clown/after_spawn(mob/living/carbon/human/H, mob/M)
H.rename_self("clown", M.client)
@@ -52,7 +52,7 @@ Clown
if(visualsOnly)
return
H.fully_replace_character_name(H.real_name, pick(clown_names))
H.fully_replace_character_name(H.real_name, pick(GLOB.clown_names))
/datum/outfit/job/clown/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
..()
@@ -77,8 +77,8 @@ Mime
outfit = /datum/outfit/job/mime
access = list(access_theatre)
minimal_access = list(access_theatre)
access = list(GLOB.access_theatre)
minimal_access = list(GLOB.access_theatre)
/datum/job/mime/after_spawn(mob/living/carbon/human/H, mob/M)
H.rename_self("mime", M.client)
@@ -127,8 +127,8 @@ Librarian
outfit = /datum/outfit/job/librarian
access = list(access_library)
minimal_access = list(access_library)
access = list(GLOB.access_library)
minimal_access = list(GLOB.access_library)
/datum/outfit/job/librarian
name = "Librarian"
@@ -160,8 +160,8 @@ Lawyer
outfit = /datum/outfit/job/lawyer
access = list(access_lawyer, access_court, access_sec_doors)
minimal_access = list(access_lawyer, access_court, access_sec_doors)
access = list(GLOB.access_lawyer, GLOB.access_court, GLOB.access_sec_doors)
minimal_access = list(GLOB.access_lawyer, GLOB.access_court, GLOB.access_sec_doors)
/datum/outfit/job/lawyer
name = "Lawyer"
@@ -15,45 +15,36 @@ Chaplain
outfit = /datum/outfit/job/chaplain
access = list(access_morgue, access_chapel_office, access_crematorium)
minimal_access = list(access_morgue, access_chapel_office, access_crematorium)
/datum/outfit/job/chaplain
name = "Chaplain"
jobtype = /datum/job/chaplain
belt = /obj/item/device/pda/chaplain
uniform = /obj/item/clothing/under/rank/chaplain
backpack_contents = list(/obj/item/device/camera/spooky = 1)
backpack = /obj/item/weapon/storage/backpack/cultpack
satchel = /obj/item/weapon/storage/backpack/cultpack
/datum/outfit/job/chaplain/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
..()
if(visualsOnly)
return
access = list(GLOB.access_morgue, GLOB.access_chapel_office, GLOB.access_crematorium, GLOB.access_theatre)
minimal_access = list(GLOB.access_morgue, GLOB.access_chapel_office, GLOB.access_crematorium, GLOB.access_theatre)
/datum/job/chaplain/after_spawn(mob/living/H, mob/M)
if(H.mind)
H.mind.isholy = TRUE
var/obj/item/weapon/storage/book/bible/B = new /obj/item/weapon/storage/book/bible/booze(H)
var/obj/item/weapon/storage/book/bible/booze/B = new
if(SSreligion.Bible_deity_name)
B.deity_name = SSreligion.Bible_deity_name
B.name = SSreligion.Bible_name
B.icon_state = SSreligion.Bible_icon_state
B.item_state = SSreligion.Bible_item_state
to_chat(H, "There is already an established religion onboard the station. You are an acolyte of [SSreligion.Bible_deity_name]. Defer to the Chaplain.")
if(SSreligion.religion)
B.deity_name = SSreligion.deity
B.name = SSreligion.bible_name
B.icon_state = SSreligion.bible_icon_state
B.item_state = SSreligion.bible_item_state
to_chat(H, "There is already an established religion onboard the station. You are an acolyte of [SSreligion.deity]. Defer to the Chaplain.")
H.equip_to_slot_or_del(B, slot_in_backpack)
var/obj/item/weapon/nullrod/N = new(H)
var/obj/item/weapon/nullrod/N = new SSreligion.holy_weapon_type(H)
H.equip_to_slot_or_del(N, slot_in_backpack)
return
var/new_religion = "Christianity"
if(H.client && H.client.prefs.custom_names["religion"])
new_religion = H.client.prefs.custom_names["religion"]
if(M.client && M.client.prefs.custom_names["religion"])
new_religion = M.client.prefs.custom_names["religion"]
var/new_deity = "Space Jesus"
if(M.client && M.client.prefs.custom_names["deity"])
new_deity = M.client.prefs.custom_names["deity"]
B.deity_name = new_deity
switch(lowertext(new_religion))
if("christianity")
@@ -81,14 +72,24 @@ Chaplain
B.name = pick("Principle of Relativity", "Quantum Enigma: Physics Encounters Consciousness", "Programming the Universe", "Quantum Physics and Theology", "String Theory for Dummies", "How To: Build Your Own Warp Drive", "The Mysteries of Bluespace", "Playing God: Collector's Edition")
else
B.name = "The Holy Book of [new_religion]"
feedback_set_details("religion_name","[new_religion]")
SSreligion.Bible_name = B.name
var/new_deity = "Space Jesus"
if(H.client && H.client.prefs.custom_names["deity"])
new_deity = H.client.prefs.custom_names["deity"]
B.deity_name = new_deity
SSreligion.Bible_deity_name = B.deity_name
feedback_set_details("religion_deity","[new_deity]")
if(SSreligion)
SSreligion.religion = new_religion
SSreligion.bible_name = B.name
SSreligion.deity = B.deity_name
H.equip_to_slot_or_del(B, slot_in_backpack)
feedback_set_details("religion_name","[new_religion]")
feedback_set_details("religion_deity","[new_deity]")
/datum/outfit/job/chaplain
name = "Chaplain"
jobtype = /datum/job/chaplain
belt = /obj/item/device/pda/chaplain
uniform = /obj/item/clothing/under/rank/chaplain
backpack_contents = list(/obj/item/device/camera/spooky = 1)
backpack = /obj/item/weapon/storage/backpack/cultpack
satchel = /obj/item/weapon/storage/backpack/cultpack
+15 -15
View File
@@ -17,14 +17,14 @@ Chief Engineer
outfit = /datum/outfit/job/ce
access = list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels,
access_external_airlocks, access_atmospherics, access_emergency_storage, access_eva,
access_heads, access_construction, access_sec_doors, access_minisat,
access_ce, access_RC_announce, access_keycard_auth, access_tcomsat, access_mineral_storeroom)
minimal_access = list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels,
access_external_airlocks, access_atmospherics, access_emergency_storage, access_eva,
access_heads, access_construction, access_sec_doors, access_minisat,
access_ce, access_RC_announce, access_keycard_auth, access_tcomsat, access_mineral_storeroom)
access = list(GLOB.access_engine, GLOB.access_engine_equip, GLOB.access_tech_storage, GLOB.access_maint_tunnels,
GLOB.access_external_airlocks, GLOB.access_atmospherics, GLOB.access_emergency_storage, GLOB.access_eva,
GLOB.access_heads, GLOB.access_construction, GLOB.access_sec_doors, GLOB.access_minisat,
GLOB.access_ce, GLOB.access_RC_announce, GLOB.access_keycard_auth, GLOB.access_tcomsat, GLOB.access_mineral_storeroom)
minimal_access = list(GLOB.access_engine, GLOB.access_engine_equip, GLOB.access_tech_storage, GLOB.access_maint_tunnels,
GLOB.access_external_airlocks, GLOB.access_atmospherics, GLOB.access_emergency_storage, GLOB.access_eva,
GLOB.access_heads, GLOB.access_construction, GLOB.access_sec_doors, GLOB.access_minisat,
GLOB.access_ce, GLOB.access_RC_announce, GLOB.access_keycard_auth, GLOB.access_tcomsat, GLOB.access_mineral_storeroom)
/datum/outfit/job/ce
name = "Chief Engineer"
@@ -74,10 +74,10 @@ Station Engineer
outfit = /datum/outfit/job/engineer
access = list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels,
access_external_airlocks, access_construction, access_atmospherics, access_tcomsat)
minimal_access = list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels,
access_external_airlocks, access_construction, access_tcomsat, access_atmospherics)
access = list(GLOB.access_engine, GLOB.access_engine_equip, GLOB.access_tech_storage, GLOB.access_maint_tunnels,
GLOB.access_external_airlocks, GLOB.access_construction, GLOB.access_atmospherics, GLOB.access_tcomsat)
minimal_access = list(GLOB.access_engine, GLOB.access_engine_equip, GLOB.access_tech_storage, GLOB.access_maint_tunnels,
GLOB.access_external_airlocks, GLOB.access_construction, GLOB.access_tcomsat)
/datum/outfit/job/engineer
name = "Station Engineer"
@@ -125,9 +125,9 @@ Atmospheric Technician
outfit = /datum/outfit/job/atmos
access = list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels,
access_external_airlocks, access_construction, access_atmospherics)
minimal_access = list(access_atmospherics, access_maint_tunnels, access_emergency_storage, access_construction)
access = list(GLOB.access_engine, GLOB.access_engine_equip, GLOB.access_tech_storage, GLOB.access_maint_tunnels,
GLOB.access_external_airlocks, GLOB.access_construction, GLOB.access_atmospherics)
minimal_access = list(GLOB.access_atmospherics, GLOB.access_maint_tunnels, GLOB.access_emergency_storage, GLOB.access_construction)
/datum/outfit/job/atmos
name = "Atmospheric Technician"
+5 -6
View File
@@ -70,7 +70,7 @@
if(!visualsOnly && announce)
announce(H)
if(config.enforce_human_authority && (title in command_positions))
if(config.enforce_human_authority && (title in GLOB.command_positions))
H.dna.features["tail_human"] = "None"
H.dna.features["ears"] = "None"
H.regenerate_icons()
@@ -87,13 +87,12 @@
. = src.access.Copy()
if(config.jobs_have_maint_access & EVERYONE_HAS_MAINT_ACCESS) //Config has global maint access set
. |= list(access_maint_tunnels)
. |= list(GLOB.access_maint_tunnels)
/datum/job/proc/announce_head(var/mob/living/carbon/human/H, var/channels) //tells the given channel that the given mob is the new department head. See communications.dm for valid channels.
spawn(4) //to allow some initialization
if(H && announcement_systems.len)
var/obj/machinery/announcement_system/announcer = pick(announcement_systems)
announcer.announce("NEWHEAD", H.real_name, H.job, channels)
if(H && GLOB.announcement_systems.len)
//timer because these should come after the captain announcement
SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, .proc/addtimer, CALLBACK(pick(GLOB.announcement_systems), /obj/machinery/announcement_system/proc/announce, "NEWHEAD", H.real_name, H.job, channels), 1))
//If the configuration option is set to require players to be logged as old enough to play certain jobs, then this proc checks that they are, otherwise it just returns 1
/datum/job/proc/player_old_enough(client/C)
+15 -15
View File
@@ -3,7 +3,7 @@ Chief Medical Officer
*/
/datum/job/cmo
title = "Chief Medical Officer"
flag = CMO
flag = CMO_JF
department_head = list("Captain")
department_flag = MEDSCI
head_announce = list("Medical")
@@ -17,12 +17,12 @@ Chief Medical Officer
outfit = /datum/outfit/job/cmo
access = list(access_medical, access_morgue, access_genetics, access_cloning, access_heads, access_mineral_storeroom,
access_chemistry, access_virology, access_cmo, access_surgery, access_RC_announce,
access_keycard_auth, access_sec_doors, access_maint_tunnels)
minimal_access = list(access_medical, access_morgue, access_genetics, access_cloning, access_heads, access_mineral_storeroom,
access_chemistry, access_virology, access_cmo, access_surgery, access_RC_announce,
access_keycard_auth, access_sec_doors, access_maint_tunnels)
access = list(GLOB.access_medical, GLOB.access_morgue, GLOB.access_genetics, GLOB.access_cloning, GLOB.access_heads, GLOB.access_mineral_storeroom,
GLOB.access_chemistry, GLOB.access_virology, GLOB.access_cmo, GLOB.access_surgery, GLOB.access_RC_announce,
GLOB.access_keycard_auth, GLOB.access_sec_doors, GLOB.access_maint_tunnels)
minimal_access = list(GLOB.access_medical, GLOB.access_morgue, GLOB.access_genetics, GLOB.access_cloning, GLOB.access_heads, GLOB.access_mineral_storeroom,
GLOB.access_chemistry, GLOB.access_virology, GLOB.access_cmo, GLOB.access_surgery, GLOB.access_RC_announce,
GLOB.access_keycard_auth, GLOB.access_sec_doors, GLOB.access_maint_tunnels)
/datum/outfit/job/cmo
name = "Chief Medical Officer"
@@ -58,8 +58,8 @@ Medical Doctor
outfit = /datum/outfit/job/doctor
access = list(access_medical, access_morgue, access_surgery, access_chemistry, access_genetics, access_cloning, access_mineral_storeroom)
minimal_access = list(access_medical, access_morgue, access_surgery, access_cloning)
access = list(GLOB.access_medical, GLOB.access_morgue, GLOB.access_surgery, GLOB.access_chemistry, GLOB.access_genetics, GLOB.access_cloning, GLOB.access_mineral_storeroom)
minimal_access = list(GLOB.access_medical, GLOB.access_morgue, GLOB.access_surgery, GLOB.access_cloning)
/datum/outfit/job/doctor
name = "Medical Doctor"
@@ -93,8 +93,8 @@ Chemist
outfit = /datum/outfit/job/chemist
access = list(access_medical, access_morgue, access_surgery, access_chemistry, access_genetics, access_cloning, access_mineral_storeroom)
minimal_access = list(access_medical, access_chemistry, access_mineral_storeroom)
access = list(GLOB.access_medical, GLOB.access_morgue, GLOB.access_surgery, GLOB.access_chemistry, GLOB.access_genetics, GLOB.access_cloning, GLOB.access_mineral_storeroom)
minimal_access = list(GLOB.access_medical, GLOB.access_chemistry, GLOB.access_mineral_storeroom)
/datum/outfit/job/chemist
name = "Chemist"
@@ -127,8 +127,8 @@ Geneticist
outfit = /datum/outfit/job/geneticist
access = list(access_medical, access_morgue, access_chemistry, access_genetics, access_cloning, access_research, access_mineral_storeroom)
minimal_access = list(access_medical, access_morgue, access_genetics, access_cloning,)
access = list(GLOB.access_medical, GLOB.access_morgue, GLOB.access_chemistry, GLOB.access_genetics, GLOB.access_cloning, GLOB.access_research, GLOB.access_xenobiology, GLOB.access_robotics, GLOB.access_mineral_storeroom, GLOB.access_tech_storage)
minimal_access = list(GLOB.access_medical, GLOB.access_morgue, GLOB.access_genetics, GLOB.access_cloning, GLOB.access_research)
/datum/outfit/job/geneticist
name = "Geneticist"
@@ -161,8 +161,8 @@ Virologist
outfit = /datum/outfit/job/virologist
access = list(access_medical, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics, access_cloning, access_mineral_storeroom)
minimal_access = list(access_medical, access_virology, access_mineral_storeroom)
access = list(GLOB.access_medical, GLOB.access_morgue, GLOB.access_surgery, GLOB.access_chemistry, GLOB.access_virology, GLOB.access_genetics, GLOB.access_cloning, GLOB.access_mineral_storeroom)
minimal_access = list(GLOB.access_medical, GLOB.access_virology, GLOB.access_mineral_storeroom)
/datum/outfit/job/virologist
name = "Virologist"
+15 -15
View File
@@ -3,7 +3,7 @@ Research Director
*/
/datum/job/rd
title = "Research Director"
flag = RD
flag = RD_JF
department_head = list("Captain")
department_flag = MEDSCI
head_announce = list("Science")
@@ -17,16 +17,16 @@ Research Director
outfit = /datum/outfit/job/rd
access = list(access_rd, access_heads, access_tox, access_genetics, access_morgue,
access_tox_storage, access_teleporter, access_sec_doors,
access_research, access_robotics, access_xenobiology, access_ai_upload,
access_RC_announce, access_keycard_auth, access_gateway, access_mineral_storeroom,
access_tech_storage, access_minisat, access_maint_tunnels, access_network)
minimal_access = list(access_rd, access_heads, access_tox, access_genetics, access_morgue,
access_tox_storage, access_teleporter, access_sec_doors,
access_research, access_robotics, access_xenobiology, access_ai_upload,
access_RC_announce, access_keycard_auth, access_gateway, access_mineral_storeroom,
access_tech_storage, access_minisat, access_maint_tunnels, access_network)
access = list(GLOB.access_rd, GLOB.access_heads, GLOB.access_tox, GLOB.access_genetics, GLOB.access_morgue,
GLOB.access_tox_storage, GLOB.access_teleporter, GLOB.access_sec_doors,
GLOB.access_research, GLOB.access_robotics, GLOB.access_xenobiology, GLOB.access_ai_upload,
GLOB.access_RC_announce, GLOB.access_keycard_auth, GLOB.access_gateway, GLOB.access_mineral_storeroom,
GLOB.access_tech_storage, GLOB.access_minisat, GLOB.access_maint_tunnels, GLOB.access_network)
minimal_access = list(GLOB.access_rd, GLOB.access_heads, GLOB.access_tox, GLOB.access_genetics, GLOB.access_morgue,
GLOB.access_tox_storage, GLOB.access_teleporter, GLOB.access_sec_doors,
GLOB.access_research, GLOB.access_robotics, GLOB.access_xenobiology, GLOB.access_ai_upload,
GLOB.access_RC_announce, GLOB.access_keycard_auth, GLOB.access_gateway, GLOB.access_mineral_storeroom,
GLOB.access_tech_storage, GLOB.access_minisat, GLOB.access_maint_tunnels, GLOB.access_network)
/datum/outfit/job/rd
name = "Research Director"
@@ -70,8 +70,8 @@ Scientist
outfit = /datum/outfit/job/scientist
access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology, access_mineral_storeroom, access_tech_storage, access_genetics)
minimal_access = list(access_tox, access_tox_storage, access_research, access_xenobiology, access_mineral_storeroom)
access = list(GLOB.access_robotics, GLOB.access_tox, GLOB.access_tox_storage, GLOB.access_research, GLOB.access_xenobiology, GLOB.access_mineral_storeroom, GLOB.access_tech_storage, GLOB.access_genetics)
minimal_access = list(GLOB.access_tox, GLOB.access_tox_storage, GLOB.access_research, GLOB.access_xenobiology, GLOB.access_mineral_storeroom)
/datum/outfit/job/scientist
name = "Scientist"
@@ -102,8 +102,8 @@ Roboticist
outfit = /datum/outfit/job/roboticist
access = list(access_robotics, access_tox, access_tox_storage, access_tech_storage, access_morgue, access_research, access_mineral_storeroom, access_xenobiology, access_genetics)
minimal_access = list(access_robotics, access_tech_storage, access_morgue, access_research, access_mineral_storeroom)
access = list(GLOB.access_robotics, GLOB.access_tox, GLOB.access_tox_storage, GLOB.access_tech_storage, GLOB.access_morgue, GLOB.access_research, GLOB.access_mineral_storeroom, GLOB.access_xenobiology, GLOB.access_genetics)
minimal_access = list(GLOB.access_robotics, GLOB.access_tech_storage, GLOB.access_morgue, GLOB.access_research, GLOB.access_mineral_storeroom)
/datum/outfit/job/roboticist
name = "Roboticist"
+28 -28
View File
@@ -1,7 +1,7 @@
//Warden and regular officers add this result to their get_access()
/datum/job/proc/check_config_for_sec_maint()
if(config.jobs_have_maint_access & SECURITY_HAS_MAINT_ACCESS)
return list(access_maint_tunnels)
return list(GLOB.access_maint_tunnels)
return list()
/*
@@ -23,14 +23,14 @@ Head of Security
outfit = /datum/outfit/job/hos
access = list(access_security, access_sec_doors, access_brig, access_armory, access_court, access_weapons,
access_forensics_lockers, access_morgue, access_maint_tunnels, access_all_personal_lockers,
access_research, access_engine, access_mining, access_medical, access_construction, access_mailsorting,
access_heads, access_hos, access_RC_announce, access_keycard_auth, access_gateway, access_maint_tunnels)
minimal_access = list(access_security, access_sec_doors, access_brig, access_armory, access_court, access_weapons,
access_forensics_lockers, access_morgue, access_maint_tunnels, access_all_personal_lockers,
access_research, access_engine, access_mining, access_medical, access_construction, access_mailsorting,
access_heads, access_hos, access_RC_announce, access_keycard_auth, access_gateway, access_maint_tunnels)
access = list(GLOB.access_security, GLOB.access_sec_doors, GLOB.access_brig, GLOB.access_armory, GLOB.access_court, GLOB.access_weapons,
GLOB.access_forensics_lockers, GLOB.access_morgue, GLOB.access_maint_tunnels, GLOB.access_all_personal_lockers,
GLOB.access_research, GLOB.access_engine, GLOB.access_mining, GLOB.access_medical, GLOB.access_construction, GLOB.access_mailsorting,
GLOB.access_heads, GLOB.access_hos, GLOB.access_RC_announce, GLOB.access_keycard_auth, GLOB.access_gateway, GLOB.access_maint_tunnels)
minimal_access = list(GLOB.access_security, GLOB.access_sec_doors, GLOB.access_brig, GLOB.access_armory, GLOB.access_court, GLOB.access_weapons,
GLOB.access_forensics_lockers, GLOB.access_morgue, GLOB.access_maint_tunnels, GLOB.access_all_personal_lockers,
GLOB.access_research, GLOB.access_engine, GLOB.access_mining, GLOB.access_medical, GLOB.access_construction, GLOB.access_mailsorting,
GLOB.access_heads, GLOB.access_hos, GLOB.access_RC_announce, GLOB.access_keycard_auth, GLOB.access_gateway, GLOB.access_maint_tunnels)
/datum/outfit/job/hos
name = "Head of Security"
@@ -74,8 +74,8 @@ Warden
outfit = /datum/outfit/job/warden
access = list(access_security, access_sec_doors, access_brig, access_armory, access_court, access_maint_tunnels, access_morgue, access_weapons, access_forensics_lockers)
minimal_access = list(access_security, access_sec_doors, access_brig, access_armory, access_court, access_weapons) //See /datum/job/warden/get_access()
access = list(GLOB.access_security, GLOB.access_sec_doors, GLOB.access_brig, GLOB.access_armory, GLOB.access_court, GLOB.access_maint_tunnels, GLOB.access_morgue, GLOB.access_weapons, GLOB.access_forensics_lockers)
minimal_access = list(GLOB.access_security, GLOB.access_sec_doors, GLOB.access_brig, GLOB.access_armory, GLOB.access_court, GLOB.access_weapons) //See /datum/job/warden/get_access()
/datum/job/warden/get_access()
var/list/L = list()
@@ -124,8 +124,8 @@ Detective
outfit = /datum/outfit/job/detective
access = list(access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_court, access_brig, access_weapons)
minimal_access = list(access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_court, access_brig, access_weapons)
access = list(GLOB.access_sec_doors, GLOB.access_forensics_lockers, GLOB.access_morgue, GLOB.access_maint_tunnels, GLOB.access_court, GLOB.access_brig, GLOB.access_weapons)
minimal_access = list(GLOB.access_sec_doors, GLOB.access_forensics_lockers, GLOB.access_morgue, GLOB.access_maint_tunnels, GLOB.access_court, GLOB.access_brig, GLOB.access_weapons)
/datum/outfit/job/detective
name = "Detective"
@@ -172,8 +172,8 @@ Security Officer
outfit = /datum/outfit/job/security
access = list(access_security, access_sec_doors, access_brig, access_court, access_maint_tunnels, access_morgue, access_weapons, access_forensics_lockers)
minimal_access = list(access_security, access_sec_doors, access_brig, access_court, access_weapons) //But see /datum/job/warden/get_access()
access = list(GLOB.access_security, GLOB.access_sec_doors, GLOB.access_brig, GLOB.access_court, GLOB.access_maint_tunnels, GLOB.access_morgue, GLOB.access_weapons, GLOB.access_forensics_lockers)
minimal_access = list(GLOB.access_security, GLOB.access_sec_doors, GLOB.access_brig, GLOB.access_court, GLOB.access_weapons) //But see /datum/job/warden/get_access()
/datum/job/officer/get_access()
@@ -181,19 +181,19 @@ Security Officer
L |= ..() | check_config_for_sec_maint()
return L
var/list/available_depts = list(SEC_DEPT_ENGINEERING, SEC_DEPT_MEDICAL, SEC_DEPT_SCIENCE, SEC_DEPT_SUPPLY)
GLOBAL_LIST_INIT(available_depts, list(SEC_DEPT_ENGINEERING, SEC_DEPT_MEDICAL, SEC_DEPT_SCIENCE, SEC_DEPT_SUPPLY))
/datum/job/officer/after_spawn(mob/living/carbon/human/H, mob/M)
// Assign department security
var/department
if(M && M.client && M.client.prefs)
department = M.client.prefs.prefered_security_department
if(!LAZYLEN(available_depts) || department == "None")
if(!LAZYLEN(GLOB.available_depts) || department == "None")
return
else if(department in available_depts)
LAZYREMOVE(available_depts, department)
else if(department in GLOB.available_depts)
LAZYREMOVE(GLOB.available_depts, department)
else
department = pick_n_take(available_depts)
department = pick_n_take(GLOB.available_depts)
var/ears = null
var/tie = null
var/list/dep_access = null
@@ -202,27 +202,27 @@ var/list/available_depts = list(SEC_DEPT_ENGINEERING, SEC_DEPT_MEDICAL, SEC_DEPT
switch(department)
if(SEC_DEPT_SUPPLY)
ears = /obj/item/device/radio/headset/headset_sec/alt/department/supply
dep_access = list(access_mailsorting, access_mining, access_mining_station)
dep_access = list(GLOB.access_mailsorting, GLOB.access_mining, GLOB.access_mining_station)
destination = /area/security/checkpoint/supply
spawn_point = locate(/obj/effect/landmark/start/depsec/supply) in department_security_spawns
spawn_point = locate(/obj/effect/landmark/start/depsec/supply) in GLOB.department_security_spawns
tie = /obj/item/clothing/tie/armband/cargo
if(SEC_DEPT_ENGINEERING)
ears = /obj/item/device/radio/headset/headset_sec/alt/department/engi
dep_access = list(access_construction, access_engine)
dep_access = list(GLOB.access_construction, GLOB.access_engine)
destination = /area/security/checkpoint/engineering
spawn_point = locate(/obj/effect/landmark/start/depsec/engineering) in department_security_spawns
spawn_point = locate(/obj/effect/landmark/start/depsec/engineering) in GLOB.department_security_spawns
tie = /obj/item/clothing/tie/armband/engine
if(SEC_DEPT_MEDICAL)
ears = /obj/item/device/radio/headset/headset_sec/alt/department/med
dep_access = list(access_medical)
dep_access = list(GLOB.access_medical)
destination = /area/security/checkpoint/medical
spawn_point = locate(/obj/effect/landmark/start/depsec/medical) in department_security_spawns
spawn_point = locate(/obj/effect/landmark/start/depsec/medical) in GLOB.department_security_spawns
tie = /obj/item/clothing/tie/armband/medblue
if(SEC_DEPT_SCIENCE)
ears = /obj/item/device/radio/headset/headset_sec/alt/department/sci
dep_access = list(access_research)
dep_access = list(GLOB.access_research)
destination = /area/security/checkpoint/science
spawn_point = locate(/obj/effect/landmark/start/depsec/science) in department_security_spawns
spawn_point = locate(/obj/effect/landmark/start/depsec/science) in GLOB.department_security_spawns
tie = /obj/item/clothing/tie/armband/science
if(tie)
+3 -3
View File
@@ -3,7 +3,7 @@ AI
*/
/datum/job/ai
title = "AI"
flag = AI
flag = AI_JF
department_flag = ENGSEC
faction = "Station"
total_positions = 0
@@ -20,8 +20,8 @@ AI
AI.rename_self("ai", M.client)
//we may have been created after our borg
if(ticker.current_state == GAME_STATE_SETTING_UP)
for(var/mob/living/silicon/robot/R in silicon_mobs)
if(SSticker.current_state == GAME_STATE_SETTING_UP)
for(var/mob/living/silicon/robot/R in GLOB.silicon_mobs)
if(!R.connected_ai)
R.TryConnectToAI()
+32 -95
View File
@@ -1,100 +1,40 @@
var/const/ENGSEC =(1<<0)
var/const/CAPTAIN =(1<<0)
var/const/HOS =(1<<1)
var/const/WARDEN =(1<<2)
var/const/DETECTIVE =(1<<3)
var/const/OFFICER =(1<<4)
var/const/CHIEF =(1<<5)
var/const/ENGINEER =(1<<6)
var/const/ATMOSTECH =(1<<7)
var/const/ROBOTICIST =(1<<8)
var/const/AI =(1<<9)
var/const/CYBORG =(1<<10)
var/const/MEDSCI =(1<<1)
var/const/RD =(1<<0)
var/const/SCIENTIST =(1<<1)
var/const/CHEMIST =(1<<2)
var/const/CMO =(1<<3)
var/const/DOCTOR =(1<<4)
var/const/GENETICIST =(1<<5)
var/const/VIROLOGIST =(1<<6)
var/const/CIVILIAN =(1<<2)
var/const/HOP =(1<<0)
var/const/BARTENDER =(1<<1)
var/const/BOTANIST =(1<<2)
var/const/COOK =(1<<3)
var/const/JANITOR =(1<<4)
var/const/LIBRARIAN =(1<<5)
var/const/QUARTERMASTER =(1<<6)
var/const/CARGOTECH =(1<<7)
var/const/MINER =(1<<8)
var/const/LAWYER =(1<<9)
var/const/CHAPLAIN =(1<<10)
var/const/CLOWN =(1<<11)
var/const/MIME =(1<<12)
var/const/ASSISTANT =(1<<13)
var/list/assistant_occupations = list(
"Assistant",
"Atmospheric Technician",
"Cargo Technician",
"Chaplain",
"Lawyer",
"Librarian"
)
var/list/command_positions = list(
GLOBAL_LIST_INIT(command_positions, list(
"Captain",
"Head of Personnel",
"Head of Security",
"Chief Engineer",
"Research Director",
"Chief Medical Officer"
)
"Chief Medical Officer"))
var/list/engineering_positions = list(
GLOBAL_LIST_INIT(engineering_positions, list(
"Chief Engineer",
"Station Engineer",
"Atmospheric Technician",
)
"Atmospheric Technician"))
var/list/medical_positions = list(
GLOBAL_LIST_INIT(medical_positions, list(
"Chief Medical Officer",
"Medical Doctor",
"Geneticist",
"Virologist",
"Chemist"
)
"Chemist"))
var/list/science_positions = list(
GLOBAL_LIST_INIT(science_positions, list(
"Research Director",
"Scientist",
"Roboticist"
)
"Roboticist"))
var/list/supply_positions = list(
GLOBAL_LIST_INIT(supply_positions, list(
"Head of Personnel",
"Quartermaster",
"Cargo Technician",
"Shaft Miner",
)
"Shaft Miner"))
var/list/civilian_positions = list(
GLOBAL_LIST_INIT(civilian_positions, list(
"Bartender",
"Botanist",
"Cook",
@@ -104,27 +44,24 @@ var/list/civilian_positions = list(
"Chaplain",
"Clown",
"Mime",
"Assistant"
)
"Assistant"))
var/list/security_positions = list(
GLOBAL_LIST_INIT(security_positions, list(
"Head of Security",
"Warden",
"Detective",
"Security Officer"
)
"Security Officer"))
var/list/nonhuman_positions = list(
GLOBAL_LIST_INIT(nonhuman_positions, list(
"AI",
"Cyborg",
"pAI"
)
"pAI"))
/proc/guest_jobbans(job)
return ((job in command_positions) || (job in nonhuman_positions) || (job in security_positions))
return ((job in GLOB.command_positions) || (job in GLOB.nonhuman_positions) || (job in GLOB.security_positions))
@@ -138,22 +75,22 @@ var/list/nonhuman_positions = list(
if(J.title == job_title)
return J.department_head //this is a list
var/static/regex/cap_expand = new("cap(?!tain)")
var/static/regex/cmo_expand = new("cmo")
var/static/regex/hos_expand = new("hos")
var/static/regex/hop_expand = new("hop")
var/static/regex/rd_expand = new("rd")
var/static/regex/ce_expand = new("ce")
var/static/regex/qm_expand = new("qm")
var/static/regex/sec_expand = new("(?<!security )officer")
var/static/regex/engi_expand = new("(?<!station )engineer")
var/static/regex/atmos_expand = new("atmos tech")
var/static/regex/doc_expand = new("(?<!medical )doctor|medic(?!al)")
var/static/regex/mine_expand = new("(?<!shaft )miner")
var/static/regex/chef_expand = new("chef")
var/static/regex/borg_expand = new("(?<!cy)borg")
/proc/get_full_job_name(job)
var/static/regex/cap_expand = new("cap(?!tain)")
var/static/regex/cmo_expand = new("cmo")
var/static/regex/hos_expand = new("hos")
var/static/regex/hop_expand = new("hop")
var/static/regex/rd_expand = new("rd")
var/static/regex/ce_expand = new("ce")
var/static/regex/qm_expand = new("qm")
var/static/regex/sec_expand = new("(?<!security )officer")
var/static/regex/engi_expand = new("(?<!station )engineer")
var/static/regex/atmos_expand = new("atmos tech")
var/static/regex/doc_expand = new("(?<!medical )doctor|medic(?!al)")
var/static/regex/mine_expand = new("(?<!shaft )miner")
var/static/regex/chef_expand = new("chef")
var/static/regex/borg_expand = new("(?<!cy)borg")
job = lowertext(job)
job = cap_expand.Replace(job, "captain")
job = cmo_expand.Replace(job, "chief medical officer")