Lighting SS no longer cares about the return of check(); the light datums are responsible for deleting themselves.
Cap on lighting effects from turfs is now 8 because they're static and shouldn't be flashing lights too often. This means starlight actually works now instead of being capped at 1 measly turf.
Lighting related ChangeTurf() code is in the lighting module. Changed it up to be faster on lighting controller init and not leave dangling lights when a turf becomes or stops being opaque or when it turns into space. This diff log is gonna be useless sadly but take my word for it, it all works.
Lighting related Moved() code is also in the lighting module. Opaque objects will now update nearby lights when they move (mechs).
Opaque objects other than the light datum's owner on the same tile as its owner will block the effect of the light. In other words a mech standing on the same square as a light bulb will block all the light of that bulb.
Changed "cheap_hypoteneuse()" with an even cheaper version; actually calculating the hypoteneuse! I can prove it's cheaper if needed.
Removed move_contents_to() because it's unused and trying to use it would cause major bugs with lights and other shit and I have no interest in supporting that, so let's not even tempt people.
Uses actual objects on each non-space, dynamically lit turf. Light levels are switched back and forth via animate() and the object's alpha. Supporting colors shouldn't be too hard. Some hacky efficiency improvements means it isn't that much more expensive than current (I think, needs testing). Most of the lighting ss's cost is in checking all the lights and doing big loops, not anything actually in the loops themselves.
Start PDA flashlights on. This was to speed up testing but frankly I think it's a good change in general.
Added a Moved() proc. Called after a successful move.
In the future I hope to move off the luminosity var entirely but that was too slow in testing for me. That's what all that "for(area in sortedAreas) area.luminosity = 1" stuff in the lighting ss is, tests on removing luminosity outright.
Holidays are now actual datums with procs and vars and everything.
Holidays run a proc called celebrate() when it's time to celebrate them. Currently none of them do anything but that should change, wink wink.
Holidays can now run for more than a day. The important ones, april fools, christmas, halloween, new years, and easter, all last at least a week. The idea is so people can celebrate christmas in game without having to, you know, actually play on fucking christmas. And also to put a time limit on how long stuff like the annoying spookoween closet skeletons will stick around so it doesn't overstay its welcome and become annoying as shit like last year.
The event SS now allows more than 1 holiday to run at a time. This matters for new years + christmas, easter + april fools, easter + 4/20, and any holiday that can happen on friday the 13th. The events get stored in a list that's only initialized if there's an active holiday so testing for potential holidays is still pretty easy.
Added more easter dates so we won't have to add more until 2040. The current batch run out in 2017.
Fixes waffle trash being named "waffles".
Replacing some stat/weakened/stunned checks with incapacitated()
Fixes meat cutlets and steak not including meat type in their name (e.g. raw corgi meat cutlet)
Harvesting meat from simple animals now takes time, has a sound, and can be done with any sharp item.
- converted the microwave recipes to tablecraft recipes
- Added customizable food (thanks iamgoofball)
- added food ingredients (from baystation)
- changing food recipes a bit (replacing stuff with the new food ingredients)
- repurpose the microwave to actually cook certain food items.
- bowl is no longer trash but a reagent_containers/glass that is used in salad/soup recipes
- Changed the hunger system a bit, sugar becomes a normal reagent again. Adding a junkiness var to foods to drain mob satiety.
- milk carton is now a condiment bottle
- slight buff to vitamin
There are three "levels" of popcaps, and you can use them in any assortment you like:
The "soft" cap produces a message on join, and takes no action.
The "hard" cap disallows joining whilst too many other people are alive and playing in game, but allows observing.
The "extreme" cap prevents people from joining the server at all while the cap is exceeded. It won't kick out people who failed to qualify during roundstart, but if they leave they won't be able to get back in.
In each case a customizable message config option has been given. Admins are also immune to most population caps (they still are hit by the ones in job shuffling, but can late join as normal afterwards)
* Added stripping everything between http and ://, to prevent links being passed to Byond text window
* Stripped an unsafe inputting for advanced diseases
- Moved the "parsepencode" proc from **newscaster.dm** and **PDA.dm** to
**text.dm** as a global proc.
- Made the "parsepencode" proc accept only a single agrument if desired.
- Removed the font constants from **newscaster.dm**, **PDA.dm**,
**paper.dm**, **paperbin.dm**, and **photocopier.dm**.
- Replaced aforementioned constants with define'ers in **misc.dm**.