## About The Pull Request
This PR:
- Converts all of the blood types into their own datums, which can be
set up to have their own colors, descriptions, and other fun unique
properties. For example, the clown blood that is constantly randomizing
itself.
- Converts all the blood decals into greyscale, which in turn eliminates
the need for separate xeno sprites. They both use the same ones now.
- Audit of blood splatters/gibs/bodyparts/organs to make sure that they
are getting the correct forensic data applied to them.
- For the admins: Adds a clown blood smite.
My primary goal with was to make the appearance of the new sprites look
almost indistinguishable to the original ones.
I consider this a "first pass", as in there are still some further
refactors I would like to do on the backend side, but am satisfied with
it enough to push it forward as a first step towards a better blood
system! I didn't want to do too much at once because of A) fatigue and
B) easier to test things to make sure I'm not breaking something
important this way.
This has been test-merged on Nova for over a week now and has been going
great, so I finally got around to upstreaming the bones to TG. Although
I did test it a bit you may want to TM it just in case I missed some
things when copying it over.
## About The Pull Request
Fixes a roundstart-exclusive runtime in the cyborg dogtag quirk, makes
sure that spawning with a fishing toolbox (from a settler quirk) doesn't
runtime and implements a unit test which ensures that all quirks set up
correctly for ***both*** roundstart and latejoin mobs. The cyborg tag
issue is just too stupid and may float up again, considering how easy it
is to accidentally fetch owner's client instead of using the passed one.
## Changelog
🆑
fix: Cyborg pre-screening dogtags should once again be given to crew
with the quirk of the same name.
/🆑
## About The Pull Request
- Dehardcode blood deficiency
- Deletes "update mail goodies"
- Deletes "updates quirk mail goodies"
- Both of these were only used to update blood deficiency mail goods, we
can just do that with a signal.
- Deletes hardcoded "get_quirk / lose_blood" calls
- While you can `get_quirk`, much like you can `GetComponent` generally
speaking it's much cleaner to do it via signals.
- In this case I added a signal to `handle_blood`.
- And by adding this signal we can do similar dehardcoding for
jellypeople, removing their `spec_life` and running it off the signal.
## Why It's Good For The Game
Ye olde "consistency and cleaner code". And probably a tiny but of
optimization to be yeeked out of it since we don't need to iterate over
a mob's quirk list every life tick, nor every time we change specieses.
But that's probably not even a drop in the bucket so not even worth
mentioning.
Blood defi still happens in sync with Life (as noted by the comment).
## Changelog
🆑 Melbert
refactor: Blood deficiency and slimepeople now handle blood a tiny bit
differently, report any oddities.
refactor: Blood deficiency now handles its mail goods a tiny bit
different, report any oddities.
/🆑
## About The Pull Request
Adds medical record descriptions to the heterochromatic, signer, spacer,
and voracious quirks.
## Why It's Good For The Game
More flavor text! And also means they show up on medical records or when
using medical HUDs to view quirks.
Right now if you view someone with these quirks the line will be blank
in the medical records, so it makes that less confusing.
## Changelog
🆑
add: Heterochromatic, Signer, Spacer, and Voracious quirks are now
properly accounted for in medical records.
/🆑
---------
Co-authored-by: san7890 <the@san7890.com>
About The Pull Request
Separated compiling the integration tests and running them as separate steps for organization purposes.
Added a TEST_ASSERT_NULL(value, reason) and TEST_ASSERT_NOTNULL(value, reason) because those are conceptually simple tests.
Makes the PASS and FAIL prefixes in the integration test log be green and red for better readability.
Failure reasons now display the file and line number.
In order to achieve this, direct calls to Fail() are now wrapped in a macro, TEST_FAIL(), as Fail() itself needs preprocessor stuff passed to it.
In the midst of updating it, I noticed multiple cases of tests directly calling Fail() and returning when they should have used a better macro, so those were updated. There was at least one case where it appeared that the code assumed that the test ended at Fail(), but made no attempt to do so, such as with the RCD test.
Feel free to double check all of the changed unit tests in case I made a functional behavior change, but they currently pass.
To take advantage of the previous change, failures are now marked as annotations. Note that outside of github, this creates an ugly-looking line but the primary environment is as a github action.
Examples with intentionally botched unit test:
image
image
image
Why It's Good For The Game
Makes inspecting failed unit tests significantly easier.
Changelog
N/A
About The Pull Request
Rewrites the entire preferences menu in tgui. Rewrites the entire backend to be built upon datumized preferences, rather than constant additions to the preferences base datum.
Splits game preferences into its own window.
Antagonists are now split into their individual rulesets. You can now be a roundstart heretic without signing up for latejoin heretic, as an example.
This iteration matches parity, and provides very little new functionality, but adding anything new will be much easier.
Fixes#60823Fixes#28907Fixes#44887Fixes#59912Fixes#58458Fixes#59181
Major TODOs
Quirk icons, from @Fikou (with some slight adjustments from me)
Lore text, from @EOBGames (4/6, need moths and then ethereal lore from @AMonkeyThatCodes)
Heavy documentation on how one would add new preferences, species, jobs, etc
A lot of specialized testing so that people's real data don't get corrupted
Changelog
cl Mothblocks, Floyd on lots of the design
refactor: The preferences menu has been completely rewritten in tgui.
refactor: The "Stop Sounds" verb has been moved to OOC.
/cl