refactors atom/var/flags to atom_flags and area_flags
moves NOBLOODY, NOBLUDGEON, and PHORONGUARD to item_flags instead of atom_flags
corrects various misapplied flags
* get_tool_quality has numerical meaning
* Basic tools set tool quality
* Toolspeed is replaced by tool quality checks
* Addresses assorted results from live test
* Extra cleanup
- Please fasten your seatbelts, this will be a long one as it joins few older Bay PRs into one.
1. Ports https://github.com/Baystation12/Baystation12/pull/12626
- SMES units may now be damaged and destroyed. Charged SMES units fail quite violently. Damage can be fixed by welding tool.
- PSUs completely refactored, ghetto variant no longer exists.
- Cell rack PSUs now can be considered a hybrid between large battery charger and a SMES. They actually use the cells to store power (so you can hot-swap the cells to get more juice simply via the UI without deconstructing the whole machine), but in comparison to SMES have poor throughput and capacity in general (cells are simply too small). They are also somewhat limited in configuration options (lacks the precision electronics of a SMES). Better matter bin lets you put in more cells, up to 9.
- Cell rack PSU also has a mode that allows charge-balancing all inserted batteries (moves energy around so each battery has the same charge %)
2. Ports https://github.com/Baystation12/Baystation12/pull/11977
- SMES units now have full load balancing capability, getting rid of that annoying "One SMES charges at full, other SMES gets nothing" problem. If insufficient power is available on input, all inputting SMESes will now charge at same percentage. If more SMESes power a single output, they will all output equal percentage of their setting.
- This appears to have a pleasant side effect of fixing the issue where SMESes could starve APCs of energy. SMESes are ALWAYS last to input power on a powernet.
- This also appears to have fixed weird values displayed in SMES output/input load readings in the UI. By weird values i mostly mean inputs/outputs actually higher than the SMES is set to have.
3. Ports https://github.com/Baystation12/Baystation12/pull/18137
- SMES units (and subtypes, therefore effectively also PSUs from previous entry) can now have more than one terminal. This effectively allows a setup where two (or more) sources feed a single SMES, which then feeds the output. SMESes can not exceed input setting even with multiple terminals.
- Typical example of use in practice would be SMES that runs something important (for example an AI, telecomms, pick whatever you want). It could have one input from the power grid, and second input from a PACMAN generator set up nearby as a backup. Before the generator would have to be wired into main grid, therefore main grid would siphon off power from it. Now the generator can be separate and dedicated for whatever use you want.
* Better notifications
* Add buttons to del/move tabs in edit mode
* Add a <span> to emotes
* Fix duplicate IDs in VChat and add more logging
* VChat: Redone chat output in Vue.js
* Ported tg asset cache
* VChat DME Update
* Replace \image macro with bicon()
* NanoUI Subsystem Fixes
Don't do this, the asset subsystem does this for you
* Allow narrate/globalnarrate shenanigans
Allows HTML if your entire thing is HTML
* Disable bicon() icon object cache, and create text tag cache
* Ore Scanner is written incorrectly
Only revealed by vchat
* Fixes 2 VChat bugs
* Underline links in VChat
* Fix LOOC color
* VChat Improvements
Hopefully, anyway.
- Arbitrary font size setting
- Line height setting
- Multiple crush settings
- Rewrote how tabs work hopefully for performance
- Hidden messages are actually put elsewhere
- Attempts to correct chat backlog restore on rejoin
* Surgery steps to use <span>
* Some VChat Tweaks
- Chat remains between client reconnects if your client didn't close (so things like using the reconnect button, or autoreconnects at round end when that feels like working)
- The client doesn't send pings to the server, the server sends pings to the client. This fixes AFK measurements for AFK kick purposes.
- Turn latency indicator into a green/red indicator to show if you're connected, and when clicked will perform a one-time ping (and block doing it again for 10 seconds). It will display '?ms' if it never got a reply, or '999ms' if it did, but it was over 1s.
* Include date in filename for VChat log save
* Merge pull request #6767 from Cyantime/patch-2
Change chat export naming scheme
* Adds VChat tab saving
Saves every time you enter/exit edit mode. Persists between rounds, VChat reloads via verb, etc.
* Fix chat exporting when someone has used unicode
Only affects clients still using 512
* Use CLIENT_FROM_VAR for ease of code reading
* Update code/modules/client/asset_cache.dm
Co-Authored-By: Novacat <35587478+Novacat@users.noreply.github.com>
* Fix runtime when client disconnects before vchat loads
* Fix polaris version of command reports
* Fix LOOC color in oldchat
* Put some styles in various adminpm messages
* Round info and advanced who spans
* Fix missing tag-end
* Maybe fix images for linux and statpanel but also doom everyone
Co-authored-by: ShadowLarkens <ShadowLarkens@users.noreply.github.com>
Co-authored-by: Novacat <35587478+Novacat@users.noreply.github.com>
Keeps the same "bold if changed" functionality added in recent QoL improvements, but replaces the one-datum-instance per hint per device with a two number vars per device.
* Makes hacking window consider all hands instead of just the active one.
* Makes bottom indicators in hacking window go bold if they changed since the last refresh.
* Changelog
* Adds "typecache" utility functions. A fast way to filter lists by type.
Ported from TG
* Ports the "orbit" feature and subsystem from TG
* Adds a feature that allows mobs and objs to "orbit" around some atom. They literally are moved around in circles. See the `orbit` proc in orbit.dm.
* Adds a subsystem that processes the actual movement of orbiting items.
* Adds utility methods for common machinery behavior.
* Adds default_unfasten_wrench which handles the standard anchor/unanchor behavior of wrenches being used on machines. Together with the other default_x_tool machinery procs we can eliminate having that code duplicated in dozens of places!
* Adds is_wire_tool proc to easily detect when a machine is hit with a tool that should open its wires UI (if it has one).
Based on ideas from Paradise, with improvements for us.
* Implements the Tesla Engine
Ported from a mixture of TG and Paradise code and assets: Edison's Bane
Includes the tesla energy ball itself, the generator that makes it, tesla coils, grounding rods, the circuits and frames to build them.
* Switch dusting to zapping on impact and spin better
Ported /tg SpinAnimation which supports more than triangles.
Added four extra hacking wires to the jukebox for Play, Stop, Next, and Prev. The main purpose is to allow attaching of singallers for remote controlling the jukebox.
Separates the 'count and assess everything' stuff to it's own datum, called the metric datum, which I plan to add on to in the future to make counting and metrics easier.
Makes decision process a bit more weight-based, will probably continue tweaking later.
Makes the admin debug UI have links to change settings easily.
Adds replacement for grid check event, which works similar to the old one, but is now based on a physical machine in the game world, that Engineering can hack to make the event end faster, if so desired. Note that the machine is not mapped in, and won't be mapped in until the event system is ready for launch.
Adds grid_check variables to SMESes and APCs to make them stop doing work without draining the battery.
Grid checks in the new system are caused by a "power spike" which originates from the engine and will cause bad things, should no grid checker machine be connected to the power-net. These power spikes occur when the GM decides that a grid check is a good event to have.
The grid checker can be built and deconstructed using the standard machine construction methods.
Ensures station bound synthetics will not be able to utilize Syndicate/Heist equipment/vessels, as well as the opposite for potential syndicate synths.