Commit Graph

336 Commits

Author SHA1 Message Date
John Willard
3e41388e20 Removes networks from the game (#74142)
## About The Pull Request

This is a continuation of
https://github.com/tgstation/tgstation/pull/74085 - I announced in the
comments there that this would be my next PR, and this is it.

Removes SSnetwork, ``/datum/ntnet``,
``/datum/component/ntnet_interface``, ``var/network_root_id``, the
network unit test, and a lot of other things related to networks.

- NTNet circuits now check for an Ntnet relay, and uses signals to
operate.
- Logs in Wirecarp is now only for PDA and Ntnet Relay things, so you
can no longer see what ruins exist using it (why should Wirecarp know
that Oldstation spawned? The flavor is that they dont know its there).
- Removed it from MULEbots entirely, I don't think it even did anything
for them? Botkeeper seems to work without it, so it's possibly there
from pre-tgui PDAs.
- Moves assigning random names to a base proc instead of being tied to
network, this is things like random-naming scrubbers/vents. The behavior
hasn't changed at all.
- Makes Ntos work for consoles when relays are down, as the comments
said they're supposed to (because they're wired). I think this was an
accidental change on my part, so this is a revert of that.

## Why It's Good For The Game

Ntnet is ancient code that hasn't given us much that we can't do with
already existing alternatives, we've been slowly moving away from it for
init times, and though a large portion of that was limited to airlocks,
I still don't think this is a system worth keeping around.
It's way too complex to expect feature coders to do anything with it,
and too old with better alternatives for anyone to want to improve any
of it.

## Changelog

🆑
fix: Computers are now properly connected to Ethernet, and can use Ntos
when Relays are down.
refactor: Removes Ntnet and Ntnet interfaces, which was only used by
Ntnet circuits (which now directly checks for a Relay to work) and
MULEbots, which did nothing with it.
balance: Wirecarp no longer tells you what ruins spawned in a round,
instead it's limited to PDA logs, and tells you the source too. This
means the RD can catch someone running illegal programs if they don't
make any attempt at hiding it.
qol: Wirecarp logs is now set to save 300 at once, instead of 100 and
being increased to 300 by the RD during the round. This is pretty
insignificant, since there's no reason to NOT want as many logs as
possible.
/🆑

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
2023-03-26 03:02:28 -07:00
John Willard
4462f4d5be Removes more NTNet from Tablets and removes a ton of dead code (#74085)
## About The Pull Request

Removes NtNet softwaredownload/communication because they did nothing,
so this also removes the feature to shut them off from Wirecarp

I removed tablets from being added to networks, Tablets already generate
logs for actions they do, which is already enough for the effects it has
in-game (just being visible to Wirecarp), once NtNet is deleted from
everything else then we can move it to ModPCs and limit logging to only
ModPC actions.

Fixes shutting off ntnet relays from Wirecarp, now you can properly shut
off Ntnet, and the warning that it kicks you out of the program is now
true.

Gives the Holodeck it's own network root define and fixes Syndicate
network showing up on Wirecarp

Wirecarp's PDA logs now shows the source of an action

## Why It's Good For The Game

Moves ModPCs further from NTNet so we can move towards deleting it
entirely
Makes Wirecarp more responsible and trustworthy
Removes useless stuff that never gets used, simplifying a overthought
overcomplicated system.

## Changelog

🆑
balance: Wirecarp now properly shuts off NtNet remotely.
balance: Wirecarp now shows the source of a PDA that does an action.
fix: Wirecarp can no longer be used to see if Nukies exist through their
networks.
del: Removes Software downloading and communication Ntnet networks, as
they were pretty worthless.
/🆑
2023-03-21 09:50:47 +13:00
MrMelbert
ccc144a08e Fixes malf camera upgrade appearing on security camera consoles (#73970)
## About The Pull Request

Wow that was easier than I thought

Malf AI camera upgrade no longer shows up camera consoles. 
Advanced Camera consoles probably still show it but those are harder to
get so someone else can fix those

## Why It's Good For The Game

It is admittedly very funny to instantly valid a malf ai but probably
not fun

## Changelog

🆑 Melbert
fix: Malf AI's xray camera upgrade no longer shows on station security
camera consoles
/🆑
2023-03-14 17:00:33 -07:00
Antonio Tosti
73172f8836 Re-implements Physical and Mental statuses in crewmember Medical Records (#73882)
## About The Pull Request
These changes re-implement the functionality for Physical and Mental
Statuses, which used to be present in Medical Records (visible via
medical filing cabinents, medical records consoles, and MED-HUDs). These
Physical/Mental statuses can once again be updated through examining a
crewmember (while wearing a Med-HUD), or through the new TGUI interface
for medical records consoles.

## Why It's Good For The Game
Primarily, this resolves the bugs mentioned in [Issue
#73477](https://github.com/tgstation/tgstation/issues/73477), and
restores functionality which appears to have been accidentally removed
via [PR #72725](https://github.com/tgstation/tgstation/pull/72725).
Additionally, the re-implementation of these statuses allows for more
in-depth medical RP (and bureaucracy), especially in regards to the
Psychiatrist role and managing crewmember sanity.

## Changelog
🆑
fix: Re-implements physical and mental statuses in crewmember medical
records.
fix: Re-implements changing a crewmember's physical/mental status via a
Med-HUD.
/🆑

Edit: Image of the new TGUI buttons which now handle Physical/Mental
statuses.

![medical-records-symbols-circled](https://user-images.githubusercontent.com/5588048/224860672-43486b9e-3b71-4ea5-8a71-b86545e08632.png)

Closes #73477
2023-03-13 19:21:55 -06:00
John Willard
5b63228b9a Tablets don't close their UI when changing program (and some fixes) (#73635)
## About The Pull Request

- Tablets now refresh their page when changing programs, this means the
UI will no longer close and reopen itself several times (or even have
several UIs open if shit broke hard enough).
- Removed tablet's attack self because interact already does everything
it had to do.
- Header programs now close when minimized (as there's no button to
close them in the main menu.
- Removed a lot of program UI stuff, it's now handled by the PC itself,
such as header data and ui host.
- Cut off asset sending from TGUI into it's own proc so I can re-send
assets when changing programs
- Added an ejection button for machine computers
- Fixed ID not ejecting into the user's hand when using 'Eject ID'
- Fixes a minor runtime when opening the MODsuit application without a
MODsuit already connected.

## Why It's Good For The Game

Fixes some bugs that I found with tablets

UIS now won't be flickering as bad in front of them, or have
inconsistent placement (like when you move your main menu UI, go to
Messenger, then it's back to the center of the screen).

Video of it in action

https://user-images.githubusercontent.com/53777086/221301417-78321149-0c10-475e-bd29-79f5a4ba0597.mp4

## Changelog

🆑
fix: Being in an application now properly uses the tablet's battery.
fix: Messenger and Themify apps now close when minimized, so don't count
towards the running app limit.
fix: Tablet UIs will now no longer spam open/close the UI when changing
applications
fix: Using the Eject ID button on tablets now ejects into your hand.
fix: Computers now have an Eject ID button
refactor: Cut down a lot of copy paste in tablet & program code, now
it's mostly done by the tablet.
/🆑
2023-03-01 00:16:26 -07:00
Jeremiah
96715a5797 Fixes ui_data on ntosrecords [NO GBP] (#73670)
## About The Pull Request
Missed this while redoing records, this makes it match what the UI is
expecting
## Why It's Good For The Game
Bug fixes
## Changelog
🆑
fix: Fixes NTOS records program receiving bad medical disability data
/🆑

Co-authored-by: Jeremiah <jlsnow301@pm.me>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2023-02-27 14:35:24 -07:00
John Willard
ed70994d87 Messenger fixes (#73503)
## About The Pull Request

- Photos now show up in the chat to the person recieving them as a
(Photo) like how it used to be
- Outgoing messages now properly say who it's outgoing to, instead of
saying it's to themselves.
- Messenger now clears photos after sending an image with them, so you
don't accidentally send the same photo 50 times.
- AIs can now send an image from the messenger menu (code stolen from
https://github.com/BeeStation/BeeStation-Hornet/pull/7550)
- Added a balloon alert when you uploaded a photo so it doesn't just
silently pass and you have no idea if it worked or not.

## Why It's Good For The Game

Closes https://github.com/tgstation/tgstation/issues/70140 - an issue
report I've had open for months and kept procrastinating on working on.
Closes https://github.com/tgstation/tgstation/issues/70264

Messenger now properly works as it was originally supposed to.

## Changelog

🆑 JohnFulpWillard and itsmeow
fix: Messenger now clears photos after you send it, so you don't send a
photo repeatedly until you manually clear it.
fix: Sending a photo now has a hyperlink in chat for the target to see
(like with old PDAs)
fix: AIs can now select photos in their Messenger app.
fix: Messenger no longer says you're sending outgoing messages to
yourself.
/🆑
2023-02-19 14:06:48 -07:00
Profakos
339d4638a9 Fixes revelation program (#73463)
## About The Pull Request

#70678 removed hard drives from the game, and made the files be stored
directly on the computer. However, revelation has not been updated in
this regard. This PR once again makes it delete all files.

In addition, revelation also had a big red button yelling "activate"
that did nothing, and an option in ui_act that said "PRG_activate", that
wasn't used by anything, so I have linked up the two, allowing you to
revelate immediately. This does not feel like a real change, since you
could do this by arming, closing, and then reopening the program.

## Why It's Good For The Game

Fixes #72682

## Changelog

🆑
fix: Revelation once again wipes the stored files on the computer
/🆑
2023-02-17 15:04:37 -07:00
Tim
a1ada2c9ef Refactor, improve, and rename canUseTopic to be can_perform_action (#73434)
This builds on what #69790 did and improved the code even further.
Notable things:
- `Topic()` is a deprecated proc in our codebase (replaced with
Javascript tgui) so it makes sense to rename `canUseTopic` to
`can_perform_action` which is more straightforward in what it does.
- Positional and named arguments have been converted into a easier to
use `action_bitflag`
- The bitflags adds some new checks you can use like: `NEED_GRAVITY |
NEED_LITERACY | NEED_LIGHT` when you want to perform an action.
- Redundant, duplicate, or dead code has been removed.
- Fixes several runtimes where `canUseTopic` was being called without a
proper target (IV drips, gibber, food processor)
- Better documentation for the proc and bitflags with examples
2023-02-16 20:22:14 -05:00
John Willard
c58cbb4dfb Reworked PDA menu & NtOS themes (#73070)
## About The Pull Request

This is a port/rework of
https://github.com/yogstation13/Yogstation/pull/15735 - I changed a lot
of how it acted (some themes are locked behind maintenance apps).

The original author allowed this port to happen, and I really liked how
it looked there so I'd like to add it here.

### Applications

Removes the hardware configurator application, as all it did was show
you your space and battery now that all hardware was removed. These are
things your PC does by default, so it was just a waste of space.
Adds a Theme manager application instead, which allows you to change
your PDA's theme at will.
Adds a new Maintenance application that will give a new theme, however
it will also increase the size of the theme manager app itself as it's
bloatware.

### Menu

There's now a bar at the top of the menu showing 'special' tablet apps
which, for one reason or another, should stand out from the rest of the
apps. Currently this is PDA messenger and the Theme manager

Flashlight and Flashlight color is now only an icon, and is shown on the
same line as Updating you ID


https://cdn.discordapp.com/attachments/961874788706574386/1069621173693972551/2023-01-30_09-10-52.mov


![image](https://user-images.githubusercontent.com/53777086/215501361-5ea3086e-2ff5-4ab1-bde4-8a3d14014fce.png)

### Themes

Adds a lot of themes to choose from, although SOME are hidden behind
Maintenance applications, which will give you a random theme. These are
bloatware however, so they come with some extra cost to the app's
required space storage.

Themes are now supported on ALL APPLICATIONS! If you have a computer
theme, you will have that theme in EVERY app you enter, rather than just
a select few.
ALSO also, emagging the tablet will automatically set & unlock the
Syndicate theme, which makes your PDA obvious but you can disguise it if
you wish through just re-painting it to something else.


https://cdn.discordapp.com/attachments/828923843829432340/1069565383155122266/2023-01-30_05-29-53.mov

### Preferences

This also adds a pref for theme, reworking the ringtone code to work
with it as well. I also removed 2 entirely unused PDA prefs just 'cause.

Screenshot not up-to-date, they now have proper names.

![image](https://user-images.githubusercontent.com/53777086/215463669-0fe9951a-71f8-4b71-a97d-b79b5a2f945a.png)

### Other stuff

Made defines for device_themes
Added support for special app-side checks to download files
Fixed programs downloading themselves TWICE because defines all had the
same definition
Removes the Chemistry computer disk as it was empty due to chemistry
app's removal
Removes the 'run_emag' proc, since apps can directly refer to the
computer to check for emag status instead.
Moved over and added better documentation on data computer files, and
moved the ordnance ones to the same file as the others.

## Why It's Good For The Game

It makes PDAs a lot more customizable while adding more features to
maintenance applications. I think the themes look cool and it fits with
PDAs being "personal" anyways.

I also explained most of my other arguments in the about section, such
as the hardware configuration application.

## Changelog

🆑 Chubbygummibear & JohnFulpWillard
add: A ton of new NtOS themes, which are accessible by the new Themify
application that comes with all PCs.
add: Emagging a PC now defaults it to the Syndicate option (and adds it
to go back to it if you wish)
add: There's a new maintenance app that gives you rarer themes
qol: The NtOS Main menu was moved around, added "header" applications
that are shown where the Flashlight is, such as your Theme manager and
PDA messenger.
code: Made defines for device_themes
code: Added support for special app-side checks to download files
code: Removes the 'run_emag' proc, since apps can directly refer to the
computer to check for emag status instead.
fix: Programs no longer download twice.
del: Removes the Chemistry computer disk as it was empty due to
chemistry app's removal
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2023-02-17 01:14:24 +00:00
John Willard
4c9c28b58d Fixes modsuit control application (#73071)
## About The Pull Request

Fixes the modsuit control app not properly working

Accidentally caused it in a late commit on maintenance applications

## Why It's Good For The Game

Closes https://github.com/tgstation/tgstation/issues/72980

## Changelog

🆑
fix: the MODsuit control maint app now links up to MOdsuits.
/🆑
2023-01-31 09:45:07 +01:00
John Willard
4fcedc9226 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.
/🆑
2023-01-29 10:19:57 -08:00
John Willard
cd3e3159ba Checks if a machine has no research before connecting techweb (#72944)
## About The Pull Request

Currently all machines, if the config to not have a techweb link is on,
will set their node to science even if they were meant to be connected
to another (like through subtypes). This fixes that by checking to
ensure they don't have a techweb connected already before giving them a
new one.

Also as a minor fix, RD consoles will now properly add themselves to the
list of accessing RD consoles if they aren't linking to the default.
This list currently does nothing but I can see good uses of it in the
future.

## Why It's Good For The Game

Fixes an error that was found on a downstream, it's a worthwhile fix
that thankfully was caught this early.

## Changelog

Nothing player-facing.
2023-01-29 19:49:30 +08:00
Vladin Heir
fec830df9e Nuclear PDAs work on nukie base, basic programs now available (#72988)
## About The Pull Request
Nuclear PDAs now start with all the standard PDA programs + Fission 360.
Their NT Software Hub starts emagged, so they still have access to all
syndicate programs. Additionally, Nuclear PDAs are now long-ranged,
allowing operatives to download ~~donksoft arcade~~ useful programs
while still on base.

Default programs:

![image](https://user-images.githubusercontent.com/44104681/215008172-4dca93c6-cc34-4f2b-a1f0-4d6edd6842e9.png)

Hidden from others on Messenger (so as to not give the ops away):

![image](https://user-images.githubusercontent.com/44104681/215008406-253ea396-51ab-4619-8293-7553a60797fb.png)

Downloading illegal programs while on base:

![image](https://user-images.githubusercontent.com/44104681/215008685-96ffe1fb-da0d-4b5a-8392-5d4a8ca05819.png)

Fixes #72977
## Why It's Good For The Game
Loneops no longer waste over 1/5th of their TC when buying Detomatix, an
edge case related to midround traitors is resolved, and new nukies can
use the Detomatix with their starting PDA, rather than This One Specific
PDA Hidden In A Locker, which is more intuitive.
## Changelog
🆑 Vladoricious
qol: Nuclear PDAs now actually work like a PDA should, with the power to
download normal programs and delete them too. The nerds over at Cybersun
even installed a new "Why Fy Dry Ver", allowing you to download your
programs while still on the base!
fix: As a result, Lone Ops will no longer get scammed out of over 1/5th
of their TC when buying the Detomatix cartridge and Midround Traitors
with stolen Nuclear PDAs will not be denied an uplink.
/🆑

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2023-01-28 14:57:48 -05:00
Jeremiah
5e80257423 Refactors crew records (#72725)
## 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

![CM6d74brnC](https://user-images.githubusercontent.com/42397676/213950290-af6cfd76-eb8b-48e9-b792-925949311d9a.gif)

Medical records

![bFJErsvOaN](https://user-images.githubusercontent.com/42397676/214132534-59af1f8c-9920-4b51-8b27-297103649962.gif)

Look and feel of the more current version

![cxGruQsJpP](https://user-images.githubusercontent.com/42397676/214132611-0134eef0-e74c-4fad-9cde-328ff7c06165.gif)

</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>
2023-01-24 18:34:27 +00:00
John Willard
af98c74f4a Adds maintenance tablet apps (Health analyzer is one now too) (#71738)
About The Pull Request

Sprites were generously made by https://github.com/Tramzz

This was a branch I've been putting off for months because my hatred for tablet apps brought me to removing computer parts, tablets, and ntnet, however I've now returned (after a lot more procrastination).

Adds Maintenance tablet applications to the game, so far there's only three of them, for proof of concept;

    The health analyzer app (the chem analyzer part is removed entirely) move away from being given to medical/geneticists/detectives/RD.

There is on exception, which is the CMO, who gets to have the application on their tablet roundstart. Maybe it could be given to their role disk as well?

    A camera application:

image
image

    MODsuit control application:

image
image

image

Maintenance applications stand out from normal tablet apps because they can't be downloaded off the App store, and instead can only be found in maintenance, with a one-use download, cloning the application from a disk to a computer, or vice versa, will delete the old one, meaning you can only have one application at once.
Why It's Good For The Game

This is more as a proof of concept for maintenance applications, but I also think that the analyzer application wasn't really that good as an app, you should either use a health analyzer or the wand in front of medbay, you shouldn't just have one in your tablet at all times because it makes it lame if your analyzer is stolen.
Changelog

cl JohnFulpWillard, sprites by Tramzz
add: Added Maintenance tablet applications, applications that can't be cloned or downloaded from the store, instead you can find one app in maintenance.
balance: The Analyzer tablet application is also a maintenance tablet application now.
/cl
2023-01-19 10:43:32 +13:00
lessthanthree
19f58b0b24 Log status display changes (#72762)
## About The Pull Request
Changing the status displays creates an entry in game.log of who did it,
and from where.
## Why It's Good For The Game
Seeing "LOL PENIS" on the status displays with no way to track it gets
old after a while.
## Changelog
🆑 LT3
admin: Changing the station status displays now generates a log entry
/🆑
2023-01-17 20:57:17 -08:00
ShizCalev
07e5c402e0 fixes computers spamming fingers are too big warning. also fixes exploit when using programs w/ fingers that are too big. (#72698)
Fixes #72153

🆑 ShizCalev
fix: You'll no longer constantly be spammed with messages if your
fingers are too big to interact with a computer's keyboard.
fix: You can no longer interact with programs that were previously
opened on a computer if your fingers are too big to use the keyboard.
fix: You can now look at computer screens even if your fingers are too
big to use the keyboard.
/🆑
2023-01-14 23:52:01 -08:00
John Willard
5367560fb5 Minor improvements to mining order console (#72239)
## About The Pull Request

Mining order consoles are now called 'order console' instead of 'vendor'

Cargo orders through the mining vendor can no longer be cancelled
("clear" on the ntos cargo app no longer removes department orders too)

Cargo orders made with mining points now state 'mp' (for 'mining
points') instead of 'cr' to the Cargo console.

The order consoles now have a '+' icon that will instantly add +1 item
to your cart, so you don't have to manually type 1 each time.

The order console's UI name is now named after the machine, rather than
being hardcoded to 'Produce Orders'

Also makes the UI resilient to breaking if the wearer doesn't have an ID
equipped.

## Why It's Good For The Game

Better player-feedback and makes a better distinction between mining
order console and normal vendors, as well as fixes some problems like
Cargo just deleting people's mining points by deleting their
unrefundable orders.

The + button was a suggestion in the comments here and thought it would
just be a nice harmless inclusion.

The departmental order cancelling on the NTos cargo app and UI not
breaking if you don't have an ID were just bonuses that I fixed while
dealing with everything else.

## Changelog

🆑
qol: Mining order consoles are now named 'order console'.
qol: Orders from said mining order consoles can now no longer be
cancelled, and are listed as 'mp' (mining points) in the Cargo console
instead of 'cr'.
qol: Order consoles now have a + button that will instantly add 1 of the
item.
fix: Departmental orders can no longer be cancelled through the NTos
cargo application.
fix: Wearing an ID will no longer break order consoles.
/🆑
2023-01-02 11:12:36 +02:00
John Willard
85a7119005 Researching now checks your techweb for availability (#72218)
## About The Pull Request

Currently RD consoles are hardcoded to check the Science techweb for an
available node to research it, and your unique techweb (if it exists) is
only checked for availability in ``research_node()``.

To fix this, I removed this snowflake check, since we're already
checking what we need to, when we need to.

## Why It's Good For The Game

RD consoles now should be working as expected when using different
research nodes (actually being able to research things Science hasn't
already researched).

## Changelog

🆑
fix: Researching now checks the techweb it's linked to for node
availability, rather than only the Science one.
/🆑
2023-01-01 03:00:14 +01:00
Profakos
6ba4b623ff Fixes FRAME cartridges (#71875)
## About The Pull Request

The NTmessenger has been passing along itself to the send_virus proc
instead of the computer it is running on, which has caused runtimes, due
to computer programs not having certain variables. In addition, the
send_virus override for the frame cartrdige was missing an argument.
Lastly, the uplink code has not been actually assigned to the uplink, so
once it has been closed, it stayed closed. These have been fixed.

I have checked the other viruses, they seem to be working even after my
changes.

## Why It's Good For The Game

Fixes #71843 
You can once again frame people, and maybe, tempt them.

## Changelog

🆑
fix: F.R.A.M.E. cartridges work again
/🆑
2022-12-10 23:48:13 -08:00
tattle
9b1be9ef13 Investigate logs include ckey of source (if applicable) (#71833)
## About The Pull Request
All investigate logs start with [src], which can be any atom. So
sometimes names and items get printed twice. Adds ckeys to the
investigate_logs of living mobs.


![image](https://user-images.githubusercontent.com/66640614/206372340-3c50bc9d-b662-4a4d-b1ec-91c0b4db8a39.png)


## Why It's Good For The Game
Better logging, includes the ckey for living mobs in investigate logs,
and fixes some investigate_death logs that weren't properly attributed
to mobs.

## Changelog

🆑 Tattle
admin: investigate logs include ckey of source (if applicable)
/🆑

Co-authored-by: tattle <article.disaster@gmail.com>
2022-12-11 12:52:50 +13:00
Rimi Nosha
c60b5575b4 TGUI Latejoin Menu! (#71531)
## About The Pull Request

Converts the latejoin menu to TGUI, and makes it give reasons for why a
job is unavailable instead of hiding it!

<details>
<summary>Cool Images!</summary>

<image
src=https://user-images.githubusercontent.com/106692773/205135570-c8b788f1-1ff0-4e6d-b53d-e2119317c37b.png>
<image
src=https://user-images.githubusercontent.com/106692773/205135598-2ac9e138-37dc-4baf-ae33-deb0990616cd.png>
<image
src=https://user-images.githubusercontent.com/106692773/205135609-ae6b840b-40b5-4248-bd30-5fdadd6582f2.png>
<image
src=https://user-images.githubusercontent.com/106692773/205135615-d8997834-f433-48ee-8763-274e306b521b.png>



</details>

## Why It's Good For The Game

TGUI menu good, yes?
## Changelog
🆑 RimiNosha
qol: The latejoin menu is now TGUI!
qol: You'll also be able to see why you can't join a job, instead of it
being invisible!
code: Department UI colors have changed slightly. This will only affect
the latejoin and nations UIs.
/🆑

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2022-12-09 16:34:34 +02:00
John Willard
f00ca62d08 Adds a modular computer subsystem to shift modPCs away from radios (#71732)
## About The Pull Request

Adds the modular computer subsystem which is meant to replace mod PC's
reliance on networks and radios, specifically the network subsystem, the
ntnet interface, and /datum/ntnet. This PR removes station_root ntnets
entirely, but I tried to keep it small.

This PR also removes a ton of unused vars and defines, such as NTNet
channels that were unused (peer2peer and systemcontrol), atmos networks
(as they were removed a while ago) and NTNet var on relays (its stated
purpose is so admins can see it through varedits, but that's useless now
that it's a subsystem)

I also removed ``setting_disabled`` as a thing the RD can do, it turned
off ALL ntnet systems. However, this was when there were 4 different
ones, now that there's only 2 I thought it was redundant and he could
just click 2 buttons to close them.

## Why It's Good For The Game

``/datum/ntnet``, ``/datum/component/ntnet_interface``, and
``/datum/controller/subsystem/networks`` are all old-code messes that
depend on eachother and is hard for people to understand what exactly it
adds to the game. 90% of its features is allowing the Wirecarp app to
see all the ruins that spawned in-game, which I don't think is something
that we even WANT (why does the RD need to know that oldstation spawned?
Why should they know this anyway??)

This hopefully starts to simplify networks/ntnet to make it easier to
remove in the future, because surely there are better alternatives than
**this**

## Changelog

🆑
refactor: Modular computers NTnet and applications run on its own
subsystem, please report any new bugs you may find.
/🆑
2022-12-06 00:29:31 -08:00
John Willard
2425531eb2 Removes tablets (not PDAs) entirely. (#71507)
## About The Pull Request

**Comes with an UpdatePaths!**

Removes the tablet subtype, PDAs now replaces them entirely.

Nukie and Silicon tablets are now subtypes of the PDA instead, while
contractor ones were removed entirely as they didn't do anything and
were unused (though it wouldn't be hard to re-add).

Nukie PDAs are now the only type of PDA that uses modular_tablets.dmi,
which is just larger icons of modular_pda. Each application requires an
icon state in both of these, for 2 different sizes, which makes it
annoying to make new applications, especially if it can also run on
computers/laptops.

### Icons

Because Silicon tablets are now a subtype of PDA, they use PDA icons
instead of tablet ones. Luckily for us, they already exist in code.

![image](https://user-images.githubusercontent.com/53777086/203876575-56eb1593-774c-47c6-8e7d-491a7805f28c.png)

AI's don't use a tablet icon though, so they aren't affected.

## Why It's Good For The Game

There's very little difference between tablets and PDAs, PDAs overshadow
them in every single way, so at this point I don't see why we should
have both of these, and if you compare the two in usefulness and actual
in-game use by players, it's a no-brainer than the item all players get
roundstart and comes with a messenger should be the one we go with.

Also as said in the about section, when making an app you would need to
make icon states for the program running for all hardware it can run on,
which is Computer, Laptop, PDA, and Tablet.

Laptop is just a smaller computer icon
PDA is just a smaller tablet icon

However, you can't simply shrink the size of the icon, instead you have
to completely resprite the same app icon FOUR TIMES for it to not
bluescreen on all these different devices.

<details>
<summary>
Here's examples of it
</summary>
Computer (NOTE: *They share the same icon file as regular computers*)
<img
src="https://user-images.githubusercontent.com/53777086/203876801-486a8054-489a-4983-bdad-a2599b4dc379.png"/>
Laptop
<img
src="https://user-images.githubusercontent.com/53777086/203876333-58e5d135-f4c6-4a02-8948-1df771e294a4.png"/>
Tablet
<img
src="https://user-images.githubusercontent.com/53777086/203876352-816c7fb1-c681-40b9-99e0-052f49632c7f.png"/>
PDA
<img
src="https://user-images.githubusercontent.com/53777086/203876358-1cf7253d-3c6a-456a-8133-ebf7f0351637.png"/>
</details>

If we wish to help in simplifying this, we should remove tablet icons
entirely, which means 1 less icon to worry about. To do this, we'd need
to resprite nukie PDAs, however I am very much not a spriter and never
tried GAGS, so I'll leave it to someone else to do.

## Changelog

🆑
del: Tablets are now removed, PDAs are now the base 'tablet'. Silicon
and nukie tablets are now PDAs.
/🆑
2022-12-02 00:15:14 -08:00
Sealed101
60b47e2bd5 Mech camera (#71392)
## About The Pull Request
This PR implements a new add-on for mechs that functions as a
~~EMP-proof~~ borg security camera. Unlocked in Basic Robotics Research
node.
Mechs with a camera installed will have a unique diagnostic HUD blip.


![image](https://user-images.githubusercontent.com/75863639/202909177-f2badafc-2429-495f-a281-fcaad95837fb.png)

Getting EMPd temporarily sets the camera's view range to 1.


![image](https://user-images.githubusercontent.com/75863639/203862438-cfcdc442-3aa6-4468-83bb-b4ccad8dfa2e.png)


## Why It's Good For The Game
Bodycam footage of the mech in action; AIs piloting a mech with this
add-on can actually see what's happening around the mech, much like
following a borg.

## Changelog
🆑
add: robotics now has access to a mech camera add-on, which installs a
security camera into the mech. bodycam footage from the big leagues!
qol: cyborg cameras should be more active with updating static when
moving (ideally down from 2.5 seconds to 0.5 between updates), make sure
to report any jank if you happen on some
/🆑

Co-authored-by: Time-Green <timkoster1@hotmail.com>
2022-11-29 21:21:23 +00:00
John Willard
dd12327b24 Wirecarp mass PDA now edits the TARGET computer (#71483)
## About The Pull Request

Wirecarp's mass pda perms feature broke when I had switched 'target
computer' for the host of the application instead, likely due to a copy
paste error. This fixes that, allowing the RD to once again give people
PDA perms.

## Why It's Good For The Game

Wirecarp now works as intended.

## Changelog

🆑
fix: Wirecarp now lets you give people mass PDA perms again.
/🆑
2022-11-25 00:28:07 -08:00
CocaColaTastesGood
5445de1838 Fixes negative payment in NTpay & Encodes name param sent to admins in fax (#71491)
## About The Pull Request
NTpay wasn't validating negative input serverside, allowing for negative
payment to users(Negative - Negative = Positive, so it adds money to the
senders account.) Also encodes a parameter that was sent unsanitized to
admins.
## Why It's Good For The Game
## Changelog
🆑
fix: Fixes a NTPay exploit.
/🆑
2022-11-24 11:48:32 -08:00
Mothblocks
fa7688d043 Save 0.6-0.7s of init time by splitting registering lists of signals into its own proc, and optimizing QDELETED (#71056)
- Makes QDELETED use isnull(x) instead of !x, giving about 0.2 to 0.25s
of speed.
- Make disposal constructs only update icon state rather than go through
expensive overlay code. Unfortunately did not have much effect, but is
something they should've been doing nonetheless.
- Makes RegisterSignal only take signals directly as opposed to
allocating a fresh list of signals. Very few consumers actually used
this and it costs about 0.4s. Also I think this is just a bad API anyway
and that separate procs are important

`\bRegisterSignal\((.*)list\(` replaced with `RegisterSignals($1list(`
2022-11-22 07:40:05 +00:00
John Willard
e844c5e910 NTnrc improvements (pings, messages, spellcheck & category) (#70885)
## About The Pull Request

Changes in this PR:
- Anyone can ping others, not only the Administrator. More people than
just the Admin need to get people's attention.
- Pings now have a 3 second cooldown delay, so you can no longer spam
it. You also can't ping if you're muted.
- The chat program is now under the Crew section of the store, rather
than 'Misc', because it's a crew thing wtf?
- Messages are now shown with the latest on top, removing the need in
the past to scroll down to see new messages.
- I also increased the channel name character limit by 6 so people have
some more leeway in their names.


![image](https://user-images.githubusercontent.com/53777086/198833518-44af276c-9600-4e1c-b15e-484eb93fc8ec.png)

## Why It's Good For The Game

Makes the NTnrc app more bearable to use and makes people actually able
to get other client's attention, and gives the Admins more 'power' over
their channel.

## Changelog

🆑
qol: The chat client is now listed under 'Crew' instead of 'Misc' in the
store.
qol: The chat client now allows anyone to use the ping feature, as long
as they aren't server muted.
qol: The chat client's messaging system now shows the latest messages on
top, rather than bottom. No more scrolling!
qol: The chat client now has a ping spam-prevention feature.
/🆑
2022-11-21 23:00:19 -08:00
Tim
333dcef6ad Refactor janicart to be subtype of mop bucket (#71094)
## About The Pull Request
Fixes #41123

This gives mop buckets the same behavior as janicarts. This means it
inherits the same hotkeys, context screentips, etc.

Other niche changes:

- Fix reagent containers playing attack animation when transferring
reagents to mob bucket
- Fix syringes and droppers not updating the appearance of target when
used
- Regular mop bucket has the same RMB hotkey as janicart for wetting mop


## Why It's Good For The Game
One less bug off tracker.  Better consistency with code.

## Changelog
🆑
fix: Fix reagent containers playing attack animation when transferring
reagents to mob bucket
fix: Fix syringes and droppers not updating the appearance of target
when used
qol: Regular mop bucket has the same RMB hotkey as janicart for wetting
mop
refactor: Refactor janicart to be subtype of mop bucket
/🆑

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2022-11-21 19:29:56 -08:00
John Willard
b8d86849c8 Removes ID computer parts (Removes computer hardware) (#71320)
## About The Pull Request

Removes the last computer part in the game: ID parts
Because this is removed, I also removed all computer hardware in the
game, and removed mentions of it in the game.
There is still 'hardware', as in Computer, Tablet, or Laptop.

Computers now all hold one ID slot by default, the only time a second ID
was needed was to use the access of both at once, and for the ID
modification application. This was now replaced with a new UI that only
has one tab, one ID slot:


https://user-images.githubusercontent.com/53777086/202801939-151b783f-75c8-46bf-a6c5-1b57b0d0da8e.mp4

## Why It's Good For The Game

Computer hardware is finally dead 🦀 

## Changelog

🆑
balance: All modular computers now only have one ID slot, and cannot be
upgraded.
qol: The HoP's access application now only has one app, logging in will
directly modify the ID that's in it, making it less confusing to swap
back and forth.
/🆑
2022-11-20 23:04:45 -08:00
John Willard
06197693a5 Adds support for non-science techwebs (+Config) (#71070)
## About The Pull Request

This is an expanding of
https://github.com/tgstation/tgstation/pull/69708

Adds a config to not connect machines to a techweb at the start of a
round
Adds the ability to multitool a server to get its techweb in its buffer,
which can then be used on machines to sync them.
Adds support for some machines to not cry when they don't have a techweb
linked to it, in case they actually don't.

If the config to not have machines connected to the science server is
enabled, research servers will make their own techwebs instead. This is
barebones though and would need more work if this option is used.

For misc stuff:
- I replaced checking ``GLOB.machines`` for research servers, to instead
check ``SSresearch.servers``, where we can use ``as anything``.
- Removed unused vars on the RD server control
- I renamed the operating computer's .dm file to remove the capitalized
letter from it. It's now operating_computer instead of Operations.

## Why It's Good For The Game

This is adding support for 2 different cases that can be used in the
future:
1. Off-station roles, we can make roles like Oldstation have their own
techweb so they don't ruin science's efforts, or use their advanced
research to get things we don't want, or even possibly have some
blacklist webs for ghost roles (like teleporters) so that way we don't
need to have this dance where we have to give them a very specific
amount of materials for them to do things while not being able to get a
teleporter and leaving. I heard discussions that people wanted this a
while back, and one of the main things preventing this from happening is
the lack of support. Hopefully this is encouragement to make it a
reality, because I think it would be a really cool expansion of ghost
roles and a good way to prevent them from messing with the round in
progress.
2. Downstreams who want to do different things with Science. Personally
I made this PR with voidcrew(shiptest) in mind and think this would make
their lives easier. I didn't expand too much on this because I'm leaving
up mostly to the downstreams to figure out what they want to do with
these systems.

## Changelog

This generally isn't really player facing, since most of the changes
would only come into effect if the config is enabled??

🆑
fix: Research servers now only show servers connected to their techweb.
/🆑
2022-11-20 15:34:53 +01:00
MrMelbert
79ffefa06d Allows Fully Heal to be passed a series of flags, fixes Adminordrazine being horrible (#71123)
## About The Pull Request

- Fully heal can be passed a series of flags detailing what all is
healed by the proc. This allows for things to provide
almost-but-not-quite fully heals.
- Uses this in Adminordrazine, so that it stops being a pain to update
every time fully heal is updated.

This includes some small balance changes which i'll go over, nothing
extremely noticable.

## Why It's Good For The Game

Allows for more precise control over full heals. 

## Changelog

🆑 Melbert
refactor: Fully heal can be passed a series of flags. As a result, some
things which previously did a full heal might heal slightly less, or
some things which did partial full heals might do slightly more.
fix: Adminordrazine will no longer completely break every facet of a
person
admin: Ahealing a changeling will refill all of their chems.
/🆑
2022-11-17 10:09:00 -08:00
John Willard
ad5ceb5583 Removes tablet cell parts (#71078)
## About The Pull Request

Removes cell parts and cell part cells, now tablets directly stole a
power cell in them, and uses regular stock cells like every other
machine in the game. This also makes it less confusing because people
are more used to stock cells over computer cells. Because cells
generally hold more power than computer ones, I bumped up the active
power usage from 50 to 75.

## Why It's Good For The Game

We are nearly finished removing all parts, holy cr*p

## Changelog

🆑
balance: Tablets now use regular cells instead of computer cells.
balance: Tablets no longer need a power cell component to hold power
cells.
/🆑
2022-11-15 23:43:44 -08:00
John Willard
ac8dc42060 Strays away from GLOB.machines when possible (#71100)
## About The Pull Request

This replaces needless GLOB.machines with more precise lists whenever
one existed, plus adding a new one for CTF machines.

## Why It's Good For The Game

GLOB.machines holds every single /obj/machinery in the game, so checking
the whole list for stuff is pretty big. This aims to cut that down by
using smaller lists whenever possible. I also gave CTF a new list
because it checked machines very often.

## Changelog

Nothing player facing.
2022-11-15 08:59:22 -08:00
AnturK
4d6a8bc537 515 Compatibility (#71161)
Makes the code compatible with 515.1594+

Few simple changes and one very painful one.
Let's start with the easy:
* puts call behind `LIBCALL` define, so call_ext is properly used in 515
* Adds `NAMEOF_STATIC(_,X)` macro for nameof in static definitions since
src is now invalid there.
* Fixes tgui and devserver. From 515 onward the tmp3333{procid} cache
directory is not appened to base path in browser controls so we don't
check for it in base js and put the dev server dummy window file in
actual directory not the byond root.
* Renames the few things that had /final/ in typepath to ultimate since
final is a new keyword

And the very painful change:
`.proc/whatever` format is no longer valid, so we're replacing it with
new nameof() function. All this wrapped in three new macros.
`PROC_REF(X)`,`TYPE_PROC_REF(TYPE,X)`,`GLOBAL_PROC_REF(X)`. Global is
not actually necessary but if we get nameof that does not allow globals
it would be nice validation.
This is pretty unwieldy but there's no real alternative.
If you notice anything weird in the commits let me know because majority
was done with regex replace.

@tgstation/commit-access Since the .proc/stuff is pretty big change.

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2022-11-15 03:50:11 +00:00
san7890
f45347bff2 NtOS Emojipedia - PDA Emoji Messaging For All (#70829)
An Emojipedia app has been added to tablets, given to Mimes and Curators by default, allowing anyone to know all emojis. Additionally, emojis can be used in tablets by every job now.
2022-11-06 06:06:50 -05:00
GoldenAlpharex
612d13afca Fixes the messenger app not being responsive when certain buttons are clicked (#71077)
## About The Pull Request
The buttons to toggle the ringer, to toggle the sending/receiving and
the button to see message history all stopped being responsive, because
the information they were changing when pressed was wrongly kept in
`ui_static_data()` rather than `ui_data()`. Now, they're back in
`ui_data()`, and behave as expected once again.

## Why It's Good For The Game
A non-responsive TGUI interface is probably the saddest thing to see.

## Changelog

🆑 GoldenAlpharex
fix: SpaceMessenger was now updated to 6.4.8, bringing you more
responsiveness than ever (so long as ever is shorter than seven days
ago)!
/🆑
2022-11-05 20:47:38 -07:00
John Willard
6202f65661 Fixes & Improves ntnrc client & ntnet conversations (#70854)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2022-10-29 08:40:36 +00:00
John Willard
f1f46275f0 Removes tablet hard drives entirely (HDD & SSD) (#70678)
* Removes HDD's entirely

HDDs have been removed, though the code for it is still currently lingering as it's required for portable disks. I'll have to find a solution to this one day, but as I am going to sleep, this is a problem for future me.

* starts on removing SSD

* updatepaths and kills off SSD

* update path :D

* Fixes to programs and icons

* Ready for review now

I read over everything I did and tried to fix anything I saw wasn't done right. Hopefully better comments now.

* merge conflict  fix

* can't win them all

* takes viruses into account in paths, fixes it in snowcabin

* Renames the updatepaths

* removes the qdel loop

* accidentally new'ed programs twice

* Fix program's computer var

* destroy pen and disk, dont run kill program on something killed

* more fixes for pens and idle threads

* Fixes PDAs installing apps twice.

* simplifies inserted disk & PDA disk

* fuck's sake

* Use istype instead

* revert

* Revert "revert"

This reverts commit 9ede628c6fef9c7c86417234f6d8ada1ff9e2fef.

* why did that happen

* Update code/modules/modular_computers/computers/item/tablet.dm

* MC_SSD added to master lol

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
2022-10-26 00:29:50 +00:00
John Willard
9bf96c7763 Misc PDA code improvements (#70555)
* How to conflict with PRs: A guide

* Removes unnecessary support for the now-removed job disks from Tablet's TGUI menu, and tablet's ui_act.
* Adds autodoc comments to computer files
* Removes the unused 'unsendable' var on computer files
* Generally improves code on tablets, now process isn't looping through every idle thread twice!
* Moves the check for program in idle_threads above checking if supported by hardware, because it's already running, so there's no need to check.

* eh

* revert a scipaper change
2022-10-19 22:16:57 -04:00
John Willard
218a153464 Removes a ton of unused tablet vars, re-organizes the rest (#70344)
* Removes a ton of unused vars, re-organizes the rest

Removes a ton of unused vars from Modular computers
Re-organizes the rest, and adds autodoc comments to most of them
Moved 2 vars (saved_image and invisible) from the tablet to the messenger app, since that's where it was used. I didn't see the point of having these vars be on every computer anyways, only PDAs have the app.
Renames Clown's honk virus var
Makes Messenger app's saved image, actually used.

* static list and NODECONSTRUCT_1 check

* oops
2022-10-19 20:34:08 -04:00
John Willard
d23e95b3bc Curator and Mime PDAs now start with their ringer off (#70604) 2022-10-19 00:46:25 -07:00
san7890
2878345ebb Swaps sleep() to use SECONDS define, changes some sleep(1) to sleep(1 TICKS) (#70452) 2022-10-18 21:25:23 -07:00
GoldenAlpharex
e613c875b7 PDA Ringtone Preference (#70485)
* Creates some new defines for constant values in the Messenger app
* Created a new type of preference, text preferences, with a FeatureShortTextInput TGUI component
* Uses said new preference to re-add a PDA ringtone preference.
2022-10-16 17:33:40 -04:00
GoldenAlpharex
c7408b32f2 Fixes communication being nearly impossible (except over radio) when there's a null client in the global player list (#70404) 2022-10-13 21:31:48 -07:00
GoldenAlpharex
8e3147f166 Fixes the formatting in the Messenger app's message history and makes the current ringtone appear in the input box when trying to change it (#70458)
* Changing your PDA ringtone now has your current ringtone in your input box, like the previous PDAs used to.
* The incoming Messenger messages are now HTML encoded in message history, allowing it to display apostrophes and such.
* The prompt to send a PDA message now shows you the person you're trying to send a PDA message to.
2022-10-12 23:18:43 -04:00
Zonespace
f468194083 Fixes the DOS tool (#70312)
* Fixes the tablet's emagged 'DOS' app, which wasn't checking ID properly.
2022-10-05 18:38:49 -04:00
Yaroslav Nurkov
04ca99d7e9 NT Pay app. Money send on distance, transaction log! (#70108)
* base

* reasons

* GetToken proc, with a many remarks

* Add a way to change reason in transfer_money proc. Add a reasons.

* Reason to use the app. Commission. Standard application.

* Apply suggestions from code review - Tralezab

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>

* Tralezab & jlsnow301 advices. New format(everywhere)

* Nanotrasen

* Refactor TGUI(not me:( ). Fix useless capitalize

* Update code/modules/economy/account.dm

* Trans transforms in transaction

* coMmission. little autodoc mistalke. Translation != Transaction

* oops

* Merge Conflict

* ...

* back feats

* mistakes bye!

* ну да

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
2022-10-05 18:25:38 -04:00