mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-22 20:48:56 +01:00
Synth brain PDAs now have departmental PDA apps pre-installed (#3463)
## About The Pull Request Synth brains now start with your department's apps pre-installed. For example, Scientist synths now start with NT Science Hub. They also now have double the storage space compared to the basic PDA. ## Why It's Good For The Game Convenience. Also, synth PDAs have sort of existed in a weird limbo where (at least, from my point of view having talked to some others) most synth players just don't actually use one of the defining features of their race because normal PDAs are largely better and more convenient, hopefully this change emphasizes their abilities. The doubled brain storage space is just so that synth brain PDAs can comfortably house whatever programs come with being a dept. head. Balance wise, I doubt it will affect anything (what could you even do with the extra storage space, short of the dept. head apps? basic crew apps fit comfortably on the basic PDA limit, synths can't be emagged for expensive syndie apps, and synths can't store files on their brain via disks). ## Proof Of Testing (image taken after I spawned as RD; this is the synth brain PDA)  ## Changelog 🆑 qol: Synthetic crew now spawn in with PDA apps relevant to their work station. bal: Synthetic crew brain PDAs now have 128 max capacity points (was previously 64) /🆑
This commit is contained in:
+17
-1
@@ -9,7 +9,7 @@
|
||||
|
||||
max_idle_programs = 3
|
||||
|
||||
max_capacity = 64
|
||||
max_capacity = parent_type::max_capacity * 2
|
||||
|
||||
/obj/item/modular_computer/pda/synth/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -18,6 +18,22 @@
|
||||
if(!istype(loc, /obj/item/organ/brain/synth))
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
//this code has to be called at a delay because the required data (synth owner's job) is null when initialized
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/item/modular_computer/pda/synth, post_initialize)), 1 DECISECONDS)
|
||||
|
||||
/obj/item/modular_computer/pda/synth/proc/post_initialize()
|
||||
var/obj/item/organ/brain/synth/brain_loc = loc
|
||||
var/mob/living/carbon/owner = brain_loc?.bodypart_owner?.owner
|
||||
if(istype(owner))
|
||||
var/obj/item/modular_computer/pda/job_pda = SSjob.get_pda_type_by_job(owner.job)
|
||||
if(istype(job_pda))
|
||||
starting_programs += job_pda.starting_programs
|
||||
var/obj/item/modular_computer/pda/heads/head_pda = job_pda
|
||||
if(istype(head_pda))
|
||||
starting_programs += head_pda.head_programs
|
||||
install_default_programs()
|
||||
QDEL_NULL(job_pda)
|
||||
|
||||
/* Action for opening the synthbrain computer */
|
||||
/datum/action/item_action/synth/open_internal_computer
|
||||
name = "Open persocom emulation"
|
||||
|
||||
@@ -10,3 +10,91 @@
|
||||
JOB_HEAD_OF_SECURITY = 8,
|
||||
JOB_BLUESHIELD = 9
|
||||
)
|
||||
|
||||
/datum/controller/subsystem/job/proc/get_pda_type_by_job(job_name)
|
||||
switch(job_name)
|
||||
if(JOB_ASSISTANT)
|
||||
return new /obj/item/modular_computer/pda
|
||||
if(JOB_PRISONER)
|
||||
return null
|
||||
if(JOB_CAPTAIN) // HEADS
|
||||
return new /obj/item/modular_computer/pda/heads/captain
|
||||
if(JOB_CHIEF_ENGINEER)
|
||||
return new /obj/item/modular_computer/pda/heads/ce
|
||||
if(JOB_CHIEF_MEDICAL_OFFICER)
|
||||
return new /obj/item/modular_computer/pda/heads/cmo
|
||||
if(JOB_HEAD_OF_PERSONNEL)
|
||||
return new /obj/item/modular_computer/pda/heads/hop
|
||||
if(JOB_HEAD_OF_SECURITY)
|
||||
return new /obj/item/modular_computer/pda/heads/hos
|
||||
if(JOB_QUARTERMASTER)
|
||||
return new /obj/item/modular_computer/pda/heads/quartermaster
|
||||
if(JOB_RESEARCH_DIRECTOR)
|
||||
return new /obj/item/modular_computer/pda/heads/rd
|
||||
if(JOB_BLUESHIELD)
|
||||
return new /obj/item/modular_computer/pda/blueshield
|
||||
if(JOB_NT_REP)
|
||||
return new /obj/item/modular_computer/pda/nanotrasen_consultant
|
||||
if(JOB_WARDEN) // SEC
|
||||
return new /obj/item/modular_computer/pda/warden
|
||||
if(JOB_DETECTIVE)
|
||||
return new /obj/item/modular_computer/pda/detective
|
||||
if(JOB_SECURITY_OFFICER)
|
||||
return new /obj/item/modular_computer/pda/security
|
||||
if(JOB_SECURITY_OFFICER_MEDICAL)
|
||||
return new /obj/item/modular_computer/pda/security
|
||||
if(JOB_CORRECTIONS_OFFICER)
|
||||
return new /obj/item/modular_computer/pda/security
|
||||
if(JOB_STATION_ENGINEER) //ENGI
|
||||
return new /obj/item/modular_computer/pda/engineering
|
||||
if(JOB_ATMOSPHERIC_TECHNICIAN)
|
||||
return new /obj/item/modular_computer/pda/atmos
|
||||
if(JOB_ENGINEERING_GUARD)
|
||||
return new /obj/item/modular_computer/pda/engineering
|
||||
if(JOB_TELECOMMS_SPECIALIST)
|
||||
return new /obj/item/modular_computer/pda/telecomms
|
||||
if(JOB_SCIENTIST) // SCI
|
||||
return new /obj/item/modular_computer/pda/science
|
||||
if(JOB_ROBOTICIST)
|
||||
return new /obj/item/modular_computer/pda/roboticist
|
||||
if(JOB_GENETICIST)
|
||||
return new /obj/item/modular_computer/pda/geneticist
|
||||
if(JOB_SCIENCE_GUARD)
|
||||
return new /obj/item/modular_computer/pda/science
|
||||
if(JOB_CARGO_TECHNICIAN) // CARGO
|
||||
return new /obj/item/modular_computer/pda/cargo
|
||||
if(JOB_SHAFT_MINER)
|
||||
return new /obj/item/modular_computer/pda/shaftminer
|
||||
if(JOB_BITRUNNER)
|
||||
return new /obj/item/modular_computer/pda/bitrunner
|
||||
if(JOB_CUSTOMS_AGENT)
|
||||
return new /obj/item/modular_computer/pda/cargo
|
||||
if(JOB_BARTENDER) // SERVICE
|
||||
return new /obj/item/modular_computer/pda/bar
|
||||
if(JOB_BOTANIST)
|
||||
return new /obj/item/modular_computer/pda/botanist
|
||||
if(JOB_COOK)
|
||||
return new /obj/item/modular_computer/pda/cook
|
||||
if(JOB_CHEF)
|
||||
return new /obj/item/modular_computer/pda/cook
|
||||
if(JOB_JANITOR)
|
||||
return new /obj/item/modular_computer/pda/janitor
|
||||
if(JOB_CLOWN)
|
||||
return new /obj/item/modular_computer/pda/clown
|
||||
if(JOB_MIME)
|
||||
return new /obj/item/modular_computer/pda/mime
|
||||
if(JOB_CURATOR)
|
||||
return new /obj/item/modular_computer/pda/curator
|
||||
if(JOB_LAWYER)
|
||||
return new /obj/item/modular_computer/pda/lawyer
|
||||
if(JOB_CHAPLAIN)
|
||||
return new /obj/item/modular_computer/pda/chaplain
|
||||
if(JOB_PSYCHOLOGIST)
|
||||
return new /obj/item/modular_computer/pda/psychologist
|
||||
if(JOB_BARBER)
|
||||
return new /obj/item/modular_computer/pda
|
||||
if(JOB_BOUNCER)
|
||||
return new /obj/item/modular_computer/pda/bar
|
||||
else
|
||||
return null
|
||||
|
||||
|
||||
Reference in New Issue
Block a user