mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-27 10:02:12 +00:00
## About The Pull Request This PR adds reinforced plating and a corresponding baseturf_helper, plating that cannot be deconstructed with the RCD and requires a few steps to degrade to regular plating. The plating is designed to serve the same purpose as R-Walls but for verticality. It shares its heat resistance with reinforced floor and hull, and in texting it can endure a single C4 blast but not X4 assuming the floor placed on it is already removed. It is currently is unused on the existing maps due to it being poor practice to place secure locations that would justify reinforced floors on the lower Z levels, however I have spoken to people working on maps actively at the moment and they have express interest in being able to use these floors. The plating can be constructed by using 2 sheets of plasteel on standard plating and is disassembled using wrench > welding tool > crowbar. The first stage of deconstruction causes the bolts holding the reinforcements in place to fall to the Z level below playing a sound and leaving a cleanable decal, adding a audio-visual alert that someone is about to come through your ceiling. UPDATE: I've added a ceiling variant of the baseturf editor, this can be placed on a lower Z level where it will modify the baseturfs of the Z level above within the original area. This will make it significantly easier to ensure that you only cover tiles you want reinforced when protecting lower Z levels. If anyone has any recommendations for sounds please tell me and I might swap them out but I think the two I've chosen work well. Additionally if anyone is able to make a better sprite for the screws or plates then that'd be a great help but I think the current ones work well enough. ## Why It's Good For The Game Currently Multi-Z maps have a very tight restriction on where secure areas can be put, only allowing for them to be placed on the top Z level, under more secure Z levels or in exterior satellites and coated with hulls. This is due to standard plating and/or reinforced floors are very easy to get through without warning if you bring the right tools. This PR effectively adds R-Walls but for floors allowing mappers to properly protect lower Z levels from vertical infiltration methods. This also adds a visual and audible indictor to the deconstruction of reinforced floor tiles to bring them more in line with the visuals of deconstructing a wall. ## Changelog 🆑 add: You can now reinforce plating to protect your department from the troublemakers upstairs. Station builders might find these useful to put the stations most secure locations on the lower floors. imageadd: added sprites for reinforced plating code: RCD proofing has been variablized and can now be applied to any floor type instead of just reinforced floors. /🆑
The code in this module originally evolved from dmm_suite and has since been specialized for SS13 and otherwise tweaked to fit /tg/station's needs. dmm_suite version 1.0 Released January 30th, 2011. NOTE: Map saving functionality removed defines the object /dmm_suite - Provides the proc load_map() - Loads the specified map file onto the specified z-level. - provides the proc write_map() - Returns a text string of the map in dmm format ready for output to a file. - provides the proc save_map() - Returns a .dmm file if map is saved - Returns FALSE if map fails to save The dmm_suite provides saving and loading of map files in BYOND's native DMM map format. It approximates the map saving and loading processes of the Dream Maker and Dream Seeker programs so as to allow editing, saving, and loading of maps at runtime. ------------------------ To save a map at runtime, create an instance of /dmm_suite, and then call write_map(), which accepts three arguments: - A turf representing one corner of a three dimensional grid (Required). - Another turf representing the other corner of the same grid (Required). - Any, or a combination, of several bit flags (Optional, see documentation). The order in which the turfs are supplied does not matter, the /dmm_writer will determine the grid containing both, in much the same way as DM's block() function. write_map() will then return a string representing the saved map in dmm format; this string can then be saved to a file, or used for any other purose. ------------------------ To load a map at runtime, create an instance of /dmm_suite, and then call load_map(), which accepts two arguments: - A .dmm file to load (Required). - A number representing the z-level on which to start loading the map (Optional). The /dmm_suite will load the map file starting on the specified z-level. If no z-level was specified, world.maxz will be increased so as to fit the map. Note that if you wish to load a map onto a z-level that already has objects on it, you will have to handle the removal of those objects. Otherwise the new map will simply load the new objects on top of the old ones. Also note that all type paths specified in the .dmm file must exist in the world's code, and that the /dmm_reader trusts that files to be loaded are in fact valid .dmm files. Errors in the .dmm format will cause runtime errors.