Files
Paradise/code/game/jobs/access.dm
PollardTheDragon cd7cb01a1f Meet the Smith - New Supply Role (#28273)
* Smith role, access, access helpers, spawn point, comms, and IDs

* Area defines

* Hammertime

* Cyberiad Smith's office

* Forgot some atmos stuff

* Autolathable Hammers

* Formatting

* Toolbelts can hold hammers

* Initial work on smith machines

* Farragus Smith Office

* Placeholder sprites, mapping

* Smart hopper points and console messages

* More work on smithing machines

* Fixed mapping, added qualities, added smithed items, fixed sizing, fixed access

* Smith components, new materials

* New ores, material datums, furnace, power hammer, kinetic assembler, hammer act, item creation

* Missed one

* Grrr map conflicts begone

* Dirt begone

* Casts and smelting

* Linters

* Attack chain linters!

* Better grip to throw people into your industrial machines

* Placeholder spots in the DMIs

* UpdatePaths - Space ruins now spawn new space ores in their rocks

* Small changes - removed excess tgui code from hopper

* Fixed a button on emerald

* Attaching inserts and lenses. Tool bits are pain.

* Tool bit initial implementation

* Merge conflict resolution

* Attack chain grrr

* Fixed a pair of minor mapping issues

* Tool bit implementation, efficiency, failure rate

* Hot things burn hands

* Points fix on hopper

* New mining rocks for space exploration

* Areas on asteroids

* Machinery icons 1

Adds basic icons for the new machinery

* Vendor iconstate update

* Crucible touchups

* Hammer touchups

* Crucible Input Animation

Adds an animation when you deposit ores

* Added scanning the crucible with multitool to get mineral count

* clothing sprites part 1

* locker sprite

* job icons

* garment bag

* Smith locker mapping

* Insert and Bit removal fix

* Job menu alignment fix, Allowed_items and small spriting path fixes

* Adds new asteroid ruins to config

* Ore Sprites

* Hammer Sprite

* Item Sprites 1

* Sheets, Wall Ores and Trim

* Sheet iconstate names

* species uniforms

* Tabs

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>

* Lens spelling fix

* Signalizes attaching and detaching modifications, fixes inserting items into smith machines, fixes cast bugs

* Fixed type lists

* Smithing machine bug fixes.

* Fixed adding modifications to items

* Crucible Lava Idle

Adds an idle animation for the crucible, but it needs overlay code to work.

* Fixed eguns

* Magma Crucible overlays and animations

* Machine broken/Off states

Adds broken, wires exposed (and on/off where appropriate) states to machines.

* Castivend recolor and Hot Items

* Overlays for all machines, new sprites for hot items, new checks, fixes

* Woe, farragus merge conflict

* update_appearance linters

* I have fat fingers.

* Forgot one

* transfer_item_to and qdel null check

* Usr to User

* Modsuits should not have inserts.

* Adds casting lip overlay

* Balance pass on movement debuffs and buffs

* Material movespeed changes

* Config Adjustments - USED FOR TESTMERGING. REVERT BEFORE FULL MERGE

* Math fixes for lenses and bits.

* Mobility suit no longer speeds you up, but negates suit-based slowdown like an oil slick potion. Fixed movement mods in material datums

* Bad var. Bad.

* Various fixes to bugs revealed in initial TM

* TYPO

* Lavaland base turf fix

* Paths in examine fix

* Adds an intercom to the workshop.

* Stamina-hybrid damage oversight fix for det revolver, uion, etc.

* Currently Operating Message fix

* Allows glass to show different turfs beneath. Adds plasmaglass section to workshop.

* Armor and upgrade fixes

* RCD tool bit equip fix

* Adds smith access to a few lists in access.dm that were missed in an oversight

* Indent fixes

* Fixes vending machine, allows tool bit use on mining equipment

* CI, you make me mad sometimes

* Removed duplicate code

* Name fix for CI again

* ORM now can handle space ores

* Adds space ores to Vetus drop and to trader inventories

* Fixes runtime with open hand attacking a lava furnace with nothing in it

* Adds crewvend kit to Castivend

* Fixes not being able to see new ores

* Adds drill and RCS to smith locker

* Map changes. Added cargo pad. Expanded catwalk. Moved vendors. Added recharger.

* Plant fixes

* Fixes doubled-up catwalk

* Emerald cargo windoor fix, small lavaland adjustment

* Small oversight for overlay fix

* Missing lightswitches

* Fixed stock parts mismatch in casting basin recipe

* Better support for power tools, grrr attackchain

* Better attack chain handling. Better handling for bit insertion

* Fixes handling of inserts with storage suits (like labcoats)

* sprites for bomber + plasmeme outfit

* Adds missing adjacency checks

* Buffs speed boost from upgrade - max upgrade reduces cycle to 2 seconds.

* Fixed floating lights, brightened the explorer's new room, expanded smith workshop slightly.

* Small hallway adjustment

* Illuminates metastation smith office

* Removes excessive decimals in magma crucible scan output

* Berserker should not have inserts.

* Buffs bit durability significantly, nerfs amplifier lens and densifier lense slightly

* Adds smith bomber jacket to loadout panel

* Adds random spawners for smithed items, adds random low-quality items to maints loot

* Adds traitor version of bulldog shotgun

* Revert "Adds traitor version of bulldog shotgun"

This reverts commit 1d39c59f07.

* Added check to assembler, moved desc changes to examine()

* plasmaman suit fix

* Fixed hot check when removing items from hammer and furnace

* Remaps lavaland workshop, fixed deltastation light switch

* Improper's the smith office name

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>

* Compacts extra ore drops from Vetus

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>

* better looping

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>

* Better loop

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>

* Multitools don't need tool bits.

* Better variable names, fixed missing parenthesis

* Recursive hammering, removed attack animations when inserting items or using multitool on smithing machines

* window

* Update deltastation.dmm

* Update deltastation.dmm

* Update deltastation.dmm

* Fixes small oversights

* Minor lavaland remap

* Reverts TM-required changes in preparation for full merge

* Begone, stray font!

* Damn you cable CI

---------

Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>
Co-authored-by: ExusA <67055922+ExusA@users.noreply.github.com>
Co-authored-by: Christasmurf <25437893+Christasmurf@users.noreply.github.com>
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Co-authored-by: Fordoxia <143041327+Fordoxia@users.noreply.github.com>
Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
2025-03-15 21:35:21 +00:00

424 lines
14 KiB
Plaintext

//returns 1 if this mob has sufficient access to use this object
/obj/proc/allowed(mob/M)
//check if we don't require any access at all
if(check_access())
return 1
if(!M)
return 0
var/acc = M.get_access() //see mob.dm
if(acc == IGNORE_ACCESS || M.can_admin_interact())
return 1 //Mob ignores access
else
return check_access_list(acc)
/obj/proc/check_access(obj/item/I)
var/list/L
if(I)
L = I.GetAccess()
else
L = list()
return check_access_list(L)
/obj/proc/check_access_list(list/L)
if(!L)
return 0
if(!istype(L, /list))
return 0
return has_access(req_access, req_one_access, L)
/proc/has_access(list/req_access, list/req_one_access, list/accesses)
for(var/req in req_access)
if(!(req in accesses)) //doesn't have this access
return 0
if(length(req_one_access))
for(var/req in req_one_access)
if(req in accesses) //has an access from the single access list
return 1
return 0
return 1
/proc/get_centcom_access(job)
switch(job)
if("VIP Guest")
return list(ACCESS_CENT_GENERAL, ACCESS_CENT_LIVING)
if("Custodian")
return list(ACCESS_CENT_GENERAL, ACCESS_CENT_LIVING)
if("Thunderdome Overseer")
return list(ACCESS_CENT_GENERAL)
if("Emergency Response Team Officer")
return list(ACCESS_CENT_GENERAL, ACCESS_CENT_LIVING, ACCESS_CENT_SECURITY, ACCESS_CENT_SPECOPS) + get_all_accesses()
if("Emergency Response Team Engineer")
return list(ACCESS_CENT_GENERAL, ACCESS_CENT_LIVING, ACCESS_CENT_SECURITY, ACCESS_CENT_SPECOPS) + get_all_accesses()
if("Emergency Response Team Medic")
return list(ACCESS_CENT_GENERAL, ACCESS_CENT_LIVING, ACCESS_CENT_SECURITY, ACCESS_CENT_SPECOPS) + get_all_accesses()
if("Emergency Response Team Inquisitor")
return list(ACCESS_CENT_GENERAL, ACCESS_CENT_LIVING, ACCESS_CENT_SECURITY, ACCESS_CENT_SPECOPS) + get_all_accesses()
if("Emergency Response Team Janitor")
return list(ACCESS_CENT_GENERAL, ACCESS_CENT_LIVING, ACCESS_CENT_SECURITY, ACCESS_CENT_SPECOPS) + get_all_accesses()
if("Emergency Response Team Member")
return list(ACCESS_CENT_GENERAL, ACCESS_CENT_LIVING, ACCESS_CENT_SECURITY, ACCESS_CENT_SPECOPS) + get_all_accesses()
if("Emergency Response Team Leader")
return list(ACCESS_CENT_GENERAL, ACCESS_CENT_LIVING, ACCESS_CENT_SECURITY, ACCESS_CENT_SPECOPS, ACCESS_CENT_SPECOPS_COMMANDER) + get_all_accesses()
if("Medical Officer")
return list(ACCESS_CENT_GENERAL, ACCESS_CENT_LIVING) + get_all_accesses()
if("Intel Officer")
return list(ACCESS_CENT_GENERAL, ACCESS_CENT_LIVING, ACCESS_CENT_SECURITY) + get_all_accesses()
if("Research Officer")
return list(ACCESS_CENT_GENERAL, ACCESS_CENT_SPECOPS) + get_all_accesses()
if("Deathsquad Commando")
return list(ACCESS_CENT_GENERAL, ACCESS_CENT_LIVING, ACCESS_CENT_SECURITY, ACCESS_CENT_SPECOPS, ACCESS_CENT_SPECOPS_COMMANDER) + get_all_accesses()
if("NT Undercover Operative")
return get_all_centcom_access() + get_all_accesses()
if("Special Operations Officer")
return get_all_centcom_access() + get_all_accesses()
if("Trans-Solar Federation General")
return get_all_centcom_access() + get_all_accesses()
if("Nanotrasen Navy Representative")
return get_all_centcom_access() + get_all_accesses()
if("Nanotrasen Navy Officer")
return get_all_centcom_access() + get_all_accesses()
if("Nanotrasen Navy Captain")
return get_all_centcom_access() + get_all_accesses()
if("Supreme Commander")
return get_all_centcom_access() + get_all_accesses()
/proc/get_syndicate_access(job)
switch(job)
if("Syndicate Operative")
return list(ACCESS_SYNDICATE)
if("Syndicate Operative Leader")
return list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER)
if("Syndicate Agent")
return list(ACCESS_SYNDICATE, ACCESS_MAINT_TUNNELS)
if("Syndicate Commando")
return list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER)
if("Syndicate Officer")
return list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER, ACCESS_SYNDICATE_COMMAND)
/proc/get_all_accesses()
return list(ACCESS_MINISAT, ACCESS_AI_UPLOAD, ACCESS_ARMORY, ACCESS_ATMOSPHERICS, ACCESS_BAR, ACCESS_SEC_DOORS, ACCESS_BLUESHIELD,
ACCESS_HEADS, ACCESS_CAPTAIN, ACCESS_CARGO, ACCESS_CARGO_BAY, ACCESS_SUPPLY_SHUTTLE, ACCESS_MAILSORTING, ACCESS_CHAPEL_OFFICE, ACCESS_CE, ACCESS_CHEMISTRY, ACCESS_CLOWN, ACCESS_CMO,
ACCESS_COURT, ACCESS_CONSTRUCTION, ACCESS_CREMATORIUM, ACCESS_JANITOR, ACCESS_ENGINE, ACCESS_EVA, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_FORENSICS_LOCKERS,
ACCESS_GENETICS, ACCESS_EXPEDITION, ACCESS_BRIG, ACCESS_HOP, ACCESS_HOS, ACCESS_HYDROPONICS, ACCESS_CHANGE_IDS, ACCESS_KEYCARD_AUTH, ACCESS_KITCHEN,
ACCESS_INTERNAL_AFFAIRS, ACCESS_LIBRARY, ACCESS_MAGISTRATE, ACCESS_MAINT_TUNNELS, ACCESS_HEADS_VAULT, ACCESS_MEDICAL, ACCESS_MIME,
ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM, ACCESS_SMITH, ACCESS_MORGUE, ACCESS_NTREP, ACCESS_PARAMEDIC, ACCESS_ALL_PERSONAL_LOCKERS,
ACCESS_ENGINE_EQUIP, ACCESS_PSYCHIATRIST, ACCESS_QM, ACCESS_RD, ACCESS_RC_ANNOUNCE, ACCESS_ROBOTICS, ACCESS_TOX, ACCESS_RESEARCH, ACCESS_SECURITY,
ACCESS_SURGERY, ACCESS_TECH_STORAGE, ACCESS_TELEPORTER, ACCESS_THEATRE, ACCESS_TCOMSAT, ACCESS_TOX_STORAGE, ACCESS_VIROLOGY, ACCESS_WEAPONS, ACCESS_XENOBIOLOGY, ACCESS_TRAINER, ACCESS_EVIDENCE)
/proc/get_all_centcom_access()
return list(ACCESS_CENT_GENERAL, ACCESS_CENT_LIVING, ACCESS_CENT_SECURITY, ACCESS_CENT_SHUTTLES, ACCESS_CENT_SPECOPS, ACCESS_CENT_SPECOPS_COMMANDER, ACCESS_CENT_COMMANDER)
/proc/get_all_syndicate_access()
return list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER, ACCESS_SYNDICATE_COMMAND)
/proc/get_all_misc_access()
return list(ACCESS_TRADE_SOL, ACCESS_AWAY01)
/proc/get_absolutely_all_accesses()
return (get_all_accesses() | get_all_centcom_access() | get_all_syndicate_access() | get_all_misc_access())
/proc/get_region_accesses(code)
switch(code)
if(REGION_ALL)
return get_all_accesses()
if(REGION_GENERAL) //station general
return list(ACCESS_KITCHEN, ACCESS_BAR, ACCESS_HYDROPONICS, ACCESS_JANITOR, ACCESS_CHAPEL_OFFICE, ACCESS_CREMATORIUM, ACCESS_LIBRARY, ACCESS_THEATRE, ACCESS_INTERNAL_AFFAIRS, ACCESS_MAGISTRATE, ACCESS_CLOWN, ACCESS_MIME, ACCESS_TRAINER)
if(REGION_SECURITY) //security
return list(ACCESS_SEC_DOORS, ACCESS_WEAPONS, ACCESS_SECURITY, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_FORENSICS_LOCKERS, ACCESS_EVIDENCE, ACCESS_COURT, ACCESS_HOS)
if(REGION_MEDBAY) //medbay
return list(ACCESS_MEDICAL, ACCESS_GENETICS, ACCESS_MORGUE, ACCESS_CHEMISTRY, ACCESS_PSYCHIATRIST, ACCESS_VIROLOGY, ACCESS_SURGERY, ACCESS_CMO, ACCESS_PARAMEDIC)
if(REGION_RESEARCH) //research
return list(ACCESS_AI_UPLOAD, ACCESS_RESEARCH, ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_GENETICS, ACCESS_ROBOTICS, ACCESS_XENOBIOLOGY, ACCESS_MINISAT, ACCESS_RD)
if(REGION_ENGINEERING) //engineering and maintenance
return list(ACCESS_CONSTRUCTION, ACCESS_MAINT_TUNNELS, ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_TECH_STORAGE, ACCESS_ATMOSPHERICS, ACCESS_MINISAT, ACCESS_CE)
if(REGION_SUPPLY) //supply
return list(ACCESS_EXPEDITION, ACCESS_MAILSORTING, ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM, ACCESS_SMITH, ACCESS_CARGO, ACCESS_CARGO_BAY, ACCESS_SUPPLY_SHUTTLE, ACCESS_QM, ACCESS_HEADS_VAULT)
if(REGION_COMMAND) //command
return list(ACCESS_HEADS, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_CHANGE_IDS, ACCESS_AI_UPLOAD, ACCESS_TELEPORTER, ACCESS_EVA, ACCESS_TCOMSAT, ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_HEADS_VAULT, ACCESS_BLUESHIELD, ACCESS_NTREP, ACCESS_HOP, ACCESS_CAPTAIN)
if(REGION_CENTCOMM) //because why the heck not
return get_all_centcom_access() + get_all_accesses()
/proc/get_region_accesses_name(code)
switch(code)
if(REGION_ALL)
return "All"
if(REGION_GENERAL) //station general
return "General"
if(REGION_SECURITY) //security
return "Security"
if(REGION_MEDBAY) //medbay
return "Medbay"
if(REGION_RESEARCH) //research
return "Research"
if(REGION_ENGINEERING) //engineering and maintenance
return "Engineering"
if(REGION_SUPPLY) //supply
return "Supply"
if(REGION_COMMAND) //command
return "Command"
if(REGION_CENTCOMM) //CC
return "CentComm"
/proc/get_access_desc(A)
switch(A)
if(ACCESS_CARGO)
return "Cargo Office"
if(ACCESS_CARGO_BOT)
return "Cargo Bot Delivery"
if(ACCESS_CARGO_BAY)
return "Cargo Bay"
if(ACCESS_SUPPLY_SHUTTLE)
return "Supply Shuttle"
if(ACCESS_SECURITY)
return "Security"
if(ACCESS_BRIG)
return "Holding Cells"
if(ACCESS_COURT)
return "Courtroom"
if(ACCESS_FORENSICS_LOCKERS)
return "Forensics Office"
if(ACCESS_MEDICAL)
return "Medical"
if(ACCESS_GENETICS)
return "Genetics Lab"
if(ACCESS_MORGUE)
return "Morgue"
if(ACCESS_TOX)
return "R&D Lab"
if(ACCESS_TOX_STORAGE)
return "Toxins Lab"
if(ACCESS_CHEMISTRY)
return "Chemistry Lab"
if(ACCESS_RD)
return "Research Director"
if(ACCESS_BAR)
return "Bar"
if(ACCESS_JANITOR)
return "Custodial Closet"
if(ACCESS_ENGINE)
return "Engineering"
if(ACCESS_ENGINE_EQUIP)
return "Power Equipment"
if(ACCESS_MAINT_TUNNELS)
return "Maintenance"
if(ACCESS_EXTERNAL_AIRLOCKS)
return "External Airlocks"
if(ACCESS_CHANGE_IDS)
return "ID Computer"
if(ACCESS_AI_UPLOAD)
return "AI Upload"
if(ACCESS_TELEPORTER)
return "Teleporter"
if(ACCESS_EVA)
return "EVA"
if(ACCESS_HEADS)
return "Bridge"
if(ACCESS_CAPTAIN)
return "Captain"
if(ACCESS_ALL_PERSONAL_LOCKERS)
return "Personal Lockers/Crates"
if(ACCESS_CHAPEL_OFFICE)
return "Chapel Office"
if(ACCESS_TECH_STORAGE)
return "Technical Storage"
if(ACCESS_ATMOSPHERICS)
return "Atmospherics"
if(ACCESS_CREMATORIUM)
return "Crematorium"
if(ACCESS_ARMORY)
return "Armory"
if(ACCESS_CONSTRUCTION)
return "Construction Areas"
if(ACCESS_KITCHEN)
return "Kitchen"
if(ACCESS_HYDROPONICS)
return "Hydroponics"
if(ACCESS_LIBRARY)
return "Library"
if(ACCESS_INTERNAL_AFFAIRS)
return "Law Office"
if(ACCESS_ROBOTICS)
return "Robotics"
if(ACCESS_VIROLOGY)
return "Virology"
if(ACCESS_PSYCHIATRIST)
return "Psychiatrist's Office"
if(ACCESS_CMO)
return "Chief Medical Officer"
if(ACCESS_QM)
return "Quartermaster"
if(ACCESS_CLOWN)
return "Clown's Office"
if(ACCESS_MIME)
return "Mime's Office"
if(ACCESS_SURGERY)
return "Surgery"
if(ACCESS_THEATRE)
return "Theatre"
if(ACCESS_RESEARCH)
return "Science"
if(ACCESS_MINING)
return "Mining Dock"
if(ACCESS_MAILSORTING)
return "Mail Sorting"
if(ACCESS_HEADS_VAULT)
return "Main Vault"
if(ACCESS_MINING_STATION)
return "Mining Outpost"
if(ACCESS_SMITH)
return "Smith's Workshop"
if(ACCESS_XENOBIOLOGY)
return "Xenobiology Lab"
if(ACCESS_HOP)
return "Head of Personnel"
if(ACCESS_HOS)
return "Head of Security"
if(ACCESS_CE)
return "Chief Engineer"
if(ACCESS_RC_ANNOUNCE)
return "RC Announcements"
if(ACCESS_KEYCARD_AUTH)
return "Keycode Auth. Device"
if(ACCESS_TCOMSAT)
return "Telecommunications"
if(ACCESS_EXPEDITION)
return "Expedition"
if(ACCESS_SEC_DOORS)
return "Brig"
if(ACCESS_BLUESHIELD)
return "Blueshield"
if(ACCESS_NTREP)
return "Nanotrasen Rep."
if(ACCESS_PARAMEDIC)
return "Paramedic"
if(ACCESS_MAGISTRATE)
return "Magistrate"
if(ACCESS_MINERAL_STOREROOM)
return "Mineral Storage"
if(ACCESS_MINISAT)
return "AI Satellite"
if(ACCESS_WEAPONS)
return "Weapon Permit"
if(ACCESS_TRAINER)
return "Nanotrasen Career Trainer"
if(ACCESS_EVIDENCE)
return "Evidence Lockers"
/proc/get_centcom_access_desc(A)
switch(A)
if(ACCESS_CENT_GENERAL)
return "General Access"
if(ACCESS_CENT_LIVING)
return "Living Quarters"
if(ACCESS_CENT_SECURITY)
return "Security"
if(ACCESS_CENT_SHUTTLES)
return "Shuttles"
if(ACCESS_CENT_SPECOPS)
return "Special Ops"
if(ACCESS_CENT_SPECOPS_COMMANDER)
return "Special Ops Commander"
if(ACCESS_CENT_COMMANDER)
return "Commander"
/proc/get_syndicate_access_desc(A)
switch(A)
if(ACCESS_SYNDICATE)
return "Syndicate Operative"
if(ACCESS_SYNDICATE_LEADER)
return "Syndicate Operative Leader"
if(ACCESS_SYNDICATE_COMMAND)
return "Syndicate Command"
/proc/get_all_jobs()
var/list/all_jobs = list()
var/list/all_datums = subtypesof(/datum/job)
all_datums.Remove(list(/datum/job/ai,/datum/job/cyborg))
var/datum/job/jobdatum
for(var/jobtype in all_datums)
jobdatum = new jobtype
all_jobs.Add(jobdatum.title)
return all_jobs
/proc/get_all_centcom_jobs()
return list(
"VIP Guest",
"Custodian",
"Thunderdome Overseer",
"Intel Officer",
"Medical Officer",
"Research Officer",
"Special Operations Officer",
"Nanotrasen Diplomat",
"Nanotrasen Navy Representative",
"Nanotrasen Navy Officer",
"Nanotrasen Navy Captain",
"Supreme Commander")
/proc/get_all_ERT_jobs()
return list(
"Emergency Response Team Member",
"Emergency Response Team Officer",
"Emergency Response Team Engineer",
"Emergency Response Team Medic",
"Emergency Response Team Janitor",
"Emergency Response Team Inquisitor",
"Emergency Response Team Leader")
/proc/get_all_solgov_jobs()
return list(
"Trans-Solar Federation Trader",
"TSF Marine",
"TSF Lieutenant",
"MARSOC Marine",
"MARSOC Lieutenant",
"Trans-Solar Federation Representative",
"Trans-Solar Federation General")
/proc/get_all_soviet_jobs()
return list(
"Soviet Tourist",
"Soviet Conscript",
"Soviet Soldier",
"Soviet Officer",
"Soviet Marine",
"Soviet Marine Captain",
"Soviet Admiral")
/proc/get_all_special_jobs()
return list(
"Deathsquad",
"Emergency Response Clown",
"Tourist")
/proc/get_all_job_icons() //For all existing HUD icons
return GLOB.joblist + get_all_ERT_jobs() + list("Prisoner", "Centcom", "Solgov", "Soviet", "Unknown")
/proc/get_accesslist_static_data(num_min_region = REGION_GENERAL, num_max_region = REGION_COMMAND)
var/list/retval
for(var/i in num_min_region to num_max_region)
var/list/accesses = list()
var/list/available_accesses
if(i == REGION_CENTCOMM) // Override necessary, because get_region_accesses(REGION_CENTCOM) returns BOTH CC and crew accesses.
available_accesses = get_all_centcom_access()
else
available_accesses = get_region_accesses(i)
for(var/access in available_accesses)
var/access_desc = (i == REGION_CENTCOMM) ? get_centcom_access_desc(access) : get_access_desc(access)
if(access_desc)
accesses += list(list(
"desc" = replacetext(access_desc, "&nbsp", " "),
"ref" = access,
))
retval += list(list(
"name" = get_region_accesses_name(i),
"regid" = i,
"accesses" = accesses
))
return retval