Only one IV bag at a time (#25805)

* single iv bag

* add to traits.dm

* comment for called signal
This commit is contained in:
larentoun
2024-06-06 23:24:26 +03:00
committed by GitHub
parent 3db0b5d98d
commit 46f1a09018
3 changed files with 13 additions and 0 deletions
@@ -41,11 +41,19 @@
..()
update_icon(UPDATE_OVERLAYS)
/obj/item/reagent_containers/iv_bag/proc/on_examine(datum/source, mob/examiner, list/examine_list)
SIGNAL_HANDLER // COMSIG_PARENT_EXAMINE
examine_list += "<span class='notice'>[source.p_they(TRUE)] [source.p_have()] an active IV bag.</span>"
/obj/item/reagent_containers/iv_bag/proc/begin_processing(mob/target)
injection_target = target
ADD_TRAIT(injection_target, TRAIT_HAS_IV_BAG, UID())
RegisterSignal(injection_target, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine))
START_PROCESSING(SSobj, src)
/obj/item/reagent_containers/iv_bag/proc/end_processing()
REMOVE_TRAIT(injection_target, TRAIT_HAS_IV_BAG, UID())
UnregisterSignal(injection_target, COMSIG_PARENT_EXAMINE)
injection_target = null
STOP_PROCESSING(SSobj, src)
@@ -106,6 +114,9 @@
else // Inserting the needle
if(!L.can_inject(user, TRUE))
return
if(HAS_TRAIT(target, TRAIT_HAS_IV_BAG))
to_chat(user, "<span class='warning'>[target] already [target.p_have()] another IV bag inserted into [target.p_them()]!</span>")
return
if(amount_per_transfer_from_this > 10) // We only want to be able to transfer 1, 5, or 10 units to people. Higher numbers are for transfering to other containers
to_chat(user, "<span class='warning'>The IV bag can only be used on someone with a transfer amount of 1, 5 or 10.</span>")
return