![](http://puu.sh/o3s0B/b722233b86.gif)
Whoo, first large gif!
Weapons now have a sighted range that will shift the camera in the player's direction when aiming/using them. This gives scoped weapons a ranged advantage and short ranged weapons get the advantage of seeing enemies coming up behind them sooner. I'm still playing with this and I'm quite fond of the effect. Credit to Yutty Putty for suggesting and providing the sample.
Yes and no.
There's a trick to what I'm doing. I determine the maximum scale I'll need for the icon and then upscale the original icon during initialization. BYOND automatically prevents the re-creation of identical icons if you've already got it in the cache. It's incredibly good at it too. Way better than any softcode system you are going to cook up to prevent it.
Once I've got the maximum required scale (ceil), I simply downscale to the current scale rather than upscaling.
For most visual effects, anything over 4x original scale is unnecessary.
Both of the gifs you linked are recorded in BYOND using animate(). One of the objects uses animate() upscaling, one uses animate() downscaling. This is recorded live with both objects in the frame at the same time.
identity matrix is simple for downscaling:
Which can be expressed as:
Or the functional way: