Synthetics blood and greyscale blood effects
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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>"
|
||||
Reference in New Issue
Block a user