* 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
* stops code from seeping into ic chat
Co-authored-by: spessbro <51048066+spessbro@users.noreply.github.com>
* 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
* Ads loging and admun notifucations too certain ID card access changes
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* 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.
* Emagging Siliconnect allows for sending messages to borgs without an ID
Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
* The Great Radio Rework: NTNET Part 1 of many.
* Update airlock.dm
Co-authored-by: WarlockD <warlockd@gmail.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
* 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
* Modular computers can now be attacked
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
* 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
* Re-assesses 99% of vending prices through Arconomics to match player resources and round-length.
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
* 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.
* Cleans up try_eject proc prototype and various proc usages to fix some runtimes
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* 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.
* BotKeeper (tablet app) list populates based on bot unlock access
Co-authored-by: cacogen <25089914+cacogen@users.noreply.github.com>
* Non-human mobs can now benefit from held id cards and economy. (#54647)
* Non-human mobs can now benefit from held id cards and economy.
* Moved these getters toward the upper end.
* oui?
...
dump eet.
* .tee pump
...
?iuo
* Non-human mobs can now benefit from held id cards and economy.
Co-authored-by: Rohesie <rohesie@gmail.com>
* Arcononomy: Personal Departmental Cargo Ordering (#53881)
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!.
* Arcononomy: Personal Departmental Cargo Ordering.
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
* Converts A && A.B into A?.B (#54342)
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.
* Converts all A && A.B into A?.B
Co-authored-by: ZeWaka <zewakagamer@gmail.com>
* Fixes some borg tablet bugs (#54339)
fix: Borg tablets now correctly work when the borg is out of power (though you'll get no networking until you get that power issue sorted out).
fix: Borgs that are synced to AIs can correctly view and print photos once more.
* Fixes the borg tablet being unusable without power, and borgs usually being unable to print pictures
Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
* Adds a bunch of looping audio to computers, grav-gen and telecomms. (#54324)
* Adds a bunch of looping audio to computers, gravegen and telecomms.
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
* Arconomy: Trims out some of the worst bounties, replaces them with tasks that require basic amounts of effort. (#54097)
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.
* Arconomy: Trims out some of the worst bounties, replaces them with tasks that require basic amounts of effort.
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
* Unhardcodes Modular PC icons (#54158)
* Changes modPC program icons to not be hardcoded
* icons
* tgui.bundle.js, we meet again
* Makes Modular PC icons not hardcoded in NtosMain.js, and fixes them not showing up
Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
* NT Software Hub shows programs you do not have permissions to download (#54075)
* Show disabled downloads so you know what exists
* sorted list of apps
* NT Software Hub shows programs you do not have permissions to download
Co-authored-by: NightRed <nightred@gmail.com>
* Enforce preserving parent proc return values across ui_act call stacks (#53964)
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.
* Enforce preserving parent proc return values across ui_act call stacks
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Fix skill related runtimes in mindless mobs. (#53691)
Fixes related to mindless mobs using skills
* Fix skill related runtimes in mindless mobs.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Fix runtime with NTOS apps and improve code involved (#53779)
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.
* Fix runtime with ntos apps and improves code involved in the runtime
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Fixes a runtime for ModPCs running Plexagon Access Management without a secondary card slot (#53597)
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>
* Fixes a runtime for ModPCs running Plexagon Access Management without a secondary card slot
Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
* Process procs now properly utilize deltatime when implementing rates, timers and probabilities (#52981)
* 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
* Process procs now properly utilize deltatime when implementing rates, timers and probabilities
Co-authored-by: Donkie <daniel.cf.hultgren@gmail.com>
* Fix Cargo tablet bounty programs not being able to print the bounty form (#53365)
Fixes the printer cool down system that started the printer cool down when you press any button??? meaning that it would always fail since the cool down was reset after the button was clicked. The cool down is now only reset until AFTER the print operation.
Also adds a message that lets you know if the print cool down is not over yet, so it doesn't fail without feedback.
* Fix Cargo tablet bounty programs not being able to print the bounty form
Co-authored-by: Jack7D1 <59462654+Jack7D1@users.noreply.github.com>
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>
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Couls <coul422@gmail.com>
* Refactors machine_stat and is_processing() to process on demand (#53150)
* Refactors machine_stat and is_processing() to process on demand
* Fixes master (#53193)
* fixes master, damn it me/mothblocks
* fuck again
* ANOTHER ONE
* Fixes master
Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Fixes a runtime caused by examining a modular computer with no primary ID slot (#53009)
* Fixes a runtime caused by examining a modular computer with no primary ID slot
Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
* Support for expansion-class modPC hardware (#52644)
* 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
* Support for expansion-class modPC hardware, a modPC hardware item required for the atmos scanning app, and reworking ID card slots in a related fashion
Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
* Cleanup up all instances of using var/ definitions in proc parameters. (#52728)
* var/list cleanup
* The rest of the owl
* plushvar bad
* Can't follow my own advice.
* Cleanup up all instances of using var/ definitions in proc parameters.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Updates modular PC program names to have some flavor (#52492)
* Better program names
* Forgot a few things.
* oops
* Updates modular PC program names to have some flavor
Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
* Color standardization, vars moved, and signals (#52574)
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.
* Color standardization, vars moved, and signals
Co-authored-by: Rohesie <rohesie@gmail.com>
* Update AI health after healing damage in integrity restorer
* Also feex legacy AI inegrity restorer.
* Update IntelliCard icon when AI is successfully revived.
* Clean up proc arguments
* Feex
* Removing a bunch of oxygen stuff
* breaking works
* completely functional yes
* reverts some old changes
* thanks based shiz
* i said 'thanks' god damn it
* oops
* another one bites the dust
* they told me math was of variable difficulty