mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-19 11:05:03 +01:00
Cling Test, Syringe Changes, Species Edge Cases
- Syringes take 30 seconds to extract blood, 60 seconds if target is in a hardsuit, instant if target is user. - Slime people can no longer be lings. - Species with NO_SCAN not affected by transform sting. - Adds reaction between blood and welding fuel. If the blood is normal, destroys the blood and gives a message, giving a specific message if the blood belonged to a changeling.
This commit is contained in:
@@ -730,7 +730,31 @@ datum
|
||||
required_reagents = list("chlorine" = 1, "hydrogen" = 1, "nitrogen" = 1)
|
||||
result_amount = 3
|
||||
|
||||
|
||||
///////Changeling Blood Test/////////////
|
||||
changeling_test
|
||||
name = "Changeling blood test"
|
||||
id = "changelingblood"
|
||||
result = "blood"
|
||||
required_reagents = list("blood" = 5)
|
||||
required_catalysts = list("fuel")
|
||||
result_amount = 1 //Needs this in order to check the donor, as the data var in the reacted blood gets transferred.
|
||||
on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
if(!holder.reagent_list) //reagent_list is not null
|
||||
return
|
||||
var/datum/reagent/blood/B = locate() in holder.reagent_list
|
||||
if(!B) //B is not null
|
||||
return
|
||||
var/mob/living/carbon/human/H = B.data["donor"]
|
||||
if(!H) //H is not null.
|
||||
return
|
||||
if(H.mind && H.mind.changeling) //Checks if H, the blood donor is a ling.
|
||||
for(var/mob/M in viewers(get_turf_loc(holder.my_atom), null))
|
||||
M.show_message( "<span class='danger'>The blood writhes and wriggles and sizzles away from the container!</span>", 1, "<span class='warning'>You hear bubbling and sizzling.</span>", 2)
|
||||
else
|
||||
for(var/mob/M in viewers(get_turf_loc(holder.my_atom), null))
|
||||
M.show_message( "<span class ='notice'>The blood seems to break apart in the fuel.</span>", 1)
|
||||
holder.del_reagent("blood")
|
||||
return
|
||||
/////////////////////////////////////OLD SLIME CORE REACTIONS ///////////////////////////////
|
||||
/*
|
||||
slimepepper
|
||||
|
||||
@@ -90,6 +90,23 @@
|
||||
user << "\red You are unable to locate any blood."
|
||||
return
|
||||
|
||||
|
||||
var/time = 30 //Injecting through a hardsuit takes longer due to needing to find a port.
|
||||
if(istype(target,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = T
|
||||
if((H.species.bloodflags & BLOOD_SLIME) || (H.species.flags & NO_BLOOD))
|
||||
usr << "<span class='warning'>You are unable to locate any blood.</span>"
|
||||
return
|
||||
if(H.wear_suit && istype(H.wear_suit,/obj/item/clothing/suit/space))
|
||||
time = 60
|
||||
if(target == user)
|
||||
time = 0
|
||||
else
|
||||
for(var/mob/O in viewers(world.view, user))
|
||||
O.show_message(text("\red <B>[] is trying to take a blood sample from []!</B>", user, target), 1)
|
||||
if(!do_mob(user, target, time))
|
||||
return
|
||||
|
||||
var/datum/reagent/B
|
||||
if(istype(T,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = T
|
||||
@@ -105,9 +122,10 @@
|
||||
src.reagents.update_total()
|
||||
src.on_reagent_change()
|
||||
src.reagents.handle_reactions()
|
||||
user << "\blue You take a blood sample from [target]"
|
||||
for(var/mob/O in viewers(4, user))
|
||||
O.show_message("\red [user] takes a blood sample from [target].", 1)
|
||||
|
||||
user << "\blue You take a blood sample from [target]"
|
||||
for(var/mob/O in viewers(4, user))
|
||||
O.show_message("\red [user] takes a blood sample from [target].", 1)
|
||||
|
||||
else //if not mob
|
||||
if(!target.reagents.total_volume)
|
||||
|
||||
Reference in New Issue
Block a user