* Fixes Intellicards in computers being deleted when the computer is destroyed (#78475)
## About The Pull Request
As described in #78467, if an Intellicard is inserted into a laptop or
stationary modular computer, and said computer is destroyed, then the
Intellicard (as well as any AI on it) is instantly deleted. This PR
makes the Intellicard get dropped instead. Closes#78467.
## Why It's Good For The Game
Bugs are bad.
## Changelog
🆑
fix: Intellicards in computers are no longer deleted when the computer
is destroyed.
fix: Modular consoles can now be deconstructed by right clicking with a
wrench.
/🆑
* Fixes Intellicards in computers being deleted when the computer is destroyed
---------
Co-authored-by: GPeckman <21979502+GPeckman@users.noreply.github.com>
* The notepad app now includes basic nautical directions in its default message. (#78241)
## About The Pull Request
Based on an old PR from citadel:
Citadel-Station-13/Citadel-Station-13/pull/7690
It also comes with a tip.
Screenshot of what it looks like more or less (a smidge outdated):

## Why It's Good For The Game
This should help new players and not learn and memorize these five
simple terms often used in station area names.
## Changelog
🆑 Ghommie (Based on an old PR by Trilbyspaceclone from Citadel)
qol: The notepad app now includes basic nautical directions in its
default message.
qol: A tip about nautical directions, too.
/🆑
* The notepad app now includes basic nautical directions in its default message.
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* You can now send PDA messages when resting (#78154)
## About The Pull Request
No longer must you stand up when sending messages over the PDA! Do it
all comfortably, laying down in your bed!
Computers are automatically inaccessible when resting, so this only
affects PDA's, TABLETS, and LAPTOPS
## Why It's Good For The Game
Why wouldn't I be able to use a PDA laying down, heck everyone uses
their phone laying on their back, using your PDA like that only makes
sense
## Changelog
🆑
fix: The messenger app can now be used when laying down.
/🆑
Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>
* You can now send PDA messages when resting
---------
Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>
* pAIs control a PDA they're inserted into (#78103)
## About The Pull Request
This PR lets pAIs inserted into a PDA to control the PDA of their owner.
They can see their own pAI configurations but cannot edit any of it.
They also can't eject themselves from it.
This means they can receive and send PDA messages as their owner, acting
like a personal secretary
This also adds support for multiple people using a PDA and its UI
updating for all of them and PDA messages being received and responded
to from multiple people under the same PDA
It also removes pAI camera in favor of using siliconcamera, which is the
same thing; this just cuts down on some copy paste.
I also reverted PDA's ringer being off preventing messages from being
sent to your chat, silent mode was meant to prevent only the ringing
sound.
## Why It's Good For The Game
pAIs can now do a little bit more to help their owners on a personal
level, and adds support for more stuff like this in the future (an idea
I had was being able to hack into PDAs in the same way the CE can hack
into APCs remotely)
This is a re-PR of https://github.com/tgstation/tgstation/pull/76445 but
it's a little better this time and does not remove the PDA Messenger app
from pAIs.
## Changelog
🆑
fix: PDAs being on silent no longer prevents PDAs from being sent to
your chat, again.
add: pAIs inserted into a PDA can now control the PDA, and will receive
PDA messages sent to it (and can respond under the PDA's name).
/🆑
* pAIs control a PDA they're inserted into
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* [NO GBP] Add some istype guards to the PDA messenger's `get_messengers` proc (#78070)
## About The Pull Request
Read title, not having these checks can knock out the messenger for
everyone for the entire round
## Why It's Good For The Game
I didn't think about hard deletes in my original NT Messenger PR, and as
far as I know this hasn't happened on this codebase yet.
However this PR doesn't only help downstreams that struggle with hard
deletes, it also implements some pretty critical guards as not having a
messenger for an entire round is pretty bad and sometimes hard deletes
are very hard to track and fix, so it could potentially break the
messenger for a lot of rounds.
* [NO GBP] Add some istype guards to the PDA messenger's `get_messengers` proc
---------
Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com>
* Various jobs start with more job-related programs preloaded into their PDAs. (#77740)
## About The Pull Request
Engineers now start with the canary and atmosscan program, atmos techs
start with the SM monitor program, and Robotisists start with the
silliconnect program.
## Why It's Good For The Game
it's more convinient than downloadin em roundstart.
## Changelog
🆑
qol: Various jobs have gotten additional programs uploaded at
roundstart, engineers now have the canary and atmospheric scanner
programs, atmospheric technicians now have the supermatter monitor, and
Robotisists/RDs now have the silliconnect program.
/🆑
* Various jobs start with more job-related programs preloaded into their PDAs.
---------
Co-authored-by: Teagarden <124026007+Vincent983@users.noreply.github.com>
* Adds sanity checking to prefs checks, fixing a bug that can cause emotes to stop displaying intermittently
* Update vox_procs.dm
---------
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
* Fixes the formatting for ghost PDA messages (#77590)
## About The Pull Request
It was in all bold, now it no longer is. It also was only being
displayed to dedicated observers, which means that it didn't show to
players that died and ghosted out.

## Why It's Good For The Game
It's just much nicer, and looks like it used to look before, rather than
being entirely bold.
## Changelog
🆑 GoldenAlpharex
fix: The formatting on PDA messages displayed to observers is now back
to what it used to be, rather than being all bold.
fix: PDA messages are now displayed to observers from dead players, and
not just dedicated observers.
/🆑
---------
Co-authored-by: distributivgesetz <distributivgesetz93@ gmail.com>
* Fixes the formatting for ghost PDA messages
---------
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
Co-authored-by: distributivgesetz <distributivgesetz93@ gmail.com>
* Sets a saner length limit to ID assignments and paintings' titles. (#76723)
* Sets a saner length limit to ID assignments and paintings' titles.
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Fixes a bug where borgs effectively break IDs when removing them from modular consoles (#76948)
## About The Pull Request
Fixes a bug where borgs effectively break IDs when removing them from
modular consoles. Previously when they did this it would cause the ID to
be unretrievable.
## Why It's Good For The Game
Fixes a stinky bug!!
## Changelog
:cl:Sapphoqueer
fix: fixes a bug where borgs and TK users could effectively break ID's
by removing them from modular computers.
/🆑
* Fixes a bug where borgs effectively break IDs when removing them from modular consoles
---------
Co-authored-by: SapphoQueer <94389951+SapphoQueer@users.noreply.github.com>
* Machine list is now stored in SSmachines | Remove excessive use of global lists for specific machine types
* Resolve merge conflicts
* Modular adjustments
* destroy this double return on destroy
---------
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
* Adds an extra malf AI ability: Remote emagging. Also tidies up emag code and coverts a lot of things to balloon alerts
* Update communications.dm
* Modular override
* Some modular adjustments, removes 'emagged' vars in favor of obj_flags
* whoops, mobs don't have obj_flags.
---------
Co-authored-by: nikothedude <59709059+nikothedude@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
* Clear PDA now has all themes (#76674)
## About The Pull Request
Gives all themes to clear PDAs
## Why It's Good For The Game
Clear PDAs are found/purchased late into a round and theme apps would
generally already be found and installed in PDAs. This means there's
nothing left to install in the crystal PDA, so instead I thought why
shouldn't they just get all themes?
## Changelog
🆑
qol: Clear PDAs now has all themes in their themify app by default.
/🆑
* Clear PDA now has all themes
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Bloop <vinylspiders@gmail.com>
* Small security / code passover for radar mod pc program (#76299)
## About The Pull Request
I saw this line "randomly" and thought "well that can't be safe"
971fbf9362/code/modules/modular_computers/file_system/programs/radar.dm (L67-L68)
So I went through and added a sanity check for it to ensure it's only
getting passed `ref`s being tracked in the objects list
This accompanied some general code improvements
## Why It's Good For The Game
Just some extra safety
Some of these apps do a follow up check that the selected ref is a valid
ref to track, but not all of them (notably the Fission 360). It's
unlikely this can be abused but it's good to have
## Changelog
🆑 Melbert
qol: Scanning apps (Lifeline app) start with a scan
fix: Fixes a potential exploit in radar apps
/🆑
* Small security / code passover for radar mod pc program
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Bloop <vinylspiders@gmail.com>
* Modular machinery computer UI opens again (#76187)
**Problem Reproduction**
1. Find/Make any instance of `/obj/machinery/modular_computer`
2. Try opening its UI
3. Doesn't work
**The Solution**
Assign the processor's `physical` var with the computer that it's inside
in.
* Modular machinery computer UI opens again
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
* Standardize Welder Fuel Usage (#76021)
Remove welder fuel usage from all actions except attacking and leaving
it on
most welder tasks require a minimum of 1u of fuel, some longer tasks
require a minimum of 2 or 3u welders now drain 1u every 5 seconds
they're active
## About The Pull Request
Prior to this PR welder fuel usage was random, a lot of tasks didn't use
any welder fuel and welders were basically near infinite so long as you
didn't use them for combat, it took 26 seconds of activity to drain 1u
of fuel, that means an emergency welder alone could run for 5 minutes
straight before needing a refuel
After this PR all welders will drain 1u every 5 seconds instead of every
26 seconds, but welding objects won't require extra fuel anymore, making
the fuel usage much more consistent.
resolves#55018
## Why It's Good For The Game
Actually makes fuel tanks useful and relevant without making it
obnoxious to do repetitive quick tasks like turn rods into plates,
there's actually a reason to upgrade off the emergency welder now since
it lasts 50 seconds rather than 5 minutes
## Changelog
🆑
qol: Welders now have a more consistent fuel usage
/🆑
* Standardize Welder Fuel Usage
---------
Co-authored-by: Couls <coul422@gmail.com>
* Tablet apps are now deleted when necessary & removes console preset. (#75863)
## About The Pull Request
Apps now properly delete themselves when removed, so they don't exist in
nullspace anymore.
Chat client now actually updates the uid, because its New() didn't call
parent.
Deletes the 'console' subtype of modular computer
Updates how downloading and transferring files are handled
Fixes being able to infinitely upload apps to a disk
## Why It's Good For The Game
Fixes some more bugs I found with apps and prevents spamming apps in a
disk.
## Changelog
🆑
fix: Maintenance data disks now properly transfer from PC to disk
fix: Disks can no longer be flooded with the same app repeatedly.
/🆑
* Tablet apps are now deleted when necessary & removes console preset.
* updatepaths
* feex
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
* Cannot use departmental budget cards as source of credit withdraw (#76113)
Currently you can put cargo's budget card into your PDA, go into NT Pay
and send over the budget to any pay token you want including yours. This
just adds a check to ensure you aren't using that kind of card as
withdrawal source.
* Cannot use departmental budget cards as source of credit withdraw
---------
Co-authored-by: Pepsilawn <reisenrui@gmail.com>
* ""Fixes"" Siliconnect log UI updating (#75890)
i dont think borg logs are static why are they in static update
changes them to normal ui update
* ""Fixes"" Siliconnect log UI updating
---------
Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com>
* Laptops give a slowdown when dragged (#75809)
## About The Pull Request
Laptops have a slowdown when held in hand that could easily be bypassed
by just dragging the laptop instead so you can interact with it with no
slowdown.
It is the same slowdown from dragging lockers with 1.5, and by tests,
looks like the same slowdown given to laptop when held even if I
couldn't easily find the value properly defined anywhere...
## Why It's Good For The Game
If we designed Laptops to be better PDAs but with a bulkyness side
effect, kinda silly to let it be easily bypassed like this...
## Changelog
🆑 Guillaume Prata
fix: Laptops now give a slowdown when dragged, patching the easy trick
of dragging a laptop to bypass the slowdown for carrying it on hand.
/🆑
* Laptops give a slowdown when dragged
---------
Co-authored-by: GuillaumePrata <55374212+GuillaumePrata@users.noreply.github.com>
* PDA Fixes and Changes and Cargo Console Fix (#75768)
Was updating the documentation about PDAs on the wiki and saw some minor
issues, threw in the bug fix for issue
https://github.com/tgstation/tgstation/issues/75231 as well because why
not.
Also added the ability to put medipens into PDAs, they're small and
pen-like enough, right?
* PDA Fixes and Changes and Cargo Console Fix
---------
Co-authored-by: Oreo <20830349+Peliex@users.noreply.github.com>
R&D Monitoring console TGUI + Can see RD consoles (#72987)
## About The Pull Request
I wrote this while constantly rushing lol
This PR does many things, the largest is that the R&D Monitoring console
(the RD's one) is now TGUI
It also changes how researching loggings work, bringing the RD console
and NtosRD app on par with eachother
The type of person is also logged differently, instead of ``Cyborg:
[name]`` and ``User: [name]``, humans do not have a prefix and cyborgs
will say ``CYBORG [name]``. ``research_logs`` also works differently now
to make it easier to reference each needed data from the list.
Lastly, I added the ability to see R&D consoles from the console, and
the ability to remotely un/lock them down. This currently is pretty
useless as it can't control the tablet app variant, and anyone with
Science access can just unlock it, however with some minor future
changes I think this can be turned into a good way for the RD to get
control of their department.
Video demonstration, mostly (I made a few edits after this):
https://user-images.githubusercontent.com/53777086/215005387-817106f4-5237-4f2e-b0ac-da28e6a17f9c.mp4
## Why It's Good For The Game
This console is overhyped by the game, being hidden behind an RD-locked
Command-colored door, in the same room as one of the most damaging theft
objectives, yet it is one of the most useless and forgotten consoles in
R&D if you don't count everything outside of researching, experiments
and robotics.
This adds a nice TGUI menu while making it a little more worthwhile to
use.
## Changelog
🆑
balance: The R&D monitoring console now shows R&D consoles and their
locations.
refactor: The R&D monitoring console now has a nice TGUI menu.
/🆑
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* [no gbp] Golem mineral functionality tweaks/fixes (#75343)
## About The Pull Request
Fixes a couple of things people have pointed out about golem
transformations.
- Diamond golems now stop being invisible when they attack or throw
something, they also turn invisible a bit slower.
- Using a bluespace knot takes 2 seconds instead of 3 seconds.
- Bananium Golems only slip you if they are lying down.
In order to achieve that last one I refactored the slipperiness
component to take an optional extra callback, and then killed a subtype
of it which could be replaced with passing in a callback. I tested it
and it seems to work the same as it used to.
These are largely how things were supposed to work and I just overlooked
them.
I am sure this won't be the last PR of a similar vein while people try
these out, provided that I actually hear anything they are saying about
it.
## Why It's Good For The Game
Diamond golems shouldn't be able to attack you while remaining invisible
and untargetable even if it is funny.
Clown golems aren't supposed to be able to slip you by swapping places
with you even if it is funny.
The bluespace hand was basically just worse than using the crystal and
not eating it, maybe still needs another buff after this one.
## Changelog
🆑
fix: Diamond Golems can no longer attack or throw things and remain
invisible.
fix: Bananium Golems are only slippery if you actually tread on them
(aka: while they are resting).
balance: Golem bluespace teleportation is slightly quicker.
/🆑
---------
Co-authored-by: san7890 <the@ san7890.com>
* [no gbp] Golem mineral functionality tweaks/fixes
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: san7890 <the@ san7890.com>
* Cargo category cleanup (#75374)
## About The Pull Request
I accidentally discovered that when #55504 removed cargo export
categories being a thing during export value evaluation, in two
instances, they forgot to remove passing over the now defunct export
categories, causing it to be passed in as the elasticity value, and by
sheer coincidence, this was not causing problems (due to being overriden
by a named argument in the pirates case, and cargo_exports being
evaluated as true in another).
This PR fixes the arguments, preventing possible bugs in the future.
This also removes the code that set if the cargo shuttle could sell
contraband and emagged items, as that is no longer a thing. I talked
with @ ArcaneMusic about this, and they agreed, albeit with the caveat
that if someone finds a good use case for this feature, it could be
saved.
This PR also autodocs several export related files, and cleans up
various single and two letter vars.
## Why It's Good For The Game
Cleaner code, unused code removed.
## Changelog
🆑
code: cleaned up cargo export code a bit
/🆑
* Cargo category cleanup
---------
Co-authored-by: Profakos <profakos@gmail.com>
* Coroner Tweaks (#75250)
I played some as coroner, and realized there were a few things that were
either errors in the original PR, left out, or that could be added to
improve the feel of the job a little more. It ended up covering a fair
bit of ground, with a number of changes, but i'll go over the biggest
parts here:
First up! jumpsuits and jumpskirts! the medical doctor job, despite
starting with scrubs, still has a jumpsuit and skirt available in the
medidrobe. So, i added a pair for coroners to the mortidrobe, enjoy!
(and thanks to the kind morgue skeleton for modeling these with me!)
also, you may notice some black pixels on my head - that's because i
added a black scrubcap to the mortidrobe as well! the sprites were done
for this already, so when i noticed it was absent i opted to include it
here, for consistency with the other scrub types in the game.
next up, we have the other addition of this PR, the coroner's medkit
this is mainly for storing and consolidating coroner job items, in a
flavorful and interesting way. the coroner spawns with the larger
variant, that has more storage, but can still only hold up to small
items. it also includes a few more flavor items, that the compact
version lacks. the smaller version can be obtained in the autopsy kit
from cargo, and one more is available in the mortidrobe.
smaller changes:
i fixed some weird transparent pixels on the autopsy scanner itself, and
cleaned up some incorrect shading on the obj icon for the black scrubs.
before and after here:
i also gave the coroner their own type of pda, since they were
previously inheriting the medical one. this one matches their color
palette! in addition to this, i swapped the botkeeper app they
previously had for plexagon crew manifest.
* Coroner Tweaks
---------
Co-authored-by: Lamb <110322848+CoiledLamb@users.noreply.github.com>
* Fixes issues with closing apps on tablets (#75117)
## About The Pull Request
- Fixes background apps not reloading the UI
- Standardizes opening/closing/backgrounding apps
- Simplifies the way apps are closed instead of having 2 procs, one on
the PC and one on the program, being named the same thing (wtf)
- Removes program states. They existed so computers can know to update
their UI every process tick, but since we now do this event based, this
is no longer needed, which is good.
- Replaces the 'forced' arg from kill_program as it was completely
unused, with ``reload_ui``, which is now used to open the UI on close,
and not to when we don't want it to.
- Closing background apps no longer reloads the entire UI
- Responding to an NT Message will no longer open the UI on your face.
## Why It's Good For The Game
Closes https://github.com/tgstation/tgstation/issues/75046
Closes https://github.com/tgstation/tgstation/issues/75108
Makes tablet UIs more responsive and lag less, not checking if a program
is closed every process to close it, and makes responding to messages
not a hassle every time.
Also makes the code easier to understand/read,
## Changelog
🆑
fix: Tablets' minimize apps feature works again.
/🆑
* Fixes issues with closing apps on tablets
* Update tablet.dm
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Tablet UI update (mostly fixes) (#74844)
## About The Pull Request
Tablet UIs are now changed when opening/closing an app, instead of
constantly checking for a UI change every ui update.
Program UI acts no longer call parent, as it was unnecessary, Computers
are the ones that should be calling it.
Fixes a ton of problems with static data not updating, such as in
Messenger, ID management, Siliconnect, and Chat client
Chat Client's Admin mode also works again, which was broken when
accesses to check was turned into a list.
Turns a few lists in Robocontrol into static ones when we aren't
changing anything, and makes it actually scan your ID's access.
Fixes budget ordering being unable to show the cart/call the cargo
shuttle.
## Why It's Good For The Game
While I can't seem to find a single issue report on any of the above,
these are still problems that should be fixed.
## Changelog
🆑
fix: SiliConnect can download borg logs again.
fix: The RD can once again enable Admin mode on Wirecarp
fix: NT IRN can once again see the shopping cart and call the cargo
shuttle.
fix: Chat Client, ID Management and Messenger should now update their
UIs properly.
code: PDAs will hopefully not lag as much when clicking on buttons (such
as in ID management).
/🆑
* Tablet UI update (mostly fixes)
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* Adds mobility_ui bypass flag (#72934)
A flag that lets you use an interactive TGUI screen while laying down.
Adds this flag to the PDA.
You're relaxing on a bed or something and it's annoying having to stand
up just to reply to a PDA message and then lay back down. We know how to
text without dropping the PDA on our face. (Usually)
The flag can be applied to anything else you should be able to interact
with while laying down.
* Adds mobility_ui bypass flag
---------
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* Relocate alarm monitor display update code to the signal handler instead of process tick (#74824)
## About The Pull Request
This very simply makes alarm monitor UI and icon updates event based
instead of updating them with the processing loop.
The original proc also included unnecessary conditionals, these have
been worked out.
## Why It's Good For The Game
Instead of updating alarm monitors every single program tick, we could
instead update them only when alarms actually update. This improves
responsiveness for when alarms go off (we don't wait for the next
program tick and instead update immediately), and prevents us from
running unnecessary conditionals and icon updates.
## Changelog
🆑
code: Update active alarm monitor computers only when alarms are
actually changed instead of every program tick
/🆑
---------
Co-authored-by: Gear <gear@ gear.is>
* Relocate alarm monitor display update code to the signal handler instead of process tick
---------
Co-authored-by: Gear <9438930+the-og-gear@users.noreply.github.com>
Co-authored-by: Gear <gear@ gear.is>