REEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
This commit is contained in:
@@ -82,7 +82,7 @@
|
|||||||
add_blood = bloodiness
|
add_blood = bloodiness
|
||||||
bloodiness -= add_blood
|
bloodiness -= add_blood
|
||||||
S.bloody_shoes[blood_state] = min(MAX_SHOE_BLOODINESS,S.bloody_shoes[blood_state]+add_blood)
|
S.bloody_shoes[blood_state] = min(MAX_SHOE_BLOODINESS,S.bloody_shoes[blood_state]+add_blood)
|
||||||
if(length(blood_DNA))
|
if(blood_DNA && blood_DNA.len)
|
||||||
S.add_blood_DNA(blood_DNA)
|
S.add_blood_DNA(blood_DNA)
|
||||||
S.blood_state = blood_state
|
S.blood_state = blood_state
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|||||||
@@ -9,13 +9,10 @@
|
|||||||
color = BLOOD_COLOR_HUMAN //default so we don't have white splotches everywhere.
|
color = BLOOD_COLOR_HUMAN //default so we don't have white splotches everywhere.
|
||||||
|
|
||||||
/obj/effect/decal/cleanable/blood/replace_decal(obj/effect/decal/cleanable/blood/C)
|
/obj/effect/decal/cleanable/blood/replace_decal(obj/effect/decal/cleanable/blood/C)
|
||||||
if(length(C.blood_DNA))
|
if (C.blood_DNA)
|
||||||
blood_DNA |= C.blood_DNA.Copy()
|
blood_DNA |= C.blood_DNA.Copy()
|
||||||
if (bloodiness)
|
|
||||||
if (C.bloodiness < MAX_SHOE_BLOODINESS)
|
|
||||||
C.bloodiness += bloodiness
|
|
||||||
update_icon()
|
update_icon()
|
||||||
return ..()
|
..()
|
||||||
|
|
||||||
/obj/effect/decal/cleanable/blood/transfer_blood_dna()
|
/obj/effect/decal/cleanable/blood/transfer_blood_dna()
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -41,10 +41,6 @@
|
|||||||
var/dynamic_hair_suffix = ""//head > mask for head hair
|
var/dynamic_hair_suffix = ""//head > mask for head hair
|
||||||
var/dynamic_fhair_suffix = ""//mask > head for facial hair
|
var/dynamic_fhair_suffix = ""//mask > head for facial hair
|
||||||
|
|
||||||
//for blood coloration memes
|
|
||||||
var/last_bloodtype //used to track the last bloodtype to have graced these shoes; makes for better performing footprint shenanigans
|
|
||||||
var/last_blood_DNA //same as last one
|
|
||||||
|
|
||||||
/obj/item/clothing/Initialize()
|
/obj/item/clothing/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
if(CHECK_BITFIELD(clothing_flags, VOICEBOX_TOGGLABLE))
|
if(CHECK_BITFIELD(clothing_flags, VOICEBOX_TOGGLABLE))
|
||||||
@@ -343,9 +339,3 @@ BLIND // can't see anything
|
|||||||
deconstruct(FALSE)
|
deconstruct(FALSE)
|
||||||
else
|
else
|
||||||
..()
|
..()
|
||||||
|
|
||||||
/obj/item/clothing/transfer_blood_dna(list/blood_dna, list/datum/disease/diseases)
|
|
||||||
..()
|
|
||||||
if(length(blood_dna))
|
|
||||||
last_bloodtype = blood_dna[blood_dna[blood_dna.len]]//trust me this works
|
|
||||||
last_blood_DNA = blood_dna[blood_dna.len]
|
|
||||||
|
|||||||
@@ -18,6 +18,8 @@
|
|||||||
//CITADEL EDIT Enables digitigrade shoe styles
|
//CITADEL EDIT Enables digitigrade shoe styles
|
||||||
var/adjusted = NORMAL_STYLE
|
var/adjusted = NORMAL_STYLE
|
||||||
mutantrace_variation = MUTANTRACE_VARIATION
|
mutantrace_variation = MUTANTRACE_VARIATION
|
||||||
|
var/last_bloodtype = "" //used to track the last bloodtype to have graced these shoes; makes for better performing footprint shenanigans
|
||||||
|
var/last_blood_DNA = "" //same as last one
|
||||||
|
|
||||||
/obj/item/clothing/shoes/ComponentInitialize()
|
/obj/item/clothing/shoes/ComponentInitialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
@@ -42,6 +44,13 @@
|
|||||||
playsound(user, 'sound/weapons/genhit2.ogg', 50, 1)
|
playsound(user, 'sound/weapons/genhit2.ogg', 50, 1)
|
||||||
return(BRUTELOSS)
|
return(BRUTELOSS)
|
||||||
|
|
||||||
|
|
||||||
|
/obj/item/clothing/shoes/transfer_blood_dna(list/blood_dna)
|
||||||
|
..()
|
||||||
|
if(blood_dna.len)
|
||||||
|
last_bloodtype = blood_dna[blood_dna[blood_dna.len]]//trust me this works
|
||||||
|
last_blood_DNA = blood_dna[blood_dna.len]
|
||||||
|
|
||||||
/obj/item/clothing/shoes/worn_overlays(isinhands = FALSE)
|
/obj/item/clothing/shoes/worn_overlays(isinhands = FALSE)
|
||||||
. = list()
|
. = list()
|
||||||
if(!isinhands)
|
if(!isinhands)
|
||||||
|
|||||||
@@ -64,9 +64,8 @@
|
|||||||
FP.blood_state = S.blood_state
|
FP.blood_state = S.blood_state
|
||||||
FP.entered_dirs |= dir
|
FP.entered_dirs |= dir
|
||||||
FP.bloodiness = S.bloody_shoes[S.blood_state]
|
FP.bloodiness = S.bloody_shoes[S.blood_state]
|
||||||
if(S.last_blood_DNA && S.last_bloodtype)
|
if(S.last_bloodtype)
|
||||||
FP.blood_DNA += list(S.last_blood_DNA = S.last_bloodtype)
|
FP.blood_DNA += list(S.last_blood_DNA = S.last_bloodtype)
|
||||||
//hacky as heck; we need to move the LAST entry to there, otherwise we mix all the blood
|
|
||||||
FP.update_icon()
|
FP.update_icon()
|
||||||
update_inv_shoes()
|
update_inv_shoes()
|
||||||
//End bloody footprints
|
//End bloody footprints
|
||||||
|
|||||||
@@ -583,7 +583,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
|||||||
|
|
||||||
/datum/reagent/consumable/ethanol/bloody_mary/on_mob_life(mob/living/carbon/C)
|
/datum/reagent/consumable/ethanol/bloody_mary/on_mob_life(mob/living/carbon/C)
|
||||||
if(C.blood_volume < (BLOOD_VOLUME_NORMAL*C.blood_ratio))
|
if(C.blood_volume < (BLOOD_VOLUME_NORMAL*C.blood_ratio))
|
||||||
C.blood_volume = min((BLOOD_VOLUME_NORMAL*C.blood_ratio), C.blood_volume + 3) //Bloody Mary quickly restores blood loss.
|
C.blood_volume += 2 //Bloody Mary quickly restores blood loss.
|
||||||
..()
|
..()
|
||||||
|
|
||||||
/datum/reagent/consumable/ethanol/brave_bull
|
/datum/reagent/consumable/ethanol/brave_bull
|
||||||
|
|||||||
@@ -43,12 +43,10 @@
|
|||||||
|
|
||||||
if(reac_volume >= 10 && istype(L))
|
if(reac_volume >= 10 && istype(L))
|
||||||
L.add_blood_DNA(list(data["blood_DNA"] = data["blood_type"]))
|
L.add_blood_DNA(list(data["blood_DNA"] = data["blood_type"]))
|
||||||
L.color = bloodtype_to_color(data["blood_type"])
|
|
||||||
|
|
||||||
/datum/reagent/blood/reaction_obj(obj/O, volume)
|
/datum/reagent/blood/reaction_obj(obj/O, volume)
|
||||||
if(volume >= 3 && istype(O))
|
if(volume >= 3 && istype(O))
|
||||||
O.add_blood_DNA(list(data["blood_DNA"] = data["blood_type"]))
|
O.add_blood_DNA(list(data["blood_DNA"] = data["blood_type"]))
|
||||||
O.color = bloodtype_to_color(data["blood_type"])
|
|
||||||
|
|
||||||
/datum/reagent/blood/on_new(list/data)
|
/datum/reagent/blood/on_new(list/data)
|
||||||
if(iscarbon(src))
|
if(iscarbon(src))
|
||||||
@@ -98,11 +96,10 @@
|
|||||||
if(reac_volume < 3)
|
if(reac_volume < 3)
|
||||||
return
|
return
|
||||||
|
|
||||||
var/obj/effect/decal/cleanable/blood/B = locate() in T //find some blood here
|
T.add_blood_DNA(list(data["blood_DNA"] = data["blood_type"]))
|
||||||
if(!B)
|
var/obj/effect/decal/cleanable/blood/B = locate() in T
|
||||||
B = new(T)
|
|
||||||
if(!B.reagents)
|
if(!B.reagents)
|
||||||
B.reagents.add_reagent("blood", reac_volume)
|
B.reagents.add_reagent(id, reac_volume)
|
||||||
B.update_icon()
|
B.update_icon()
|
||||||
|
|
||||||
/datum/reagent/blood/synthetics
|
/datum/reagent/blood/synthetics
|
||||||
@@ -112,11 +109,6 @@
|
|||||||
taste_description = "oily"
|
taste_description = "oily"
|
||||||
color = BLOOD_COLOR_SYNTHETIC // rgb: 11, 7, 48
|
color = BLOOD_COLOR_SYNTHETIC // rgb: 11, 7, 48
|
||||||
|
|
||||||
/datum/reagent/blood/synthetics/reaction_turf(turf/T, reac_volume)
|
|
||||||
var/obj/effect/decal/cleanable/blood/B = locate() in T //find some blood here
|
|
||||||
B.reagents.add_reagent("syntheticblood", reac_volume)
|
|
||||||
. = ..()
|
|
||||||
|
|
||||||
/datum/reagent/blood/xenomorph
|
/datum/reagent/blood/xenomorph
|
||||||
data = list("donor"=null,"viruses"=null,"blood_DNA"=null, "bloodcolor" = BLOOD_COLOR_XENO, "blood_type"="X*","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, "bloodcolor" = BLOOD_COLOR_XENO, "blood_type"="X*","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null)
|
||||||
name = "Xenomorph Blood"
|
name = "Xenomorph Blood"
|
||||||
@@ -124,11 +116,7 @@
|
|||||||
taste_description = "acidic heresy"
|
taste_description = "acidic heresy"
|
||||||
color = BLOOD_COLOR_XENO // greenish yellow ooze
|
color = BLOOD_COLOR_XENO // greenish yellow ooze
|
||||||
shot_glass_icon_state = "shotglassgreen"
|
shot_glass_icon_state = "shotglassgreen"
|
||||||
|
pH = 2.5
|
||||||
/datum/reagent/blood/xenomorph/reaction_turf(turf/T, reac_volume)
|
|
||||||
var/obj/effect/decal/cleanable/blood/B = locate() in T //find some blood here
|
|
||||||
B.reagents.add_reagent("xenoblood", reac_volume)
|
|
||||||
. = ..()
|
|
||||||
|
|
||||||
/datum/reagent/blood/oil
|
/datum/reagent/blood/oil
|
||||||
data = list("donor"=null,"viruses"=null,"blood_DNA"=null, "bloodcolor" = BLOOD_COLOR_OIL, "blood_type"="HF","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, "bloodcolor" = BLOOD_COLOR_OIL, "blood_type"="HF","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null)
|
||||||
@@ -136,11 +124,7 @@
|
|||||||
id = "oilblood"
|
id = "oilblood"
|
||||||
taste_description = "burnt oil"
|
taste_description = "burnt oil"
|
||||||
color = BLOOD_COLOR_OIL // dark, y'know, expected batman colors.
|
color = BLOOD_COLOR_OIL // dark, y'know, expected batman colors.
|
||||||
|
pH = 9.75
|
||||||
/datum/reagent/blood/oil/reaction_turf(turf/T, reac_volume)
|
|
||||||
var/obj/effect/decal/cleanable/blood/B = locate() in T //find some blood here
|
|
||||||
B.reagents.add_reagent("oilblood", reac_volume)
|
|
||||||
. = ..()
|
|
||||||
|
|
||||||
/datum/reagent/blood/jellyblood
|
/datum/reagent/blood/jellyblood
|
||||||
data = list("donor"=null,"viruses"=null,"blood_DNA"=null, "bloodcolor" = BLOOD_COLOR_SLIME, "blood_type"="GEL","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, "bloodcolor" = BLOOD_COLOR_SLIME, "blood_type"="GEL","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null)
|
||||||
@@ -150,29 +134,16 @@
|
|||||||
color = BLOOD_COLOR_SLIME
|
color = BLOOD_COLOR_SLIME
|
||||||
taste_description = "slime"
|
taste_description = "slime"
|
||||||
taste_mult = 1.3
|
taste_mult = 1.3
|
||||||
|
pH = 4
|
||||||
/datum/reagent/blood/jellyblood/on_new(list/data)
|
|
||||||
.=..()
|
|
||||||
if(ishuman(src))
|
|
||||||
var/mob/living/carbon/human/H = src
|
|
||||||
var/datum/species/slimecolor = H.dna.species
|
|
||||||
if("mcolor" in slimecolor.default_features)
|
|
||||||
color = H.dna.features["mcolor"]
|
|
||||||
else
|
|
||||||
color = bloodtype_to_color(data["blood_type"])
|
|
||||||
|
|
||||||
/datum/reagent/blood/jellyblood/reaction_turf(turf/T, reac_volume)
|
|
||||||
var/obj/effect/decal/cleanable/blood/B = locate() in T //find some blood here
|
|
||||||
B.reagents.add_reagent("jellyblood", reac_volume)
|
|
||||||
. = ..()
|
|
||||||
|
|
||||||
/datum/reagent/blood/jellyblood/on_mob_life(mob/living/carbon/M)
|
/datum/reagent/blood/jellyblood/on_mob_life(mob/living/carbon/M)
|
||||||
if(prob(10))
|
if(prob(10))
|
||||||
to_chat(M, "<span class='danger'>Your insides are burning!</span>")
|
if(M.dna?.species?.exotic_bloodtype != "GEL")
|
||||||
|
to_chat(M, "<span class='danger'>Your insides are burning!</span>")
|
||||||
M.adjustToxLoss(rand(20,60)*REM, 0)
|
M.adjustToxLoss(rand(20,60)*REM, 0)
|
||||||
. = 1
|
. = 1
|
||||||
else if(prob(40))
|
else if(prob(40) && isjellyperson(M))
|
||||||
M.heal_bodypart_damage(5*REM)
|
M.heal_bodypart_damage(2*REM)
|
||||||
. = 1
|
. = 1
|
||||||
..()
|
..()
|
||||||
|
|
||||||
@@ -202,6 +173,7 @@
|
|||||||
taste_description = "slime"
|
taste_description = "slime"
|
||||||
shot_glass_icon_state = "shotglassgreen"
|
shot_glass_icon_state = "shotglassgreen"
|
||||||
data = list("donor"=null,"viruses"=null,"blood_DNA"=null, "bloodcolor" = BLOOD_COLOR_SLIME, "blood_type"="GEL","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, "bloodcolor" = BLOOD_COLOR_SLIME, "blood_type"="GEL","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null)
|
||||||
|
pH = 4
|
||||||
|
|
||||||
/datum/reagent/liquidgibs/synth
|
/datum/reagent/liquidgibs/synth
|
||||||
name = "Synthetic sludge"
|
name = "Synthetic sludge"
|
||||||
@@ -1106,7 +1078,7 @@
|
|||||||
reagent_state = SOLID
|
reagent_state = SOLID
|
||||||
taste_description = "iron"
|
taste_description = "iron"
|
||||||
pH = 6
|
pH = 6
|
||||||
|
overdose_threshold = 30
|
||||||
color = "#c2391d"
|
color = "#c2391d"
|
||||||
|
|
||||||
/datum/reagent/iron/on_mob_life(mob/living/carbon/C)
|
/datum/reagent/iron/on_mob_life(mob/living/carbon/C)
|
||||||
@@ -1120,6 +1092,17 @@
|
|||||||
M.reagents.add_reagent("toxin", reac_volume)
|
M.reagents.add_reagent("toxin", reac_volume)
|
||||||
..()
|
..()
|
||||||
|
|
||||||
|
/datum/reagent/iron/overdose_start(mob/living/M)
|
||||||
|
to_chat(M, "<span class='userdanger'>You start feeling your guts twisting painfully!</span>")
|
||||||
|
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/overdose, name)
|
||||||
|
|
||||||
|
/datum/reagent/iron/overdose_process(mob/living/carbon/C)
|
||||||
|
if(prob(20))
|
||||||
|
var/obj/item/organ/liver/L = C.getorganslot(ORGAN_SLOT_LIVER)
|
||||||
|
if (istype(L))
|
||||||
|
C.applyLiverDamage(2) //mild until the fabled med rework comes out. the organ damage galore
|
||||||
|
..()
|
||||||
|
|
||||||
/datum/reagent/gold
|
/datum/reagent/gold
|
||||||
name = "Gold"
|
name = "Gold"
|
||||||
id = "gold"
|
id = "gold"
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
icon = 'icons/obj/bloodpack.dmi'
|
icon = 'icons/obj/bloodpack.dmi'
|
||||||
icon_state = "bloodpack"
|
icon_state = "bloodpack"
|
||||||
volume = 200
|
volume = 200
|
||||||
|
reagent_flags = DRAINABLE
|
||||||
var/blood_type = null
|
var/blood_type = null
|
||||||
var/labelled = 0
|
var/labelled = 0
|
||||||
var/color_to_apply = "#FFFFFF"
|
var/color_to_apply = "#FFFFFF"
|
||||||
|
|||||||
Reference in New Issue
Block a user