mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-19 13:35:10 +00:00
## About The Pull Request I have attempted or otherwise started this project at least 4 times. I am sick of it being on my calendar. The code needs it. I need it. - This makes crew records a proper datum rather than assigning properties record.fields. - General, medical, and security records are merged. - Did some slight refactoring here and there for things that looked obvious. - Wanted states are now defined (and you can suspect someone through sechud) - pAI (unrelated but annoying) had some poorly named exported types that i made more specific - Job icons are moved back to the JS side (I wanted to get icons for initial rank without passing trim) <details> <summary>previews</summary> Editable fields & security console  Medical records  Look and feel of the more current version  </details> ## Why It's Good For The Game TGUI'd some of the worst UIs in the game. Creating new records is made much simpler. Manifest_inject is made readable. Probably bug fixes ## Changelog 🆑 refactor: Crew records have been refactored. refactor: Medical records -> TGUI refactor: Security records -> TGUI refactor: Warrants console -> TGUI qol: Players are now alerted when their fines are paid off. qol: Cleaned up sec hud examination text. qol: Adding and deleting crimes is easier. qol: Writing crimes in the console sets players to arrest. qol: You can now mark someone as a suspect through sec hud. /🆑 Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
39 lines
1.1 KiB
Plaintext
39 lines
1.1 KiB
Plaintext
/datum/crew_manifest
|
|
|
|
/datum/crew_manifest/ui_state(mob/user)
|
|
return GLOB.always_state
|
|
|
|
/datum/crew_manifest/ui_status(mob/user, datum/ui_state/state)
|
|
return (isnewplayer(user) || isobserver(user) || isAI(user) || ispAI(user)) ? UI_INTERACTIVE : UI_CLOSE
|
|
|
|
/datum/crew_manifest/ui_interact(mob/user, datum/tgui/ui)
|
|
ui = SStgui.try_update_ui(user, src, ui)
|
|
if (!ui)
|
|
ui = new(user, src, "CrewManifest")
|
|
ui.open()
|
|
|
|
/datum/crew_manifest/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
|
|
/datum/crew_manifest/ui_data(mob/user)
|
|
var/list/positions = list()
|
|
for(var/datum/job_department/department as anything in SSjob.joinable_departments)
|
|
var/open = 0
|
|
var/list/exceptions = list()
|
|
for(var/datum/job/job as anything in department.department_jobs)
|
|
if(job.total_positions == -1)
|
|
exceptions += job.title
|
|
continue
|
|
var/open_slots = job.total_positions - job.current_positions
|
|
if(open_slots < 1)
|
|
continue
|
|
open += open_slots
|
|
positions[department.department_name] = list("exceptions" = exceptions, "open" = open)
|
|
|
|
return list(
|
|
"manifest" = GLOB.manifest.get_manifest(),
|
|
"positions" = positions
|
|
)
|