mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-07-21 13:13:29 +01:00
@@ -32,7 +32,7 @@ var/const/BLOOD_VOLUME_SURVIVE = 122
|
||||
if(B.id == "blood")
|
||||
B.data = list( "donor"=src,"viruses"=null,"species"=species.name,"blood_DNA"=dna.unique_enzymes,"blood_colour"= species.blood_color,"blood_type"=dna.b_type, \
|
||||
"resistances"=null,"trace_chem"=null, "virus2" = null, "antibodies" = null)
|
||||
B.color = B.data["blood_color"]
|
||||
B.color = B.data["blood_colour"]
|
||||
|
||||
// Takes care blood loss and regeneration
|
||||
/mob/living/carbon/human/proc/handle_blood()
|
||||
|
||||
@@ -96,8 +96,8 @@
|
||||
if(!istype(H))
|
||||
return
|
||||
|
||||
var/datum/reagent/blood = H.vessel.reagent_list["blood"]
|
||||
blood_splatter(H,blood,1)
|
||||
var/datum/reagent/blood/B = locate(/datum/reagent/blood) in H.vessel.reagent_list
|
||||
blood_splatter(H,B,1)
|
||||
var/obj/effect/decal/cleanable/blood/splatter/goo = locate() in get_turf(owner)
|
||||
if(goo)
|
||||
goo.name = "husk ichor"
|
||||
@@ -170,27 +170,31 @@
|
||||
name = "xeno organ"
|
||||
icon = 'icons/effects/blood.dmi'
|
||||
desc = "It smells like an accident in a chemical factory."
|
||||
organ_tag = "special" //TODO functionality for transplants.
|
||||
|
||||
/obj/item/organ/xenos/eggsac
|
||||
name = "egg sac"
|
||||
icon_state = "xgibmid1"
|
||||
organ_tag = "egg sac"
|
||||
|
||||
/obj/item/organ/xenos/plasmavessel
|
||||
name = "plasma vessel"
|
||||
icon_state = "xgibdown"
|
||||
icon_state = "xgibdown1"
|
||||
organ_tag = "plasma vessel"
|
||||
|
||||
/obj/item/organ/xenos/acidgland
|
||||
name = "acid gland"
|
||||
icon_state = "xgibtorso"
|
||||
organ_tag = "acid gland"
|
||||
|
||||
/obj/item/organ/xenos/hivenode
|
||||
name = "hive node"
|
||||
icon_state = "xgibmid2"
|
||||
organ_tag = "hive node"
|
||||
|
||||
/obj/item/organ/xenos/resinspinner
|
||||
name = "hive node"
|
||||
icon_state = "xgibmid2"
|
||||
organ_tag = "resin spinner"
|
||||
|
||||
//VOX ORGANS.
|
||||
/datum/organ/internal/stack
|
||||
|
||||
@@ -490,13 +490,18 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
burn_dam = 0
|
||||
status &= ~ORGAN_BLEEDING
|
||||
var/clamped = 0
|
||||
|
||||
var/mob/living/carbon/human/H
|
||||
if(istype(owner,/mob/living/carbon/human))
|
||||
H = owner
|
||||
|
||||
for(var/datum/wound/W in wounds)
|
||||
if(W.damage_type == CUT || W.damage_type == BRUISE)
|
||||
brute_dam += W.damage
|
||||
else if(W.damage_type == BURN)
|
||||
burn_dam += W.damage
|
||||
|
||||
if(!(status & ORGAN_ROBOT) && W.bleeding())
|
||||
if(!(status & ORGAN_ROBOT) && W.bleeding() && (H && !(H.species.flags & NO_BLOOD)))
|
||||
W.bleed_timer--
|
||||
status |= ORGAN_BLEEDING
|
||||
|
||||
@@ -504,7 +509,7 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
|
||||
number_wounds += W.amount
|
||||
|
||||
if (open && !clamped) //things tend to bleed if they are CUT OPEN
|
||||
if (open && !clamped && (H && !(H.species.flags & NO_BLOOD))) //things tend to bleed if they are CUT OPEN
|
||||
status |= ORGAN_BLEEDING
|
||||
|
||||
|
||||
|
||||
@@ -83,14 +83,15 @@
|
||||
if(rejecting % 10 == 0) //Only fire every ten rejection ticks.
|
||||
switch(rejecting)
|
||||
if(1 to 50)
|
||||
take_damage(rand(1,2))
|
||||
take_damage(1)
|
||||
if(51 to 200)
|
||||
take_damage(rand(2,3))
|
||||
if(201 to 500)
|
||||
take_damage(rand(3,4))
|
||||
owner.reagents.add_reagent("toxin", 1)
|
||||
take_damage(1)
|
||||
if(201 to 500)
|
||||
take_damage(rand(2,3))
|
||||
owner.reagents.add_reagent("toxin", 2)
|
||||
if(501 to INFINITY)
|
||||
take_damage(5)
|
||||
take_damage(4)
|
||||
owner.reagents.add_reagent("toxin", rand(3,5))
|
||||
|
||||
/datum/organ/internal/proc/take_damage(amount, var/silent=0)
|
||||
|
||||
@@ -46,8 +46,8 @@
|
||||
|
||||
if(fresh && prob(40))
|
||||
fresh--
|
||||
var/datum/reagent/blood = reagents.reagent_list["blood"]
|
||||
blood_splatter(src,blood,1)
|
||||
var/datum/reagent/blood/B = locate(/datum/reagent/blood) in reagents.reagent_list
|
||||
blood_splatter(src,B,1)
|
||||
|
||||
health -= rand(1,3)
|
||||
if(health <= 0)
|
||||
@@ -215,8 +215,8 @@
|
||||
return
|
||||
|
||||
user << "\blue You take an experimental bite out of \the [src]."
|
||||
var/datum/reagent/blood = reagents.reagent_list["blood"]
|
||||
blood_splatter(src,blood,1)
|
||||
var/datum/reagent/blood/B = locate(/datum/reagent/blood) in reagents.reagent_list
|
||||
blood_splatter(src,B,1)
|
||||
|
||||
|
||||
user.drop_from_inventory(src)
|
||||
|
||||
Reference in New Issue
Block a user