diff --git a/code/__DEFINES/reagents.dm b/code/__DEFINES/reagents.dm
index 7d162833a37..70a5c5908f5 100644
--- a/code/__DEFINES/reagents.dm
+++ b/code/__DEFINES/reagents.dm
@@ -16,12 +16,17 @@
// Is an open container for all intents and purposes.
#define OPENCONTAINER (REFILLABLE | DRAINABLE | TRANSPARENT)
-
-#define TOUCH 1 // splashing
-#define INGEST 2 // ingestion
-#define VAPOR 3 // foam, spray, blob attack
-#define PATCH 4 // patches
-#define INJECT 5 // injection
+// Reagent exposure methods.
+/// Used for splashing.
+#define TOUCH (1<<0)
+/// Used for ingesting the reagents. Food, drinks, inhaling smoke.
+#define INGEST (1<<1)
+/// Used by foams, sprays, and blob attacks.
+#define VAPOR (1<<2)
+/// Used by medical patches and gels.
+#define PATCH (1<<3)
+/// Used for direct injection of reagents.
+#define INJECT (1<<4)
//defines passed through to the on_reagent_change proc
diff --git a/code/datums/components/food/edible.dm b/code/datums/components/food/edible.dm
index 58580674dde..10b645b001c 100644
--- a/code/datums/components/food/edible.dm
+++ b/code/datums/components/food/edible.dm
@@ -216,7 +216,7 @@ Behavior that's still missing from this component that original food items had t
if(owner.reagents.total_volume)
SEND_SIGNAL(parent, COMSIG_FOOD_EATEN, eater, feeder)
var/fraction = min(bite_consumption / owner.reagents.total_volume, 1)
- owner.reagents.trans_to(eater, bite_consumption, transfered_by = feeder, method = INGEST)
+ owner.reagents.trans_to(eater, bite_consumption, transfered_by = feeder, methods = INGEST)
bitecount++
On_Consume(eater)
checkLiked(fraction, eater)
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index 5f097d46646..7e295e075ec 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -484,12 +484,12 @@
* Arguments:
* - [reagents][/list]: The list of reagents the atom is being exposed to.
* - [source][/datum/reagents]: The reagent holder the reagents are being sourced from.
- * - method: How the atom is being exposed to the reagents.
+ * - methods: How the atom is being exposed to the reagents. Bitflags.
* - volume_modifier: Volume multiplier.
* - show_message: Whether to display anything to mobs when they are exposed.
*/
-/atom/proc/expose_reagents(list/reagents, datum/reagents/source, method=TOUCH, volume_modifier=1, show_message=TRUE)
- if((. = SEND_SIGNAL(src, COMSIG_ATOM_EXPOSE_REAGENTS, reagents, source, method, volume_modifier, show_message)) & COMPONENT_NO_EXPOSE_REAGENTS)
+/atom/proc/expose_reagents(list/reagents, datum/reagents/source, methods=TOUCH, volume_modifier=1, show_message=TRUE)
+ if((. = SEND_SIGNAL(src, COMSIG_ATOM_EXPOSE_REAGENTS, reagents, source, methods, volume_modifier, show_message)) & COMPONENT_NO_EXPOSE_REAGENTS)
return
for(var/reagent in reagents)
diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm
index 5ef0eb2bf6e..87d83bc2f60 100644
--- a/code/game/machinery/Sleeper.dm
+++ b/code/game/machinery/Sleeper.dm
@@ -306,7 +306,7 @@
if(chem in spray_chems)
var/datum/reagents/holder = new()
holder.add_reagent(chem_buttons[chem], 10) //I hope this is the correct way to do this.
- holder.trans_to(occupant, 10, method = VAPOR)
+ holder.trans_to(occupant, 10, methods = VAPOR)
playsound(src.loc, 'sound/effects/spray2.ogg', 50, TRUE, -6)
if(user)
log_combat(user, occupant, "sprayed [chem] into", addition = "via [src]")
diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm
index 8444cac305a..8e57ad9f498 100644
--- a/code/game/machinery/iv_drip.dm
+++ b/code/game/machinery/iv_drip.dm
@@ -138,7 +138,7 @@
if(istype(beaker, /obj/item/reagent_containers/blood))
// speed up transfer on blood packs
transfer_amount *= 2
- beaker.reagents.trans_to(attached, transfer_amount, method = INJECT, show_message = FALSE) //make reagents reacts, but don't spam messages
+ beaker.reagents.trans_to(attached, transfer_amount, methods = INJECT, show_message = FALSE) //make reagents reacts, but don't spam messages
update_icon()
// Take blood
diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm
index eec39abcda1..0f6fe31d445 100644
--- a/code/game/mecha/equipment/tools/medical_tools.dm
+++ b/code/game/mecha/equipment/tools/medical_tools.dm
@@ -334,7 +334,7 @@
R += "[A.name] ([num2text(A.volume)]"
mechsyringe.icon_state = initial(mechsyringe.icon_state)
mechsyringe.icon = initial(mechsyringe.icon)
- mechsyringe.reagents.trans_to(M, mechsyringe.reagents.total_volume, transfered_by = originaloccupant, method = INJECT)
+ mechsyringe.reagents.trans_to(M, mechsyringe.reagents.total_volume, transfered_by = originaloccupant, methods = INJECT)
M.take_bodypart_damage(2)
log_combat(originaloccupant, M, "shot", "syringegun")
break
diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm
index 37e179fc2ea..31702bffe7a 100644
--- a/code/game/objects/items/crayons.dm
+++ b/code/game/objects/items/crayons.dm
@@ -428,7 +428,7 @@
if(affected_turfs.len)
fraction /= affected_turfs.len
for(var/t in affected_turfs)
- reagents.trans_to(t, ., volume_multiplier, transfered_by = user, method = TOUCH)
+ reagents.trans_to(t, ., volume_multiplier, transfered_by = user, methods = TOUCH)
check_empty(user)
/obj/item/toy/crayon/attack(mob/M, mob/user)
@@ -447,7 +447,7 @@
var/eaten = use_charges(user, 5, FALSE)
if(check_empty(user)) //Prevents divsion by zero
return
- reagents.trans_to(M, eaten, volume_multiplier, transfered_by = user, method = INGEST)
+ reagents.trans_to(M, eaten, volume_multiplier, transfered_by = user, methods = INGEST)
// check_empty() is called during afterattack
else
..()
@@ -671,7 +671,7 @@
H.lip_color = paint_color
H.update_body()
var/used = use_charges(user, 10, FALSE)
- reagents.trans_to(user, used, volume_multiplier, transfered_by = user, method = VAPOR)
+ reagents.trans_to(user, used, volume_multiplier, transfered_by = user, methods = VAPOR)
return (OXYLOSS)
@@ -738,7 +738,7 @@
else
target.set_opacity(initial(target.opacity))
. = use_charges(user, 2)
- reagents.trans_to(target, ., volume_multiplier, transfered_by = user, method = VAPOR)
+ reagents.trans_to(target, ., volume_multiplier, transfered_by = user, methods = VAPOR)
if(pre_noise || post_noise)
playsound(user.loc, 'sound/effects/spray.ogg', 5, TRUE, 5)
diff --git a/code/game/objects/items/tanks/watertank.dm b/code/game/objects/items/tanks/watertank.dm
index 4cfc6cc5bd7..ce2b709512a 100644
--- a/code/game/objects/items/tanks/watertank.dm
+++ b/code/game/objects/items/tanks/watertank.dm
@@ -419,7 +419,7 @@
return
var/used_amount = injection_amount/usage_ratio
- reagents.trans_to(user,used_amount,multiplier=usage_ratio, method = INJECT)
+ reagents.trans_to(user,used_amount,multiplier=usage_ratio, methods = INJECT)
update_icon()
user.update_inv_back() //for overlays update
diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm
index 920f463d247..4d1126983e8 100644
--- a/code/game/objects/objs.dm
+++ b/code/game/objects/objs.dm
@@ -361,7 +361,7 @@
. += custom_fire_overlay ? custom_fire_overlay : GLOB.fire_overlay
/// Handles exposing an object to reagents.
-/obj/expose_reagents(list/reagents, datum/reagents/source, method=TOUCH, volume_modifier=1, show_message=TRUE)
+/obj/expose_reagents(list/reagents, datum/reagents/source, methods=TOUCH, volume_modifier=1, show_message=TRUE)
if((. = ..()) & COMPONENT_NO_EXPOSE_REAGENTS)
return
diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm
index 48c9cb562c9..fba202d2544 100755
--- a/code/game/turfs/turf.dm
+++ b/code/game/turfs/turf.dm
@@ -584,7 +584,7 @@ GLOBAL_LIST_EMPTY(station_turfs)
. = BULLET_ACT_TURF
/// Handles exposing a turf to reagents.
-/turf/expose_reagents(list/reagents, datum/reagents/source, method=TOUCH, volume_modifier=1, show_message=TRUE)
+/turf/expose_reagents(list/reagents, datum/reagents/source, methods=TOUCH, volume_modifier=1, show_message=TRUE)
if((. = ..()) & COMPONENT_NO_EXPOSE_REAGENTS)
return
diff --git a/code/modules/antagonists/blob/blobstrains/_reagent.dm b/code/modules/antagonists/blob/blobstrains/_reagent.dm
index 3d210188d9b..0113013c957 100644
--- a/code/modules/antagonists/blob/blobstrains/_reagent.dm
+++ b/code/modules/antagonists/blob/blobstrains/_reagent.dm
@@ -27,7 +27,7 @@
can_synth = FALSE
-/datum/reagent/blob/expose_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
+/datum/reagent/blob/expose_mob(mob/living/M, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
if(M.stat == DEAD || istype(M, /mob/living/simple_animal/hostile/blob))
return 0 //the dead, and blob mobs, don't cause reactions
return round(reac_volume * min(1.5 - touch_protection, 1), 0.1) //full touch protection means 50% volume, any prot below 0.5 means 100% volume.
diff --git a/code/modules/antagonists/blob/blobstrains/blazing_oil.dm b/code/modules/antagonists/blob/blobstrains/blazing_oil.dm
index 88d8f5f71ff..1a717787dec 100644
--- a/code/modules/antagonists/blob/blobstrains/blazing_oil.dm
+++ b/code/modules/antagonists/blob/blobstrains/blazing_oil.dm
@@ -31,7 +31,7 @@
taste_description = "burning oil"
color = "#B68D00"
-/datum/reagent/blob/blazing_oil/expose_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
+/datum/reagent/blob/blazing_oil/expose_mob(mob/living/M, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
reac_volume = ..()
M.adjust_fire_stacks(round(reac_volume/10))
M.IgniteMob()
diff --git a/code/modules/antagonists/blob/blobstrains/cryogenic_poison.dm b/code/modules/antagonists/blob/blobstrains/cryogenic_poison.dm
index aa11c7ca90b..ebfc84f008d 100644
--- a/code/modules/antagonists/blob/blobstrains/cryogenic_poison.dm
+++ b/code/modules/antagonists/blob/blobstrains/cryogenic_poison.dm
@@ -16,7 +16,7 @@
color = "#8BA6E9"
taste_description = "brain freeze"
-/datum/reagent/blob/cryogenic_poison/expose_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
+/datum/reagent/blob/cryogenic_poison/expose_mob(mob/living/M, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
reac_volume = ..()
if(M.reagents)
M.reagents.add_reagent(/datum/reagent/consumable/frostoil, 0.3*reac_volume)
diff --git a/code/modules/antagonists/blob/blobstrains/distributed_neurons.dm b/code/modules/antagonists/blob/blobstrains/distributed_neurons.dm
index 96d4ccfde0c..4f2f802f78b 100644
--- a/code/modules/antagonists/blob/blobstrains/distributed_neurons.dm
+++ b/code/modules/antagonists/blob/blobstrains/distributed_neurons.dm
@@ -24,7 +24,7 @@
name = "Distributed Neurons"
color = "#E88D5D"
-/datum/reagent/blob/distributed_neurons/expose_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
+/datum/reagent/blob/distributed_neurons/expose_mob(mob/living/M, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
reac_volume = ..()
M.apply_damage(0.6*reac_volume, TOX)
if(O && ishuman(M))
diff --git a/code/modules/antagonists/blob/blobstrains/electromagnetic_web.dm b/code/modules/antagonists/blob/blobstrains/electromagnetic_web.dm
index 6d61732b147..02a8c914d12 100644
--- a/code/modules/antagonists/blob/blobstrains/electromagnetic_web.dm
+++ b/code/modules/antagonists/blob/blobstrains/electromagnetic_web.dm
@@ -29,7 +29,7 @@
taste_description = "pop rocks"
color = "#83ECEC"
-/datum/reagent/blob/electromagnetic_web/expose_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
+/datum/reagent/blob/electromagnetic_web/expose_mob(mob/living/M, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
reac_volume = ..()
if(prob(reac_volume*2))
M.emp_act(EMP_LIGHT)
diff --git a/code/modules/antagonists/blob/blobstrains/energized_jelly.dm b/code/modules/antagonists/blob/blobstrains/energized_jelly.dm
index 6e85d2110d6..f0ab16706a5 100644
--- a/code/modules/antagonists/blob/blobstrains/energized_jelly.dm
+++ b/code/modules/antagonists/blob/blobstrains/energized_jelly.dm
@@ -26,7 +26,7 @@
taste_description = "gelatin"
color = "#EFD65A"
-/datum/reagent/blob/energized_jelly/expose_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
+/datum/reagent/blob/energized_jelly/expose_mob(mob/living/M, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
reac_volume = ..()
M.losebreath += round(0.2*reac_volume)
M.adjustStaminaLoss(reac_volume * 1.2)
diff --git a/code/modules/antagonists/blob/blobstrains/explosive_lattice.dm b/code/modules/antagonists/blob/blobstrains/explosive_lattice.dm
index e19c1331969..3324df30f9b 100644
--- a/code/modules/antagonists/blob/blobstrains/explosive_lattice.dm
+++ b/code/modules/antagonists/blob/blobstrains/explosive_lattice.dm
@@ -31,7 +31,7 @@
taste_description = "the bomb"
color = "#8B2500"
-/datum/reagent/blob/explosive_lattice/expose_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
+/datum/reagent/blob/explosive_lattice/expose_mob(mob/living/M, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
var/initial_volume = reac_volume
reac_volume = ..()
if(reac_volume >= 10) //if it's not a spore cloud, bad time incoming
diff --git a/code/modules/antagonists/blob/blobstrains/networked_fibers.dm b/code/modules/antagonists/blob/blobstrains/networked_fibers.dm
index 6c07ca6c34b..cc08a4a197d 100644
--- a/code/modules/antagonists/blob/blobstrains/networked_fibers.dm
+++ b/code/modules/antagonists/blob/blobstrains/networked_fibers.dm
@@ -36,7 +36,7 @@
taste_description = "efficiency"
color = "#4F4441"
-/datum/reagent/blob/networked_fibers/expose_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
+/datum/reagent/blob/networked_fibers/expose_mob(mob/living/M, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
reac_volume = ..()
M.apply_damage(0.6*reac_volume, BRUTE, wound_bonus=CANT_WOUND)
if(!QDELETED(M))
diff --git a/code/modules/antagonists/blob/blobstrains/pressurized_slime.dm b/code/modules/antagonists/blob/blobstrains/pressurized_slime.dm
index 297e56ae2f8..7647d5ad958 100644
--- a/code/modules/antagonists/blob/blobstrains/pressurized_slime.dm
+++ b/code/modules/antagonists/blob/blobstrains/pressurized_slime.dm
@@ -39,7 +39,7 @@
taste_description = "a sponge"
color = "#AAAABB"
-/datum/reagent/blob/pressurized_slime/expose_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
+/datum/reagent/blob/pressurized_slime/expose_mob(mob/living/M, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
reac_volume = ..()
var/turf/open/T = get_turf(M)
if(istype(T) && prob(reac_volume))
diff --git a/code/modules/antagonists/blob/blobstrains/reactive_spines.dm b/code/modules/antagonists/blob/blobstrains/reactive_spines.dm
index fd39fe55df4..8286bb63fe9 100644
--- a/code/modules/antagonists/blob/blobstrains/reactive_spines.dm
+++ b/code/modules/antagonists/blob/blobstrains/reactive_spines.dm
@@ -24,7 +24,7 @@
taste_description = "rock"
color = "#9ACD32"
-/datum/reagent/blob/reactive_spines/expose_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
+/datum/reagent/blob/reactive_spines/expose_mob(mob/living/M, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
if(M.stat == DEAD || istype(M, /mob/living/simple_animal/hostile/blob))
return 0 //the dead, and blob mobs, don't cause reactions
M.adjustBruteLoss(reac_volume)
diff --git a/code/modules/antagonists/blob/blobstrains/regenerative_materia.dm b/code/modules/antagonists/blob/blobstrains/regenerative_materia.dm
index 1df852bb1c8..499f29da3c1 100644
--- a/code/modules/antagonists/blob/blobstrains/regenerative_materia.dm
+++ b/code/modules/antagonists/blob/blobstrains/regenerative_materia.dm
@@ -15,7 +15,7 @@
taste_description = "heaven"
color = "#A88FB7"
-/datum/reagent/blob/regenerative_materia/expose_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
+/datum/reagent/blob/regenerative_materia/expose_mob(mob/living/M, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
reac_volume = ..()
M.adjust_drugginess(reac_volume)
if(M.reagents)
diff --git a/code/modules/antagonists/blob/blobstrains/replicating_foam.dm b/code/modules/antagonists/blob/blobstrains/replicating_foam.dm
index 5d590d45084..a31426ca060 100644
--- a/code/modules/antagonists/blob/blobstrains/replicating_foam.dm
+++ b/code/modules/antagonists/blob/blobstrains/replicating_foam.dm
@@ -30,6 +30,6 @@
taste_description = "duplication"
color = "#7B5A57"
-/datum/reagent/blob/replicating_foam/expose_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
+/datum/reagent/blob/replicating_foam/expose_mob(mob/living/M, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
reac_volume = ..()
M.apply_damage(0.7*reac_volume, BRUTE, wound_bonus=CANT_WOUND)
diff --git a/code/modules/antagonists/blob/blobstrains/shifting_fragments.dm b/code/modules/antagonists/blob/blobstrains/shifting_fragments.dm
index d24a1a2008d..85ae2fd5df1 100644
--- a/code/modules/antagonists/blob/blobstrains/shifting_fragments.dm
+++ b/code/modules/antagonists/blob/blobstrains/shifting_fragments.dm
@@ -31,6 +31,6 @@
name = "Shifting Fragments"
color = "#C8963C"
-/datum/reagent/blob/shifting_fragments/expose_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
+/datum/reagent/blob/shifting_fragments/expose_mob(mob/living/M, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
reac_volume = ..()
M.apply_damage(0.7*reac_volume, BRUTE, wound_bonus=CANT_WOUND)
diff --git a/code/modules/antagonists/blob/blobstrains/synchronous_mesh.dm b/code/modules/antagonists/blob/blobstrains/synchronous_mesh.dm
index f9d558e3a8c..f0645badf29 100644
--- a/code/modules/antagonists/blob/blobstrains/synchronous_mesh.dm
+++ b/code/modules/antagonists/blob/blobstrains/synchronous_mesh.dm
@@ -29,7 +29,7 @@
taste_description = "toxic mold"
color = "#65ADA2"
-/datum/reagent/blob/synchronous_mesh/expose_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
+/datum/reagent/blob/synchronous_mesh/expose_mob(mob/living/M, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
reac_volume = ..()
M.apply_damage(0.2*reac_volume, BRUTE, wound_bonus=CANT_WOUND)
if(M && reac_volume)
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
index 1be2063863e..4597c0cc401 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
@@ -243,7 +243,7 @@
mob_occupant.Unconscious((mob_occupant.bodytemperature * unconscious_factor) * 2000)
if(beaker)
if(reagent_transfer == 0) // Magically transfer reagents. Because cryo magic.
- beaker.reagents.trans_to(occupant, 1, efficiency * 0.25, method = VAPOR) // Transfer reagents.
+ beaker.reagents.trans_to(occupant, 1, efficiency * 0.25, methods = VAPOR) // Transfer reagents.
air1.gases[/datum/gas/oxygen][MOLES] -= max(0,air1.gases[/datum/gas/oxygen][MOLES] - 2 / efficiency) //Let's use gas for this
air1.garbage_collect()
if(++reagent_transfer >= 10 * efficiency) // Throttle reagent transfer (higher efficiency will transfer the same amount but consume less from the beaker).
diff --git a/code/modules/detectivework/footprints_and_rag.dm b/code/modules/detectivework/footprints_and_rag.dm
index aaaa1ad1bff..6bb864262df 100644
--- a/code/modules/detectivework/footprints_and_rag.dm
+++ b/code/modules/detectivework/footprints_and_rag.dm
@@ -29,7 +29,7 @@
var/reagentlist = pretty_string_from_reagent_list(reagents)
var/log_object = "containing [reagentlist]"
if(user.a_intent == INTENT_HARM && !C.is_mouth_covered())
- reagents.trans_to(C, reagents.total_volume, transfered_by = user, method = INGEST)
+ reagents.trans_to(C, reagents.total_volume, transfered_by = user, methods = INGEST)
C.visible_message("[user] smothers \the [C] with \the [src]!", "[user] smothers you with \the [src]!", "You hear some struggling and muffled cries of surprise.")
log_combat(user, C, "smothered", src, log_object)
else
diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm
index 98902eec08a..f41282af2bc 100644
--- a/code/modules/food_and_drinks/drinks/drinks.dm
+++ b/code/modules/food_and_drinks/drinks/drinks.dm
@@ -47,7 +47,7 @@
SEND_SIGNAL(src, COMSIG_DRINK_DRANK, M, user)
var/fraction = min(gulp_size/reagents.total_volume, 1)
checkLiked(fraction, M)
- reagents.trans_to(M, gulp_size, transfered_by = user, method = INGEST)
+ reagents.trans_to(M, gulp_size, transfered_by = user, methods = INGEST)
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), TRUE)
if(iscarbon(M))
var/mob/living/carbon/carbon_drinker = M
diff --git a/code/modules/food_and_drinks/food/condiment.dm b/code/modules/food_and_drinks/food/condiment.dm
index c70ebc2d300..4dc24de4659 100644
--- a/code/modules/food_and_drinks/food/condiment.dm
+++ b/code/modules/food_and_drinks/food/condiment.dm
@@ -90,7 +90,7 @@
M.visible_message("[user] fed [M] from [src].", \
"[user] fed you from [src].")
log_combat(user, M, "fed", reagents.log_list())
- reagents.trans_to(M, 10, transfered_by = user, method = INGEST)
+ reagents.trans_to(M, 10, transfered_by = user, methods = INGEST)
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), TRUE)
return 1
diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm
index 1165f7c04d6..a189ea0f321 100644
--- a/code/modules/food_and_drinks/food/snacks.dm
+++ b/code/modules/food_and_drinks/food/snacks.dm
@@ -157,7 +157,7 @@ All foods are distributed among various categories. Use common sense.
if(reagents.total_volume)
SEND_SIGNAL(src, COMSIG_FOOD_EATEN, M, user)
var/fraction = min(bitesize / reagents.total_volume, 1)
- reagents.trans_to(M, bitesize, transfered_by = user, method = INGEST)
+ reagents.trans_to(M, bitesize, transfered_by = user, methods = INGEST)
bitecount++
On_Consume(M)
checkLiked(fraction, M)
diff --git a/code/modules/food_and_drinks/food/snacks_other.dm b/code/modules/food_and_drinks/food/snacks_other.dm
index f95999032bb..08e92760dc2 100644
--- a/code/modules/food_and_drinks/food/snacks_other.dm
+++ b/code/modules/food_and_drinks/food/snacks_other.dm
@@ -487,7 +487,7 @@
if(iscarbon(loc))
var/mob/living/carbon/C = loc
if (src == C.wear_mask) // if it's in the human/monkey mouth, transfer reagents to the mob
- if(!reagents.trans_to(C, REAGENTS_METABOLISM, method = INGEST))
+ if(!reagents.trans_to(C, REAGENTS_METABOLISM, methods = INGEST))
reagents.remove_any(REAGENTS_METABOLISM)
return
reagents.remove_any(REAGENTS_METABOLISM)
diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm
index 6585d77932c..8d6b671849c 100644
--- a/code/modules/hydroponics/plant_genes.dm
+++ b/code/modules/hydroponics/plant_genes.dm
@@ -457,7 +457,7 @@
var/mob/living/L = target
if(L.reagents && L.can_inject(null, 0))
var/injecting_amount = max(1, G.seed.potency*0.2) // Minimum of 1, max of 20
- G.reagents.trans_to(L, injecting_amount, method = INJECT)
+ G.reagents.trans_to(L, injecting_amount, methods = INJECT)
to_chat(target, "You are pricked by [G]!")
log_combat(G, L, "pricked and attempted to inject reagents from [G] to [L]. Last touched by: [G.fingerprintslast].")
diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm
index c6c93bfb488..7464b9f46e1 100644
--- a/code/modules/mining/lavaland/necropolis_chests.dm
+++ b/code/modules/mining/lavaland/necropolis_chests.dm
@@ -602,12 +602,12 @@
reagent_state = LIQUID
color = "#FFEBEB"
-/datum/reagent/flightpotion/expose_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1)
+/datum/reagent/flightpotion/expose_mob(mob/living/M, methods=TOUCH, reac_volume, show_message = 1)
if(iscarbon(M) && M.stat != DEAD)
var/mob/living/carbon/C = M
var/holycheck = ishumanbasic(C)
if(reac_volume < 5 || !(holycheck || islizard(C) || (ismoth(C) && C.dna.features["moth_wings"] != "Burnt Off"))) // implying xenohumans are holy //as with all things,
- if(method == INGEST && show_message)
+ if((methods & INGEST) && show_message)
to_chat(C, "You feel nothing but a terrible aftertaste.")
return ..()
if(C.dna.species.has_innate_wings)
diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm
index b8b79587f09..68981a88f57 100644
--- a/code/modules/mob/living/living_defense.dm
+++ b/code/modules/mob/living/living_defense.dm
@@ -440,17 +440,17 @@
/** Handles exposing a mob to reagents.
*
- * If the method is INGEST the mob tastes the reagents.
- * If the method is VAPOR it incorporates permiability protection.
+ * If the methods include INGEST the mob tastes the reagents.
+ * If the methods include VAPOR it incorporates permiability protection.
*/
-/mob/living/expose_reagents(list/reagents, datum/reagents/source, method=TOUCH, volume_modifier=1, show_message=TRUE)
+/mob/living/expose_reagents(list/reagents, datum/reagents/source, methods=TOUCH, volume_modifier=1, show_message=TRUE)
if((. = ..()) & COMPONENT_NO_EXPOSE_REAGENTS)
return
- if(method == INGEST)
+ if(methods & INGEST)
taste(source)
- var/touch_protection = (method == VAPOR) ? get_permeability_protection() : 0
+ var/touch_protection = (methods & VAPOR) ? get_permeability_protection() : 0
for(var/reagent in reagents)
var/datum/reagent/R = reagent
- . |= R.expose_mob(src, method, reagents[R], show_message, touch_protection)
+ . |= R.expose_mob(src, methods, reagents[R], show_message, touch_protection)
diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm
index 6ff23ece78f..27c9c4e31bc 100644
--- a/code/modules/paperwork/pen.dm
+++ b/code/modules/paperwork/pen.dm
@@ -182,7 +182,7 @@
if(reagents.total_volume)
if(M.reagents)
- reagents.trans_to(M, reagents.total_volume, transfered_by = user, method = INJECT)
+ reagents.trans_to(M, reagents.total_volume, transfered_by = user, methods = INJECT)
/obj/item/pen/sleepy/Initialize()
diff --git a/code/modules/plumbing/plumbers/bottler.dm b/code/modules/plumbing/plumbers/bottler.dm
index 650e6fbdfff..801b035349b 100644
--- a/code/modules/plumbing/plumbers/bottler.dm
+++ b/code/modules/plumbing/plumbers/bottler.dm
@@ -72,8 +72,8 @@
AM.forceMove(badspot)
if(istype(AM, /obj/item/slime_extract)) ///slime extracts need inject
AM.forceMove(goodspot)
- reagents.trans_to(AM, wanted_amount, transfered_by = src, method = INJECT)
+ reagents.trans_to(AM, wanted_amount, transfered_by = src, methods = INJECT)
return
if(istype(AM, /obj/item/slimecross/industrial)) ///no need to move slimecross industrial things
- reagents.trans_to(AM, wanted_amount, transfered_by = src, method = INJECT)
+ reagents.trans_to(AM, wanted_amount, transfered_by = src, methods = INJECT)
return
diff --git a/code/modules/projectiles/projectile/bullets/dart_syringe.dm b/code/modules/projectiles/projectile/bullets/dart_syringe.dm
index 51870d9a20d..b86f3a38a44 100644
--- a/code/modules/projectiles/projectile/bullets/dart_syringe.dm
+++ b/code/modules/projectiles/projectile/bullets/dart_syringe.dm
@@ -15,7 +15,7 @@
if(blocked != 100) // not completely blocked
if(M.can_inject(null, FALSE, def_zone, piercing)) // Pass the hit zone to see if it can inject by whether it hit the head or the body.
..()
- reagents.trans_to(M, reagents.total_volume, method = INJECT)
+ reagents.trans_to(M, reagents.total_volume, methods = INJECT)
return BULLET_ACT_HIT
else
blocked = 100
diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm
index 4bf005df06d..07793fe5c48 100644
--- a/code/modules/reagents/chemistry/holder.dm
+++ b/code/modules/reagents/chemistry/holder.dm
@@ -206,11 +206,11 @@
* * no_react - passed through to [/datum/reagents/proc/add_reagent]
* * mob/transfered_by - used for logging
* * remove_blacklisted - skips transferring of reagents with can_synth = FALSE
- * * method - passed through to [/datum/reagents/proc/react_single] and [/datum/reagent/proc/on_transfer]
+ * * methods - passed through to [/datum/reagents/proc/react_single] and [/datum/reagent/proc/on_transfer]
* * show_message - passed through to [/datum/reagents/proc/react_single]
* * round_robin - if round_robin=TRUE, so transfer 5 from 15 water, 15 sugar and 15 plasma becomes 10, 15, 15 instead of 13.3333, 13.3333 13.3333. Good if you hate floating point errors
*/
-/datum/reagents/proc/trans_to(obj/target, amount = 1, multiplier = 1, preserve_data = TRUE, no_react = FALSE, mob/transfered_by, remove_blacklisted = FALSE, method = null, show_message = TRUE, round_robin = FALSE)
+/datum/reagents/proc/trans_to(obj/target, amount = 1, multiplier = 1, preserve_data = TRUE, no_react = FALSE, mob/transfered_by, remove_blacklisted = FALSE, methods = NONE, show_message = TRUE, round_robin = FALSE)
var/list/cached_reagents = reagent_list
if(!target || !total_volume)
return
@@ -241,9 +241,9 @@
if(preserve_data)
trans_data = copy_data(T)
R.add_reagent(T.type, transfer_amount * multiplier, trans_data, chem_temp, no_react = 1) //we only handle reaction after every reagent has been transfered.
- if(method)
- R.expose_single(T, target_atom, method, part, show_message)
- T.on_transfer(target_atom, method, transfer_amount * multiplier)
+ if(methods)
+ R.expose_single(T, target_atom, methods, part, show_message)
+ T.on_transfer(target_atom, methods, transfer_amount * multiplier)
remove_reagent(T.type, transfer_amount)
transfer_log[T.type] = transfer_amount
else
@@ -261,9 +261,9 @@
transfer_amount = T.volume
R.add_reagent(T.type, transfer_amount * multiplier, trans_data, chem_temp, no_react = 1)
to_transfer = max(to_transfer - transfer_amount , 0)
- if(method)
- R.expose_single(T, target_atom, method, transfer_amount, show_message)
- T.on_transfer(target_atom, method, transfer_amount * multiplier)
+ if(methods)
+ R.expose_single(T, target_atom, methods, transfer_amount, show_message)
+ T.on_transfer(target_atom, methods, transfer_amount * multiplier)
remove_reagent(T.type, transfer_amount)
transfer_log[T.type] = transfer_amount
@@ -643,7 +643,7 @@
* * [/datum/reagent/proc/expose_turf]
* * [/datum/reagent/proc/expose_obj]
*/
-/datum/reagents/proc/expose(atom/A, method = TOUCH, volume_modifier = 1, show_message = 1)
+/datum/reagents/proc/expose(atom/A, methods = TOUCH, volume_modifier = 1, show_message = 1)
if(isnull(A))
return null
@@ -656,11 +656,11 @@
var/datum/reagent/R = reagent
reagents[R] = R.volume * volume_modifier
- return A.expose_reagents(reagents, src, method, volume_modifier, show_message)
+ return A.expose_reagents(reagents, src, methods, volume_modifier, show_message)
/// Same as [/datum/reagents/proc/expose] but only for one reagent
-/datum/reagents/proc/expose_single(datum/reagent/R, atom/A, method = TOUCH, volume_modifier = 1, show_message = TRUE)
+/datum/reagents/proc/expose_single(datum/reagent/R, atom/A, methods = TOUCH, volume_modifier = 1, show_message = TRUE)
if(isnull(A))
return null
@@ -670,7 +670,7 @@
return null
// Yes, we need the parentheses.
- return A.expose_reagents(list((R) = R.volume * volume_modifier), src, method, volume_modifier, show_message)
+ return A.expose_reagents(list((R) = R.volume * volume_modifier), src, methods, volume_modifier, show_message)
/// Is this holder full or not
/datum/reagents/proc/holder_full()
diff --git a/code/modules/reagents/chemistry/readme.md b/code/modules/reagents/chemistry/readme.md
index 0b498dd3bee..3ead7a5d185 100644
--- a/code/modules/reagents/chemistry/readme.md
+++ b/code/modules/reagents/chemistry/readme.md
@@ -64,12 +64,12 @@ The holder (reagents datum) is the datum that holds a list of all reagents curre
clear_reagents()
This proc removes ALL reagents from the holder.
- reaction(var/atom/A, var/method=TOUCH, var/volume_modifier=0)
+ expose(var/atom/A, var/methods=TOUCH, var/volume_modifier=0)
This proc calls the appropriate reaction procs of the reagents.
I.e. if A is an object, it will call the reagents expose_obj
- proc. The method var is used for reaction on mobs. It simply tells
+ proc. The methods var is used for reaction on mobs. It simply tells
us if the mob TOUCHed the reagent, if it INGESTed the reagent, if the reagent
- was VAPORIZEd on them, if the reagent was INJECTed, or transfered via a PATCH to them.
+ was VAPORIZEd on them, if the reagent was INJECTed, and/or transfered via a PATCH to them.
Since the volume can be checked in a reagents proc, you might want to
use the volume_modifier var to modifiy the passed value without actually
changing the volume of the reagents.
@@ -116,11 +116,12 @@ The holder (reagents datum) is the datum that holds a list of all reagents curre
# About Reagents:
Reagents are all the things you can mix and fille in bottles etc. This can be anything from rejuvs over water to ... iron. Each reagent also has a few procs - i'll explain those below.
```
- expose_mob(var/mob/living/L, var/method=TOUCH)
+ expose_mob(var/mob/living/L, var/methods=TOUCH)
This is called by the holder's reation proc.
This version is only called when the reagent
- reacts with a mob. The method var can be either
- TOUCH or INGEST. You'll want to put stuff like
+ reacts with a mob. The methods var can be any
+ combination of TOUCH, INGEST, VAPOR, PATCH,
+ and INJECT. You'll want to put stuff like
acid-facemelting in here.
expose_obj(var/obj/O)
diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm
index 12ec7b4de92..3f25609be11 100644
--- a/code/modules/reagents/chemistry/reagents.dm
+++ b/code/modules/reagents/chemistry/reagents.dm
@@ -94,10 +94,10 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent())
return
/// Applies this reagent to a [/mob/living]
-/datum/reagent/proc/expose_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1, touch_protection = 0)
+/datum/reagent/proc/expose_mob(mob/living/M, methods=TOUCH, reac_volume, show_message = 1, touch_protection = 0)
if(!istype(M))
return 0
- if(method == VAPOR) //smoke, foam, spray
+ if(methods & VAPOR) //smoke, foam, spray
if(M.reagents)
var/modifier = clamp((1 - touch_protection), 0, 1)
var/amount = round(reac_volume*modifier, 0.1)
@@ -121,7 +121,7 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent())
holder.remove_reagent(type, metabolization_rate * M.metabolism_efficiency) //By default it slowly disappears.
///Called after a reagent is transfered
-/datum/reagent/proc/on_transfer(atom/A, method=TOUCH, trans_volume)
+/datum/reagent/proc/on_transfer(atom/A, methods=TOUCH, trans_volume)
return
diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
index f11c6506f79..e64b8145f77 100644
--- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
@@ -62,11 +62,11 @@ All effects don't start immediately, but rather get worse over time; the rate is
O.visible_message("[O]'s ink is smeared by [name], but doesn't wash away!")
return
-/datum/reagent/consumable/ethanol/expose_mob(mob/living/M, method=TOUCH, reac_volume)//Splashing people with ethanol isn't quite as good as fuel.
+/datum/reagent/consumable/ethanol/expose_mob(mob/living/M, methods=TOUCH, reac_volume)//Splashing people with ethanol isn't quite as good as fuel.
if(!isliving(M))
return
- if(method in list(TOUCH, VAPOR, PATCH))
+ if(methods & (TOUCH|VAPOR|PATCH))
M.adjust_fire_stacks(reac_volume / 15)
if(iscarbon(M))
diff --git a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
index f6cd5e84129..f5b2989f3df 100644
--- a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
@@ -123,8 +123,8 @@
..()
. = TRUE
-/datum/reagent/medicine/c2/probital/on_transfer(atom/A, method=INGEST, trans_volume)
- if(method != INGEST || !iscarbon(A))
+/datum/reagent/medicine/c2/probital/on_transfer(atom/A, methods=INGEST, trans_volume)
+ if(!(methods & INGEST) || !iscarbon(A))
return
A.reagents.remove_reagent(/datum/reagent/medicine/c2/probital, trans_volume * 0.05)
@@ -189,8 +189,8 @@
..()
. = TRUE
-/datum/reagent/medicine/c2/hercuri/expose_mob(mob/living/carbon/M, method=VAPOR, reac_volume)
- if(method != VAPOR)
+/datum/reagent/medicine/c2/hercuri/expose_mob(mob/living/carbon/M, methods=VAPOR, reac_volume)
+ if(!(methods & VAPOR))
return
M.adjust_bodytemperature(-reac_volume * TEMPERATURE_DAMAGE_COEFFICIENT, 50)
@@ -336,8 +336,8 @@
overdose_threshold = 6
var/conversion_amount
-/datum/reagent/medicine/c2/syriniver/on_transfer(atom/A, method=INJECT, trans_volume)
- if(method != INJECT || !iscarbon(A))
+/datum/reagent/medicine/c2/syriniver/on_transfer(atom/A, methods=INJECT, trans_volume)
+ if(!(methods & INJECT) || !iscarbon(A))
return
var/mob/living/carbon/C = A
if(trans_volume >= 0.6) //prevents cheesing with ultralow doses.
@@ -412,12 +412,12 @@
reagent_state = LIQUID
color = "#FFEBEB"
-/datum/reagent/medicine/c2/synthflesh/expose_mob(mob/living/M, method=TOUCH, reac_volume,show_message = 1)
+/datum/reagent/medicine/c2/synthflesh/expose_mob(mob/living/M, methods=TOUCH, reac_volume,show_message = 1)
if(iscarbon(M))
var/mob/living/carbon/carbies = M
if (carbies.stat == DEAD)
show_message = 0
- if(method in list(PATCH, TOUCH, VAPOR))
+ if(methods & (PATCH|TOUCH|VAPOR))
var/harmies = min(carbies.getBruteLoss(),carbies.adjustBruteLoss(-1.25 * reac_volume)*-1)
var/burnies = min(carbies.getFireLoss(),carbies.adjustFireLoss(-1.25 * reac_volume)*-1)
for(var/i in carbies.all_wounds)
diff --git a/code/modules/reagents/chemistry/reagents/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drink_reagents.dm
index 16776e5f1e6..201e4c8cf8c 100644
--- a/code/modules/reagents/chemistry/reagents/drink_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/drink_reagents.dm
@@ -534,9 +534,9 @@
glass_name = "glass of Pwr Game"
glass_desc = "Goes well with a Vlad's salad."
-/datum/reagent/consumable/pwr_game/expose_mob(mob/living/C, method=TOUCH, reac_volume)
+/datum/reagent/consumable/pwr_game/expose_mob(mob/living/C, methods=TOUCH, reac_volume)
..()
- if(C?.mind?.get_skill_level(/datum/skill/gaming) >= SKILL_LEVEL_LEGENDARY && method==INGEST && !HAS_TRAIT(C, TRAIT_GAMERGOD))
+ if(C?.mind?.get_skill_level(/datum/skill/gaming) >= SKILL_LEVEL_LEGENDARY && (methods & INGEST) && !HAS_TRAIT(C, TRAIT_GAMERGOD))
ADD_TRAIT(C, TRAIT_GAMERGOD, "pwr_game")
to_chat(C, "As you imbibe the Pwr Game, your gamer third eye opens... \
You feel as though a great secret of the universe has been made known to you...")
diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm
index 52fe5bcbfc6..12f045771a0 100755
--- a/code/modules/reagents/chemistry/reagents/food_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm
@@ -24,20 +24,19 @@
return
holder.remove_reagent(type, metabolization_rate)
-/datum/reagent/consumable/expose_mob(mob/living/M, method=TOUCH, reac_volume)
- if(method == INGEST)
- if (quality && !HAS_TRAIT(M, TRAIT_AGEUSIA))
- switch(quality)
- if (DRINK_NICE)
- SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "quality_drink", /datum/mood_event/quality_nice)
- if (DRINK_GOOD)
- SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "quality_drink", /datum/mood_event/quality_good)
- if (DRINK_VERYGOOD)
- SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "quality_drink", /datum/mood_event/quality_verygood)
- if (DRINK_FANTASTIC)
- SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "quality_drink", /datum/mood_event/quality_fantastic)
- if (FOOD_AMAZING)
- SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "quality_food", /datum/mood_event/amazingtaste)
+/datum/reagent/consumable/expose_mob(mob/living/M, methods=TOUCH, reac_volume)
+ if((methods & INGEST) && quality && !HAS_TRAIT(M, TRAIT_AGEUSIA))
+ switch(quality)
+ if (DRINK_NICE)
+ SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "quality_drink", /datum/mood_event/quality_nice)
+ if (DRINK_GOOD)
+ SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "quality_drink", /datum/mood_event/quality_good)
+ if (DRINK_VERYGOOD)
+ SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "quality_drink", /datum/mood_event/quality_verygood)
+ if (DRINK_FANTASTIC)
+ SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "quality_drink", /datum/mood_event/quality_fantastic)
+ if (FOOD_AMAZING)
+ SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "quality_food", /datum/mood_event/amazingtaste)
return ..()
/datum/reagent/consumable/nutriment
@@ -135,18 +134,18 @@
F.fry(volume)
F.reagents.add_reagent(/datum/reagent/consumable/cooking_oil, reac_volume)
-/datum/reagent/consumable/cooking_oil/expose_mob(mob/living/M, method = TOUCH, reac_volume, show_message = 1, touch_protection = 0)
+/datum/reagent/consumable/cooking_oil/expose_mob(mob/living/M, methods = TOUCH, reac_volume, show_message = 1, touch_protection = 0)
if(!istype(M))
return
var/boiling = FALSE
if(holder && holder.chem_temp >= fry_temperature)
boiling = TRUE
- if(method != VAPOR && method != TOUCH) //Directly coats the mob, and doesn't go into their bloodstream
+ if(!(methods & (VAPOR|TOUCH))) //Directly coats the mob, and doesn't go into their bloodstream
return ..()
if(!boiling)
return TRUE
var/oil_damage = ((holder.chem_temp / fry_temperature) * 0.33) //Damage taken per unit
- if(method == TOUCH)
+ if(methods & TOUCH)
oil_damage *= 1 - M.get_permeability_protection()
var/FryLoss = round(min(38, oil_damage * reac_volume))
if(!HAS_TRAIT(M, TRAIT_OIL_FRIED))
@@ -306,12 +305,12 @@
color = "#B31008" // rgb: 179, 16, 8
taste_description = "scorching agony"
-/datum/reagent/consumable/condensedcapsaicin/expose_mob(mob/living/M, method=TOUCH, reac_volume)
+/datum/reagent/consumable/condensedcapsaicin/expose_mob(mob/living/M, methods=TOUCH, reac_volume)
if(!ishuman(M) && !ismonkey(M))
return
var/mob/living/carbon/victim = M
- if(method == TOUCH || method == VAPOR)
+ if(methods & (TOUCH|VAPOR))
var/pepper_proof = victim.is_pepper_proof()
//check for protection
@@ -326,7 +325,7 @@
victim.add_movespeed_modifier(/datum/movespeed_modifier/reagent/pepperspray)
addtimer(CALLBACK(victim, /mob.proc/remove_movespeed_modifier, /datum/movespeed_modifier/reagent/pepperspray), 10 SECONDS)
victim.update_damage_hud()
- if(method == INGEST)
+ if(methods & INGEST)
if(!holder.has_reagent(/datum/reagent/consumable/milk))
if(prob(15))
to_chat(M, "[pick("Your head pounds.", "Your mouth feels like it's on fire.", "You feel dizzy.")]")
@@ -350,7 +349,7 @@
color = "#FFFFFF" // rgb: 255,255,255
taste_description = "salt"
-/datum/reagent/consumable/sodiumchloride/expose_mob(mob/living/M, method=TOUCH, reac_volume)
+/datum/reagent/consumable/sodiumchloride/expose_mob(mob/living/M, methods=TOUCH, reac_volume)
if(!istype(M))
return
if(M.has_bane(BANE_SALT))
@@ -595,8 +594,8 @@
M.adjustToxLoss(-1*REM, 0)
..()
-/datum/reagent/consumable/honey/expose_mob(mob/living/M, method=TOUCH, reac_volume)
- if(iscarbon(M) && (method in list(TOUCH, VAPOR, PATCH)))
+/datum/reagent/consumable/honey/expose_mob(mob/living/M, methods=TOUCH, reac_volume)
+ if(iscarbon(M) && (methods & (TOUCH|VAPOR|PATCH)))
var/mob/living/carbon/C = M
for(var/s in C.surgeries)
var/datum/surgery/S = s
@@ -621,18 +620,12 @@
color = "#c0c9a0"
taste_description = "bitterness"
-/datum/reagent/consumable/tearjuice/expose_mob(mob/living/M, method=TOUCH, reac_volume)
+/datum/reagent/consumable/tearjuice/expose_mob(mob/living/M, methods=TOUCH, reac_volume)
if(!istype(M))
return
var/unprotected = FALSE
- switch(method)
- if(INGEST)
- unprotected = TRUE
- if(INJECT)
- unprotected = FALSE
- else //Touch or vapor
- if(!M.is_mouth_covered() && !M.is_eyes_covered())
- unprotected = TRUE
+ if((methods & INGEST) || ((methods & (TOUCH|PATCH|VAPOR)) && !M.is_mouth_covered() && !M.is_eyes_covered()))
+ unprotected = TRUE
if(unprotected)
if(!M.getorganslot(ORGAN_SLOT_EYES)) //can't blind somebody with no eyes
to_chat(M, "Your eye sockets feel wet.")
@@ -747,8 +740,8 @@
color = "#97ee63"
taste_description = "pure electricity"
-/datum/reagent/consumable/liquidelectricity/expose_mob(mob/living/M, method=TOUCH, reac_volume) //can't be on life because of the way blood works.
- if((method == INGEST || method == INJECT || method == PATCH) && iscarbon(M))
+/datum/reagent/consumable/liquidelectricity/expose_mob(mob/living/M, methods=TOUCH, reac_volume) //can't be on life because of the way blood works.
+ if((methods & (INGEST|INJECT|PATCH)) && iscarbon(M))
var/mob/living/carbon/C = M
var/obj/item/organ/stomach/ethereal/stomach = C.getorganslot(ORGAN_SLOT_STOMACH)
if(istype(stomach))
diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
index ec6a4763ded..f47b6976db2 100644
--- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
@@ -232,7 +232,7 @@
..()
. = 1
-/datum/reagent/medicine/rezadone/expose_mob(mob/living/M, method=TOUCH, reac_volume)
+/datum/reagent/medicine/rezadone/expose_mob(mob/living/M, methods=TOUCH, reac_volume)
. = ..()
if(iscarbon(M))
var/mob/living/carbon/patient = M
@@ -326,9 +326,9 @@
..()
return TRUE
-/datum/reagent/medicine/mine_salve/expose_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1)
+/datum/reagent/medicine/mine_salve/expose_mob(mob/living/M, methods=TOUCH, reac_volume, show_message = 1)
if(iscarbon(M) && M.stat != DEAD)
- if(method in list(INGEST, VAPOR, INJECT))
+ if(methods & (INGEST|VAPOR|INJECT))
M.adjust_nutrition(-5)
if(show_message)
to_chat(M, "Your stomach feels empty and cramps!")
@@ -766,13 +766,13 @@
if(chems.has_reagent(type, 1))
mytray.spawnplant()
-/datum/reagent/medicine/strange_reagent/expose_mob(mob/living/M, method=TOUCH, reac_volume)
+/datum/reagent/medicine/strange_reagent/expose_mob(mob/living/M, methods=TOUCH, reac_volume)
if(M.stat != DEAD)
return ..()
if(M.suiciding || M.hellbound) //they are never coming back
M.visible_message("[M]'s body does not react...")
return
- if(iscarbon(M) && method != INGEST) //simplemobs can still be splashed
+ if(iscarbon(M) && !(methods & INGEST)) //simplemobs can still be splashed
return ..()
var/amount_to_revive = round((M.getBruteLoss()+M.getFireLoss())/20)
if(M.getBruteLoss()+M.getFireLoss() >= 200 || HAS_TRAIT(M, TRAIT_HUSK) || reac_volume < amount_to_revive) //body will die from brute+burn on revive or you haven't provided enough to revive.
@@ -1272,8 +1272,8 @@
..()
. = 1
-/datum/reagent/medicine/polypyr/expose_mob(mob/living/M, method=TOUCH, reac_volume)
- if(method == TOUCH || method == VAPOR)
+/datum/reagent/medicine/polypyr/expose_mob(mob/living/M, methods=TOUCH, reac_volume)
+ if(methods & (TOUCH|VAPOR))
if(M && ishuman(M) && reac_volume >= 0.5)
var/mob/living/carbon/human/H = M
H.hair_color = "92f"
diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm
index 88b875707a9..13840f96384 100644
--- a/code/modules/reagents/chemistry/reagents/other_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm
@@ -16,7 +16,7 @@
if(chems.has_reagent(src.type, 1))
mytray.adjustPests(rand(2,3))
-/datum/reagent/blood/expose_mob(mob/living/L, method=TOUCH, reac_volume)
+/datum/reagent/blood/expose_mob(mob/living/L, methods=TOUCH, reac_volume)
if(data && data["viruses"])
for(var/thing in data["viruses"])
var/datum/disease/D = thing
@@ -24,14 +24,14 @@
if((D.spread_flags & DISEASE_SPREAD_SPECIAL) || (D.spread_flags & DISEASE_SPREAD_NON_CONTAGIOUS))
continue
- if((method == TOUCH || method == VAPOR) && (D.spread_flags & DISEASE_SPREAD_CONTACT_FLUIDS))
+ if((methods & (TOUCH|VAPOR)) && (D.spread_flags & DISEASE_SPREAD_CONTACT_FLUIDS))
L.ContactContractDisease(D)
else //ingest, patch or inject
L.ForceContractDisease(D)
if(iscarbon(L))
var/mob/living/carbon/C = L
- if(C.get_blood_id() == /datum/reagent/blood && (method == INJECT || (method == INGEST && C.dna && C.dna.species && (DRINKSBLOOD in C.dna.species.species_traits))))
+ if(C.get_blood_id() == /datum/reagent/blood && ((methods & INJECT) || ((methods & INGEST) && C.dna && C.dna.species && (DRINKSBLOOD in C.dna.species.species_traits))))
if(!data || !(data["blood_type"] in get_safe_blood(C.dna.blood_type)))
C.reagents.add_reagent(/datum/reagent/toxin, reac_volume * 0.5)
else
@@ -105,8 +105,8 @@
color = "#C81040" // rgb: 200, 16, 64
taste_description = "slime"
-/datum/reagent/vaccine/expose_mob(mob/living/L, method=TOUCH, reac_volume)
- if(islist(data) && (method == INGEST || method == INJECT))
+/datum/reagent/vaccine/expose_mob(mob/living/L, methods=TOUCH, reac_volume)
+ if(islist(data) && (methods & (INGEST|INJECT)))
for(var/thing in L.diseases)
var/datum/disease/D = thing
if(D.GetDiseaseID() in data)
@@ -193,10 +193,10 @@
* Water reaction to a mob
*/
-/datum/reagent/water/expose_mob(mob/living/M, method=TOUCH, reac_volume)//Splashing people with water can help put them out!
+/datum/reagent/water/expose_mob(mob/living/M, methods=TOUCH, reac_volume)//Splashing people with water can help put them out!
if(!istype(M))
return
- if(method == TOUCH)
+ if(methods & TOUCH)
M.adjust_fire_stacks(-(reac_volume / 10))
M.ExtinguishMob()
..()
@@ -232,7 +232,7 @@
REMOVE_TRAIT(L, TRAIT_HOLY, type)
..()
-/datum/reagent/water/holywater/expose_mob(mob/living/M, method=TOUCH, reac_volume)
+/datum/reagent/water/holywater/expose_mob(mob/living/M, methods=TOUCH, reac_volume)
if(iscultist(M))
to_chat(M, "A vile holiness begins to spread its shining tendrils through your mind, purging the Geometer of Blood's influence!")
..()
@@ -316,10 +316,10 @@
* Water reaction to a mob
*/
-/datum/reagent/hydrogen_peroxide/expose_mob(mob/living/M, method=TOUCH, reac_volume)//Splashing people with h2o2 can burn them !
+/datum/reagent/hydrogen_peroxide/expose_mob(mob/living/M, methods=TOUCH, reac_volume)//Splashing people with h2o2 can burn them !
if(!istype(M))
return
- if(method == TOUCH)
+ if(methods & TOUCH)
M.adjustFireLoss(2, 0) // burns
..()
@@ -329,8 +329,8 @@
taste_description = "suffering"
metabolization_rate = 2.5 * REAGENTS_METABOLISM //1u/tick
-/datum/reagent/fuel/unholywater/expose_mob(mob/living/M, method=TOUCH, reac_volume)
- if(method == TOUCH || method == VAPOR)
+/datum/reagent/fuel/unholywater/expose_mob(mob/living/M, methods=TOUCH, reac_volume)
+ if(methods & (TOUCH|VAPOR))
M.reagents.add_reagent(type,reac_volume/4)
return
return ..()
@@ -400,9 +400,9 @@
overdose_threshold = 11 //Slightly more than one un-nozzled spraybottle.
taste_description = "sour oranges"
-/datum/reagent/spraytan/expose_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1)
+/datum/reagent/spraytan/expose_mob(mob/living/M, methods=TOUCH, reac_volume, show_message = 1)
if(ishuman(M))
- if(method == PATCH || method == VAPOR)
+ if(methods & (PATCH|VAPOR))
var/mob/living/carbon/human/N = M
if(N.dna.species.id == "human")
switch(N.skin_tone)
@@ -459,9 +459,8 @@
- if(method == INGEST)
- if(show_message)
- to_chat(M, "That tasted horrible.")
+ if((methods & INGEST) && show_message)
+ to_chat(M, "That tasted horrible.")
..()
@@ -685,8 +684,8 @@
color = "#13BC5E" // rgb: 19, 188, 94
taste_description = "slime"
-/datum/reagent/aslimetoxin/expose_mob(mob/living/L, method=TOUCH, reac_volume)
- if(method != TOUCH)
+/datum/reagent/aslimetoxin/expose_mob(mob/living/L, methods=TOUCH, reac_volume)
+ if(methods & ~TOUCH)
L.ForceContractDisease(new /datum/disease/transformation/slime(), FALSE, TRUE)
/datum/reagent/gluttonytoxin
@@ -696,7 +695,7 @@
can_synth = FALSE
taste_description = "decay"
-/datum/reagent/gluttonytoxin/expose_mob(mob/living/L, method=TOUCH, reac_volume)
+/datum/reagent/gluttonytoxin/expose_mob(mob/living/L, methods=TOUCH, reac_volume)
L.ForceContractDisease(new /datum/disease/transformation/morph(), FALSE, TRUE)
/datum/reagent/serotrotium
@@ -905,8 +904,8 @@
color = "#D0EFEE" // space cleaner but lighter
taste_description = "bitterness"
-/datum/reagent/space_cleaner/sterilizine/expose_mob(mob/living/carbon/C, method=TOUCH, reac_volume)
- if(method in list(TOUCH, VAPOR, PATCH))
+/datum/reagent/space_cleaner/sterilizine/expose_mob(mob/living/carbon/C, methods=TOUCH, reac_volume)
+ if(methods & (TOUCH|VAPOR|PATCH))
for(var/s in C.surgeries)
var/datum/surgery/S = s
S.speed_modifier = max(0.2, S.speed_modifier)
@@ -926,7 +925,7 @@
C.blood_volume += 0.5
..()
-/datum/reagent/iron/expose_mob(mob/living/M, method=TOUCH, reac_volume)
+/datum/reagent/iron/expose_mob(mob/living/M, methods=TOUCH, reac_volume)
if(M.has_bane(BANE_IRON)) //If the target is weak to cold iron, then poison them.
if(holder && holder.chem_temp < 100) // COLD iron.
M.reagents.add_reagent(/datum/reagent/toxin, reac_volume)
@@ -948,7 +947,7 @@
taste_description = "expensive yet reasonable metal"
material = /datum/material/silver
-/datum/reagent/silver/expose_mob(mob/living/M, method=TOUCH, reac_volume)
+/datum/reagent/silver/expose_mob(mob/living/M, methods=TOUCH, reac_volume)
if(M.has_bane(BANE_SILVER))
M.reagents.add_reagent(/datum/reagent/toxin, reac_volume)
..()
@@ -1006,8 +1005,8 @@
taste_description = "fizzling blue"
material = /datum/material/bluespace
-/datum/reagent/bluespace/expose_mob(mob/living/M, method=TOUCH, reac_volume)
- if(method == TOUCH || method == VAPOR)
+/datum/reagent/bluespace/expose_mob(mob/living/M, methods=TOUCH, reac_volume)
+ if(methods & (TOUCH|VAPOR))
do_teleport(M, get_turf(M), (reac_volume / 5), asoundin = 'sound/effects/phasein.ogg', channel = TELEPORT_CHANNEL_BLUESPACE) //4 tiles per crystal
..()
@@ -1046,8 +1045,8 @@
glass_name = "glass of welder fuel"
glass_desc = "Unless you're an industrial tool, this is probably not safe for consumption."
-/datum/reagent/fuel/expose_mob(mob/living/M, method=TOUCH, reac_volume)//Splashing people with welding fuel to make them easy to ignite!
- if(method == TOUCH || method == VAPOR)
+/datum/reagent/fuel/expose_mob(mob/living/M, methods=TOUCH, reac_volume)//Splashing people with welding fuel to make them easy to ignite!
+ if(methods & (TOUCH|VAPOR))
M.adjust_fire_stacks(reac_volume / 10)
return
..()
@@ -1080,8 +1079,8 @@
for(var/mob/living/simple_animal/slime/M in T)
M.adjustToxLoss(rand(5,10))
-/datum/reagent/space_cleaner/expose_mob(mob/living/M, method=TOUCH, reac_volume)
- if(method == TOUCH || method == VAPOR)
+/datum/reagent/space_cleaner/expose_mob(mob/living/M, methods=TOUCH, reac_volume)
+ if(methods & (TOUCH|VAPOR))
M.wash(clean_types)
/datum/reagent/space_cleaner/ez_clean
@@ -1096,9 +1095,9 @@
M.adjustToxLoss(3.33)
..()
-/datum/reagent/space_cleaner/ez_clean/expose_mob(mob/living/M, method=TOUCH, reac_volume)
+/datum/reagent/space_cleaner/ez_clean/expose_mob(mob/living/M, methods=TOUCH, reac_volume)
..()
- if((method == TOUCH || method == VAPOR) && !issilicon(M))
+ if((methods & (TOUCH|VAPOR)) && !issilicon(M))
M.adjustBruteLoss(1.5)
M.adjustFireLoss(1.5)
@@ -1137,8 +1136,8 @@
can_synth = FALSE
taste_description = "sludge"
-/datum/reagent/nanomachines/expose_mob(mob/living/L, method=TOUCH, reac_volume, show_message = 1, touch_protection = 0)
- if(method==PATCH || method==INGEST || method==INJECT || (method == VAPOR && prob(min(reac_volume,100)*(1 - touch_protection))))
+/datum/reagent/nanomachines/expose_mob(mob/living/L, methods=TOUCH, reac_volume, show_message = 1, touch_protection = 0)
+ if((methods & (PATCH|INGEST|INJECT)) || ((methods & VAPOR) && prob(min(reac_volume,100)*(1 - touch_protection))))
L.ForceContractDisease(new /datum/disease/transformation/robot(), FALSE, TRUE)
/datum/reagent/xenomicrobes
@@ -1148,8 +1147,8 @@
can_synth = FALSE
taste_description = "sludge"
-/datum/reagent/xenomicrobes/expose_mob(mob/living/L, method=TOUCH, reac_volume, show_message = 1, touch_protection = 0)
- if(method==PATCH || method==INGEST || method==INJECT || (method == VAPOR && prob(min(reac_volume,100)*(1 - touch_protection))))
+/datum/reagent/xenomicrobes/expose_mob(mob/living/L, methods=TOUCH, reac_volume, show_message = 1, touch_protection = 0)
+ if((methods & (PATCH|INGEST|INJECT)) || ((methods & VAPOR) && prob(min(reac_volume,100)*(1 - touch_protection))))
L.ForceContractDisease(new /datum/disease/transformation/xeno(), FALSE, TRUE)
/datum/reagent/fungalspores
@@ -1159,8 +1158,8 @@
can_synth = FALSE
taste_description = "slime"
-/datum/reagent/fungalspores/expose_mob(mob/living/L, method=TOUCH, reac_volume, show_message = 1, touch_protection = 0)
- if(method==PATCH || method==INGEST || method==INJECT || (method == VAPOR && prob(min(reac_volume,100)*(1 - touch_protection))))
+/datum/reagent/fungalspores/expose_mob(mob/living/L, methods=TOUCH, reac_volume, show_message = 1, touch_protection = 0)
+ if((methods & (PATCH|INGEST|INJECT)) || ((methods & VAPOR) && prob(min(reac_volume,100)*(1 - touch_protection))))
L.ForceContractDisease(new /datum/disease/tuberculosis(), FALSE, TRUE)
/datum/reagent/snail
@@ -1170,8 +1169,8 @@
taste_description = "goo"
can_synth = FALSE //special orange man request
-/datum/reagent/snail/expose_mob(mob/living/L, method=TOUCH, reac_volume, show_message = 1, touch_protection = 0)
- if(method==PATCH || method==INGEST || method==INJECT || (method == VAPOR && prob(min(reac_volume,100)*(1 - touch_protection))))
+/datum/reagent/snail/expose_mob(mob/living/L, methods=TOUCH, reac_volume, show_message = 1, touch_protection = 0)
+ if((methods & (PATCH|INGEST|INJECT)) || ((methods & VAPOR) && prob(min(reac_volume,100)*(1 - touch_protection))))
L.ForceContractDisease(new /datum/disease/gastrolosis(), FALSE, TRUE)
/datum/reagent/fluorosurfactant//foam precursor
@@ -1264,8 +1263,8 @@
var/temp = holder ? holder.chem_temp : T20C
T.atmos_spawn_air("n2o=[reac_volume/5];TEMP=[temp]")
-/datum/reagent/nitrous_oxide/expose_mob(mob/living/M, method=TOUCH, reac_volume)
- if(method == VAPOR)
+/datum/reagent/nitrous_oxide/expose_mob(mob/living/M, methods=TOUCH, reac_volume)
+ if(methods & VAPOR)
M.drowsyness += max(round(reac_volume, 1), 2)
/datum/reagent/nitrous_oxide/on_mob_life(mob/living/carbon/M)
@@ -1693,10 +1692,10 @@
taste_description = "acid"
-/datum/reagent/acetone_oxide/expose_mob(mob/living/M, method=TOUCH, reac_volume)//Splashing people kills people!
+/datum/reagent/acetone_oxide/expose_mob(mob/living/M, methods=TOUCH, reac_volume)//Splashing people kills people!
if(!istype(M))
return
- if(method == TOUCH)
+ if(methods & TOUCH)
M.adjustFireLoss(2, FALSE) // burns,
M.adjust_fire_stacks((reac_volume / 10))
..()
@@ -1773,8 +1772,8 @@
/datum/reagent/hair_dye/proc/UpdateColor()
color = pick(potential_colors)
-/datum/reagent/hair_dye/expose_mob(mob/living/M, method=TOUCH, reac_volume)
- if(method == TOUCH || method == VAPOR)
+/datum/reagent/hair_dye/expose_mob(mob/living/M, methods=TOUCH, reac_volume)
+ if(methods & (TOUCH|VAPOR))
if(M && ishuman(M))
var/mob/living/carbon/human/H = M
H.hair_color = pick(potential_colors)
@@ -1788,16 +1787,15 @@
color = "#A86B45" //hair is brown
taste_description = "sourness"
-/datum/reagent/barbers_aid/expose_mob(mob/living/M, method=TOUCH, reac_volume)
- if(method == TOUCH || method == VAPOR)
- if(M && ishuman(M) && !HAS_TRAIT(M, TRAIT_BALD))
- var/mob/living/carbon/human/H = M
- var/datum/sprite_accessory/hair/picked_hair = pick(GLOB.hairstyles_list)
- var/datum/sprite_accessory/facial_hair/picked_beard = pick(GLOB.facial_hairstyles_list)
- to_chat(H, "Hair starts sprouting from your scalp.")
- H.hairstyle = picked_hair
- H.facial_hairstyle = picked_beard
- H.update_hair()
+/datum/reagent/barbers_aid/expose_mob(mob/living/M, methods=TOUCH, reac_volume)
+ if((methods & (TOUCH|VAPOR)) && ishuman(M) && !HAS_TRAIT(M, TRAIT_BALD))
+ var/mob/living/carbon/human/exposed_human = M
+ var/datum/sprite_accessory/hair/picked_hair = pick(GLOB.hairstyles_list)
+ var/datum/sprite_accessory/facial_hair/picked_beard = pick(GLOB.facial_hairstyles_list)
+ to_chat(exposed_human, "Hair starts sprouting from your scalp.")
+ exposed_human.hairstyle = picked_hair
+ exposed_human.facial_hairstyle = picked_beard
+ exposed_human.update_hair()
/datum/reagent/concentrated_barbers_aid
name = "Concentrated Barber's Aid"
@@ -1806,8 +1804,8 @@
color = "#7A4E33" //hair is dark browmn
taste_description = "sourness"
-/datum/reagent/concentrated_barbers_aid/expose_mob(mob/living/M, method=TOUCH, reac_volume)
- if(method == TOUCH || method == VAPOR)
+/datum/reagent/concentrated_barbers_aid/expose_mob(mob/living/M, methods=TOUCH, reac_volume)
+ if(methods & (TOUCH|VAPOR))
if(M && ishuman(M) && !HAS_TRAIT(M, TRAIT_BALD))
var/mob/living/carbon/human/H = M
to_chat(H, "Your hair starts growing at an incredible speed!")
@@ -1822,14 +1820,13 @@
color = "#ecb2cf"
taste_description = "bitterness"
-/datum/reagent/baldium/expose_mob(mob/living/M, method=TOUCH, reac_volume)
- if(method == TOUCH || method == VAPOR)
- if(M && ishuman(M))
- var/mob/living/carbon/human/H = M
- to_chat(H, "Your hair is falling out in clumps!")
- H.hairstyle = "Bald"
- H.facial_hairstyle = "Shaved"
- H.update_hair()
+/datum/reagent/baldium/expose_mob(mob/living/M, methods=TOUCH, reac_volume)
+ if((methods & (TOUCH|VAPOR)) && ishuman(M))
+ var/mob/living/carbon/human/exposed_human = M
+ to_chat(exposed_human, "Your hair is falling out in clumps!")
+ exposed_human.hairstyle = "Bald"
+ exposed_human.facial_hairstyle = "Shaved"
+ exposed_human.update_hair()
/datum/reagent/saltpetre
name = "Saltpetre"
@@ -1944,7 +1941,7 @@
can_synth = FALSE
taste_description = "brains"
-/datum/reagent/romerol/expose_mob(mob/living/carbon/human/H, method=TOUCH, reac_volume)
+/datum/reagent/romerol/expose_mob(mob/living/carbon/human/H, methods=TOUCH, reac_volume)
// Silently add the zombie infection organ to be activated upon death
if(!H.getorganslot(ORGAN_SLOT_ZOMBIE))
var/obj/item/organ/zombie_infection/nodamage/ZI = new()
@@ -2113,8 +2110,8 @@
taste_description = "inner peace"
can_synth = FALSE
-/datum/reagent/tranquility/expose_mob(mob/living/L, method=TOUCH, reac_volume, show_message = 1, touch_protection = 0)
- if(method==PATCH || method==INGEST || method==INJECT || (method == VAPOR && prob(min(reac_volume,100)*(1 - touch_protection))))
+/datum/reagent/tranquility/expose_mob(mob/living/L, methods=TOUCH, reac_volume, show_message = 1, touch_protection = 0)
+ if((methods & (PATCH|INGEST|INJECT)) || ((methods & VAPOR) && prob(min(reac_volume,100)*(1 - touch_protection))))
L.ForceContractDisease(new /datum/disease/transformation/gondola(), FALSE, TRUE)
@@ -2167,8 +2164,8 @@
yuck_cycle = 0 // reset vomiting
return ..()
-/datum/reagent/yuck/on_transfer(atom/A, method=TOUCH, trans_volume)
- if(method == INGEST || !iscarbon(A))
+/datum/reagent/yuck/on_transfer(atom/A, methods=TOUCH, trans_volume)
+ if((methods & INGEST) || !iscarbon(A))
return ..()
A.reagents.remove_reagent(type, trans_volume)
diff --git a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm
index 505a716126c..3c3b9483cd4 100644
--- a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm
@@ -69,9 +69,9 @@
if(prob(reac_volume))
W.ScrapeAway()
-/datum/reagent/clf3/expose_mob(mob/living/M, method=TOUCH, reac_volume)
+/datum/reagent/clf3/expose_mob(mob/living/M, methods=TOUCH, reac_volume)
if(istype(M))
- if(method != INGEST && method != INJECT)
+ if(methods & (TOUCH|VAPOR|PATCH))
M.adjust_fire_stacks(min(reac_volume/5, 10))
M.IgniteMob()
if(!locate(/obj/effect/hotspot) in M.loc)
@@ -158,7 +158,7 @@
taste_description = "burning"
self_consuming = TRUE
-/datum/reagent/phlogiston/expose_mob(mob/living/M, method=TOUCH, reac_volume)
+/datum/reagent/phlogiston/expose_mob(mob/living/M, methods=TOUCH, reac_volume)
M.adjust_fire_stacks(1)
var/burndmg = max(0.3*M.fire_stacks, 0.3)
M.adjustFireLoss(burndmg, 0)
@@ -193,9 +193,9 @@
M.adjust_fire_stacks(1)
..()
-/datum/reagent/napalm/expose_mob(mob/living/M, method=TOUCH, reac_volume)
+/datum/reagent/napalm/expose_mob(mob/living/M, methods=TOUCH, reac_volume)
if(istype(M))
- if(method != INGEST && method != INJECT)
+ if(methods & (TOUCH|VAPOR|PATCH))
M.adjust_fire_stacks(min(reac_volume/4, 20))
/datum/reagent/cryostylane
@@ -310,8 +310,8 @@
/datum/reagent/firefighting_foam/expose_obj(obj/O, reac_volume)
O.extinguish()
-/datum/reagent/firefighting_foam/expose_mob(mob/living/M, method=TOUCH, reac_volume)
- if(method in list(VAPOR, TOUCH))
+/datum/reagent/firefighting_foam/expose_mob(mob/living/M, methods=TOUCH, reac_volume)
+ if(methods & (TOUCH|VAPOR))
M.adjust_fire_stacks(-reac_volume)
M.ExtinguishMob()
..()
diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
index 02be6e33be3..4da66edc3c0 100644
--- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
@@ -38,12 +38,12 @@
taste_description = "slime"
taste_mult = 0.9
-/datum/reagent/toxin/mutagen/expose_mob(mob/living/carbon/M, method=TOUCH, reac_volume)
+/datum/reagent/toxin/mutagen/expose_mob(mob/living/carbon/M, methods=TOUCH, reac_volume)
if(!..())
return
if(!M.has_dna() || HAS_TRAIT(M, TRAIT_GENELESS) || HAS_TRAIT(M, TRAIT_BADDNA))
return //No robots, AIs, aliens, Ians or other mobs should be affected by this.
- if((method==VAPOR && prob(min(33, reac_volume))) || method==INGEST || method==PATCH || method==INJECT)
+ if(((methods & VAPOR) && prob(min(33, reac_volume))) || (methods & (INGEST|PATCH|INJECT)))
M.randmuti()
if(prob(98))
M.easy_randmut(NEGATIVE+MINOR_NEGATIVE)
@@ -102,8 +102,8 @@
if(temp >= LIQUID_PLASMA_BP)
T.atmos_spawn_air("plasma=[reac_volume];TEMP=[temp]")
-/datum/reagent/toxin/plasma/expose_mob(mob/living/M, method=TOUCH, reac_volume)//Splashing people with plasma is stronger than fuel!
- if(method == TOUCH || method == VAPOR)
+/datum/reagent/toxin/plasma/expose_mob(mob/living/M, methods=TOUCH, reac_volume)//Splashing people with plasma is stronger than fuel!
+ if(methods & (TOUCH|VAPOR))
M.adjust_fire_stacks(reac_volume / 5)
return
..()
@@ -208,9 +208,9 @@
L.cure_fakedeath(type)
..()
-/datum/reagent/toxin/zombiepowder/expose_mob(mob/living/L, method=TOUCH, reac_volume)
+/datum/reagent/toxin/zombiepowder/expose_mob(mob/living/L, methods=TOUCH, reac_volume)
L.adjustOxyLoss(0.5*REM, 0)
- if(method == INGEST)
+ if(methods & INGEST)
var/datum/reagent/toxin/zombiepowder/Z = L.reagents.has_reagent(/datum/reagent/toxin/zombiepowder)
if(istype(Z))
Z.fakedeath_active = TRUE
@@ -287,13 +287,11 @@
var/obj/structure/spacevine/SV = O
SV.on_chem_effect(src)
-/datum/reagent/toxin/plantbgone/expose_mob(mob/living/M, method=TOUCH, reac_volume)
- if(method == VAPOR)
- if(iscarbon(M))
- var/mob/living/carbon/C = M
- if(!C.wear_mask) // If not wearing a mask
- var/damage = min(round(0.4*reac_volume, 0.1),10)
- C.adjustToxLoss(damage)
+/datum/reagent/toxin/plantbgone/expose_mob(mob/living/M, methods=TOUCH, reac_volume)
+ if((methods & VAPOR) && iscarbon(M))
+ var/mob/living/carbon/exposed_carbon = M
+ if(!exposed_carbon.wear_mask)
+ exposed_carbon.adjustToxLoss(min(round(0.4 * reac_volume, 0.1), 10))
/datum/reagent/toxin/plantbgone/weedkiller
name = "Weed Killer"
@@ -322,7 +320,7 @@
mytray.adjustToxic(round(chems.get_reagent_amount(type) * 1))
mytray.adjustPests(-rand(1,2))
-/datum/reagent/toxin/pestkiller/expose_mob(mob/living/M, method=TOUCH, reac_volume)
+/datum/reagent/toxin/pestkiller/expose_mob(mob/living/M, methods=TOUCH, reac_volume)
..()
if(M.mob_biotypes & MOB_BUG)
var/damage = min(round(0.4*reac_volume, 0.1),10)
@@ -583,8 +581,8 @@
metabolization_rate = 0.4 * REAGENTS_METABOLISM
toxpwr = 0
-/datum/reagent/toxin/itching_powder/expose_mob(mob/living/M, method=TOUCH, reac_volume)
- if(method == TOUCH || method == VAPOR)
+/datum/reagent/toxin/itching_powder/expose_mob(mob/living/M, methods=TOUCH, reac_volume)
+ if(methods & (TOUCH|VAPOR))
M.reagents?.add_reagent(/datum/reagent/toxin/itching_powder, reac_volume)
/datum/reagent/toxin/itching_powder/on_mob_life(mob/living/carbon/M)
@@ -841,14 +839,14 @@
mytray.adjustToxic(round(chems.get_reagent_amount(type) * 1.5))
mytray.adjustWeeds(-rand(1,2))
-/datum/reagent/toxin/acid/expose_mob(mob/living/carbon/C, method=TOUCH, reac_volume)
+/datum/reagent/toxin/acid/expose_mob(mob/living/carbon/C, methods=TOUCH, reac_volume)
if(!istype(C))
return
reac_volume = round(reac_volume,0.1)
- if(method == INGEST)
+ if(methods & INGEST)
C.adjustBruteLoss(min(6*toxpwr, reac_volume * toxpwr))
return
- if(method == INJECT)
+ if(methods & INJECT)
C.adjustBruteLoss(1.5 * min(6*toxpwr, reac_volume * toxpwr))
return
C.acid_act(acidpwr, reac_volume)
diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm
index fb2e586244f..3afae78b534 100644
--- a/code/modules/reagents/reagent_containers.dm
+++ b/code/modules/reagents/reagent_containers.dm
@@ -68,9 +68,9 @@
*/
/obj/item/reagent_containers/on_accidental_consumption(mob/living/carbon/M, mob/living/carbon/user, obj/item/source_item, discover_after = TRUE)
M.losebreath += 2
- reagents?.trans_to(M, min(15, reagents.total_volume / rand(5,10)), transfered_by = user, method = INGEST)
+ reagents?.trans_to(M, min(15, reagents.total_volume / rand(5,10)), transfered_by = user, methods = INGEST)
if(source_item?.reagents)
- reagents.trans_to(source_item, min(source_item.reagents.total_volume / 2, reagents.total_volume / 5), transfered_by = user, method = TOUCH)
+ reagents.trans_to(source_item, min(source_item.reagents.total_volume / 2, reagents.total_volume / 5), transfered_by = user, methods = TOUCH)
return ..()
diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm
index 7f1cb8d35e9..e9a8db98b44 100644
--- a/code/modules/reagents/reagent_containers/borghydro.dm
+++ b/code/modules/reagents/reagent_containers/borghydro.dm
@@ -114,7 +114,7 @@ Borg Hypospray
to_chat(M, "You feel a tiny prick!")
to_chat(user, "You inject [M] with the injector.")
if(M.reagents)
- var/trans = R.trans_to(M, amount_per_transfer_from_this, transfered_by = user, method = INJECT)
+ var/trans = R.trans_to(M, amount_per_transfer_from_this, transfered_by = user, methods = INJECT)
to_chat(user, "[trans] unit\s injected. [R.total_volume] unit\s remaining.")
var/list/injected = list()
diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm
index fedec9c622d..f65a21cf1ef 100644
--- a/code/modules/reagents/reagent_containers/dropper.dm
+++ b/code/modules/reagents/reagent_containers/dropper.dm
@@ -38,7 +38,7 @@
if(!safe_thing.reagents)
safe_thing.create_reagents(100)
- trans = reagents.trans_to(safe_thing, amount_per_transfer_from_this, transfered_by = user, method = TOUCH)
+ trans = reagents.trans_to(safe_thing, amount_per_transfer_from_this, transfered_by = user, methods = TOUCH)
target.visible_message("[user] tries to squirt something into [target]'s eyes, but fails!", \
"[user] tries to squirt something into your eyes, but fails!")
diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm
index 3179d4d5857..4a9d8b9765b 100644
--- a/code/modules/reagents/reagent_containers/hypospray.dm
+++ b/code/modules/reagents/reagent_containers/hypospray.dm
@@ -45,7 +45,7 @@
if(M.reagents)
var/trans = 0
if(!infinite)
- trans = reagents.trans_to(M, amount_per_transfer_from_this, transfered_by = user, method = INJECT)
+ trans = reagents.trans_to(M, amount_per_transfer_from_this, transfered_by = user, methods = INJECT)
else
reagents.expose(M, INJECT, fraction)
trans = reagents.copy_to(M, amount_per_transfer_from_this)
diff --git a/code/modules/reagents/reagent_containers/medigel.dm b/code/modules/reagents/reagent_containers/medigel.dm
index f8a11e186b9..40833177bd7 100644
--- a/code/modules/reagents/reagent_containers/medigel.dm
+++ b/code/modules/reagents/reagent_containers/medigel.dm
@@ -71,7 +71,7 @@
else
log_combat(user, M, "applied", src, reagents.log_list())
playsound(src, 'sound/effects/spray.ogg', 30, TRUE, -6)
- reagents.trans_to(M, amount_per_transfer_from_this, transfered_by = user, method = apply_type)
+ reagents.trans_to(M, amount_per_transfer_from_this, transfered_by = user, methods = apply_type)
return
/obj/item/reagent_containers/medigel/libital
diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm
index 1766949e89d..72452a16675 100644
--- a/code/modules/reagents/reagent_containers/pill.dm
+++ b/code/modules/reagents/reagent_containers/pill.dm
@@ -50,7 +50,7 @@
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, M, "[pick(strings(REDPILL_FILE, "redpill_questions"))]"), 50)
if(reagents.total_volume)
- reagents.trans_to(M, reagents.total_volume, transfered_by = user, method = apply_type)
+ reagents.trans_to(M, reagents.total_volume, transfered_by = user, methods = apply_type)
qdel(src)
return TRUE
@@ -73,13 +73,13 @@
reagents.trans_to(target, reagents.total_volume, transfered_by = user)
qdel(src)
-/*
+/*
* On accidental consumption, consume the pill
*/
/obj/item/reagent_containers/pill/on_accidental_consumption(mob/living/carbon/M, mob/living/carbon/user, obj/item/source_item, discover_after = FALSE)
to_chat(M, "You swallow something small. Was that in \the [source_item]?")
if(reagents?.total_volume)
- reagents.trans_to(M, reagents.total_volume, transfered_by = user, method = INGEST)
+ reagents.trans_to(M, reagents.total_volume, transfered_by = user, methods = INGEST)
source_item?.contents -= src
qdel(src)
diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm
index 0aa074a33cd..7485ed6ddb2 100644
--- a/code/modules/reagents/reagent_containers/syringes.dm
+++ b/code/modules/reagents/reagent_containers/syringes.dm
@@ -150,20 +150,20 @@
log_combat(user, L, "injected", src, addition="which had [contained]")
else
L.log_message("injected themselves ([contained]) with [src.name]", LOG_ATTACK, color="orange")
- reagents.trans_to(target, amount_per_transfer_from_this, transfered_by = user, method = INJECT)
+ reagents.trans_to(target, amount_per_transfer_from_this, transfered_by = user, methods = INJECT)
to_chat(user, "You inject [amount_per_transfer_from_this] units of the solution. The syringe now contains [reagents.total_volume] units.")
if (reagents.total_volume <= 0 && mode==SYRINGE_INJECT)
mode = SYRINGE_DRAW
update_icon()
-/*
+/*
* On accidental consumption, inject the eater with 2/3rd of the syringe and reveal it
*/
/obj/item/reagent_containers/syringe/on_accidental_consumption(mob/living/carbon/M, mob/living/carbon/user, obj/item/source_item, discover_after = TRUE)
to_chat(M, "There's a syringe in \the [source_item]!!")
- M.apply_damage(5, BRUTE, BODY_ZONE_HEAD)
+ M.apply_damage(5, BRUTE, BODY_ZONE_HEAD)
if(reagents?.total_volume)
- reagents.trans_to(M, round(reagents.total_volume*(2/3)), transfered_by = user, method = INJECT)
+ reagents.trans_to(M, round(reagents.total_volume*(2/3)), transfered_by = user, methods = INJECT)
return discover_after
diff --git a/code/modules/surgery/dental_implant.dm b/code/modules/surgery/dental_implant.dm
index 6bfe57311ab..4f9fc6d13f6 100644
--- a/code/modules/surgery/dental_implant.dm
+++ b/code/modules/surgery/dental_implant.dm
@@ -38,6 +38,6 @@
to_chat(owner, "You grit your teeth and burst the implanted [target.name]!")
log_combat(owner, null, "swallowed an implanted pill", target)
if(target.reagents.total_volume)
- target.reagents.trans_to(owner, target.reagents.total_volume, transfered_by = owner, method = INGEST)
+ target.reagents.trans_to(owner, target.reagents.total_volume, transfered_by = owner, methods = INGEST)
qdel(target)
return TRUE