Adds a fairly simple system that allows adjusting various numbers like max health, incoming damage, outgoing melee damage, etc. The nice part is that changing certain variables this way (like max health) is a lot safer than manually setting the max health var directly.
Changes a lot of short lines of code to point towards a variable's getter or setter helper instead of reading the var directly so the modifiers can work.
Endoarmor, delayed toxin sting, Enfeebling sting, and recursive adrenaline overdose now use the modifier system.
Enfeebling sting now only lasts two minutes, from five minutes, however it now also reduces the victim's melee damage by 25%/50%, and increases the damage they suffer by 10%/35%, for normal and recursive respectively.
Delayed Toxin Sting's effects are now felt all at once instead of over the course of a few minutes.
Controller with deferrals and SCHECKs to be specific. Won't lag while updating the sun, weather, or temperature.
Also moved some vars around. Namely the planet walls are stored on the planet, not in the weather_holder.
Planets now have their own turfs, the controller 'gives' them to the planets each cycle if there are any unallocated turfs in the global lists, to avoid iterating over other planets' turfs if you have more than one, then cuts the lists if you were crazy and some turf added some invalid type. This saves us type-checking in the for() loops later to make them crunch faster. The former operation should only happen once at the start of the game (and maybe very rarely when turfs are added/removed from a map during the game).
With regards to the temperature updates, rebuilding the zone entirely is an intensive operation. Instead we can use this new cheaty proc to do it from over here. ZAS code outside ZAS oh noooo. Well, the option is to snowflake this case into ZAS which is maybe worse?
Only downside to all this is that if you manually set weather and time it might take between 1-60 seconds for the controller to get around to checking if you wanted to update it. That's not that big a deal. If you really want you can now debug that controller and call doWork on it.
* Upgrades the automatic pipe layer to modernize its code a bit towards latest standards and fixing various bugs.
* Make it constructable so it can acutally be used by someone!
* They are simple non-hostile simple_animal's that wander around a bit.
* Wandering code is overriden so they will not leave the water. And they will take damage as an unsuitable atmosphere if they do.
* Fish sprites improved and animated by Kligor
* Merge two not-really conflicts
Thanks git, that whitespace conflict was super important?
* DME merge
* Added defines for mobs used by simple animals.
* Lost a slime along the way
* Disable debug settings
* HONK!!!
* Remove redundant hostile decls
* Replace loc= with forceMove in old SA code
I guess I should think of the children.
In this event some sort of gas leak occours! A random area on the station is chosen to experience a leak of a randomly chosen gas!
* By default, areas with any people in them are protected, so it won't just kill someone.
* A warning announcement is given shortly before, so there is some warning.
* Dorms, Shuttles, Holodeck and Supermatter are protected.
* At higher severity, adds worse gasses and possibility of high/low temperature.
The idea of updating the wiki list of recipes is daunting, especially getting all the icons and resizing them to look nice on a webpage, so fuuuuuuuuck that.
I made a verb that does it. It dumps upsized (64x64) images of every food icon and a recipes.html file into your cache with a table that contains all the recipes, nicely formatted, in alphabetical order (the -burger and -kebab at the top are because those are [whatever-meat]-burger and [whatever-meat]-kebab).
Then you can just throw them on a website. It will include a recipes.css file if it's in the same dir.
Here's the result on our server:
https://vore-station.net/infodump/recipes.html
Somewhere on the station, a gas canister is faulty and ruptures, releasing its contents (no explosion).
* Added as an event_manger event. This version is nice on low severity and picks a canister with nobody nearby.
* Also added as a gamemaster event.
* Added helper method to check area occupancy.
Links many map-specific details such as the station name, z-level information, and allowed jobs from global vars to map datum vars, which should help us maintain multiple maps at once in the future, which will be needed for the future Southern Cross.
Note that a config change will be needed to change GENERATE_ASTEROID to GENERATE_MAP, otherwise no changes should be required to continue normal map usage.
To change to a different map, it's suggested to tick the file that ticks all the other needed files, which for the Northern Star is called northern_star.dm.
* Makes the paper shredder constructable and deconstructable.
* Switches to some new sprites which are animated!
* Machine now requires power, icons respond to power on/off etc.