* Message piece combiner returns a list
* Emote formatter returns a list
* Port Runechat
* Various onamonapoea
* Suggested changes, small opts
* Fix chat message on different size mobs
* Couple more runefixes
* Enable encoding chat emphasis in runechat
* Remove extra asterisks from rune audible messages
* Fix runedefines
* Adds linter defines to repo.
* Uncomments linter defines already in the code.
* Resolves unreachable code linter errors.
* Nukes decade+ old syndie specops code except for computer since that's mapped in?????
* Resolves procs has no parent linter error.
* Proc signature fixes
* Bad comments
* "In" danger
* Type safety
* Implied nested list abuse
* Top level ..() usage
* Sleepy coder typos
* Invalid kwargs calls
* Pointless returns
* Linter hacks (see full message)
Byond doesn't care and it has no effect but linter doesn't like var/proc
for holding references to procs, despite that it's valid byond code.
Also, the linter seems to have serious issues figuring out relative
proc names. This commit is a sort of take-it-or-leave-it thing. It's not
required, it just cuts down on warnings, but this code is valid DM code.
* WHATEVER THIS IS
* Trick dreamchecker linter into ignoring this file's sins in it's weird use of vars
* Fix list decoration syntax - Its a list, not list of lists
- To declare that a var is a list you can `var/list/blah = list()` syntax or the `var/blah[0]` syntax. Both do exactly the same thing. But if you do `var/list/blah[0]` that is just like doing `var/list/list/blah = list()`
* Hopefully stops the ai holder subtype folder from going quantum and sometimes changes capitalization over time, and incidentally causing 20+ linter errors.
* Fixes unwrapped negated object in list linter error.
* Resolves colon-like list accessing linter error.
* Turns linter on in linter config.
* Fixes closet indentation properly and cleans up suit storage unit switch.
Co-authored-by: Aronai Sieyes <arokha@arokha.com>
Co-authored-by: Leshana <Leshana@users.noreply.github.com>
* Sideports a couple of init unit tests from Neb.
* Trying to unfuck initialize logic.
* Removing del()s.
* Adjusting return values to Initialize().
* Moving some dangerous object logic from obj onto the two types that use it.
* Rolling back some init changes and commenting out initialized atom unit test.
* this comment formatting is a minor war crime
* Removed sleep() from signaler circuit Initialize().
* Additional Init fixes post-rebase.
* Uncomments subsystem test since that's passing.
* Baseline work for Department Goals. Implements round-end stats, based in 3 categories of roughly-more-interesting to less interesting.
* Active Goal Separation.
* Map.
* Actually does the second half of this in this PR instead of a different one.
- Set initialized = FALSE on unsimulated turfs that need to intialize.
- Most of area/New() to initialize
- Faster lookup of self-init on atoms
- Split air alarm and fire alarm files, move new to initialize
- Tweak decals and opacity
Co-authored-by: Aronai Sieyes <arokha@arokha.com>
Co-authored-by: Leshana <Leshana@users.noreply.github.com>
- Design based on BayStation: Refactor turbolift.do_move() to remove all sleep()'s, instead have wait_state to keep track of where it was.
- Add in process() proc to do appropriate action based on wait_state.
- Register/deregister with SSprocessing instead of turbolift_controller
* Yes, all of them.
* Also did a few corrections to redundant New() and broken Destroy() along the way
* Renamed the turf_initializer.initialize() proc to InitializeTurf to avoid confusion.
* Subsumed /area/proc/initialize into /atom/proc/initialize() - Made /area's LateInitialize to get same behavior as before.
If one floor is 'taller' than the others, or otherwise takes longer to traverse, you can set delay_time on the area to have it wait a different time there. Or, wait even less time, though less than 1 second isn't possible since the controller only fires every second.
Port of https://github.com/Baystation12/Baystation12/pull/16941
* Turbolift auto-mapping code assumed that all lift's first floor would be on z=1. Fixed so it picks the first floor instead of the zth floor from the floor list.