[MIRROR] Lizard spines no longer "float" on characters without lizard tails. (#80456) #1668
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Mirrored on Nova: NovaSector/NovaSector#574
ORIGINAL PR: tgstation/tgstation#80456
Fixes #69658.
As the title says, this PR resolves the issue where lizard spines always have a "tail" portion even if there isn't actually a tail for them to be on. This has been done via two steps:
This image displays the results of this change. From left to right, it shows:
Which tails will successfully render tail spines is now handled by a "spine_key" define in the tail sprite datum. Currently, such a key only exists for the standard lizard tail shape, but should anyone wish to sprite spines for other sorts of tails, it is now a simple matter to do so.
Relatedly, handling for tail spines has been moved to the base tail object, rather than lizard tails in particular. This functionally changes nothing, but may make life easier for downstreams that want to add spines to tails that are not explicitly lizard tails.
Finally, this PR also fixes a bug introduced in #79687, which made bodypart overlays not update at the right time when external organs are inserted or removed. Specifically, bodyparts were redrawn before the overlays were added or removed, meaning they would not update until something else forced a redraw. This is no longer the case.
"Floating" lizard spines are incredibly ugly visually, and a major obstacle to adding lizard tails that are not of the "standard" shape. In addition to cases where a lizard loses their tail mid-round, this also allows tailless or short-tailed lizards to actually use one of lizards' main customization options without looking like a total buffoon.
The extensibility, as stated before, may be nice for downstreams that wish to place spines on more tails, and may even be useful here if someone wishes to sprite spines for the "short" tail style.
Also makes the code nicer, as the tail/spine wagging interaction previously relied on a very ugly two-way link between the two organs that has been rendered unnecessary by the tail handling everything.
Finally, it's good to fix a bug that completely destroyed the usability of feature manipulation surgery.
🆑 lizardqueenlexi
fix: Feature manipulation surgery will now properly update the patient's appearance.
refactor: The tail portion of lizard spines will no longer draw on people who do not have a tail.
/:cl: