Adds a new engineer only traitor item, the disposable sentry gun deployment system. It's a red toolbox that works and functions as a normal toolbox, until you attack it on harm intent with a wrench. Upon bashing it with a wrench, the toolbox will transform into a ballistic sentry gun, theoretically shooting at your enemies, and not you. The turret only has 100 health however, so it will not last long to anyone with any weapon that can deal enough damage.
Sparks no longer lag, projectile beams move super smoothly, same with mobs and whatnot. This also allows for easy expansion into directional lights, field-of-view, wee-woo rotating lights or whatever.
It does have a downside: things right-clicked or checked through the alt+click tab will show the light overlay:
This is a BYOND limitation, very well worth it IMO.
🆑
add: Smooth movable lighting system implemented. Projectiles, sparks, thrown flashlights or moving mobs with lights should be much smoother and less laggy.
balance: Light sources no longer stack in range, though they still do in intensity.
/🆑
Price inflation is now based upon averages, and is now uncapped from 5.
Civilian budget is no longer the worst budget to pay out from.
Medical Civilian bounties are no longer chees-able in seconds.
* I'll pick this up later because it's going to need a UI with keyed lists
* Updated market crash and average inflation values.
* Alright, I'm confident now.
* Make the market crash end at the beginning of the event end
* And on the 2nd day, the lord spoke, "Compile"
* Division by zero protection.
* That should have been a max, smhing my smhead
plastitanium walls now smooth with windows
fixes airlocks not having a smoothing group, now plastitanium/titanium walls will smooth with the
fixes plastitanium walls not smoothing with syndie walls
Adds SIGNAL_HANDLER, a macro that sets SHOULD_NOT_SLEEP(TRUE). This should ideally be required on all new signal callbacks.
Adds BLOCKING_SIGNAL_HANDLER, a macro that does nothing except symbolize "this is an older signal that didn't necessitate a code rewrite". It should not be allowed for new work.
This comes from discussion around #52735, which yields by calling input, and (though it sets the return type beforehand) will not properly return the flag to prevent attack from slapping.
To fix 60% of the yielding cases, WrapAdminProcCall no longer waits for another admin's proc call to finish. I'm not an admin, so I don't know how many behinds this has saved, but if this is problematic for admins I can just make it so that it lets you do it anyway. I'm not sure what the point of this babysitting was anyway.
Requested by @optimumtact.
Changelog
cl
admin: Calling a proc while another admin is calling one will no longer wait for the first to finish. You will simply just have to call it again.
/cl
Regular holsters:
Can no longer hold pulse carbines.
Can now hold toy pistols.
Detective's holster:
Can no longer carry ALL ammo box types, it's crazy this was possible.
Can now carry all handguns instead of only revolvers, their ammo, the mini e-gun, and the toy pistol and its magazines.
Chameleon holster:
Can no longer hold pulse carbines.
Can now hold all the ammo of guns it can hold (handguns and revolvers), the toy pistol and its magazine, and the small energy crossbow.
Operative holster:
Can now hold... basically everything gun related. All guns, all ammo (except ammo boxes), all grenades.
Descriptions of all holsters changed to reflect this.
New type of medical stack, obtainable from botany: the mourning poultice.
These poultices convert 10 brute and 10 burn into oxy per application, and can be used on corpses as well as the living.
It takes 20u bungotoxin, 20u aloe juice and 20u cellulose to create one stack.
I have split all the existing medical stacks into their own dmi, stacks_medical.dmi.
Moves all opacity var manipulation to a proc which sends a signal.
light_blocker element for movable opaque atoms made, which tracks its movement and updates the affected turfs for proper lighting updates.
has_opaque_atom boolean replaced by the opacity_sources lazylist to keep track of the sources, and a directional_opacity which serves a similar function but also allows for future expansion with on-border opaque objects (not yet implemented).
Some opacity-related sight procs optimized as a result of this.
Some variables moved to the object's definition.
A define or two added into the mix for clarity.
Some code cleaning, like turning booleans into their defines.
One file renamed for clarity.
Changelog
cl
balance: Mechs no longer block sight. It's a non-trivial cost for the lighting system with little to no gain.
/cl
all living spawners in corpse.dm are now in ghost_role_spawners. I hate having to search two different files to HOPEFULLY find which ghost role I need to edit.
Added a disclaimer about giving guidance or at least stationstuck component to stuff so this doesn't happen again
Cleaned up stationstuck. Man, I know I made this, but damn I did kind of a shit job