Painstakingly goes through the 'in world' commit again to use the proper lists for all objects that are autoremoved from the machines list.
Also removes an extremely laggy proc called get_apc() which called locate throughout all related areas until it found an apc, links the apc to the area as only one is allowed per area.
Fixes a runtime if someone called shake screen without specifying duration and thus being passed as null
Fixes a zlevel offset runtime error in pda maps
Fixes a runtime where the all species list wasn't defined yet when calling random make name for a new client
Fixes another runtime with dismantlewall stemming from the fact byond turfs are never deleted merely changed to another type, so a proc defined on a lower level being called on the new turf doesn't exist
Fix metal detector runtime as suit storage wasn't being checked under carbon lifeforms but before an ishuman check
Avoids energy guns power supply having 0 max charge and adds an assert to catch them when they do
Change stat from if(ticklag < .5), sleep(1) to a simple sleep(4).
I think sleep(1) would only delay the update if the ticklag was less than .1, however byond-wise sleep(4) is assured to delay any stat() update that is attempted before .4 seconds are up.
It's currently ridiculously easy for Xenomorphs to shock themselves to
death on station equipment, given that they get the same damage as
humans do. I have halved it given that the alien's only way to entry
into most places, outside of ventcrawling, is destroying shit
Also APCs do double electrocution damage due to them having two
electrify wires, this balances that (otherwise slashing an APC on a
station with normal power output is an instant crit)
New crit thresholds for aliens are 1 million W for the APC and 8 million
W in general, both with 100 % electrify ratio
Changelog included
For some reasons Voxes are tagged as being able to wear Engineering
hardsuits. For one they already have pressure suits, and then those
suits don't fit (as made obvious by the fact the Chief Engineer hardsuit
is excluded to Voxes, and it is a recolor by all means)
Changelog included
The old system would go from have x1 move delay to like x5 on a ticklag that is only half. Which is pretty shit and forces you to disable tick compensation if you want to be able to move at a reasonable speed on low ticklags.
fixes#3196.
- Fixes welder fuel being spread/created on space turfs.
- Added missing `src = null` statements in some reagent reactions.
- Removed duplicate virus food recipe and fixed the current one.
The new recipe apparently was from some virology rework and
conflicted with the old one. The current recipe has been tweaked
to match the wiki: 5u milk + 5u water gives 15u virus food.
- Moved transfer/splash code to the reagent_container/transfer() proc.
No more copypasted code everywhere, hopefully.
- Fixed some (pills, holy water bottle, drink glasses, shakers...)
`reagent_containers` being able to transfer contents at a distance.
- Added a `return 1` in some `attackby()` to avoid having them call
`afterattack()`. Reduces amount of snowflake code and kills ninjacode
in `reagent_containers`.
- Added helper procs to log game events/reagent transfers.
- Removed copypasted code from spray/chemsprayer and syringe code
and refactored it a bit.
- Fixed trans_to() not handling blood transfers correctly.
- Less painful copypasted logging code.
- Why am I even alive
- Modernized things, removed more snowflake.
- Welder fuel and flamethrower decals are now pooled.
- `transfer_sub` now typechecks properly
- `splash_sub` now handles correctly and gives a message when
splashing something with `amount = 0` or without reagents
- Added `is_empty()` proc to `/datum/reagents`
- Added `animate_movement` to the pooler's ignore list to fix
a bug where pooled objects would get that var reset to 0
instead of their overriden value for some reason.
Resolves#4319.
Adds a zlevel drift for all zlevels at roundstart. Hopefully it doesn't go list index out of bounds or something. Also stopped a method for determining zlevel drift using only the teleport computer and inputting 6 values to bisect the possible offsets until you find the specific one.
This acts as a broad fix to helmet lights. Includes a few standardized
procs (update_brightness notably, and procs like update_icon(), New()
and examine() were dropped in)
- Scrapped update_brightness from the now defunct flashlight PR. Has
already been tested and works, and still works here. Should work
flawlessly while clearing up the code, and can be extended in the future
- Added compatibility hook for disabling helmet lights after setup and
stopped the helmet light action button from showing if there is no
helmet light (addressing the issue)
- Fixed the gold helmet's _color being incorrect, leading to odd
behaviour when its icon is updated
- Changed Syndie RIG Helmet's action button to "Toggle Helmet Camera" to
reflect the difference. Still accounted as a light for all that matters
- Added an extremely simple examine() proc
Changelog included