* Fix some potential sleeps as detected by SpacemanDMM improvements (#54230)
overrides weren't detected by should not sleep, i think i've mostly
fixed that with SpaceManiac/SpacemanDMM#214
Some of these are wacky but overall this pr is harmless
signals shouldnt sleep even in weird 1 in a million situations or due
to other people adding bad code
overrides of changeling can_sting() use alert() and input() and that's
just too fucked for me to fix in this pr
* Fixes some potential sleeps as detected by SpacemanDMM improvements
Co-authored-by: spookydonut <github@spooksoftware.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>
* Adds SIGNAL_HANDLER and SIGNAL_HANDLER_DOES_SLEEP to prevent signal callbacks from blocking (#52761)
Adds SIGNAL_HANDLER, a macro that sets SHOULD_NOT_SLEEP(TRUE). This should ideally be required on all new signal callbacks.
Adds BLOCKING_SIGNAL_HANDLER, a macro that does nothing except symbolize "this is an older signal that didn't necessitate a code rewrite". It should not be allowed for new work.
This comes from discussion around #52735, which yields by calling input, and (though it sets the return type beforehand) will not properly return the flag to prevent attack from slapping.
To fix 60% of the yielding cases, WrapAdminProcCall no longer waits for another admin's proc call to finish. I'm not an admin, so I don't know how many behinds this has saved, but if this is problematic for admins I can just make it so that it lets you do it anyway. I'm not sure what the point of this babysitting was anyway.
Requested by @optimumtact.
Changelog
cl
admin: Calling a proc while another admin is calling one will no longer wait for the first to finish. You will simply just have to call it again.
/cl
* Adds SIGNAL_HANDLER and SIGNAL_HANDLER_DOES_SLEEP to prevent signal callbacks from blocking
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
* Removes singularity, tesla, TEG and Mrs. Pacman. Changes supermatter overcharge delam. (#52873)
About The Pull Request
This PR removes the tesla and Mrs. Pacman from the game. The title is actually misleading, the TEG and singularity are still in the game but inaccessible and the singularity no longer has its generator.
Field generators and tesla coils have been kept because shocking your fellow man is the greatest sensation of power in the world.
The overcharging delamination for the supermatter has been replaced by the release of 2500 mols of tritium at 500,000 kelvin. An engineer who's really hateful of the station can use this for fusion, if they desire. Otherwise, its a tritium fire in engineering alongside the explosion. This will probably be changed in the future to be more potent since the explosion will pretty much just space all the tritium away.
Singularities no longer produce radiation. Now, keeping one is less about making power and more about making a statement, especially since you need to delaminate an SM shard for it.
Why It's Good For The Game
Having power optimized for one generator (SM+Turbine) will allow balancing to be feasible, also oranges wanted this. The other generators may later return but with tweaked values and different roles.
Changelog
🆑
del: Nanotrasen has removed their outdated teslas, singularities, TEGs and Mrs. Pacman generators from their servers and warehouse.
/🆑
* Removes singularity, tesla, TEG and Mrs. Pacman. Changes supermatter overcharge delam.
Co-authored-by: CRITAWAKETS <sebastienracicot@hotmail.com>
* Tweaks voice analyzers, pulsing a grenade's bomb wire now uses the grenade's timer delay. (#52710)
Makes suicide bombing with voice analyzers harder, while keeping the more fun behavior by adding some tells and delays.
Things attached to a grenade's pulse wire use the grenades timer, rather then just insta booming.
* Tweaks voice analyzers, pulsing a grenade's bomb wire now uses the grenade's timer delay.
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Refactors area stuff (#52751)
-bitfielded a bunch of bools on /area, I left some untouched cus they get called a lot
-Unused vars
-Fixed a var pretending to be a fake bool
-Probably more
* Refactors area stuff
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
* Updates wire datum proper_name vars (#52679)
* New wire proper_names
* Update comment.
* Updates wire datum proper_name vars
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Fix pulsing the power wire shocking you repeatedly unless you close tgui (#52541)
* Fixes#52538
* Allow those with insulated gloves to mess with airlocks still
* Fix not being able to interact with insulos
* Fix style qualms
* Add shock immune to should_electrocute
* Fix pulsing the power wire shocking you repeatedly unless you close tgui
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
* Converts everything to use setAnchored() + other fixes
* Fixed singulo debug
* singulo again
* forgot to move the vv_edit proc
* caught that this time :)
* changes
* Update code/game/atoms_movable.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: Rohesie <rohesie@gmail.com>
cl ShizCalev
refactor: Optimized a good chunk of MULEbot code, fixing things such as it rebuilding it's overlays/icons 5 times every second while moving to a destination. Less free lag!
fix: Fixed MULEbots closing crates when the crate doesn't actually get loaded onto it.
fix: Fixed the maintenance hatch on MULEbots visually closing for a moment when emagged.
fix: Paranormal MULEbots will no longer briefly turn into a normal MULEbot when emagged.
fix: Fixed interface exploits involving paranormal MULEbots carrying ghosts.
fix: Fixed MULEbot blood tracks sometimes facing the wrong direction.
fix: Player controlled MULEbots will now leave bloody tracks if they've run over a mob.
fix: Fixed players riding MULEbots sometimes appearing underneath it instead of ontop of it.
fix: Fixed AI's making a chiming noise when they receive a remote notification from a MULEbot. Now only the AI will hear the notification's sound.
fix: Fixed MULEbots dropping mobs off at their current location instead of at their dropoff point.
fix: Fixed a minor runtime related to MULEbots dropping off deleted items/mobs.
fix: Fixed mobs having the wrong height offset when riding MULEbots.
fix: Fixed mobs sometimes ending up underneath MULEbots while riding them.
fix: Fixed mobs not falling off MULEbots when stunned / incapacitated.
fix: Fixed inducers not recharging MULEbots.
fix: Fixed MULEbots leaving bloody tracks in space.
fix: Fixed MULEbots leaving multiple blood tracks in the same spot if they failed to move.
fix: Fixed hacked MULEbots spamming messages about knocking down a mob when they didn't actually do it.
fix: Fixed MULEbot commands not resetting when they were turned off.
fix: Fixed MULEbots not turning off properly when their maintenance hatch is opened.
fix: Fixed MULEbots not turning off properly when they ran out of power while moving.
fix: Fixed MULEbots flashing their external warning lights while they're turned off when their avoidance wire is cut.
fix: Fixed mobs being able to walk right over MULEbots when they turn off.
fix: MULEbots will now try to put their powercell in your hands when you remove them with a crowbar.
fix: Fixed the interface for MULEbots briefly looking like you turned it on successfully even though it was out of power.
fix: MULEbots will now provide feedback if they fail to turn on due to their maintenance panel being open.
fix: MULEbots will no longer flash and beep when their wires are pulsed if they don't have power.
fix: MULEbots will now actually flash when their external warning lights are pulsed.
tweak: MULEbots will now flash when they beep / buzz.
add: Added a bit more examine text to MULEbots.
/cl
Fixes#42918Fixes#46030fixes#38594
About The Pull Request
NT is finally cracking down on underage drinking and smoking on its stations, and you must now be at least 20 years old in order to purchase alcohol or tobacco at vendors. Underage ID's will be visible as such when shown or inspected. Bartenders below the age have discreetly had their IDs modified to be the minimum age, though if anyone cross references the station datacore records, they'll be exposed!
dreamseeker_2020-03-31_05-04-22.png
You can adjust the registered age for an ID at the HoP's console, the same way you would adjust the registered name. You can also pulse the age restriction wire on vending machines to disable the age checking system if you want to hack the system. I chose 20 as the legal limit because I don't care to listen to people fighting about 21 vs 18 and America vs the world, and it still will affect a decent amount of people I figure.
2020-03-15_21-40-54.png
Why It's Good For The Game
Makes age a teeny bit relevant, you can now more easily identify and bully 17 year old Heads of Staff.
Changelog
🆑 Ryll/Shaps
add: Due to pressure from various organizations, Nanotrasen is implementing a new ban on the purchase of alcohol and tobacco products for crewmembers under the age of 20 onboard its Spinward space stations. Please remember that providing alcohol or tobacco products to underage crewmembers is against Space Law, and remember to check those cards bartenders!
add: Standard Nanotrasen IDs now display the registered age of the holder, which you can change at the HoP's access console.
/🆑
About The Pull Request
For an item to be two handed just add this handy component.
All existing two handed items have been converted to use this component.
Why It's Good For The Game
It has components and signals, and now you can make items two handed so simply.
/obj/item/shockpaddles/ComponentInitialize()
. = ..()
AddComponent(/datum/component/two_handed)
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.
* Unicode support Part 1
Makes all calls to ascii2text() and text2ascii() unicode aware as well as all calls in code/__HELPERS/text.dm.
Adds defines for the footext_char() procs to maintain 512 support.
I did some cleanup on the text helpers since a lot of them were really, really bad.
reject_bad_text() and reject_bad_name() have an arg to reject non-ascii chars which defaults to TRUE.
* Give travis a more recent beta
* Ultimate compat
Added the _char procs I was missing
Test the build instead of the version because Lummox is a goddamn moron
* Suggested fixes, removes the last of the dd_ helpers
* Reading the reference is very important!
* Minor code improvements and a comment
* Typo
Several of the greps were missing the `-P` switch which caused them to
fail to match things. The EOL grep also wasn't working right so I
replaced it with the one I added to TGMC.
* Initial tgui-next commit
* Improve dev server, slight changes to layout.
* Add more components, fix dragging, finalize scrubber list
* Complete an air alarm interface.
* Multiple improvements based on feedback
- LabeledList now has a "buttons" prop, where you can put buttons.
- Improved Box and Flex components
- Whole UI is now dimmable if non-interactive
- Basic documentation of components (Box and Flex so far).
- Icon and Box now accept a "color" prop.
- Routing improved in "Layout" component, you can now specify whether an interface is scrollable.
* Less harsh dimming
* Redux, Toasts
- Fixed inconsistent backend updates with Redux.
- Added Toasts which are currently unused, but are functional.
* acclimator + ai airlock ui
* Add a progress bar component, implement resizing
* Fix a zero in title bar
* Add a linter to keep shit tidy, fix danger level mapping, add some more docs
* better ai door interact ui
* final ai airlock interface
* Fix issues with code, enforce hard 120 line length cap, automerge binaries
* Implement hot module reloading
* Fix progress bar, add color support
* Fix ProgressBar baseline alignment issues
* Remove unwanted padding on the bottom of the LabeledList.
* Component improvements
- Fix baseline issues with Button and ProgressBar components
- Box how inherits props from Box
- Atomic colors and Button colors are now auto-generated, all range of colors supported
* Chem Dispenser UI, animated numbers, more style fixes
* Add an IE8 polyfill
* Intermediate state of fixing IE8
* Lots of shimming and general misery
* Fully working old TGUI chainloader for IE8, more pipeline improvements
* Support title-less Sections
* Delete Yarn, use Lerna for workspace management
* Improve maths and animated numbers
* Fix loss of focus for scrollable content, activate buttons with keyboard
* Attempt to bust the cache, grab focus on keyboard presses too
* Fix hot module replacement by manually pulling replaced modules.
* backend logging
un-nuke line endings
changes without insane line endings
* helper procs + href support
* slight optimization
* compiles
* Redux, Hotkeys, Kitchen Sink (for UI testing), Tabs component
* Push logs to backend, small kitchen sink changes, tab fixes
* Update component reference in README
* Small fixes
* Next bunch of IE8 fixes, PureComponent optimization for Inferno
* Delete old tgui html
* Log the event of loading the old tgui
* Enable tgui logging on server by default
* Final solution
* Extract routes into a separate file, fix ChemDispenser bug
- Chem dispenser was needlessly disabling transfer amount buttons
* Disable baseline alignment for vertical tabs
* Fix tabs and box units
- Tab content was not taking full page width
- Box can now accepts strings as units, which will be treated as raw style values.
* Fix tgui on Terry
* Fix sending all logs with an "error" flag
* Some macro UI component changes and improvements
- Refer to README.md diff to see what's new
* Tooltip component
* Add support for themes, nanotrasen logo is back
* Clockwork theme hotfix
* Slight adjustment to logo positioning
* Actually proper solution for logo positioning
* Fix color maps
* tgui-next thermomachine interface
* tgui-next canister interface
* Add icon_class_name proc to asset cache
* Lots of stuff backported from actioninja's repo
* Cleanup oopsies
* Cargo UI adjustments
* Nuke lodash
* Minor fixes and cleanup
- Remove local Inferno package in favor of upstream Inferno
- Fix "initial" prop on AnimatedNumber
- Force fancy=0 for IE8
- Click-through dimmer
* Add a bat file for dummies
* podlauncher interface fix
* Update README, assert code dominance
* Clarify usage of event handlers in Inferno
* Document LabeledList.Divider
* Fukken grammar
* fixes cellular emporium readapt button not working
* fixes incorrect action on button in atmos control interface
* remove unneeded data from airlock electronics ui
* Set +x mode on bin/tgui
* Fix filename cases
- They were untracked by git on windows
* Ignore package lock, make batch more robust
- package-lock.json is very random and unreliable as fuck. Yarn was better.
* Build tgui-next in travis
* bruh
- fixes tgui error reporting
* logging cleanup + always log
About The Pull Request
Converts every single usage of playsound's vary parameter to use the boolean define instead of 1 or 0. I'm tired of people copypasting the incorrect usage.
Also changes a couple of places where a list was picked from instead of using get_sfx internal calls
This was done via regex:
(playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\)) to match 1
(playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\)) to match 0
full sed commands:
/(playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\))/\1TRUE\2/ 1 to TRUE
/(playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\))/\1FALSE\2/ 0 to FALSE
I'm not very good with regex and these could probably be optimized, but they worked.
Why It's Good For The Game
Code usability
About The Pull Request
Adds 'notice' span class to all visible_messages which had no span class, making all those black messages blue.
Why It's Good For The Game
This should help differentiate action-messages from talking-messages in the chat. More actions will be blue, thus black talking-messages should pop out more.
* assemblies are shit fuck em
* maybe press commit before making a pr
* proxy stuff
* morestuff
* qol stuff
* only 1 wire
* revert that garbage that made me conflict
* changes
* wires
🆑 coiax
add: The cyborg reset module wire has a star symbol marking, allowing
a trained Roboticist to easily provide resets without altering
any other cyborg settings.
/🆑
When I removed cyborg module reset modules, it was pulse-to-reset, which
when applied to all the wires on a cyborg, had no real side effects
if there was only one AI.
Now that it's a cut-to-reset wire, cutting all the wires will invariably
desync the cyborg from its parent AI, given that all cyborg wires are
randomised.
My intention was never for the reset wire to be "found" just like door
wires, just to make it cheaper and possible to reset a borg module
"in the field".
Someone who hasn't read the wiki or knows what a "star symbol" means,
will have to be told what to look for, so I chose this method of signaling
rather than just "the module reset wire is X".
Also, it's a Keep Talking And No One Explodes reference.
cl coiax
add: Microwaves have a single wire accessible when open, the activation wire.
When cut, the microwave will no longer function, when pulsed, the microwave
will turn on.
add: Stabilized dark purple extracts now cook items in your hands, rather than dropping
the cooked item on the floor.
/cl
Previously microwaves just worked on their contents, now they keep a subset of contents called ingredients, because otherwise it would explode whenever you put a signaler inside.
Someone asked me to do it. It seemed like a neat idea. God knows
what horrible things people will do with this.
cl ShizCalev
admin: Fixed AI fingersprints not getting logged
admin: Fixed some door interactions not being logged at all.
admin: Turret control interactions are now in mob combat logs
/cl
Fixes#40203
Semi WIP. Good to merge for the most part, but I would like to add logging in a couple more spots.