mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
Minor rewrite to slimeperson jelly blood (#22446)
This commit is contained in:
@@ -192,6 +192,8 @@
|
||||
#define HAIRCOLOR 26
|
||||
#define FACEHAIRCOLOR 27
|
||||
#define MUTCOLORS_SECONDARY 28
|
||||
/// doesn't care about their blood level through normal means, but still has it
|
||||
#define STABLEBLOOD 29
|
||||
|
||||
//organ slots
|
||||
#define ORGAN_SLOT_BRAIN "brain"
|
||||
|
||||
@@ -79,6 +79,11 @@
|
||||
color = "#cbee63" //slightly more yellowy than regular liquid electricity because of the grey scale image used
|
||||
compatible_types = list(/datum/blood_type/electricity)
|
||||
|
||||
/datum/blood_type/jelly
|
||||
name = "J"
|
||||
color = COLOR_DARK_MODERATE_LIME_GREEN
|
||||
compatible_types = list(/datum/blood_type/jelly)
|
||||
|
||||
////////////////////////////////////////////////////////////////
|
||||
//-----------------Wonky simplemob(?) bloodtypes--------------//
|
||||
////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -325,7 +325,7 @@
|
||||
temp -= ORGAN_SLOT_LIVER
|
||||
if(HAS_TRAIT_FROM(H, TRAIT_NOBREATH, SPECIES_TRAIT))
|
||||
temp -= ORGAN_SLOT_LUNGS
|
||||
if(NOBLOOD in H.dna?.species.species_traits)
|
||||
if((NOBLOOD in H.dna?.species.species_traits) || (STABLEBLOOD in H.dna?.species.species_traits))
|
||||
temp -= ORGAN_SLOT_HEART
|
||||
var/organ_type = organ_list[pick(temp)]
|
||||
var/obj/item/organ/prosthetic = new organ_type(quirk_holder)
|
||||
@@ -350,8 +350,9 @@
|
||||
temp -= ORGAN_SLOT_LIVER
|
||||
if(TRAIT_NOBREATH in species.inherent_traits)
|
||||
temp -= ORGAN_SLOT_LUNGS
|
||||
if(NOBLOOD in species.species_traits)
|
||||
if((NOBLOOD in species.species_traits) || (STABLEBLOOD in species.species_traits))
|
||||
temp -= ORGAN_SLOT_HEART
|
||||
qdel(species)
|
||||
if(temp.len <= 0)
|
||||
return "You have no organs to replace!"
|
||||
|
||||
|
||||
@@ -421,7 +421,9 @@
|
||||
/datum/quirk/cyberorgan/heart/check_quirk(datum/preferences/prefs)
|
||||
var/datum/species/species_type = prefs.read_preference(/datum/preference/choiced/species)
|
||||
var/datum/species/species = new species_type
|
||||
if(NOBLOOD in species.species_traits) // species with NOBLOOD don't have a heart
|
||||
var/disallowed_trait = ((NOBLOOD in species.species_traits) || (STABLEBLOOD in species.species_traits)) // species with NOBLOOD don't have a heart
|
||||
qdel(species)
|
||||
if(disallowed_trait)
|
||||
return "You don't have a heart!"
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
// Takes care blood loss and regeneration
|
||||
/mob/living/carbon/human/handle_blood()
|
||||
|
||||
if(NOBLOOD in dna.species.species_traits || bleedsuppress || (HAS_TRAIT(src, TRAIT_FAKEDEATH)))
|
||||
if((NOBLOOD in dna.species.species_traits) || bleedsuppress || (HAS_TRAIT(src, TRAIT_FAKEDEATH)) || (STABLEBLOOD in dna.species.species_traits))
|
||||
return
|
||||
|
||||
if(mind && IS_BLOODSUCKER(src)) // Prevents Bloodsuckers from naturally regenerating Blood - Even while on masquerade
|
||||
|
||||
@@ -6,10 +6,11 @@
|
||||
default_color = "00FF90"
|
||||
say_mod = "chirps"
|
||||
bubble_icon = BUBBLE_SLIME
|
||||
species_traits = list(MUTCOLORS, EYECOLOR, NOBLOOD, HAIR)
|
||||
species_traits = list(MUTCOLORS, EYECOLOR, STABLEBLOOD, HAIR, HAS_FLESH)
|
||||
inherent_traits = list(TRAIT_TOXINLOVER)
|
||||
meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/slime
|
||||
exotic_blood = /datum/reagent/toxin/slimejelly
|
||||
exotic_bloodtype = "J" //this isn't used for anything other than bloodsplatter colours
|
||||
mutanttongue = /obj/item/organ/tongue/slime
|
||||
mutantlungs = /obj/item/organ/lungs/slime
|
||||
damage_overlay_type = ""
|
||||
@@ -199,7 +200,7 @@
|
||||
plural_form = "Slimepeople"
|
||||
id = SPECIES_SLIMEPERSON
|
||||
default_color = "00FFFF"
|
||||
species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,NOBLOOD)
|
||||
species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,STABLEBLOOD, HAS_FLESH)
|
||||
say_mod = "says"
|
||||
hair_color = "mutcolor"
|
||||
hair_alpha = 150
|
||||
@@ -213,7 +214,7 @@
|
||||
var/list/mob/living/carbon/bodies
|
||||
|
||||
/datum/species/jelly/slime/on_species_loss(mob/living/carbon/C)
|
||||
bodies -= C // This means that the other bodies maintain a link
|
||||
LAZYREMOVE(bodies, C)// This means that the other bodies maintain a link
|
||||
// so if someone mindswapped into them, they'd still be shared.
|
||||
bodies = null
|
||||
C.blood_volume = min(C.blood_volume, BLOOD_VOLUME_NORMAL(C))
|
||||
@@ -222,10 +223,7 @@
|
||||
/datum/species/jelly/slime/on_species_gain(mob/living/carbon/C, datum/species/old_species)
|
||||
..()
|
||||
if(ishuman(C))
|
||||
if(!bodies || !bodies.len)
|
||||
bodies = list(C)
|
||||
else
|
||||
bodies |= C
|
||||
LAZYADD(bodies, C)
|
||||
|
||||
|
||||
//If you're cloned you get your body pool back
|
||||
@@ -298,7 +296,7 @@
|
||||
H.notransform = 0
|
||||
|
||||
var/datum/species/jelly/slime/origin_datum = H.dna.species
|
||||
origin_datum.bodies |= spare
|
||||
LAZYADD(origin_datum.bodies, spare)
|
||||
|
||||
var/datum/species/jelly/slime/spare_datum = spare.dna.species
|
||||
spare_datum.bodies = origin_datum.bodies
|
||||
@@ -423,11 +421,11 @@
|
||||
var/datum/species/jelly/slime/SS = H.dna.species
|
||||
|
||||
if(QDELETED(dupe)) //Is there a body?
|
||||
SS.bodies -= dupe
|
||||
LAZYREMOVE(SS.bodies, dupe)
|
||||
return FALSE
|
||||
|
||||
if(!isslimeperson(dupe)) //Is it a slimeperson?
|
||||
SS.bodies -= dupe
|
||||
LAZYREMOVE(SS.bodies, dupe)
|
||||
return FALSE
|
||||
|
||||
if(H.stat != CONSCIOUS) //Are we alive and awake?
|
||||
@@ -436,10 +434,10 @@
|
||||
if(dupe.stat != CONSCIOUS) //Is it alive and awake?
|
||||
return FALSE
|
||||
|
||||
if(dupe.mind && dupe.mind.active) //Is it unoccupied?
|
||||
if(dupe?.mind?.active) //Is it unoccupied?
|
||||
return FALSE
|
||||
|
||||
if(!(dupe in SS.bodies)) //Do we actually own it?
|
||||
if(!LAZYFIND(SS.bodies, dupe)) //Do we actually own it?
|
||||
return FALSE
|
||||
|
||||
return TRUE
|
||||
|
||||
@@ -549,7 +549,7 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put
|
||||
/mob/living/carbon/proc/needs_heart()
|
||||
if(HAS_TRAIT(src, TRAIT_STABLEHEART))
|
||||
return FALSE
|
||||
if(dna && dna.species && (NOBLOOD in dna.species.species_traits)) //not all carbons have species!
|
||||
if(dna?.species && ((NOBLOOD in dna.species.species_traits) || (STABLEBLOOD in dna.species.species_traits))) //not all carbons have species!
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
|
||||
@@ -128,7 +128,7 @@
|
||||
/datum/reagent/toxin/slimejelly
|
||||
name = "Slime Jelly"
|
||||
description = "A gooey semi-liquid produced from one of the deadliest lifeforms in existence. SO REAL."
|
||||
color = "#801E28" // rgb: 128, 30, 40
|
||||
color = COLOR_DARK_MODERATE_LIME_GREEN // rgb: 128, 30, 40
|
||||
toxpwr = 0
|
||||
taste_description = "slime"
|
||||
taste_mult = 1.3
|
||||
|
||||
@@ -108,7 +108,7 @@
|
||||
failed = TRUE
|
||||
|
||||
/obj/item/organ/heart/get_availability(datum/species/species)
|
||||
return !(NOBLOOD in species.species_traits)
|
||||
return !((NOBLOOD in species.species_traits) || (STABLEBLOOD in species.species_traits))
|
||||
|
||||
/obj/item/organ/heart/cursed
|
||||
name = "cursed heart"
|
||||
|
||||
@@ -20,6 +20,6 @@
|
||||
race = /datum/species/vox
|
||||
|
||||
/mob/living/carbon/human/get_blood_state()
|
||||
if(NOBLOOD in dna.species.species_traits) //Can't have blood problems if your species doesn't have any blood, innit?
|
||||
if((NOBLOOD in dna.species.species_traits) || (STABLEBLOOD in dna.species.species_traits)) //Can't have blood problems if your species doesn't have any blood, innit?
|
||||
return BLOOD_SAFE
|
||||
. = ..()
|
||||
|
||||
Reference in New Issue
Block a user