/decl/chem (#10538)

This commit is contained in:
MarinaGryphon
2021-01-17 00:11:28 +02:00
committed by GitHub
parent 2ced864e12
commit c720e947ed
237 changed files with 5745 additions and 7000 deletions
@@ -130,7 +130,7 @@
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2, TECH_BIO = 2)
var/volume = 60
var/list/fuel = list(/datum/reagent/toxin/phoron = 50000, /datum/reagent/slimejelly = 25000, /datum/reagent/fuel = 15000, /datum/reagent/carbon = 10000, /datum/reagent/alcohol/ethanol = 10000, /datum/reagent/nutriment = 8000, /datum/reagent/blood = 5000)
var/list/fuel = list(/decl/reagent/toxin/phoron = 50000, /decl/reagent/slimejelly = 25000, /decl/reagent/fuel = 15000, /decl/reagent/carbon = 10000, /decl/reagent/alcohol = 10000, /decl/reagent/nutriment = 8000, /decl/reagent/blood = 5000)
/obj/item/integrated_circuit/passive/power/chemical_cell/New()
..()
@@ -129,7 +129,7 @@
if(!TS.Adjacent(TT))
activate_pin(3)
return
var/tramount = Clamp(min(transfer_amount, reagents.get_free_space()), 0, reagents.maximum_volume)
var/tramount = Clamp(min(transfer_amount, REAGENTS_FREE_SPACE(reagents)), 0, reagents.maximum_volume)
if(ismob(target))//Blood!
if(istype(target, /mob/living/carbon))
var/mob/living/carbon/T = target
@@ -145,21 +145,7 @@
else
activate_pin(3)
return
var/datum/reagent/B
if(istype(T, /mob/living/carbon/human))
var/mob/living/carbon/human/H = T
if(H.species && !H.has_organ(BP_HEART))
H.reagents.trans_to_obj(src, tramount)
else
B = T.take_blood(src, tramount)
else
B = T.take_blood(src,tramount)
if (B)
reagents.reagent_list |= B
reagents.update_total()
on_reagent_change()
reagents.handle_reactions()
B = null
T.take_blood(src,tramount)
visible_message( "<span class='notice'>[assembly] takes a blood sample from [target].</span>")
else
activate_pin(3)
@@ -229,11 +215,11 @@
if(!source.is_open_container() || !target.is_open_container())
return
if(direc)
if(!target.reagents.get_free_space())
if(!REAGENTS_FREE_SPACE(target.reagents))
return
source.reagents.trans_to(target, transfer_amount)
else
if(!source.reagents.get_free_space())
if(!REAGENTS_FREE_SPACE(source.reagents))
return
target.reagents.trans_to(source, transfer_amount)
activate_pin(2)
@@ -296,7 +282,8 @@
/obj/item/integrated_circuit/reagent/storage/scan/do_work()
var/list/cont = list()
for(var/datum/reagent/RE in reagents.reagent_list)
for(var/_RE in reagents.reagent_volumes)
var/decl/reagent/RE = decls_repository.get_decl(_RE)
cont += RE.name
set_pin_data(IC_OUTPUT, 3, cont)
set_pin_data(IC_OUTPUT, 4, reagents.generate_taste_message(src))
@@ -348,14 +335,15 @@
return
if(!source.is_open_container() || !target.is_open_container())
return
if(!target.reagents.get_free_space())
if(!REAGENTS_FREE_SPACE(target.reagents))
return
for(var/datum/reagent/G in source.reagents.reagent_list)
for(var/_G in source.reagents.reagent_volumes)
var/decl/reagent/G = decls_repository.get_decl(_G)
if (!direc)
if(lowertext(G.name) in demand)
source.reagents.trans_type_to(target, G.type, transfer_amount)
source.reagents.trans_type_to(target, _G, transfer_amount)
else
if(!(lowertext(G.name) in demand))
source.reagents.trans_type_to(target, G.type, transfer_amount)
source.reagents.trans_type_to(target, _G, transfer_amount)
activate_pin(2)
push_data()