|
6 | 6 | default_color = "00FF90" |
7 | 7 | say_mod = "chirps" |
8 | 8 | bubble_icon = BUBBLE_SLIME |
9 | | - species_traits = list(MUTCOLORS, EYECOLOR, NOBLOOD, HAIR) |
| 9 | + species_traits = list(MUTCOLORS, EYECOLOR, STABLEBLOOD, HAIR, HAS_FLESH) |
10 | 10 | inherent_traits = list(TRAIT_TOXINLOVER) |
11 | 11 | meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/slime |
12 | 12 | exotic_blood = /datum/reagent/toxin/slimejelly |
| 13 | + exotic_bloodtype = "J" //this isn't used for anything other than bloodsplatter colours |
13 | 14 | mutanttongue = /obj/item/organ/tongue/slime |
14 | 15 | mutantlungs = /obj/item/organ/lungs/slime |
15 | 16 | damage_overlay_type = "" |
|
199 | 200 | plural_form = "Slimepeople" |
200 | 201 | id = SPECIES_SLIMEPERSON |
201 | 202 | default_color = "00FFFF" |
202 | | - species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,NOBLOOD) |
| 203 | + species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,STABLEBLOOD, HAS_FLESH) |
203 | 204 | say_mod = "says" |
204 | 205 | hair_color = "mutcolor" |
205 | 206 | hair_alpha = 150 |
|
213 | 214 | var/list/mob/living/carbon/bodies |
214 | 215 |
|
215 | 216 | /datum/species/jelly/slime/on_species_loss(mob/living/carbon/C) |
216 | | - bodies -= C // This means that the other bodies maintain a link |
| 217 | + LAZYREMOVE(bodies, C)// This means that the other bodies maintain a link |
217 | 218 | // so if someone mindswapped into them, they'd still be shared. |
218 | 219 | bodies = null |
219 | 220 | C.blood_volume = min(C.blood_volume, BLOOD_VOLUME_NORMAL(C)) |
|
222 | 223 | /datum/species/jelly/slime/on_species_gain(mob/living/carbon/C, datum/species/old_species) |
223 | 224 | ..() |
224 | 225 | if(ishuman(C)) |
225 | | - if(!bodies || !bodies.len) |
226 | | - bodies = list(C) |
227 | | - else |
228 | | - bodies |= C |
| 226 | + LAZYADD(bodies, C) |
229 | 227 |
|
230 | 228 |
|
231 | 229 | //If you're cloned you get your body pool back |
|
298 | 296 | H.notransform = 0 |
299 | 297 |
|
300 | 298 | var/datum/species/jelly/slime/origin_datum = H.dna.species |
301 | | - origin_datum.bodies |= spare |
| 299 | + LAZYADD(origin_datum.bodies, spare) |
302 | 300 |
|
303 | 301 | var/datum/species/jelly/slime/spare_datum = spare.dna.species |
304 | 302 | spare_datum.bodies = origin_datum.bodies |
|
423 | 421 | var/datum/species/jelly/slime/SS = H.dna.species |
424 | 422 |
|
425 | 423 | if(QDELETED(dupe)) //Is there a body? |
426 | | - SS.bodies -= dupe |
| 424 | + LAZYREMOVE(SS.bodies, dupe) |
427 | 425 | return FALSE |
428 | 426 |
|
429 | 427 | if(!isslimeperson(dupe)) //Is it a slimeperson? |
430 | | - SS.bodies -= dupe |
| 428 | + LAZYREMOVE(SS.bodies, dupe) |
431 | 429 | return FALSE |
432 | 430 |
|
433 | 431 | if(H.stat != CONSCIOUS) //Are we alive and awake? |
|
436 | 434 | if(dupe.stat != CONSCIOUS) //Is it alive and awake? |
437 | 435 | return FALSE |
438 | 436 |
|
439 | | - if(dupe.mind && dupe.mind.active) //Is it unoccupied? |
| 437 | + if(dupe?.mind?.active) //Is it unoccupied? |
440 | 438 | return FALSE |
441 | 439 |
|
442 | | - if(!(dupe in SS.bodies)) //Do we actually own it? |
| 440 | + if(!LAZYFIND(SS.bodies, dupe)) //Do we actually own it? |
443 | 441 | return FALSE |
444 | 442 |
|
445 | 443 | return TRUE |
|
0 commit comments