Punch Clock PDA Application/Modular Console (#2900)

## About The Pull Request
Adds a new NTOS application to the game: "Plexagon Punch Clock", which
functions similarly to the time clock in cryo.
Using the app, crew members can clock out wherever they want. This will
also create a locked briefcase containing certain job-related items;
this can be unlocked by the player once they return to the shift, or by
a relevant Command member.
For later changes I'd like to be able to have this app be able to clock
in/out a user via their DNA imprint.
## Why It's Good For The Game
- It's easier to clock out before going for RP/ERP when done with work.
- Placing job items in an easily-accessible box means that it's less
annoying to return to work after finishing RP/ERP
- Convenience
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>

![GIF 12-Jan-25 6-22-47
PM](https://github.com/user-attachments/assets/2b90ccb6-a175-4e2a-80c2-bfe717f99358)
</details>

## Changelog
🆑 ArrisFairburne, LT3
add: Added a new app to clock in and out from any NT OS-compatible
device (Plexagon Punch Clock)
qol: Your job items are now locked into a box instead of warped to cryo,
when clocking out
/🆑

---------

Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: The Sharkening <95130227+StrangeWeirdKitten@users.noreply.github.com>
This commit is contained in:
ArrisFairburne
2025-02-11 04:03:45 -05:00
committed by GitHub
parent 0d03fc619b
commit 2543d88548
50 changed files with 715 additions and 398 deletions
@@ -319,6 +319,7 @@
computer_id_slot.forceMove(drop_location())
computer_id_slot = null
SEND_SIGNAL(src, COMSIG_MODULAR_COMPUTER_REMOVED_ID, computer_id_slot, user) // BUBBER EDIT ADDITION - Signal on ID removal
if(!silent && !isnull(user))
to_chat(user, span_notice("You remove the card from the card slot."))
@@ -38,10 +38,11 @@
/datum/computer_file/program/messenger,
/datum/computer_file/program/nt_pay,
/datum/computer_file/program/notepad,
// SKYRAT EDIT ADDITION START
/datum/computer_file/program/crew_manifest,
// BUBBER EDIT ADDITION START
/datum/computer_file/program/maintenance/camera, // Adds camera to all base tablets
// SKRAT EDIT ADDITION END
/datum/computer_file/program/crew_manifest
/datum/computer_file/program/crew_self_serve, // Crew Self Serve
// BUBBER EDIT ADDITION END
)
///List of items that can be stored in a PDA
var/static/list/contained_item = list(