Synthetics blood and greyscale blood effects

This commit is contained in:
Poojawa
2019-04-06 20:05:10 -05:00
parent 9c4cf5c336
commit 60920fb449
9 changed files with 71 additions and 42 deletions
+6
View File
@@ -177,6 +177,12 @@ GLOBAL_LIST_EMPTY(bloody_footprints_cache)
#define BLOOD_STATE_NOT_BLOODY "no blood whatsoever"
#define BLOOD_AMOUNT_PER_DECAL 20
//Blood Decal Colors
#define BLOOD_COLOR_HUMAN "#C80000"
#define BLOOD_COLOR_XENO "#94a83c"
#define BLOOD_COLOR_OIL "#000000"
#define BLOOD_COLOR_SYNTHETIC "#0b0730"
//suit sensors: sensor_mode defines
#define SENSOR_OFF 0
@@ -1,31 +1,21 @@
// Note: BYOND is object oriented. There is no reason for this to be copy/pasted blood code.
/obj/effect/decal/cleanable/xenoblood
/obj/effect/decal/cleanable/blood/xenoblood
name = "xeno blood"
desc = "It's green and acidic. It looks like... <i>blood?</i>"
icon = 'icons/effects/blood.dmi'
icon_state = "xfloor1"
random_icon_states = list("xfloor1", "xfloor2", "xfloor3", "xfloor4", "xfloor5", "xfloor6", "xfloor7")
bloodiness = BLOOD_AMOUNT_PER_DECAL
blood_state = BLOOD_STATE_XENO
color = BLOOD_COLOR_XENO
/obj/effect/decal/cleanable/xenoblood/Initialize()
/obj/effect/decal/cleanable/blood/xenoblood/Initialize()
. = ..()
add_blood_DNA(list("UNKNOWN DNA" = "X*"))
/obj/effect/decal/cleanable/xenoblood/xsplatter
random_icon_states = list("xgibbl1", "xgibbl2", "xgibbl3", "xgibbl4", "xgibbl5")
/obj/effect/decal/cleanable/xenoblood/xgibs
/obj/effect/decal/cleanable/blood/xenoblood/gibs
name = "xeno gibs"
desc = "Gnarly..."
icon = 'icons/effects/blood.dmi'
icon_state = "xgib1"
layer = LOW_OBJ_LAYER
random_icon_states = list("xgib1", "xgib2", "xgib3", "xgib4", "xgib5", "xgib6")
mergeable_decal = FALSE
/obj/effect/decal/cleanable/xenoblood/xgibs/proc/streak(list/directions)
/obj/effect/decal/cleanable/blood/xenoblood/xgibs/proc/streak(list/directions)
set waitfor = 0
var/direction = pick(directions)
for(var/i = 0, i < pick(1, 200; 2, 150; 3, 50), i++)
@@ -35,37 +25,36 @@
if(!step_to(src, get_step(src, direction), 0))
break
/obj/effect/decal/cleanable/xenoblood/xgibs/ex_act()
/obj/effect/decal/cleanable/blood/xenoblood/xgibs/ex_act()
return
/obj/effect/decal/cleanable/xenoblood/xgibs/up
/obj/effect/decal/cleanable/blood/xenoblood/gibs/up
random_icon_states = list("xgib1", "xgib2", "xgib3", "xgib4", "xgib5", "xgib6","xgibup1","xgibup1","xgibup1")
/obj/effect/decal/cleanable/xenoblood/xgibs/down
/obj/effect/decal/cleanable/blood/xenoblood/gibs/down
random_icon_states = list("xgib1", "xgib2", "xgib3", "xgib4", "xgib5", "xgib6","xgibdown1","xgibdown1","xgibdown1")
/obj/effect/decal/cleanable/xenoblood/xgibs/body
/obj/effect/decal/cleanable/blood/xenoblood/gibs/body
random_icon_states = list("xgibhead", "xgibtorso")
/obj/effect/decal/cleanable/xenoblood/xgibs/torso
/obj/effect/decal/cleanable/blood/xenoblood/gibs/torso
random_icon_states = list("xgibtorso")
/obj/effect/decal/cleanable/xenoblood/xgibs/limb
/obj/effect/decal/cleanable/blood/xenoblood/gibs/limb
random_icon_states = list("xgibleg", "xgibarm")
/obj/effect/decal/cleanable/xenoblood/xgibs/core
/obj/effect/decal/cleanable/blood/xenoblood/gibs/core
random_icon_states = list("xgibmid1", "xgibmid2", "xgibmid3")
/obj/effect/decal/cleanable/xenoblood/xgibs/larva
/obj/effect/decal/cleanable/blood/xenoblood/gibs/larva
random_icon_states = list("xgiblarva1", "xgiblarva2")
/obj/effect/decal/cleanable/xenoblood/xgibs/larva/body
/obj/effect/decal/cleanable/blood/xenoblood/gibs/larva/body
random_icon_states = list("xgiblarvahead", "xgiblarvatorso")
/obj/effect/decal/cleanable/blood/xtracks
icon_state = "xtracks"
random_icon_states = null
/obj/effect/decal/cleanable/blood/xenoblood/tracks
color = BLOOD_COLOR_XENO
/obj/effect/decal/cleanable/blood/xtracks/Initialize()
/obj/effect/decal/cleanable/blood/xenoblood/tracks/Initialize()
. = ..()
add_blood_DNA(list("Unknown DNA" = "X*"))
@@ -3,8 +3,9 @@
desc = "It's red and gooey. Perhaps it's the chef's cooking?"
icon = 'icons/effects/blood.dmi'
icon_state = "floor1"
random_icon_states = list("floor1", "floor2", "floor3", "floor4", "floor5", "floor6", "floor7")
random_icon_states = list("mfloor1", "mfloor2", "mfloor3", "mfloor4", "mfloor5", "mfloor6", "mfloor7")
blood_state = BLOOD_STATE_HUMAN
color = BLOOD_COLOR_HUMAN
bloodiness = BLOOD_AMOUNT_PER_DECAL
/obj/effect/decal/cleanable/blood/replace_decal(obj/effect/decal/cleanable/blood/C)
@@ -50,6 +51,7 @@
layer = LOW_OBJ_LAYER
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6")
mergeable_decal = FALSE
var/fleshcolor = "#FFFFFF"
/obj/effect/decal/cleanable/blood/gibs/Initialize(mapload, list/datum/disease/diseases)
. = ..()
@@ -58,6 +60,20 @@
/obj/effect/decal/cleanable/blood/gibs/ex_act(severity, target)
return
/obj/effect/decal/cleanable/blood/gibs/update_icon()
var/image/giblets = new(base_icon, "[icon_state]_flesh", dir)
if(!fleshcolor || fleshcolor == "rainbow")
fleshcolor = "#[skintone2hex[random_skin_tone()]]"
giblets.color = fleshcolor
var/icon/blood = new(base_icon,"[icon_state]",dir)
if(basecolor == "rainbow") basecolor = "#[skintone2hex[random_skin_tone()]]"
blood.Blend(basecolor,ICON_MULTIPLY)
icon = blood
overlays.Cut()
overlays += giblets
/obj/effect/decal/cleanable/blood/gibs/Crossed(mob/living/L)
if(istype(L) && has_gravity(loc))
playsound(loc, 'sound/effects/gib_step.ogg', L.has_trait(TRAIT_LIGHT_STEP) ? 20 : 50, 1)
+10 -10
View File
@@ -231,16 +231,16 @@
return
var/static/list/bloodtypes_safe = list(
"A-" = list("A-", "O-"),
"A+" = list("A-", "A+", "O-", "O+"),
"B-" = list("B-", "O-"),
"B+" = list("B-", "B+", "O-", "O+"),
"AB-" = list("A-", "B-", "O-", "AB-"),
"AB+" = list("A-", "A+", "B-", "B+", "O-", "O+", "AB-", "AB+"),
"O-" = list("O-"),
"O+" = list("O-", "O+"),
"L" = list("L"),
"U" = list("A-", "A+", "B-", "B+", "O-", "O+", "AB-", "AB+", "L", "U")
"A-" = list("A-", "O-", "SY"),
"A+" = list("A-", "A+", "O-", "O+", "SY"),
"B-" = list("B-", "O-", "SY"),
"B+" = list("B-", "B+", "O-", "O+", "SY"),
"AB-" = list("A-", "B-", "O-", "AB-", "SY"),
"AB+" = list("A-", "A+", "B-", "B+", "O-", "O+", "AB-", "AB+", "SY"),
"O-" = list("O-","SY"),
"O+" = list("O-", "O+","SY"),
"L" = list("L","SY"),
"U" = list("A-", "A+", "B-", "B+", "O-", "O+", "AB-", "AB+", "L", "U","SY")
)
var/safe = bloodtypes_safe[bloodtype]
@@ -1,5 +1,5 @@
/datum/reagent/blood
data = list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null)
data = list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_color"=color, "blood_type"=null,"resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null)
name = "Blood"
id = "blood"
color = "#C80000" // rgb: 200, 0, 0
@@ -88,6 +88,13 @@
if(data["blood_DNA"])
B.add_blood_DNA(list(data["blood_DNA"] = data["blood_type"]))
/datum/reagent/blood/synthetics
data = list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_color"=color, "blood_type"="SY","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null)
name = "Synthetic Blood"
id = "syntheticblood"
color = "#0b0730" // rgb: 11, 7, 48
/datum/reagent/liquidgibs
name = "Liquid gibs"
id = "liquidgibs"
@@ -10,7 +10,7 @@
/obj/item/reagent_containers/blood/Initialize()
. = ..()
if(blood_type != null)
reagents.add_reagent("blood", 200, list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=blood_type,"resistances"=null,"trace_chem"=null))
reagents.add_reagent("blood", 200, list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_colour"=color, "blood_type"=blood_type,"resistances"=null,"trace_chem"=null))
update_icon()
/obj/item/reagent_containers/blood/on_reagent_change(changetype)
@@ -45,7 +45,7 @@
/obj/item/reagent_containers/blood/random/Initialize()
icon_state = "bloodpack"
blood_type = pick("A+", "A-", "B+", "B-", "O+", "O-", "L")
blood_type = pick("A+", "A-", "B+", "B-", "O+", "O-", "L", "SY")
return ..()
/obj/item/reagent_containers/blood/APlus
@@ -72,6 +72,9 @@
/obj/item/reagent_containers/blood/universal
blood_type = "U"
/obj/item/reagent_containers/blood/synthetics
blood_type = "SY"
/obj/item/reagent_containers/blood/attackby(obj/item/I, mob/user, params)
if (istype(I, /obj/item/pen) || istype(I, /obj/item/toy/crayon))
if(!user.is_literate())
Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

@@ -230,3 +230,11 @@
required_reagents = list("anaphro" = 5, "acetone" = 1)
required_temp = 300
mix_message = "The mixture thickens and heats up slighty..."
//Mutation toxin stuff
/datum/reagent/mutationtoxin/mammal
name = "Mammilan Mutation Toxin"
id = "mammalmutationtoxin"
color = "#5EFF3B" //RGB: 94, 255, 59
race = /datum/species/mammal
mutationtext = "<span class='danger'>The pain subsides. You feel... like a single furry.</span>"