Updating and modifying wall code : Electric Boogaloo
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
This was all tested and should work as intended
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
- Remove dumb welder noise when a wall's (and, even worse, a reinforced wall's) plating is torn off for any reason. This was caused by painfully lazy coding
Reinforced wall changes :
- Reinforced wall construction (and to a degree deconstruction) has been slightly changed. The reinforced girders now need more construction steps than slapping a plasteel sheet on a girder, the construction has two more steps total and forces damaged rwalls to be reconstructed in a reasonable manner (no more magic metal sheet fix-it)
- More precisely, a lot of steps were added for reconstruction (one for every deconstruction step, with a "middle" reconstruction step that allows one to quickly repair heavily damaged walls). 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), and another plasteel sheet to act as a reinforced cover and finish the wall
- Deconstruction steps are still the same, description was changed at some points to fit with changes. Rods are no longer dropped during reconstruction due to decision to not make the construction steps too complicated
- Fake reinforced walls were slightly updated. This is mostly code-wise, although there now is a new fancy reinforced girder displaced sprite instead of the confusing "one-sprite-fits-all" displaced
- 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
- Igniting thermite now takes ten seconds of standing against the wall applying fire to have it catch to mimic real life thermite behavior
- Added hotspot proc (only fires when the thermite is created though to avoid process() shit and since it's currently an effect) to ignite nearby plasma
- 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
- Names now update dynamically and are no longer directly forced from the icon_state. "displaced" is now "displaced girder", "reinforced" is now "reinforced girder", etc
Wall changes :
- Change dismantle_wall methods to account for reinforced girder changes, unfuck it in general as notified in general changes above
- 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