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.
* Refactor several log lines to use datum_info_line and atom_loc_line
* Add default return strings from datum_info_line and atom_loc_line
* Add parentheses around atom_loc_line data
* Change more logs to use atom_loc_line
* Add check in atom_loc_line for turfs to avoid calling get_turf on them
* Re-add removed 'at'
* Replace datum_info_line with key_name and atom_loc_line with loc_name
* Refactor logging functions
* Avoid double-logging self-interactions
* Fallback to simple stringification if all else fails in key_name()
* Rewrite muscle spasm logging to use log_message
* Standardize logging of martial arts
* Tweak individual logging panel look
* Fix individual logging panel source
* When I typed || I really meant &&
* Fix Telecomms logging always showing client logs in the panel
* Reverts addition of buggy ownership log to panel
* Remove colon
* Fix missing log_directed_talk tag
* Add warning for missing type in log_direted_talk
* Change warnings to stack_traces
* Add square brackets around fallthrough key_name() case to help parsing
* Allow atom arguments/src in log_*() functions
* Change log_combat call with null argument to log_message
* Change mecha types' log_message() arguments to match atom and mob version
* Add key_name() case for atoms
* Fix resist_grab() unsetting pulledby before log_combat gets a chance to use it
* Fix log_globally logic
* Add logging for hitting objects with items
* Move log_combat() to atoms.dm
* Use utility functions for object stringification in log_combat()
* Use utility functions for object stringification in log_combat()
* Add missing logs for interacting with display cases
* Rewrite log_combat() comment
* Add missing space in log_combat()
* Add logging for hitting grilles barehanded
* Add missing ..()
* converts to using key instead of ckey for user facing logs and ui
* more key_name for airlock wires
* futureproofing check for if key changes
* --onlyckeymatch script argument and fail/success counter
* fix
* different guns can be inserted into emitters
* fixes portal gun runtime
* You can now switch type through wires
* makes one line more readable
* Fixes being able to grab nodrop guns from emitters
* adds signal and modifies each call of afterattack to call it's inherited proc
* uses new macro for sendsignal()
* map fuck
* skip precommithooks
* combine and negate 2 ifs
* Standardizes access checks
* Makes SS Networks init before SS Atoms to prevent NTNet interfaces from initializing before them
* Adds passkey support to NTNet packets
* Adds NTNet support to airlocks, makes door remote use NTNet
* Access levels given by jobs are now shuffled
* Access code improvements
* Adds IC card readers
* Fixes a delay issue with opening/closing airlocks with NTNet or signalers
* code review memes
* Renames plaintext_passkey to encrypted_passkey
* death by thousand nitpicks
* Adds tool_behaviour support to construction datums (mech construction)
* Adds tool_behaviour support to wire datums
* Adds tool_behavior support to surgeries
* Adds tool_behavior support to crafting
* New proc, to be used for checking tool qualities in hands
* Improves tool quality support on wires
* It works, but is it worth it?
* bitfield helpers take 1
* Would this work?
* remove dangling debug code
* rebase & fixes
* vv bitfield stuff, reading
* DNM oceans of shitcode DNM
* honk
* honk2
* plonk
* rebase & fix
* Remove extraneous parameters of receive_signal
* Delete unused signal datum procs
* Remove signal/var/encryption in favor of data
* Add and use datum/signal/New
* Clean up PDA and pAI integrated signalers
* Remove unused send_hear proc
* Clean up vars on obj/item/radio, change receive_range to can_receive
* Remove suffix var from radios
* Fix cell timer radios
This fixes a runtime caused when usr is null or zero and shock is still
called.
This is a hack and illustrates why use of usr is considered bad practice