Updating and modifying wall code
Created by: dylanstrategie
This is what happens when you go to fix a simple issue and realize that a piece of code is years behind in code quality
Important note : This was NOT tested. I am currently having problems with my local server (can't launch it without it crashing, at all). However, the code compiles, so here's that
Yes indeed, that's a prompt for external testing and scrutiny. This compiles, but I have no idea if it works as intended. That's why I'm put the disclaimer above
General changes :
- Use the do_after() method whenever applicable. I will assume in good faith that do_after() checks all the shit that used to be checked (if the user or the wall was still here, if he's still holding the tool, etc)
- Formatting, span, visible_message, newline, referencing whenever applicable
Reinforced wall changes :
- Reinforced wall construction (and to a degree deconstruction) has been massively changed. It's a bit more lengthy (just like deconstruction, which prevents someone from pulling a barricade that takes a minute to punch through out of their ass) and allows to reconstruct walls in a reasonable manner (no more magic metal sheet fix-it)
- More precisely, a lot of steps were added. In order, you need to insert two rods into the girder (turns into reinforced girder), screwdriver the reinforced girder to secure, add one plasteel sheet (turn into start of a reinforced wall), add two rods, wrench, add another plasteel sheet, add two rods (at this point the reinforced wall is completely finished)
- Deconstruction steps are still the same, description was changed at some points to fit with changes
- Fake reinforced walls were commented out. Yes, I know, feature loss. The logical reasoning behind this is that turning multiple layers of anchored rods, bolts and separate plasteel covers into a movable door would be a nightmare. The code reasoning is that it currently allows to bypass ALL building steps beyond the girder and would be nightmarish to recreate without an entire page or three of snowflake coding
- An examine proc was added to reinforced walls that allows anyone to quickly check what is the (de)construction check of the wall they are looking at. The examine proc for the simple wall was updated to show special descriptions for thermite and wallrot
- Use is_hot() check for thermite ignition. Why can't you light thermite with a lighter or a cigarette ? It's a mystery
- Add scrubbing out the wallrot with soap to reinforced walls (it was left out)
Girder changes :
- As stated above, construction steps were changed for reinforced girders. They are created by slapping rods on normal girders, and finished by screwing them into place and adding a plasteel sheet to turn into a start of a reinforced wall
- As stated above, construction method for fake reinforced walls was commented out, reason is clearly laid out in the attached comments
Wall changes :
- Walls no longer smooth with fake rwalls (they do not smooth with normal rwalls anyways)
- Change dismantle_wall methods to account for reinforced girder changes
- Can no longer drill through diamond walls. Mineral walls in general are extremely gimmicky, but come on. Drilling through a one meter thick wall made out of solid diamond ?
- Try to unsnowflake wallrot, you can now burn wallrot away with anything tagged as is_hot(), notably
- Make wall plating more likely to be ripped off by singularity than reinforced wall plating (very important)
At some point, this was meant to, and hopefully should still fix #3427 (closed)
Civil discussion goes below. If a change looks odd and isn't mentioned at all, go ahead and ask me
Here is a more stylized building guide to the new reinforced wall, the wall and grille building steps, and the deconstruction steps which didn't change were added for reference :