mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 19:47:22 +01:00
trans_to_ingest now used for consumption of food, drink and pills instead of trans_to. This adds a ten second delay between ingestion and addition of the reagents to the body.
Conflicts: code/modules/reagents/Chemistry-Holder.dm code/modules/reagents/reagent_containers/food/cans.dm code/modules/reagents/reagent_containers/food/condiment.dm
This commit is contained in:
@@ -121,7 +121,55 @@ datum
|
||||
src.handle_reactions()
|
||||
return amount
|
||||
|
||||
copy_to(var/obj/target, var/amount=1, var/multiplier=1, var/preserve_data=1)
|
||||
trans_to_ingest(var/obj/target, var/amount=1, var/multiplier=1, var/preserve_data=1)//For items ingested. A delay is added between ingestion and addition of the reagents
|
||||
if (!target )
|
||||
return
|
||||
if (!target.reagents || src.total_volume<=0)
|
||||
return
|
||||
|
||||
/*var/datum/reagents/R = target.reagents
|
||||
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/noreact/B = new /obj/item/weapon/reagent_containers/glass/beaker/noreact //temporary holder
|
||||
|
||||
amount = min(min(amount, src.total_volume), R.maximum_volume-R.total_volume)
|
||||
var/part = amount / src.total_volume
|
||||
var/trans_data = null
|
||||
for (var/datum/reagent/current_reagent in src.reagent_list)
|
||||
if (!current_reagent)
|
||||
continue
|
||||
//if (current_reagent.id == "blood" && ishuman(target))
|
||||
// var/mob/living/carbon/human/H = target
|
||||
// H.inject_blood(my_atom, amount)
|
||||
// continue
|
||||
var/current_reagent_transfer = current_reagent.volume * part
|
||||
if(preserve_data)
|
||||
trans_data = current_reagent.data
|
||||
|
||||
B.add_reagent(current_reagent.id, (current_reagent_transfer * multiplier), trans_data, safety = 1) //safety checks on these so all chemicals are transferred
|
||||
src.remove_reagent(current_reagent.id, current_reagent_transfer, safety = 1) // to the target container before handling reactions
|
||||
|
||||
src.update_total()
|
||||
B.update_total()
|
||||
B.handle_reactions()
|
||||
src.handle_reactions()*/
|
||||
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/noreact/B = new /obj/item/weapon/reagent_containers/glass/beaker/noreact //temporary holder
|
||||
B.volume = 1000
|
||||
|
||||
var/datum/reagents/BR = B.reagents
|
||||
var/datum/reagents/R = target.reagents
|
||||
|
||||
amount = min(min(amount, src.total_volume), R.maximum_volume-R.total_volume)
|
||||
|
||||
src.trans_to(B, amount)
|
||||
|
||||
spawn(100)
|
||||
BR.trans_to(target, BR.total_volume)
|
||||
del(B)
|
||||
|
||||
return amount
|
||||
|
||||
copy_to(var/obj/target, var/amount=1, var/multiplier=1, var/preserve_data=1, var/safety = 0)
|
||||
if(!target)
|
||||
return
|
||||
if(!target.reagents || src.total_volume<=0)
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
if(reagents.total_volume)
|
||||
reagents.reaction(M, INGEST)
|
||||
spawn(5)
|
||||
reagents.trans_to(M, gulp_size)
|
||||
reagents.trans_to_ingest(M, gulp_size)
|
||||
|
||||
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
|
||||
return 1
|
||||
@@ -55,7 +55,7 @@
|
||||
if(reagents.total_volume)
|
||||
reagents.reaction(M, INGEST)
|
||||
spawn(5)
|
||||
reagents.trans_to(M, gulp_size)
|
||||
reagents.trans_to_ingest(M, gulp_size)
|
||||
|
||||
if(isrobot(user)) //Cyborg modules that include drinks automatically refill themselves, but drain the borg's cell
|
||||
var/mob/living/silicon/robot/bro = user
|
||||
@@ -191,7 +191,7 @@
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/cans/thirteenloko
|
||||
name = "Thirteen Loko"
|
||||
desc = "The CMO has advised crew members that consumption of Thirteen Loko may result in seizures, blindness, drunkeness, or even death. Please Drink Responsably."
|
||||
desc = "The CMO has advised crew members that consumption of Thirteen Loko may result in seizures, blindness, drunkeness, or even death. Please Drink Responsibly."
|
||||
icon_state = "thirteen_loko"
|
||||
New()
|
||||
..()
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
if(reagents.total_volume)
|
||||
reagents.reaction(M, INGEST)
|
||||
spawn(5)
|
||||
reagents.trans_to(M, 10)
|
||||
reagents.trans_to_ingest(M, 10)
|
||||
|
||||
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
|
||||
return 1
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
if(reagents.total_volume)
|
||||
reagents.reaction(M, INGEST)
|
||||
spawn(5)
|
||||
reagents.trans_to(M, gulp_size)
|
||||
reagents.trans_to_ingest(M, gulp_size)
|
||||
|
||||
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
|
||||
return 1
|
||||
@@ -54,7 +54,7 @@
|
||||
if(reagents.total_volume)
|
||||
reagents.reaction(M, INGEST)
|
||||
spawn(5)
|
||||
reagents.trans_to(M, gulp_size)
|
||||
reagents.trans_to_ingest(M, gulp_size)
|
||||
|
||||
if(isrobot(user)) //Cyborg modules that include drinks automatically refill themselves, but drain the borg's cell
|
||||
var/mob/living/silicon/robot/bro = user
|
||||
|
||||
@@ -91,9 +91,9 @@
|
||||
var/temp_bitesize = max(reagents.total_volume /2, bitesize)
|
||||
reagents.trans_to(M, temp_bitesize)
|
||||
*/
|
||||
reagents.trans_to(M, bitesize)
|
||||
reagents.trans_to_ingest(M, bitesize)
|
||||
else
|
||||
reagents.trans_to(M, reagents.total_volume)
|
||||
reagents.trans_to_ingest(M, reagents.total_volume)
|
||||
bitecount++
|
||||
On_Consume(M)
|
||||
return 1
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
if(reagents.total_volume)
|
||||
reagents.reaction(M, INGEST)
|
||||
spawn(5)
|
||||
reagents.trans_to(M, reagents.total_volume)
|
||||
reagents.trans_to_ingest(M, reagents.total_volume)
|
||||
del(src)
|
||||
else
|
||||
del(src)
|
||||
@@ -52,7 +52,7 @@
|
||||
if(reagents.total_volume)
|
||||
reagents.reaction(M, INGEST)
|
||||
spawn(5)
|
||||
reagents.trans_to(M, reagents.total_volume)
|
||||
reagents.trans_to_ingest(M, reagents.total_volume)
|
||||
del(src)
|
||||
else
|
||||
del(src)
|
||||
|
||||
Reference in New Issue
Block a user