Why do we have a robot that literally does the entire job. Basically people leave it and it becomes a lag generator forever. Removes farmbot harvesting and removal of dead plants, plus adds an idle timer for 150 process cycles without a target causing it to turn itself off. So basically it will tend the plants and keep them alive, but you need to come harvest them sometimes.
-If prey 1 is too small to show up, ya get no visible bulge.
-But if you eat another prey also too small to show up, but take enough space together with the first one, ya get bulge.
-Also if you eat a small person, and then a big person, ya now get bulge too. (unlike before)
OwO
-Makes digestion modes "finish" once everything unprotected is gone.
-This also means your guts will no longer permagurgle fruitlessly while nothing but a shitty ID in there.
-Okay so. The dismemberment related crashing has decreased in the mob icon cache related cases, but another circumstance has been revealed pointing towards the severed limbs themselves.
-(Someone got splattered yesterday downstream and nuked half server into chain crashing)
-Anyhow. I personally had completely forgotten to update my client last year from an awfully outdated pre-PIXEL_SCALING version, but I happened to do it way after people began crashing and cannot remember encountering a single crash from the before time.
-Which led to a theory that our poor little Byond simply has trouble adjusting to fresh features and occasionally gets overwhelmed by the task of tossing around a bunch of severed limbs inheriting their owner's visual properties while also having to randomly rotate each one.
-This thing just disables pixel scaling from severed limbs upon dismemberment.
-Because of the evil nature of the bug unpredictably manifesting in action and often leaves some witnesses un-crashed, I have no proof if this helps anything but I'll just toss it up and see if it sticks.
* MouseDrop()'s over_object may be null if dropping over a stat panel or over other empty space. Fix runtimes from assuming it is not null.
* Fixes Runtime in clothing_accessories.dm,54: Cannot read null.name
* Fixes Runtime in evidencebag.dm,21: Cannot read null.loc
* This is PHASE 1 of a multi-phase conversion. In this first phase we implement the subsystem, but leave it processing the existing global list variables. In the next phase we will switch to use datum variables in the subsystem. The main reason for splitting into two phases is ease of code review; change the meaningful code without the hundreds of machines -> SSmachines.machinery substitutions.
* We did declare macros for adding/removing things to the processing lists, and convert everywhere to use the macros.
* Added var/is_processing to /datum to keep track of whether an instance is already in a processing list (prevents it being in the list twice!) and also debugging, making sure its not in two lists etc.
* NOTE: The global machines list is **no longer sorted** for performance reasons. As far as I know, the only module that actually ever cared was cameras. Our camera system already handles its own sorting in the cameranets anyway, so it should no longer be needed.
Removes the dynamic setting of preload_rsc, because BYOND does not appear to respect it if it's not compiled in, and the dynamic nature of it is unused to my knowledge. If you need to change it, you can change a define in _compile_options.dm
This should now properly set it to '1', which should load all the resources at once, which might make some significant slowdown when first connecting, but should be preferable to constantly getting mini-lags when moving to new areas or hearing new sounds (like when getting shot at!).
Welding in a RIG/spacesuit is currently broken. This PR fixes it. It was broken for two reasons.
First, the proc to get flash protection assumed the RIG was a clothing item, and as such thought it had variables it doesn't. So it would runtime.
Second, spacesuit helmets lost their flash protection for some reason. This has been reversed.
I personally like to imagine we live in a world where 'eject' is not a synonym for 'annihilate'.
Just makes the sound the railguns play when empty be a var, and makes them ACTUALLY eject the magazine instead of just deleting it (copypaste error probably, from the magnetic type, which does that).
Ghosts now have a verb "Join Into Soulcatcher" that lists all players, and they can pick one to ask them if they can join into their SC. If they don't have one, it notifies the ghost (this is less expensive than trying to crunch who has a soulcatcher and shortening the list. You can just deal with it okay??). You cannot get backed up if you joined this way, like there's no way to move from being a ghost to being in someone's head to being in a mob. You'd need to ghost and respawn normally. (This is intentional... no sneaky no-manifest people getting in).
And various other SC QOL things:
- Adds NMe and NSay verbs when you get a soulcatcher installed so you can use them in the text parser at the bottom of the window or click them in the verb list like a crazy person. The older emotes also still work.
- Prevents 'loop of madness' where both pred and prey have soulcatchers and it floods your log as it tries to decide who catches who
- Removes minds if the client is disconnected for a long time, or if the player ghosts out of the NIF