* Implement a new kind of ip range ban that only applies to new players
* Put determining whether a player record exists to its own function
* Make BlacklistedRange bans get bypassed by any ban exemption
* Stop trying to get another DbGuard while already having one
This does break with convention on the functions in that area but
considering the use of this function it's probably fine?
I could alternatively just move the place it's called from.
Also I was suppossed to wait for tests to finish locally just to be
sure, but nah. I am pushing this now
* BlockSolutionAccessComponent now only blocks one specified solution.
* Significant overhaul
Separated spilling when worn functionality into its own component/system.
Removed BlockSolutionAccessComponent.
Added an event for solution access.
* golden plunger
* Add wood material (the handle is still wood)
* 52 hours
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* cleanup prototypes with `PryingComponent` & fix jaws of life prying speed
* Minor cleanup for tools and prying systems
Remove some obsolete methods.
* Fix doafter continues when not held & log
* Modifiy delays for floor prying
* Fix test fail
* You can now pry multiple tiles at once
* More advanced do after duplicate checking.
Instead of just saying "lol tile prying can raise duplicates", we now have a system so tile prying can properly distinguish events on 2 different tiles. This is achieved with a virtual function on DoAfterEvent.
* made cup ramen eatable with anything with the fork component
* removed extra png
* made cupramen fillable with water, and made hot ramen dry ramen.
---------
Co-authored-by: redfire1331 <Redfire1331@users.noreply.github.com>
* add a type specifier where one was forgor
* Fix other way because degub conditions
* okay this feels kinda dumb but it does fix it.
* Update Content.Client/Effects/ColorFlashEffectSystem.cs
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>