Adds deconstruct structure helper
Moves chair sprites from objects.dmi to chairs.dmi
Fixes check shields passing proper flags on unarmed attacks
Makes stools and chairs able to be picked up
Beds (and chairs) now have buildstacktype and buildstackamount vars to handle how many sheets of what they should drop on deconstruction.
They also have a foldabletype var to handle folding into item (currently only used by roller beds) so that people can add foldable chairs in the future.
Fixes swivel chairs not dropping the correct amount of metal sheets.
be_special and antag defines are no longer limited to 16 values (1 - 32768) by being changed from a bitfield to a list, an appropriate block of code exists to automatically update bitfield versions to the new list format. the list format allows us to have (functionally) infinite antag types.
The current code for runes is god-awful. Like, seriously terrible. This PR aims to fix that. Rather than having every rune effect defined in a single attack_hand proc, this PR will separate the runes into subtypes, which supports for more modular runes as well as cleans up the code.
It also separates invocation into a two different procs. The first of these will determine if the rune can be invoked; if that passes, the second will cause the rune's effects. There is also a third proc that will cause effects if the rune fails to invoke.
Research words have been removed, and all runes are now available from the start of the round. This is highly subject to change once some feedback is in from actual cult rounds.
Miscellaneous tweaks:
Blood boil runes now explode when used
Convert runes can now work solo, but take time
Armor runes now only provide the basic armor set
Tomes now do a static 15 burn damage and play a sound
If the Escape objective is rolled, the amount of people that must escape will scale with the round population to a factor of 5 (i.e. 50 players = 10 cultists)
Cardboard boxes are closets that:
*Can only carry a single person
*Are easy to destroy
*Are flammable
*Can't be welded shut
They can also can be used for more "tactical" purposes, at the same speed as walking.
Takes the opportunity to remove some object unfriendly coding.
If this is accepted they'll be a pull a little later to replace a few closets on the maps with boxes (or maybe code to have generic closets on the map to occasionally spawn as boxes instead).
When a stock moves onto the same tile as another stack, they merge together. Unless it was being thrown, in which case no, they don't merge. Unless the stack was the original target to begin with, then yes, they do merge.
Just a convenience feature. The one downside is that crowbarring up a floor tile won't merge with other tiles on the floor, but if someone makes that event call Move() like it's supposed to, it should work fine. That would just be out of scope for this PR.