Synthetic Blood Substitute (#19381)

![image](https://github.com/Aurorastation/Aurora.3/assets/107256943/56844752-b8d9-402c-87aa-735481d0a3ef)

![image](https://github.com/Aurorastation/Aurora.3/assets/107256943/a961b871-0dc4-40da-827a-27041a823028)


changes:
  - rscadd: "Adds Synthetic Blood Substitute."

other info:
- ~~shell IPCs have white blood (other IPCs keep their black oil
blood)~~ (removed/reverted on request, shells keep black oil blood, no
change here with this PR)
- organics can optionally pick the SBS blood type to get white blood
- this is intended mainly for heavily augmented organics, and you have
to be have at least 8 augmented organs or limbs
- white blood has no mechanical differences (positive or negative)
represented in game, as it is supposed to still just be blood (but with
potentially better characteristics)
- white blood is incompatible with red blood, both ways, including organ
transplantations

---------

Co-authored-by: DreamySkrell <>
This commit is contained in:
DreamySkrell
2024-06-20 10:18:39 +00:00
committed by GitHub
co-authored by DreamySkrell <>
parent 71ef6c3bcd
commit 65b9a5f516
21 changed files with 103 additions and 31 deletions
@@ -1,4 +1,8 @@
var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-")
var/global/list/valid_bloodtypes = list(
"A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-",
"SBS" // Synthetic Blood Substitute. Intended for heavily augmented characters.
// Sanitized below, removed if character is not augmented enough.
)
/datum/preferences
var/equip_preview_mob = EQUIP_PREVIEW_ALL
@@ -217,6 +221,11 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
if(!pref.bgstate || !(pref.bgstate in list_values(pref.bgstate_options)))
pref.bgstate = "plain_black"
// Synthetic Blood Substitute checks.
if((pref.b_type == "SBS") && ((length(pref.organ_data) + length(pref.rlimb_data)) < 8))
to_chat(pref.client, SPAN_WARNING("Synthetic Blood Substitute (SBS) is intended for heavily augmented characters. To pick it, you must have at least eight augmented limbs or organs. Resetting blood type..."))
pref.b_type = initial(pref.b_type)
/datum/category_item/player_setup_item/general/body/content(var/mob/user)
var/list/out = list()