Commit Graph

331 Commits

Author SHA1 Message Date
Celotajs
190d0a0384 Replace alert usage with tgui_alert (#58419)
Pretty much every alert() call is replaced with tgui_alert, except one I replaced with tgalert as a fallback. If tgui_alert exists, why not use it?
2021-05-20 22:43:27 +12:00
tralezab
67a3ce53af Gives curators a console for printing portraits not in the round onto canvases (#59146) 2021-05-20 03:05:15 -07:00
RandomGamer123
46cfe62d70 Cargo console mail clarifications (#58822) 2021-05-12 12:50:40 -07:00
tralezab
fa83a686c4 Add #cargobus and gauntlets (also modernizes ntchat) (#58609)
* cargobus, start of gloves

* basics of the HAUL gauntlets

* fully mapped in

* almost forgot the gauntlets

* ntnet improvements

* cargo gaunts, tablet cargobus

* excludes body bags

* dmis and map back

* readd icons
2021-05-05 05:56:39 +03:00
John Willard
e5f5173b09 Makes research done from the tablet tracked for the R&D server controller and admin logs (#58328) 2021-04-22 22:10:36 -07:00
Ghilker
72badd3105 Insulating gloves gives chunky fingers trait (#58407) 2021-04-15 11:05:42 -07:00
Sparkezel
e72fcc3ec0 add cims to engineer and chief engineer tablets (#58391) 2021-04-14 12:00:52 -07:00
John Willard
095873623e changes research from R&D to Heads (#58325) 2021-04-13 01:34:29 -07:00
Thalpy
b174623c2b Fixes a minor oversight with eigenstasium (#58069) 2021-04-01 17:09:31 -07:00
Ghom
fca6c2e2a4 Replaces use of handle_atom_del() with Exited() in modular computer hardware. And fixes an issue. (#57387)
Title. The issue being hardware/on_remove() calling /try_eject() even if the holder is being destroyed, which is quirky. I also replaced an instance of /New() with /Initialize() and deleted a troublesome /Destroy().

handle_atom_del() is awful. Nearly every (minus the storage component; it's a tangled trial of mental gymnastic) behavior implemented there can pretty much be moved to Exited() and it'll work just as fine, if not better against edge cases such as recall spells. But that's not the scope of this PR. I'm here to fix #57161.
2021-03-23 18:20:07 -07:00
TemporalOroboros
fb488fdfff Some explosions code cleanup (#57493)
Clears out two deprecated explosions systems (explosion ids and explosion levels)
Refactors a bunch of contents_explosions procs to be maybe slightly faster.
Cleans up a bunch of ex_act code.
Slightly cleaner code
A few less unused vars on /atom and /turf
2021-03-20 16:03:59 -07:00
zxaber
11367dda89 Adds the ability to download a borg's logs using SiliConnect. (#57300)
About The Pull Request

Adds a function to Siliconnect in which you can tap a borg using a mobile device that is currently running the software, and it will download the borg's logs. These logs list events such as being locked or unlocked, taken offline and being restored, and the process of being emagged. Borg logs will now list the emag user's name as a new user.

Downloading the logs is done by right-clicking the borg while the software is open and active. This will "tap" the borg with the device, initiating the log transfer automatically. The transfer will take eight seconds to complete, requiring you and the borg to stay adjacent the entire time, and the borg will get a large red text alert about the upload when it starts. The logs are also not stored permanently on the device, and will be lost if the app is closed.

This PR also introduces the tap() proc for modular computer programs, and adds functionality the the computers to call it when right-clicking with the tablet as a tool. Should the app use the tap in a meaningful way (such as starting a borg log download), it will return TRUE, and the computer will end the secondary attack chain.

Currently, this requires using a tablet or laptop with Siliconnect, as you cannot tap with a console. Someday I hope to add an additional hardware option for consoles in the form of a wireless hand scanner to replicate tapping.
Why It's Good For The Game

Adds a neat way to "diagnose" a borg acting oddly, assuming you have a way to keep them still. Allows one to view if the borg has been emagged, by whom, what SiliConnect messages the borg has received, the number of law changes that have been made, as well as some other (somewhat fluff) information relating to taking damage and getting upgrades.
Changelog

🆑
add: You can now download a cyborg's internal logs by right-clicking them with a mobile device running SiliConnect. Take a look if one is acting a bit strange, you might find something interesting.
add: Borg integrity (health) is now roughly shown in SiliConnect, under "Condition".
/🆑

To Do:

Fix the to_chat not being sent to the borg when a log transfer breaks due to distance
Add some sort of text feedback when tapping an atom with a device, or viewing one being tapped.
Possibly restrict syndicate borgs from having their logs viewed by SiliConnect (and likewise with station borgs and Roboverlord) Changed my mind on this, will implement later if we find it's needed.

    Change the log area of the window to expand naturally rather than use a fixed height

image

I'm not super deadset on the emag user's name being listed. It seems like a neat function unique to having a tablet running Siliconnect (as most of the other info is already available through other means), and one can always pop the brain out for a re-borg and demand the name anyway.
2021-03-20 11:53:45 +13:00
LemonInTheDark
7f444f510e Fixes a ton of harddels (#57736)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
2021-03-17 05:51:53 -07:00
Timberpoes
4f96677768 Adds extended Centcom support for ID console app and misc fixes (#57420)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-03-06 16:11:14 -08:00
Timberpoes
063764213a Updates tablet computer sechud logic (#57351) 2021-03-03 16:20:08 -08:00
Timberpoes
6b288598d2 Fix inability to demote certain subordinates with the ID card app. (#57317)
The trim system handles the interaction between heads and their air quotes "subordinates" differently. Instead of checking for head_subordinates - Which is a compiled list for who is and isn't a subordinate of who based on job datums - We instead check for the ability to apply a trim's access template to a card.

This means that if you're able to assign a trim's access as a template, you're able to demote that trim too.

This fixes some edge cases like being unable to demote Security Officer (Department) cards because technically Security Officer (Engineering) and Security Officer (Science) aren't real jobs (insert joke here) - They lack job datums and never get assigned as the HoS's subordinates.

This is a much more modular and intuitive way of handling demotions.
2021-03-03 14:03:19 -08:00
TemporalOroboros
a3e6a135f5 Miscellaneous appearance fixes. (#57133)
* Fixes modular computer runtimes

- Adds a proc to eat the source arg of the update icon signal.

* Fixes a couple things not passing the right args

- Fixes the alien leap hallucination passing a string as the first arg to updat_icon
- Fixes the roulette machine passing the payout as the first arg to update_icon.
2021-03-02 15:18:59 -08:00
vincentiusvin
ebf8e540c8 tgui: Total Moles in SM Monitor, Own Defines File (#57270)
Ever wondered why you failed to setup the scrungularity?

Well, wonder no more! The NT CIMS tab has been made to show total moles. The pressure got kicked however, since it's practically useless. The bar also turns red if your SM is eligible for scrung.

Moved the supermatter defines into it's own files too.
2021-03-02 16:18:29 +02:00
Timberpoes
890615856e Fully implements the ID Card design document (#56910)
Co-authored-by: Rohesie <rohesie@gmail.com>
2021-02-28 19:26:45 -08:00
Qustinnus
931a32ffb3 Experi-Sci: Techweb nodes may now require you to perform "scientific" experiments (#54093)
Co-authored-by: Brett Williams <bobbahbrown@gmail.com>
Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com>
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-02-23 13:30:24 -08:00
TemporalOroboros
e4079c87b8 update_appearance (#55468)
Creates update_name and update_desc
Creates the wrapper proc update_appearance to batch update_name, update_desc, and update_icon together
Less non-icon handling code in update_icon and friends
Signal hooks for things that want to change names and descriptions
99%+ of the changes in this are just from switching everything over to update_appearance from update_icon
2021-02-19 12:06:18 -03:00
cacogen
468efc4035 Fixes cargo barcode payouts paying 50x what the sale is worth (#56914) 2021-02-17 03:03:07 -08:00
LemonInTheDark
5c22a0cfc1 Converts many proc overrides to properly use list/modifiers, lots of other smaller things (#56847)
Converts many proc overrides to properly use list/modifiers, fixes some spots where modifiers should have been passed, calls modifiers what it is, a lazy list, and cleans up some improper arg names like L, M, C, and N. Oh and I think there was a spot where someone was trying to pass M.name in as a string, but forgot to wrap it in []. I fixed that too.
2021-02-16 09:18:46 -05:00
Mothblocks
0f435d5dff Remove hideous inline tab indentation, and bans it in contributing guidelines (#56912)
Done using this command sed -Ei 's/(\s*\S+)\s*\t+/\1 /g' code/**/*.dm

We have countless examples in the codebase with this style gone wrong, and defines and such being on hideously different levels of indentation. Fixing this to keep the alignment involves tainting the blames of code your PR doesn't need to be touching at all. And ultimately, it's hideous.

There are some files that this sed makes uglier. I can fix these when they are pointed out, but I believe this is ultimately for the greater good of readability. I'm more concerned with if any strings relied on this.

Hi codeowners!

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2021-02-14 16:53:29 -08:00
Mothblocks
eea760a6ce Removes older ID consoles (#56792)
Now that ID consoles have been replaced with modular computers, removes them from the code.
2021-02-11 00:58:45 -03:00
Fhaxaris
6d004ad4dc fix modular id console telekinesis+ai (#56787) 2021-02-10 14:32:15 -08:00
Andrew
1ff541b829 NTDownloader UI revamp (#56704)
Revamp of the software downloader program for modular computers.

Changes:

- Programs are now sorted alphabetically with incompatible ones in the end of the list.
- Installed programs are now displayed in the list.
- Added program icons.
- Moved the error messages in place of the download button.
- Only the most important error message is displayed now. Priority: compatibility, access, free space.
- Syndicate programs are now displayed in the same list, but have a warning message from NT (There are no warning messages on syndicate OS).
- Added program categories to improve navigation. The default option "All" contains items from all categories.
- Download progress bar moved in place of the Disk usage bar. Disk usage is updated only after the download is complete, so the information was inaccurate during download. And the download bar now always visible regardless of selected category.
- The old download progress bar (next to the corresponding program) is replaced with "Downloading" indicator with a spinner.

Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2021-02-10 00:24:38 +02:00
Fhaxaris
8b4bb086b3 Replaced all id consoles with modular ones (#56650) 2021-02-08 18:16:04 -03:00
Timberpoes
76042de2b6 Improve ID console name and assignment input (#56662)
reject_bad_name and reject_bad_text doesn't directly sanitize. It's
best not to rely on this proc to sanitize as that's not the point of
it, even though it can sanitize as part of its functioning. Instead,
we explicitly sanitize the input first, then we reject_bad_whatever
on the sanitized input.

It also offers improved feedback to the user instead of failing
silently, and allows numbers as some of our ID cards (For example,
prisoner IDs) have numbers in their registered_names and assignments.
I don't like creating the game world in a state that players cannot
also replicate themselves.

Also swings by the ancient HTML interfaces to bring them up to the
same standard through either sanitizing input or stripping input as
appropriate.
2021-02-07 11:35:36 +00:00
Andrew
db66ac5c50 Various crew tracking fixes (#56591)
Nanite Monitoring program now makes people trackable as if they have enabled their suit sensors, as stated in the program description.

Now you can track people with Nanites Monitoring program using following devices:

    Crew pinpointer (arrow)
    Crew pinpointer - contractor version (arrow)
    Crew pinpointer (proximity)
    Lifeline radar (modular computers software)

Also fixed multi-Z tracking for the first three devices. When the target is on different Z of the same station, it shows "?" icon.

Also, the stationary crew monitor will now work properly on multi-Z stations.
2021-02-05 17:25:13 -08:00
Qustinnus
95731342b9 [READY] Adds station traits: Small modifiers that can randomly be chosen each round (#56309)
This PR adds station traits which are essentially small changes to a normal round that can be used to create small variations in how a round might play out, sometimes there might be only one, very simple trait, but you might have a round where they have a somewhat bigger impact, to make rounds feel slightly more different from each other.

The following traits have been added:
Positive:

    Lucky winner - Free pizza and beer every 6-12 minutes
    Galactic Grant - Larger starting funds for cargo
    Premium internals boxes - emergency box has flare + radio as bonus
    Bountiful bounties - Bounties pay 20% more
    Strong supply lines - Imports 20% cheaper
    Filled maint - More loot in maint
    Fast shuttle - Cargo shuttle is faster
    Free scarves - Free scarfs if a slot is free

Neutral:

    Bananium shipment - Clown starts with 5 sheets of bananium (Neutral because this helps noone but the clown)
    Unnatural atmosphere - Lava planet can get more restricted gasses
    Unique AI - Random lawset at roundstart for AI
    Ian adventure - Ian teleports to a random spot on the station
    Glitched PDAs - PDA's have a different beep
    Announcer intern - Changes the announcement messages to sound like they're from an intern at Centcom

Negative:

    Carp infestation - Carp event is more common and can start earlier
    Weak supply lines - Imports 20% more expensive
    Blackout - Station lights are partially broken around the station
    Empty maint - Less loot in maint
    Overflow bureacracy mistake - Random overflow job (From a vetted list)
    Late Arrivals - Everyone starts in arrivals
    Random spawns - Random spawn location (by drop pod)
    Slow shuttle - Cargo shuttle is slower

Co-authored-by: Mothblocks <35135081+Jared-Fogle@users.noreply.github.com>
Co-authored-by: coiax <yellowbounder@gmail.com>
2021-02-05 15:49:49 -08:00
Andrew
b1dc1efc6f Fixed NTOS File Manager renaming and deletion (#56613) 2021-02-05 10:13:19 -08:00
Fikou
8d586a7cb0 Rename metal sheets to iron sheets (#56643)
It's a specific type of metal, it shouldnt just be called generic "metal".
The reagent, ore and material datum are already called iron.
2021-02-05 15:48:00 +00:00
silicons
e06bc80172 [s] Sanitizes modular console ID edits (#56657)
Co-authored-by: Mothblocks <35135081+Jared-Fogle@users.noreply.github.com>
2021-02-04 12:45:15 -08:00
Qustinnus
707fc287b4 Replaces intents with combat mode (#56601)
About The Pull Request

This PR removes intents and replaces them with a combat mode. An explanation of what this means can be found below
Major changes:

    Disarm and Grab intents have been removed.
    Harm/Help is now combat mode, toggled by F or 4 by default
    The context/verb/popup menu now only works when you do shift+right-click
    Right click is now disarm, both in and out of combat mode.
    Grabbing is now on ctrl-click.
    If you're in combat mode, and are currently grabbing/pulling someone, and ctrl-click somewhere else, it will not release the grab (To prevent misclicks)

Minor interaction changes:

Right click to dissasemble tables, racks, filing cabinets (When holding the right tool to do so)
Left click to stunbaton, right click to harmbaton
Right click to tip cows
Right click to malpractice surgery
Right click to hold people at gunpoint (if youre holding a gun)
Why It's Good For The Game

Intents heavily cripple both the code and the UI design of interactions. While I understand that a lot of people will dislike this PR as they are used to intents, they are one of our weakest links in terms of explaining to players how to do specific things, and require a lot more keypresses to do compared to this.

As an example, martial arts can now be done without having to juggle 1 2 3 and 4 to switch intents quickly.

As some of you who saw the first combat mode PR, the context menu used to be disabled in combat mode. In this version it is instead on shift-right click ensuring that you can always use it in the same way.

In this version, combat mode also no longer prevents you from attacking with items when you would so before, as this was something that was commonly complained about.

The full intention of this shift in control scheme is that right click will become "secondary interaction" for items, which prevents some of the awkward juggling we have now with item modes etcetera.
Changelog

cl Qustinnus
add: Intents have been replaced with a combat mode. For more info find the PR here: #56601
/cl
2021-02-04 16:37:32 +13:00
dragomagol
f837ce4397 Cyborg modules renamed to models (#56312)
Changes the references of borg module (type) to model, adds a file for robot declarations and one for model declarations. Basically trying to make the code layout a little more sane.

Initially changed them to 'configurations' but I prefer model; its meaning is closer to module than configuration and avoids confusion with actual config.
2021-01-22 21:38:35 +02:00
Timberpoes
4d31e6f2a7 ID Card access change logging, Part 2 (#56155)
I've condensed the logging into a single define, to allow ID card logging to be easily tweaked and to clean up some messy copy-pasted code.

There is no longer admin messaging for Head of Staff accesses, but it's all still logged as it was before.

There is a new option for the Investigate verb.

Which has the complete logging history for ID card changes that are currently tracked, all in one place.

Which admins can ALSO access from Get Current Logs and Get Server Logs for past rounds via id_card_changes.html
2021-01-14 20:33:33 -05:00
spessbro
54c6a93d75 stops code from seeping into ic chat (#56088)
changes the reference in the modular computer code from src to computer as src is a datum
2021-01-11 12:44:16 -05:00
Timberpoes
01310ce93a Adds logging and admin notifications to certain ID card access changes (#56014)
* Loog

* Adjust modular computer loog

* Update access.dm

* Move ADMIN_VV in string

* To define or not to define, that is the question when logging everything

* More user loog
2021-01-08 13:46:35 -08:00
zxaber
09d70a8f8f Emagging Siliconnect allows for sending messages to borgs without an ID (#55593)
SiliConnect (the tablet app for managing borgs) requires an ID to send messages to borgs in order for the user's name to be attached to the message. This change allows anyone with an emag to remove this requirement, and instead send messages without the sender's name attached. The borg will instead see "STDERR:UNDF" as the name.
2020-12-31 18:18:20 -08:00
WarlockD
56345975ba The Great Radio Rework: NTNET Part 1 of many. (#54462)
Machinery networking refactor.
2020-12-30 21:54:34 +01:00
Jared-Fogle
3bbc86c95c Allow modular computers to be attacked (#55629)
You will now attack modular computers if you are not in help intent, rather than opening up their menu.
Why It's Good For The Game

i died here as nightmare because i couldnt attack the computer
2020-12-21 10:29:40 +13:00
TiviPlus
0eaab0bc54 Grep for space indentation (#54850)
#54604 atomizing
Since a lot of the space indents are in lists ill atomize those later
2020-11-30 12:48:40 -05:00
zxaber
185e85f32b Notification support in modular computer apps and CIMS (#54724)
Allows modPC programs to send alerts, and adds a proc in the computer object to handle playing the sound effect and sending a message to visible users. These notifications can be muted on a per-program basis. Programs can also set themselves to highlighted in the NTOS Main menu; this is intended to be used along side alerts, but really can be used any time a program wishes to tell the user there is new information.

NT CIMS (SM monitor) now plays an alert during SM delaminations if the app is closed. The app must have had an SM selected before closing, or it will not send alerts. Notifications are sent when the SM makes a radio alert. If the app is currently the active program, the app will instead send a notification just once, when the SM begins delamination, so as to not annoy engineers that are already aware of the issue.
2020-11-18 09:43:19 +02:00
ArcaneMusic
5338ad1696 Re-assesses 99% of vending prices through Arconomics to match player resources and round-length. (#54715)
* The Re-pricening

* Rewritten and adjusted for paycheck defines.

* I made the map changes finally.

* And the refills too.

* "OH YEAH REPLACING IT ALL WITH DEFINES AND SCALING IT THE EXCEL DOCUMENT WILL BE EASY, ARCANE!!!"

* And the premium ones too.

* Accidently spoiled a future pr due to dme bleedover
2020-11-13 16:17:22 -05:00
TiviPlus
9fb0c73f63 Grep for proc(var/bad) (#54848) 2020-11-09 08:44:35 -03:00
TemporalOroboros
edd6500d78 /obj/screen --> /atom/movable/screen (#54403)
Repaths screen objects to /atom/movable
2020-11-08 23:07:15 -03:00
Timberpoes
fb6a1f4129 Feex (#54716)
[09:18:04] Runtime in card_slot.dm, line 72: Cannot execute 1.put in hands().

Usage of the try_eject proc is an eclectic mix of unimplemented behaviour and incorrect argument order, with behaviour that can cause runtimes.

Prototype for the try_eject proc wasn't even implemented properly by children. Nothing implemented it used the slots arg, so I modified the base prototype. Cleaned up various proc calls. Should no longer have incorrect arg-based runtimes.
2020-11-06 22:06:20 -08:00
cacogen
13564fb51b BotKeeper (tablet app) list populates based on bot unlock access (#54730)
Anyone can now download BotKeeper. Only bots your current ID can unlock will be listed to control. Stylised Botkeeper as BotKeeper because it looks better.
2020-11-06 22:03:56 -08:00
Ghommie
ec50fbd5f5 Merge branch 'master' of https://github.com/tgstation/tgstation into Ghommie-tg27 2020-11-01 14:38:30 +01:00