Commit Graph

375 Commits

Author SHA1 Message Date
John Willard
6bb2175fa5 [BOUNTY] Re-adds Contractors (#79737)
## About The Pull Request

Adds Contractors back to the game as a kit that Infiltrators (Only
midround/latejoin Traitors, not roundstart) can buy. Buying this will
give you access to the new Contractor items in the uplink (which
replaces the Contractor shop).
I've also refactored things about contractor and how it's handled, such
as removed its sleep calls, swapping its UI to tsx, making it actually
functional within more modern TG code and the reworked Traitors as a
whole, among other things.

I also fixed the contractor guide paper (the text was broken) and made
contractor kit boxes no longer empty.

Contractor items only appear once the contractor kit is purchased, but
they can't be bought until you make an account.

Video demonstration

https://github.com/tgstation/tgstation/assets/53777086/c6aed4e8-bbd4-4ba0-b6a2-9f58fd308d09

Regular Traitors can't access it

![image](https://github.com/tgstation/tgstation/assets/53777086/539b8121-a1fa-4f2d-8e69-ec3d9708152c)

The Contractor UI (Modified to not have a shop anymore) - Ignore the
Invalid Targets, those appear when there's no possible targets

![image](https://github.com/tgstation/tgstation/assets/53777086/e128aecc-0795-4a6b-b8c5-e6f431401330)

Roundend report

![image](https://github.com/tgstation/tgstation/assets/53777086/71b88262-61de-4652-862b-79a7d5ded979)

## Why It's Good For The Game

Contractor was a fun way of playing Traitor that isn't relying on RNG
objectives to pop up, this is instead constant stream of content for the
contractor that encourages non-lethal play, and is now a viable
alternative now that Infiltrators don't have Reputation anymore.

Link to bounty: https://tgstation13.org/phpBB/viewtopic.php?f=5&t=35160

Relevant image from bounty

![image](https://github.com/tgstation/tgstation/assets/53777086/b26a17b0-2f10-4e53-b8fc-25cf8130584e)

## Changelog

🆑
add: Infiltrators (Latejoin/Midround traitors) can now buy and use
Contract kits again.
del: Contractor baton can now only be purchased once.
/🆑

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-11-18 18:38:37 +00:00
John Willard
8803ea5132 Emagged PDAs won't log to wirecarp. (#79707)
## About The Pull Request

Currently, every time you open/close a program, that activity is logged
for the RD to see. This includes Nukies opening their disk tracking app.
Now, emagged PDAs will no longer log activities to Wirecarp, but I did
replace it with a log when the PDA is first emagged.
Basically, nukies are undetected, but Traitors can still be figured out.

## Why It's Good For The Game

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

I thought this would be better as it makes more sense to stop logging
when you're emagged, but as you are being emagged it will report the
modification instead.

## Changelog

🆑
fix: PDAs now log that they've been emagged, but will no longer log any
further programs they open beyond that. This means Nukies don't sell
themselves out by opening their disk tracking app.
/🆑
2023-11-14 13:57:43 +01:00
Waterpig
a282f9ecfd Blank IDs no longer get stuck in modular computers (#79689)
See name. The Eject ID button now correctly lights up even with no name
on the ID
2023-11-13 16:03:28 +00:00
John Willard
88bb3afcce Mafia now starts without admin intervention (#79348)
## About The Pull Request

Mafia should now start without the need of admin intervention.
I made a unit test that should always have a PDA and a ghost spawning in
a game of Mafia and having it run through basic setup to confirm they
both successfully sign up and the game starts.

I had to change a lot of things in order to get this working, such as
giving unique ckeys to mock clients, fixing harddels in Mafia, and
plenty of minor fixes. This is the first time any of this code is put in
CI, so a lot of uncaught errors are now showing their faces.

Because loading maps mid-round runtimes due to smoothing, I have mafia
their own unit test-only map that doesn't use smoothing.

I also split the mafia ui code into its own file, and moved a single
helper that was sitting around in mafia's file into a helpers file.

I also added some comments to explain why certain things are the way
they are, because I wrote some undocumented code previously and forgot a
few things, leading to self-inflicted wasted time.

## Why It's Good For The Game

^

## Changelog

🆑
fix: Mafia games can now start properly.
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2023-11-05 01:26:24 +00:00
DrTuxedo
b5654d7203 Security Pen and Penlight improvement (#79299)
## About The Pull Request
Improves penlight sprite and code.

A new type of pen has been introduced - the Security Pen. This pen is
red and can create a holograph around a person, similar to a medical
penlight. The holograph prompts the person to surrender for 30 seconds,
and the holograph itself is visible for 5. There is a 30-second cooldown
between usage.

Holosign itself does nothing except be visual, just like medical
holosign **(DO NOT MISTAKE HOLOSIGNS FOR HOLOBARRIERS)**


https://github.com/tgstation/tgstation/assets/42353186/1ee5f794-7218-4e52-b04f-3ebb50bd224a

Now every Security member spawns with a Security Pen in their PDA.

Now you can print Security Pens at Security Techfab, and Penlights at
Medical Techfab.
## Why It's Good For The Game
The only way to prompt someone to perform the surrender emote is by
holding them up with a gun. However, this mechanic can be quite
unreliable, even after updates, especially if the person is moving. As a
result, many players are unaware of how to prompt the surrender emote or
even about its existence, so they don't know they can trigger it
themselves by typing "*surrender".
This enables non-lethal arrests without stun batons or other tools.

Sprites are a significant improvement as the previous penlight sprites
were outdated.
## Changelog
🆑
qol: There is now a more convenient way to prompt surrender to emote -
the Security Pen. Each officer is equipped with one in their PDA. Simply
click someone with it to prompt a 30-second surrender. They are
printable at Security Techfab as well.
qol: Penlights now are printable at Medical Techfab.
image: Penlights got a new cleaner sprite to replace its ancient one
code: The code for Penlight's holographic sign has been improved.
/🆑
2023-11-01 21:00:09 +00:00
John Willard
26e3ea1e0d Mafia can be played on your PDA (#78576)
## About The Pull Request

Mafia is now friggin playable from the PDA, I also changed other stuff
too

- You can't use abilities on dead people if you're not supposed to (cant
kill the same person over and over)
- Changelings cant kill other Changelings
- Changelings can now only talk to eachother at night, rather than using
:j
- Everyone starts spawned in the center of the map, since people playing
on PDA can't move their characters. This is so everyone can hear PDA
users in person, as I don't want the chat log to be mandatory.

To do this, all messages you are meant to be able to see, is now logged
for you to see in your Mafia panel. This essentially means that people
playing through the PDA get a downgraded version of it, but I don't know
how much larger I want this UI to be.

Playing Mafia through the PDA will not tell you of other players ahead
of time when signing up (as it shows ckeys + pdas), but they can see the
names in-game. Unfortunately this means we'll have to remove your
customization coming with you, to prevent using it to tell who is dead
in round.

Things I am missing
- Program overlays on PDA/Laptop/Computer
- Icon for the app's header while a game is active

I'm not a spriter and can't make either of these

This is the new UI

![image](https://github.com/tgstation/tgstation/assets/53777086/7cf503d9-b2e2-4127-874a-acad6425d649)

I also fixed alert calls for PDAs and stuff

![image](https://github.com/tgstation/tgstation/assets/53777086/e09b2e5e-b9e7-43ae-9273-c168e9c8e642)

and removed the X at the top on computers since they had no battery

![image](https://github.com/tgstation/tgstation/assets/53777086/d3dd8307-805c-4aba-be5e-4c24a0bdcb91)

Looks a little better now hopefully 👍 

## Why It's Good For The Game

- The current Arcade app sucks, and is a solo game. This is much more
entertaining and you can talk to others in it, which is swag as fuck.
- There's a larger potential playerbase for the Minigame making it more
likely to be played.
- Sets groundwork for a better version of
https://github.com/tgstation/tgstation/pull/75879
- Adds more suspense and teamwork in the minigame.

## Changelog

🆑 JohnFulpWillard, sprites by CoiledLamb
add: You can now play Mafia on your PDA.
balance: Mafia changelings can now only talk to eachother during the
night.
fix: Mafia abilities can't be repeatedly used on people.
/🆑
2023-10-21 16:55:35 +02:00
John Willard
79e48dd7db Flashlights wont cause your pda to drain faster endlessly (#78655)
## About The Pull Request

Changed the PDA's base var rather than the one we're supposed to
actually use sorry lol

## Why It's Good For The Game

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

## Changelog

🆑
fix: PDA flashlights wont cause the cell to constantly drain faster and
faster.
/🆑
2023-09-29 16:18:38 -04:00
John Willard
aaff861c90 pdas now use their cells more (#78580)
## About The Pull Request

So one aspect of PDAs that I quite liked previously was managing and
upgrading your power.
This was lost when all cell parts got removed, mostly, and now I'd like
to re-add it.
PDAs and Tablets now use more power each second it's on
Programs being active/idle now take charge too.
And all this now takes ``seconds_per_tick`` into account.

Screenshots of APC use before and after having 6 programs open at once

![image](https://github.com/tgstation/tgstation/assets/53777086/14699ae7-19a7-4eb6-a211-5944cc1867d0)

![image](https://github.com/tgstation/tgstation/assets/53777086/804fedde-0d5a-43a9-9e61-34139257a16f)

PDA default power cells have a max charge of 1000, each cell use is
around ``1.00970340315`` power, which is ``1.01013789399`` w/ 2 programs
in idle and 1 active program (which is what PDAs are capable of). This
means it takes about 990 ticks to fully drain your power, or about 50
minutes, at max use.

This is completely blasted away the moment you put anything beyond a t1
cell inside of it, which is unfortunate but what can you do about tiered
parts being so poor.

The problem of no public PDA chargers are alleviated by
https://github.com/tgstation/tgstation/pull/78600

### Update

The PDA flashlight being on now also drains the battery 25% times
faster. PDA running out of charge now also turns the flashlight off.

## Why It's Good For The Game

You may or may not have to actually charge your PDA once in a round now,
maybe. I liked this part of tablets and would like to see it brought
back, managing your power to use your apps is important to ensure you're
not just using all apps 24/7

Because this also adds the functionality to add/remove power cells
again, it opens up to some minor little pranks/messing with people that
isn't completely destroying their tools, as well as some minor
upgradeability.

## Changelog

🆑
balance: You can now remove and replace power cells from PDAs (with
screwdriver).
balance: PDAs now drain their power cells harder, and also take into
account active programs & their flashlight being on.
balance: PDAs running out of charge now turn their flashlights off.
/🆑
2023-09-27 21:15:19 -04:00
GPeckman
b2995cbd6e 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.
/🆑
2023-09-25 08:53:35 +00:00
Jeremiah
a3849062b8 Feature: bitrunner, a new supply role (READY) (#77259)
## About The Pull Request
[Design doc](https://hackmd.io/@shadowh4nd/r1P7atPjn) 

Adds a new supply role centered on short dungeon-esque runs with a focus
on unifying the job with the fun part. Some virtual domains are combat
related, some are silly, some focus on "objectives". Avatar health is
linked to your physical presence and retries are limited.


<details>
<summary>Photos, WIP</summary>

Net pod stasis

![netpod](https://github.com/tgstation/tgstation/assets/42397676/d99073a4-2438-4600-83c0-cafb7b3fee55)

Server loaded

![](https://cdn.discordapp.com/attachments/1131433451841662996/1135304774976278759/dreamseeker_N14j6dwLcK.gif)

Server cooldown

![](https://cdn.discordapp.com/attachments/1131433451841662996/1135304775945179217/dreamseeker_NkIwWLJZma.gif)

the quantum console UI
![Screenshot 2023-08-05
105742](https://github.com/tgstation/tgstation/assets/42397676/3a45feaf-8c80-46b2-81c9-355932d1b014)

Cyber police antag page
![Screenshot 2023-08-16
205303](https://github.com/tgstation/tgstation/assets/42397676/fc28bcdd-2a2a-487b-927c-904f224c1b89)

A safehouse

![image](https://github.com/tgstation/tgstation/assets/42397676/c22ac115-4e00-432a-aeeb-b6afdb1ef750)

Domain info page, every domain gets this (and sometimes help text)
![Screenshot 2023-08-04
141859](https://github.com/tgstation/tgstation/assets/42397676/ba9ed6d9-a318-4466-b246-d2da0fa05676)

Me getting steamrolled in one of the missions

![syndicant](https://github.com/tgstation/tgstation/assets/42397676/3eb3099a-f9b2-4431-854d-50d8cad9b7f0)

Ghost roles getting notified that server is kicking them out
![Screenshot 2023-08-04
135454](https://github.com/tgstation/tgstation/assets/42397676/edab916c-6255-4b83-b2e7-155df2f03aab)

Players enjoying the new combat missions
![Screenshot 2023-08-05
005727](https://github.com/tgstation/tgstation/assets/42397676/e302a66f-610d-4fe1-82e0-7c8aec3913ea)

Players exploring some of the virtual maps
![Screenshot 2023-08-06
220919](https://github.com/tgstation/tgstation/assets/42397676/75a92a0b-6aa1-4bac-8fd1-c9fb47c955da)

(Not part of the PR, but)
![Screenshot 2023-08-06
221527](https://github.com/tgstation/tgstation/assets/42397676/012475ec-bfa5-4fd3-9dcb-31d222bb7bef)

New bitrunner vendor

![dreamseeker_V62h2BGdEl](https://github.com/tgstation/tgstation/assets/42397676/37ca8f69-f75e-45c9-b324-e6b31696c7b7)

</details>

## Why It's Good For The Game
Content, firstly, and moreso being supply department content.

The framework that this implements is a great (preauthorized)
replacement for two systems which are collecting dust: BEPIS and the
gateway. They integrate into this system and it's a direct upgrade.

This adds a way for the players on station to generate materials (if
that remains). The nice part about it is that I can throw balance and
believability to the wind, as unlike its unrelated predecessor VR or
away missions, bitrunning entirely washes its hands of the map and mobs
each reboot.

It offers a very expandable map framework to add content and it's all
fairly well documented.

I'd like to add a feature that represents the idea that jobs don't have
to be mundane and "external" jobs can stay tied to the main gameplay
loop.

## Changelog
jlsnow301, kinneb, mmmiracles, ical92, spockye
🆑
add: Adds Bitrunning to supply department- a semi-offstation role that
rewards teamwork.
add: Adds new machines to complement the job- net pod, quantum server,
quantum consoles, and the nexacache vendor.
add: Adds several new maps which can be loaded and unloaded at will.
add: Some flair for the new bitrunning vendor.
add: Adds a new antagonist for the virtual domain only. Short lived
ghost role that fights bitrunners.
del: Removes the BEPIS machine, moves its tech into the Bitrunning
vendor.
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

---------

Co-authored-by: MMMiracles <lolaccount1@hotmail.com>
Co-authored-by: Ical <wolfsgamingtips@gmail.com>
Co-authored-by: spockye <79304582+spockye@users.noreply.github.com>
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
2023-09-23 11:14:12 +02:00
Hatterhat
c6ac468b90 second pass over the SC/FISHER code, incl. bitflags and PDAs (#78330)
## About The Pull Request
makes `COMSIG_HIT_BY_SABOTEUR` return a bitflag in order to close #78297
(i am very sorry)
fixes #78298
extends flashlight disabling to modular computers incl. PDAs because
somehow i forgot that they had flashlights.
## Why It's Good For The Game
my code sucks and i should make it suck less, actually

## Changelog
i don't think i get to put a code improvement tag if it's not
playerfacing and it's my own fault
🆑
fix: Flares and candles no longer sound like flashlights when being
turned on.
fix: Getting shot by an SC/FISHER now disables PDA lights for
consistency's sake.
/🆑

---------

Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
2023-09-15 15:18:50 +02:00
John Willard
fe104cf8da 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).
/🆑
2023-09-04 17:32:52 +01:00
Teagarden
4439ef7946 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.

/🆑
2023-08-28 23:29:53 +02:00
axietheaxolotl
1addb749ea SPESSMEN 2.0: le cargo resprite (no mining) ((i hate mining)) (#77456) 2023-08-23 15:14:01 -04:00
John Willard
17e16ad0c2 Replaces Camera bug with Camera tablet app (#77713)
## About The Pull Request

Replaces the Traitor's Camera Bug item with an application that allows
you to view camera apps.
The difference between this app and the Security one is that it does not
have an access requirement, does not make noise (it didn't previously
due to a bug, fixed in this PR), and can be installed on PDAs.
This can also be installed from syndienet, which means nukies now have a
way to see the station cameras while off the ship.

Adds Syndicate app disks, which are made of Gold. This is only used by
the Camera app as of right now.

I also fixed some issues along the way;
- Camera tablet app now properly shows cameras
- It now properly makes the noises it is supposed to
- It clears the viewers properly on the ui being closed or the app being
exited.

Syndicate app disks ddelete their apps upon being transferred over (like
maintenance disks), trying to remain consistent with previous behavior.

I also made this for a [personal project I am currently working
on](https://hackmd.io/XLt5MoRvRxuhFbwtk4VAUA). I could just make this UI
be TGUI, but I thought it could be worth trying to turn it into a better
item first.

Tracking people is much simpler now- You choose anyone from a list of
people found on cameras, and it will try to find a camera that sees
them. It follows them until you close the app or switch camera.

https://github.com/tgstation/tgstation/assets/53777086/1536ebb9-0c4f-45bb-b593-f98791ea6d23

## Why It's Good For The Game

The Camera Bug is one of the worst traitor items as of current. You can
remotely shut off a single camera, something that can be done with basic
tools you are likely carrying around anyways, and uses an HTML clunky UI
to flip through cameras.
This new Traitor item makes it much easier to use, since the camera
consoles are something you are likely already used to.
It also means emagging a tablet is slightly more useful, and golden data
disks are pretty cool.

Unfortunately this means that they no longer grant illegal tech, because
otherwise you can simply clone the app infinitely for personal use, and
deconstruct the disk itself for tech. This can be grinded into gold, but
I think if we want an illegal tech item, it'll have to find a new host.

Closes https://github.com/tgstation/tgstation/issues/74839
Closes https://github.com/tgstation/tgstation/issues/39975
Closes https://github.com/tgstation/tgstation/issues/53820

## Changelog

🆑
balance: The Traitor's Camera bug is now a tablet app that works like a
silent camera console with an extra ability to track people through
their nearby cameras.
/🆑
2023-08-23 21:09:28 +12:00
distributivgesetz
ebbc45b161 Improved PDA Direct Messenger (#75820)
## About The Pull Request

Fixes #76708, Closes #76729 (sorry Zephyr)

This PR expands the Direct Messenger UI, adding a chat screen for each
available messenger that you can find, and moving message sending over
to TGUI.

This chat screen includes a message log that displays messages sent by
you as well as messages received from the recipient. This gets rid of
the previous chat log, which just had all messages thrown together that
you received or have sent, in one big list.

Furthermore, all messaging is now done inside the UI. This kills all
TGUI popups you would ever need to send messages forever (except for
quick replies). Use the input bar on the bottom, press Enter or the Send
button, and it sends your message. Spam mode is now done in the UI too,
via a text field you can find in the contacts list.

Additionally, because I have a habit of blowing things massively out of
scope, I've also completely refactored how messages and chat logs are
stored in the PDA messenger. I plan on using this in a PR that merges
the chat client with the messenger, sometime in the future. Sorry this
took so long.

Stuff left to do before I open this PR for review:
- [x] Add "recent messages"
- [x] Add "unread messages"
- [x] Add message drafts
- [x] Make photo sending not shit
- [x] Implement the edge cases for automated and rigged messages
- [x] Make sure shit isn't fucked
- [x] Profit

<details>
  <summary>Screenshots</summary>
  

![dreamseeker_HIrEfrap5X](https://github.com/tgstation/tgstation/assets/47710522/97c713b7-dda3-44d3-a8f5-d0ec11c92668)

![qIOWhVld4l](https://github.com/tgstation/tgstation/assets/47710522/3ab4e2c1-a38f-4b20-8e9f-509ea14c0434)

![dreamseeker_LIqwi05i4O](https://github.com/tgstation/tgstation/assets/47710522/c051c791-b595-4166-a4d3-82cb7568411f)

![BIYxNVjGL7](https://github.com/tgstation/tgstation/assets/47710522/b9c97eab-52b5-449f-b00f-a0d8aa5f865c)

![dreamseeker_IWdoSsUinC](https://github.com/tgstation/tgstation/assets/47710522/2a4cd76a-2bdc-4283-b642-09e92476fef5)

![L9DxzFHDEF](https://github.com/tgstation/tgstation/assets/47710522/6a5b0e29-d535-4c7e-a88e-e9b71198719b)

![rAuDgqBLNE](https://github.com/tgstation/tgstation/assets/47710522/128a0291-91da-4f9e-9bc5-a65cf411ea6d)

![dreamseeker_voui6S8MUf](https://github.com/tgstation/tgstation/assets/47710522/6e3ba044-b8df-492d-b58d-6c73ab07233d)

![image](https://github.com/tgstation/tgstation/assets/47710522/522c1d85-b9cf-4e0e-9588-9d3993eea03f)

</details>

## Why It's Good For The Game

The UI has largely stayed the same since modular tablets were added a
year ago. Even better, direct messaging has been the same since PDAs
were first added *more than a decade ago*. Imagine that.

Now we finally actually (!) make use of those brand new features that we
got from the TGUI switch in this regard.
## Changelog
🆑 distributivgesetz
add: Updated Direct Messenger to v6.5.3. Now including brand new
individual chat rooms, proper image attachments and a revolutionary
message input field!
add: Added a "Reset Imprint" option to the PDA painter.
refactor: Refactored PDA imprinting code just a bit.
fix: PDAs should now properly respond to rigged messages.
/🆑

---------

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
2023-08-03 14:43:31 -07:00
SapphoQueer
ab4db73226 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.
/🆑
2023-07-21 14:42:50 +02:00
John Willard
e55c077b8c Clear PDAs now specify they are a crystal PDA in messenger (#76675)
## About The Pull Request

When you say "sent from my PDA" in messenger, if it's through a clear
PDA, it will instead say "Sent from my Crystal PDA". This is so the
recipient knows they are in the presence of a crystal pda.

## Why It's Good For The Game

Bragging rights for having a crystal PDA. Minor interaction I think
would be funny.

## Changelog

🆑
add: The 'Sent from my PDA' message is different for Clear PDAs now
(specifying they are crystal).
/🆑
2023-07-16 01:14:28 +01:00
Zephyr
f71ea26f72 Machine list is now stored in SSmachines | Remove excessive use of global lists for specific machine types (#76822)
## About The Pull Request

Removes all of the duplicate global lists for specific machine types
where the only thing they do is store all machines of that type.
Adds machine tracking to SSmachines in the form of a list for all
machines, and then an associative list for machines by their type.
Previously we have machines in multiple global lists, such as airlocks
being in GLOB.doors, GLOB.airlocks, GLOB.machines.
This makes that not a thing, and also means that iterating through
GLOB.machines looking for a specific type is no longer as expensive.
2023-07-15 16:17:46 -04:00
nikothedude
ccf547c142 Adds an extra malf AI ability: Remote emagging. Also tidies up emag code and coverts a lot of things to balloon alerts (#76669)
## About The Pull Request

New malf AI upgrade

Remote safety overrides: Mid-cost, Mid-supply. Allows the AI to remotely
emag things it can see and can access.
1. Very useful for psychological warfare (Emagging APCs to throw the
crew off their trail)
2. Logically makes sense - why, of all things, can the AI not emag
anything when it's fundumentally integrated with the station's
electronics?
3. Generally speaking can only access things that make sense for it to
access - it cannot emag ethereals, sadly

In order for this to work, emag_act now returns a boolean, designating
if the emag had any effect.
While I was in there, I also added args to every single emag_act I could
find and added far more feedback/converted a lot of things to balloon
alerts to allow the AI to see if its emag had any effect.
## Why It's Good For The Game

It just makes sense that the AI, the most electronically-sensitive
entity in the game, would be able to emag things. Plus, more options
given to malf that aren't strictly MURDER KILL MURDER are always a plus,
especially if they allow for fancier plays.
## Changelog
🆑
add: New malf ability: Remote safety overrides. Allows the AI to
remotely emag things it has access to.
code: emag_act() now returns a boolean designating it's success in
emagging
code: All instances of emag_act() now have the proper arguments
qol: Most usecases of emagging now have some kind of feedback, and
existing feedback has been sanity checked and converted to balloon
alerts.
/🆑
2023-07-15 15:35:14 +01:00
YesterdaysPromise
fb10121022 Icons folder cleaning wave two (#76788)
## About The Pull Request

Further continous organizing and cleaning the Icons folder. There are
still some minior nitpicks left to do, but I reached my daily sanity
expenses limit again, and the faster these get in the less issues for
both me and others later. Also cleans some mess I caused by my blindness
last PR.

## Why It's Good For The Game

Saner spriters = better sprites
2023-07-14 18:36:41 +00:00
John Willard
ee78ceea95 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.
/🆑
2023-07-10 18:26:22 +01:00
SyncIt21
38cd79d884 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.
2023-06-20 19:07:27 +00:00
Couls
c0e46fabf7 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
/🆑
2023-06-19 23:01:10 -07:00
John Willard
8229972398 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.
/🆑
2023-06-19 22:59:09 -07:00
GuillaumePrata
cdc32fed9c 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.
/🆑
2023-06-09 12:36:17 +12:00
Oreo
5ad04bfd2e 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?
2023-06-05 00:18:26 +00:00
Jacquerel
cf7295acb7 [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>
2023-05-12 20:51:39 -06:00
Lamb
77a4306df7 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.
2023-05-08 19:15:24 +00:00
John Willard
4ffef6be6d 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.
/🆑
2023-05-06 01:56:14 -07:00
ArcaneMusic
f2fd69a49a Minerals have been refactored so costs and minerals in items are now in terms of mineral defines. (#75052)
Ladies, Gentlemen, Gamers. You're probably wondering why I've called you
all here (through the automatic reviewer request system). So, mineral
balance! Mineral balance is less a balance and more of a nervous white
dude juggling spinning plates on a high-wire on his first day. The fact
it hasn't failed after going on this long is a miracle in and of itself.

This PR does not change mineral balance. What this does is moves over
every individual cost, both in crafting recipes attached to an object
over to a define based system. We have 3 defines:

`sheet_material_amount=2000` . Stock standard mineral sheet. This being
our central mineral unit, this is used for all costs 2000+.
`half_sheet_material_amount=1000` . Same as above, but using iron rods
as our inbetween for costs of 1000-1999.
`small_material_amount=100` . This hits 1-999. This covers... a
startlingly large amount of the codebase. It's feast or famine out here
in terms of mineral costs as a result, items are either sheets upon
sheets, or some fraction of small mats.

Shout out to riot darts for being the worst material cost in the game. I
will not elaborate.

Regardless, this has no functional change, but it sets the groundwork
for making future changes to material costs much, MUCH easier, and moves
over to a single, standardized set of units to help enforce coding
standards on new items, and will bring up lots of uncomfortable balance
questions down the line.

For now though, this serves as some rough boundaries on how items costs
are related, and will make adjusting these values easier going forward.

Except for foam darts.

I did round up foam darts.

Adjusting mineral balance on the macro scale will be as simple as
changing the aforementioned mineral defines, where the alternative is a
rats nest of magic number defines. ~~No seriously, 11.25 iron for a foam
dart are you kidding me what is the POINT WHY NOT JUST MAKE IT 11~~

Items individual numbers have not been adjusted yet, but we can
standardize how the conversation can be held and actually GET SOMEWHERE
on material balance as opposed to throwing our hands up or ignoring it
for another 10 years.
2023-05-03 14:44:51 +00:00
John Willard
1c4166c81c 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).
/🆑
2023-04-26 23:29:20 -06:00
lessthanthree
0181187c03 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.
2023-04-23 01:22:01 +00:00
Jacquerel
6b6d9fe152 Hides worn PDAs (#74838)
## About The Pull Request

PDAs no longer have a visible appearance on your character when equipped
in the belt or ID slot.


![image](https://user-images.githubusercontent.com/7483112/232916683-02e41ece-6c70-4cac-b242-24fb60b6c41a.png)

![image](https://user-images.githubusercontent.com/7483112/232916703-40d0fc65-ed25-4a7b-97be-e09c5925ba44.png)

Pictured:

![image](https://user-images.githubusercontent.com/7483112/232915339-ae3b9879-9415-476f-ba89-a7e59bd6a749.png)
Me uh... not visibly wearing a PDA?

## Why It's Good For The Game

There's virtually no game advantage gained by knowing whether someone is
or is not wearing a PDA, and even if there were they could just as
easily have it in a pocket or other storage slot.
They create visual noise on your sprite and are an accessory that
virtually everyone always has, making the game look worse.
When ID card sprites were restored as part of a bug fix when introducing
missing worn icon unit testing, they were intentionally hidden again for
similar reasons.

## Changelog

🆑
imagedel: you can no longer tell if someone is wearing a PDA by looking
at them
/🆑
2023-04-20 08:26:15 -07:00
John Willard
9ced062af8 Removes network ID and some minor other things (#74789)
## About The Pull Request

Removes network_id as it was completely unused now.

Also reworks the maints access secret buttons to work with how accesses
work now, taking into account req_one_access. This is theoretically a
problem when we moved to req_one_access more often in maints so
departments can access their own maint areas.

## Why It's Good For The Game

This is just minor changes I found while trying to edit other things,
and thought I should PR it.

## Changelog

🆑
admin: Secret buttons for Engineering/Brig maint accesses should now
work more consistently.
/🆑
2023-04-17 20:51:55 -06:00
oranges
4c48966ff8 Renames delta time to be a more obvious name (#74654)
This tracks the seconds per tick of a subsystem, however note that it is
not completely accurate, as subsystems can be delayed, however it's
useful to have this number as a multiplier or ratio, so that if in
future someone changes the subsystem wait time code correctly adjusts
how fast it applies effects

regexes used

git grep --files-with-matches --name-only 'DT_PROB' | xargs -l sed -i
's/DT_PROB/SPT_PROB/g'
git grep --files-with-matches --name-only 'delta_time' | xargs -l sed -i
's/delta_time/seconds_per_tick/g'
2023-04-11 21:31:07 -07:00
Pinta
4bca7fc729 (Fix) The crew manifest now properly updates after ID modifications. (#74518)
## About The Pull Request
This PR makes it so that the access modification program now updates the
crew manifest once the inserted ID is ejected. Additionally, when the ID
trim is changed, the manifest is updated.
## Why It's Good For The Game
Demoted heads would still show up on the manifest as their job
pre-demotion, this fixes that.
## Changelog
🆑
fix: The crew manifest now properly updates after ID modifications.
/🆑
2023-04-05 22:23:23 -06:00
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
san7890
bf6f81a9b5 Implements AddTraits and RemoveTraits procs for adding/removing multiple traits + swag unit test (#74037)
On the tin, doing it like this means we can reduce our overall line
fingerprint whenever we have to add two or more traits from the same
source on the same target. Especially helps when we get to the 4+ range
of traits, a breath of fresh air even.

Doesn't mean we have to do for loops, as that's already handled within
the define as well. I replaced some of the checks with `length()`
checks, let me know if I should switch it over to something else (maybe
`islist()`)? We stack_trace whenever we're not passed a list reference
on purpose, and sometimes var/lists are null by default (or just empty,
making this redundant).
## Why It's Good For The Game

I commonly feel the urge to write "use `AddTraits()`" or something in
reviews, then am sad when I remember it doesn't exist. I will no longer
be sad.

Can ensure a lot more trait safety as well by using static lists- when
both ADD_TRAIT_LIST and REMOVE_TRAIT_LIST re-use the same list, you are
confident (from a static point of view) that everything that you want to
be adding/removing works.

I may have missed a few things where this could be used, but both macros
implemented in this PR still use the same framework that was being used
in the last four years- so stuff won't break if left untouched. Just a
nifty new tool for developers.

also fixed up some code in the area, numerous bugs were found and
exploded
2023-03-18 01:57:06 +00:00
carshalash
d73797e6bc Brings back Bartenders fountain pen (#73775)
## About The Pull Request

When PDAs were switched over to tablets, it seems that the bartender's
fountain pen was forgotten. This PR will add it back as the round start
pen of choice for bartenders, replacing the old generic one.

Bardic bartenders rejoice.

## Why It's Good For The Game

A lot of bartenders are snobby and would use fountain pens. Non-snobby
bartenders would still be able to write vulgar words with precise
calligraphy abilities. Both sides win.


![image](https://user-images.githubusercontent.com/16896032/222891224-441bfcc0-c6b8-4c19-b994-35b4a7fa7658.png)


## Changelog


🆑
fix: Bartender's fountain pen was omitted during the swap over to
tablets, this has been amended.
/🆑
2023-03-04 23:36:01 -08: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
John Willard
dc8db27fa4 Fixes NtosNet Downloader & App themes (#73500)
## About The Pull Request

NtOS' downloading app is the only application where PC device theme is
actually used by the app directly, instead of handled by NtOS Window. I
forgot about this, and removed it from the data, breaking the TGUI page.

Also two edits;
- NtosWindow now takes their theme directly from PC_device_theme, this
means we're not relying anymore on apps to individually give the theme
they want to have, and tablets will get alerts of downloading illegal
programs if they are on any theme but the syndicate one (instead of not
getting the message if theyre on any but the nt one).
- Removes bad uses of ``as anything`` on stored files, because it holds
more than just programs (like ordnance data).

## Why It's Good For The Game

the NtOS app now works again, sorry for the issue.

Closes https://github.com/tgstation/tgstation/issues/73493
Closes https://github.com/tgstation/tgstation/issues/73507

## Changelog

🆑
fix: NtOS program downloader now works again, and will now properly
alert you of downloading illegal ROMs if you change your theme to
anything that isn't Syndicate.
fix: NtOS themes are now recognized by all windows.
/🆑
2023-02-18 22:50:40 -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
80467ddc0a Disks don't delete eachother & Grammar fix (#73173)
## About The Pull Request

CtrlShift LMB screentip key now says you'll remove the disk instead of
the drive, to be more accurate to what it does. Also checks for a disk
when you try to add a new one in, preventing new disks from deleting the
old by swapping disks instead.

## Why It's Good For The Game

Bug fixes for feature freeze, swag
Adds a better description and prevents the deletion of disks.

## Changelog

🆑
fix: Computers no longer delete disks if you try to add a second one.
spellcheck: Computer screentips says you're now removing the disk
instead of the SSD.
/🆑
2023-02-04 12:40:17 +01: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
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
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
f87d62c0aa replaces nukie tablet sprite with PDA (#72285)
## About The Pull Request

Replaces the nuclear operative tablet icon with a GAGS PDA one, entirely
deleting the modular tablet DMI file as this was the last place it was
ever used.

Looks like this

![image](https://user-images.githubusercontent.com/53777086/209667809-8b111f75-8e1d-4a3e-893c-baeddea3fbda.png)

tablet for reference

![image](https://user-images.githubusercontent.com/53777086/209667851-af09ccf7-a98f-4917-bb2c-39748beaddf7.png)


## Why It's Good For The Game

Follow up to https://github.com/tgstation/tgstation/pull/71507 - Removes
a DMI file and the need to resprite apps yet another time (down to 3
now) for every NTos program, replacing it with the tablet instead.

## Changelog

🆑
imageadd: Nukie tablets are now using PDA sprites w/ GAGS instead of
tablets.
/🆑

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
2023-01-01 15:44:44 -08:00