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
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.
Alright, this is a functional rework for civilian bounties, which should serve a few purposes:
Cargo has a reason to actually keep working and stay within cargo.
Makes cargo bounties far more integrated into the round as opposed to being a static list of soft goals, being personalized to those who would actually do a bounty for the station.
Still make civilian bounties the prime, sirloin steak method for regular crew to make money.
So here's the 4-11:
Static cargo bounties have been removed, in favor of the new system of civilian bounties. That means that both the bounties app and the bounty console have been removed.
Civilian bounties have been buffed. They are no longer affected by inflation, but when your bounty is completed, you will recieve a "bounty cube". To receive the cash you would have received for the bounty (10% of the civilian bounty), that bounty cube must be shipped off the cargo shuttle, and using the magic of the price tag component, you make your cut, and cargo makes their 90%, ensuring that you'll actually see your money (for once!).
Civilian bounties are now independent of department budgets, in preparation for departmental purchases, so now you can more freely benefit from doing civilian bounties to buy things! (See #53881)
Non-mining cargo department crew now have fully randomized bounties, to give them stationwide goals for bounty hunting.
As an added benefit, the icon for bounty cubes basically screams value, so hopefully crewmembers will see it and instantly think to sell it.
Alright crew, here's the 4-11. This adds a new Modular Computer app, that works functionally identically to the cargo console. but before we delve into that, lets hit the adjacent aspects first.
Cargo Packs now contain a new variable, access_view, that is only applied to cargo packs viewed in this app. It determines the access level required to be able to see those individual packs, in the same way that you need certain accesses to open certain crates anyway. This means that outside of certain inter-departmental crates that see overlap in who can/should be able to order it, heads can browse and purchase crates based on their department's needs and wants.
The cargo ordering console has been renamed on the DM side. Because now that there's another, similar cargo ordering DM that was going to get confusing fast, as just calling it "Console" gets on my nerves and is harder to spot on VSC for me and everyone going forward forever.
Cool, back to buying stuff. heads of staff can download the cargo ordering app on tablets and laptops only, and it gives them access to purchase cargo using their department funds. These purchases are made against the user's department budget, and enables purchasing supplies with cargo without needing to beg them to use their money on your junk, adding it fully to the cargo shuttle's next load, while still giving cargo the first right to refusal if they wanted to, for some reason.
From there on out, cargo's responsibility is primarily getting the goods you bought to you, which is technically already their job!.
Implements the ?. operator, replacing code like A && A.B with A?.B
BYOND Ref:
When reading A?.B, it's equivalent to A && A.B except that A is only evaluated once, even if it's a complex expression like a proc call.
add: Science has been given a more experimentally themed set of bounties.
del: Much of the old science bounties were discontinued.
del: ...As have the glass shard and cheese honker assistant bounties.
Splits the restrained() proc into component traits: TRAIT_HANDS_BLOCKED for the general inability to use hands and TRAIT_RESTRAINED for the more specific condition that permits arrests.
Code moved away from the update_mobility() proc so it doesn't have to wait for an update, instead changing based on events. The idea is to eventually kill that proc.
Wrapper proc added for setting the handcuffed value so we can react to the event of it changing.
Kills the RestrainedClickOn() proc. That is now just an UnarmedAttack(), in where the ability to use hands can be checked. Monkeys keep their bite attack and humans their self-examine.
All ui_act procs should call parent by default. All procs should preserve the value of the parent proc when it's TRUTHY and pass it down the call stack. No UI should be interactible when its flags or state indicate it should not be, except when explicity overriden by child procs intentionally disregarding parent return values to achieve a specific goal.
There exists a specific state where ui.open() can be called yet the
result would be a null window and such behaviour would be intentional.
The following CRASH in ui.send_asset() would thus be misleading,
because send_asset() was called after open().
This PR adds more information to the CRASH about when the failure state
can occur, makes open() return a value based on whether it actually
opened a new pooled window or not, and makes sure modular computer apps
don't send_assets unless a new pooled window was created.
As said by the title.
Also fixes an oversight where the Plexagon HR Core app (job management) was reading worn ID rather than inserted ID.
Also adds names to differentiate between primary and secondary card readers so both show on the screwdriver remove menu.
Also makes using IDs on a modPC actually call the InsertID proc, so that having the secondary ID come first in the list of parts doesn't give it priority.
Co-authored-by: Bobbahbrown <bobbahbrown@gmail.com>
* Process procs now properly use deltatime when implementing rates, timers and probabilities
* Review fixes
* Geiger counters cleanup
Made hardsuit geiger code more similar to geiger counter code
Geiger counters are more responsive now
* Moved SS*_DT defines to subsystems.dm
* Rebase fix
* Redefined the SS*_DT defines to use the subsystem wait vars
* Implemented suggested changes by @AnturK
* Commented /datum/proc/process about the deltatime stuff
* Send delta_time as a process parameter instead of the defines
Also DTfied acid_processing
* Dtfied new acid component
Replaces like 70-80% of 0 and such, as a side effect cleaned up a bunch of returns
Edit: Most left out ones are in mecha which should be done in mecha refactor already
Oh my look how clean it is
Co-authored-by: TiviPlus <TiviPlus>
Co-authored-by: Couls <coul422@gmail.com>
* Support for expansion-class modPC hardware
* end of the line
* As requested
Did anyone know that the tablet vendor was attaching the wrong ModPC printer? I bet no one knew that.
* update
Defined all the existing light_color values.
Moved their definitions to colors.dm
Made white the default color. It was so already, but that was very obscured.
Moved the atom light-related variables to the atom definition.
Wrapped changes to variables such as light_color into procs that report the event through signals.
Moved the light_on variable to the atom level, also adding a signal for its changing, to represent toggling lights.
Cleaned up a little bit of code in where new variables were defined before redefinitions.
This is all atomization to reduce changes in #52413
None of this affect gameplay at all, it's all code cleaning and refactoring.
There's more colors to standardize, a search for color = will find lots of targets, and I see little need to have both the LIGHT_COLOR and COLOR patterns, but I don't want to make this PR bigger than it already is.
* How did this take me like 3 hours but the bounty UI took 4 weeks like fuck
* Uses style's suggestions for UI cleanup.
* Rebuild TGUI
* Squiggly Brackets No. 1
* Squiggly Brackets No. 2
* Rebuilds tgui also sorry style I got lazy
* Another tgui update
* GREP?
* Rebuilds tgui again
* Rebuild yet again
* How'd you like a nice tender lambchop?
* Take me HOOOOOOOME country ROOOOOADS
* Updates with Anturk's changes.
* Removes unnecessary flex element
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
* Synux
* cleanup
* I bet this merge conflicts
we hate tgui.bundle
* extra bits
* Syndix
* small fixes
* Summary (required)
* this linter drives me up the wall
* final touchups
* Forgot this thing
* Case of lower
* More changes
* Ruins the nice 420 diff, brainfart when doing the second batch of conversions
* More changes
* Next batch. I think
* Converts even more paths
* Restarts bots
* Capital Free Zone
* Come on travis, do something
* Renames areas
* Bots, please stop dying
* Updates CONTRIBUTING.md and updates a few paths I missed.
* APC recgarftzfvas
/obj/item/computer_hardware/recharger/apc to /obj/item/computer_hardware/recharger/apc_recharger
About The Pull Request
It simply adds a new Modular Console Preset to the existing ones, fully outfitted to replace the current Identification Console in the Head of Personnel's Office and in the Bridge, and in most of the maps' Customs desks. Note that it doesn't replace them, it's just an asset right now so we can replace them with another PR, at the pace the map maintainers feel confident with. It has the ID Card Modification, Job Manager and Crew Manifest softwares on it by default, alongside the regular Chat Client.
The new Modular Console Preset can be found under /obj/machinery/modular_computer/console/preset/id, for all your map editing needs.
I'm planning to see if I can't make changes to the Departmental Consoles later on as well, so we basically can get rid of a console in every Head of Staff's office (except the HoP because there's only one), but that will require some additional coding to make it so it's not straight up some Identification Consoles that people with All-Access could use to print even more All-Access cards.
Why It's Good For The Game
I've basically just implemented something that I feel was meant to be implemented a while ago through the use of TGUI and Modular Computers, but never actually got done. The console doesn't have the glitches of the current Identification console, when you remove your ID after logging in and it just goes to a page saying that the address couldn't be found. The UI is much simpler, looks a lot better and is just overall an improvement.
Here's what the new UI looks like, for those of you that don't feel like checking out the PR in-game to know what it looks like:
image
image
Changelog
🆑
add: New Modular Console Preset added: /obj/machinery/modular_computer/console/preset/id
/🆑
About The Pull Request
Extools maptick stuff is in the game. Stolen from BeeStation/BeeStation-Hornet#1119, improves performance. Requires ex-tools on the server, though.
Explosions have been refactored to do the actual exploding in a subsystem.
Credit to goon.
Here's some videos!
Why It's Good For The Game
Basically instant max-caps now.
We can now give more of a tick over to the sending of map updates
Changelog
cl Goonstation Coders, Beestation, Extools devs
refactor: Explosions have been heavily optimized.
/cl
* Startwork.
* Time to break this later
* How do I map lists again
* So close I can almost TASTE ITTTT I GOTTA GET A MOVE ON WITH MY LIIIIFE
* Hey, it almost works!
* Finally actually ready to PR
* Nothing to see here but documentation and dead code
* Take 2.
* Revert "Take 2."
This reverts commit 0882d96a30ba79ebead4b5dd3e6f32e65bbf2a76.
* Cleans up tgui compile errors.
* WIP changes, still not happy with this for now.
* I am satisified.
* Rework that UI
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
Living and machine stat vars are pretty different, one uses flags and other number-defines.
This should make some other mass-replacements and searches a bit easier.
* Pipe init runtime
* Modular computer explosion runtime.
* Waterbottle thrown by explosion runtime.
* Spark runtime. Should systems continue after deletion ?
* restore ghost appearance runtime
* parallax update timer runtime.
* borg unbuckling runtime
* surgery cancel runtime. FALSE is not a null.
* relic self deletion runtime.
* dog collar runtime
* Another part of that buckled_mobs robot runtime.
* Let's go over all of these
* free ()
Co-Authored-By: MrPerson <spamtaffic@gmail.com>
Co-authored-by: MrPerson <spamtaffic@gmail.com>
Hey you, punk Are you hip with modular computers?
...What's that, you think there's nothing to do on that old tablet of yours? Whoah brochacho, don't dump that tablet in the trash, and check out the new gaming app that's sweeping the station!