mid-refactor of `take_overall_damage`
Fully refactors the (?:take|heal)_(?:overall|organ)_damage procs
Allows the dead to examine
Removes the `blinded` var
Refactor cyborg components so vision loss is instant
Robot life/death updates instantly
Adds instant updates for damage overlays and HUD icons for humans
Final reconciliation with the species refactor
Adds a stat debugging system and debugging logs
Also fixes instant death on species change
"Debugging logs" are used for stuff an admin wouldn't care about but
someone debugging would
I used it to fix people dying instantly when changing species due to
temporary deletion of the brain
Fox's requests
Adds a more careful updating system to our reagents system
This converts the machine and mob processes to the SMC. Additionally, it
adds the Atom subsystem, which handles all Initialize() calls in place
of the old gameticker. Due to incompatibility with our atmospherics
(FUCK OUR ATMOSPHERICS FOR FUCKING EVER JESUS CHRIST WHO THE FUCK MADE
THIS PIECE OF GODDAMN SHIT) atmospherics machines do not use
Initialize() as they should, instead opting for a custom atmos_init
proc that the air controller handles.
Changes:
1) Fixes wireless AEGs being able to be recharged in conventional
rechargers. This prevents people with recharger access using them as
regular laserguns.
2) Fixes spiderlings from dying Mother of Terrors lingering around for a
long time. Now, they're forced to ventcrawl immediately if they can.
3) Improves queen health regen. She was regularly getting picked off by
one guy with a gun or two.
4) Queen and Mother now gain vent smash ability. Given how often the
crew welds literally every vent, this is necessary to avoid them being
totally shut out of the vent system in the late game.
5) Prince loses vent smash ability. Instead, he gets the ability to spin
thicker (vision-blocking) webs, and +10 melee damage.
6) Fixes 'evil looking spiderling' meta by requiring that queen has laid
at least 10 eggs before the ability is usable, so newbie queens
don't use it first thing and instantly get discovered/swarmed.
7) Adds confirmation prompt to queen nesting. Queens will no longer be
confused about why the cannot ventcrawl after nesting.
8) Reduces the chances of terror spiderlings skittering onto space
tiles. Makes them less likely to space themselves.
9) Tweaks TS event by increasing timer, and having one of the possible
infestation types spawn 4, rather than 3, green terrors.
Ports Goon Lighting from /vg/station.
Summary -
This adds smooth edges to all lighting in order to increase the
aesthetic appeal of the lighting system.
It works by using a matrix to change the appearance of the lighting
overlay sprite, which has been changed to be a base for the matrix to
modify.
Ported from /vg/station with the help of @PJB3005. This lighting
system is a hybrid between Mloc's lighting rewrite and Tobba's
Goonlights.
Notable changes:
- Darksight now matters on mobs. The lighting overlays are not
alpha=255 when they are completely dark, meaning you can still see the
floor- assuming you can view the turf at all, because it retains the
luminousity setting.
- This means Tajaran have 100% night vision again as they are
intended to. Humans can see in a 3x3 square centered around
themselves.
- No, I'm not changing this, if it's even possible. This is how
BYOND's lighting is meant to work. If you have any complaints about
game balance, please feel free to make a pull request to change
see_in_dark values, which will be seperately evaluated.
- The lighting controller now runs at world.tick_lag, to emulate the
realtime function of StonedMC. So far with my testing, this hasn't
caused any noticable performance decreases- the lighting system is
obviously more expensive than our previous iteration, however, it's not
the next ZAS ;)
Technical Details:
- /atom/movable/lighting_overlay/proc/get_clamped_lum has been removed,
succeeded by /turf/proc/get_lumcount. They behave identically.
- Turf lighting is actually controlled by four "corner" datums, which
feed information into the overlay.
- The way opacity is factored into the system has changed. Anything
that doesn't use set_opacity is not going to work to block light.
- /area/lighting_use_dynamic has been renamed to
/area/dynamic_lighting, for consistency with /turf/dynamic_lighting.
- Lighting is no longer seperately initialized for away missions. It is
handled in ChangeTurf() as it should be.
Known & Unfixable issues:
- There is a 5-10 second delay from starting the round to the lights
turning on. Attribute it to "the powernet being spun up" if you would
like to- but it's actually just how long it takes the lighting system
to update every single turf on the map.
- When you walk with a light on you, the light will actually jump ahead
of you before you visually get to the tile. This is because of the
movement gliding on mobs, realtime lighting actually goes faster than
the glide takes to complete, so it appears that your lights are moving
faster than you.
Thank you krausy~
Animated Goonlights
This adds an animate() call to the update_overlays() proc. This makes it
so that any light changes will smoothly transition between the changes
instead of instantly changing their appearance.
Also fixes a few issues pointed out on Github.
Change lighting animation (turns out the old one totally breaks if you toggle a light quickly, whoopsies)
Kill LIGHTING_INSTANT_UPDATES
isturf