From 656b46ac14290428b1805ce97cf16d71aa3a7e68 Mon Sep 17 00:00:00 2001
From: chuga-git <98280110+chuga-git@users.noreply.github.com>
Date: Wed, 28 Aug 2024 18:44:08 -0500
Subject: [PATCH] Reverts #25805 and #25846: "Only one IV bag at a time "
(#26578)
* reverts 25805 and 25846
* re-adds iv_bag on_examine and stops apply_damage runtime when injection_target is being deleted
---
code/__HELPERS/trait_helpers.dm | 1 -
code/_globalvars/traits.dm | 1 -
code/modules/reagents/reagent_containers/iv_bag.dm | 9 ++-------
3 files changed, 2 insertions(+), 9 deletions(-)
diff --git a/code/__HELPERS/trait_helpers.dm b/code/__HELPERS/trait_helpers.dm
index 1ce4dc067d3..af8040177b8 100644
--- a/code/__HELPERS/trait_helpers.dm
+++ b/code/__HELPERS/trait_helpers.dm
@@ -236,7 +236,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_NPC_ZOMBIE "npc_zombie" // A trait for checking if a zombie should act like an NPC and attack
#define TRAIT_ABSTRACT_HANDS "abstract_hands" // Mobs with this trait can only pick up abstract items.
#define TRAIT_LANGUAGE_LOCKED "language_locked" // cant add/remove languages until removed (excludes babel because fuck everything i guess)
-#define TRAIT_HAS_IV_BAG "iv_bag" // Used to check if there is an active IV bag. Currently blocks another IV bags from being inserted.
//***** MIND TRAITS *****/
#define TRAIT_HOLY "is_holy" // The mob is holy in regards to religion
diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm
index e6b68fcbdda..f276bcc25ab 100644
--- a/code/_globalvars/traits.dm
+++ b/code/_globalvars/traits.dm
@@ -97,7 +97,6 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_I_WANT_BRAINS" = TRAIT_I_WANT_BRAINS,
"TRAIT_ABSTRACT_HANDS" = TRAIT_ABSTRACT_HANDS,
"TRAIT_LANGUAGE_LOCKED" = TRAIT_LANGUAGE_LOCKED,
- "TRAIT_HAS_IV_BAG" = TRAIT_HAS_IV_BAG,
"TRAIT_NON_INFECTIOUS_ZOMBIE" = TRAIT_NON_INFECTIOUS_ZOMBIE,
"TRAIT_CANNOT_PULL" = TRAIT_CANNOT_PULL
),
diff --git a/code/modules/reagents/reagent_containers/iv_bag.dm b/code/modules/reagents/reagent_containers/iv_bag.dm
index c6a23a907e4..9058e93a695 100644
--- a/code/modules/reagents/reagent_containers/iv_bag.dm
+++ b/code/modules/reagents/reagent_containers/iv_bag.dm
@@ -47,19 +47,17 @@
/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()
if(injection_target)
- REMOVE_TRAIT(injection_target, TRAIT_HAS_IV_BAG, UID())
UnregisterSignal(injection_target, COMSIG_PARENT_EXAMINE)
- injection_target = null
+ injection_target = null
STOP_PROCESSING(SSobj, src)
/obj/item/reagent_containers/iv_bag/process()
- if(!injection_target)
+ if(QDELETED(injection_target))
end_processing()
return
@@ -115,9 +113,6 @@
else // Inserting the needle
if(!L.can_inject(user, TRUE))
return
- if(HAS_TRAIT(target, TRAIT_HAS_IV_BAG))
- to_chat(user, "[target] already [target.p_have()] another IV bag inserted into [target.p_them()]!")
- 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, "The IV bag can only be used on someone with a transfer amount of 1, 5 or 10.")
return