* WIP
* More wip
* Numbers
* More WIP
* Improve
* Add QDEL_IN_CLIENT_TIME
* More WIP
* Getting there
* Absolute communism
* More stuff
* More states
* MrPerson's suggestion
* Makes it work, now we just need the dmi
* No, that's the null icon_state
* More better
* Fix script
* Turns out we don't need an empty dmi to start with
* Upload a much more complete dmi. Now we just need the identicons
* Fix
* Add the credits tool
* THE FULL DMI
* Mistake
* No need to resize the image if it's already 32x32. Also download the right one in the first place.
* It's oranges
* Transparent opacity
* Make per client
* Run at roundend
* Make tgstation-server great again!
* Speed things up some
* Fix up the verb
* Final touches
* Remove the unecessary .sln
* PraiseRatvar -> Frozenguy5
* New age coding
* Bigger gulps
Scale()s the icon when range is below 16, if it's above 16, scales the icon to 16 and transforms the rest of the way.
This replaces the other method of creating one click catcher image per tile in the range of the users view, which was pretty memory hungry and inefficient. A single icon operation while the view range changes should still be pretty performant and require less memory bookkeeping.l
This ensures it works when the users view range changes, but does not result in a loss of precision for view ranges up to 16 when moving the mouse (it triggers per pixel which simply get larger when transformed)
fixes#29342
Click catcher now supports mousemove/mousedrag. Basically, mouse location can now be captured even if the user isn't mousing over a visible location
Added procs to allow for projectiles to be fired with just an angle for pixel projectiles, instead of requiring a target turf and pixel x/y
Added procs to get angle of user's mouse from their viewpoint (Time to rework gang machine guns again!)
Beam rifles now have different zoom modes
Free directional zooms out and tracks the angle of your mouse from the center of the screen. However, you can't target with very good accuracy on this (Shots can't be properly aimed on non dense objects/lying down mobs.)
Locked directional zooms like free directional but doesn't automatically turn if your aim changes.
Center view, just increases your view in all directions (2x weaker)
No zoom mode, in which you just retain your normal view.
You can select beam rifle zooming rates to be instant or stepped.
Stepped zooming rates zoom out 5 tiles per second. This will likely help with people not being able to use it without lagging because their computers aren't as beefy!
Beam rifles no longer require zoom to be fired
Beam rifle aiming beams now instantly update instead of on process
Beam rifle aiming beams are now one object instead of 150. This'll help with the lag caused by it during gameplay that I've observed.
Angular penalty reduced by 0.1 for a nice even number.
Instances of client.view = have been replaced with client.change_view() as that'll properly update the click catcher
Hopefully shooting yourself in the face when you hit a blob tile or whatnot is fixed with the new and improved code..
set_client_age_from_db() and sync_client_with_db() have been merged.
New clients are now added to the user table in a separate query than the one used to update their details upon connection; their player and account age is then calculated with DATEDIFF.
The code and regex used in findJoinDate() was changed a bit.
* Adds a topic limiter.
This appiles to all non-admins, the rate is configurable but defaults to 10 in any second and 100 in any minute.
Hitting the minute limit causes a notification to go to admins (once per minute)
The user is always notifed when a topic is ignored so they know whats going on. If they trigger a notification to admins they are told about this as well.
* This makes more sense
There is still work to be done young one, for among the proc children, there exists hundards of duplications, procs that exist as both clients and datums.
We must free these duplications, free them from themselves.