From dcde34512cb7c3941ff8a1267aafdb07507a1301 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Thu, 15 Oct 2015 00:25:31 -0400 Subject: [PATCH] Refactors pepperspray touch effect, adjusts pepperspray messages. --- .../Chemistry-Reagents-Food-Drinks.dm | 80 +++++++++---------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm index 3323e6e4158..43639afea11 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm @@ -238,11 +238,11 @@ return if(dose < agony_dose) if(prob(5) || dose == metabolism) //dose == metabolism is a very hacky way of forcing the message the first time this procs - M << initial_message + M << discomfort_message else M.apply_effect(agony_amount, AGONY, 0) if(prob(5)) - M.visible_message("[M] [pick("dry heaves!","coughs!","splutters!")]") + M.custom_emote(2, "[pick("dry heaves!","coughs!","splutters!")]") M << "You feel like your insides are burning!" if(istype(M, /mob/living/carbon/slime)) M.bodytemperature += rand(0, 15) + slime_temp_adj @@ -263,51 +263,51 @@ /datum/reagent/capsaicin/condensed/affect_touch(var/mob/living/carbon/M, var/alien, var/removed) var/eyes_covered = 0 var/mouth_covered = 0 - var/obj/item/safe_thing = null + var/no_pain = 0 + var/obj/item/eye_protection = null + var/obj/item/face_protection = null + + var/list/protection if(istype(M, /mob/living/carbon/human)) var/mob/living/carbon/human/H = M + protection = list(H.head, H.glasses, H.wear_mask) if(H.species && (H.species.flags & NO_PAIN)) - return - if(H.head) - if(H.head.flags & MASKCOVERSEYES) + no_pain = 1 //TODO: living-level can_feel_pain() proc + else + protection = list(M.wear_mask) + + for(var/obj/item/I in protection) + if(I) + if(I.flags & MASKCOVERSEYES) eyes_covered = 1 - safe_thing = H.head - if(H.head.flags & MASKCOVERSMOUTH) + eye_protection = I + if(I.flags & MASKCOVERSMOUTH) mouth_covered = 1 - safe_thing = H.head - if(H.wear_mask) - if(!eyes_covered && H.wear_mask.flags & MASKCOVERSEYES) - eyes_covered = 1 - safe_thing = H.wear_mask - if(!mouth_covered && H.wear_mask.flags & MASKCOVERSMOUTH) - mouth_covered = 1 - safe_thing = H.wear_mask - if(H.glasses) - if(!eyes_covered) - eyes_covered = 1 - if(!safe_thing) - safe_thing = H.glasses - if(eyes_covered && mouth_covered) - M << "Your [safe_thing] protects you from the pepperspray!" - return - else if(eyes_covered) - M << "Your [safe_thing] protect your eyes from the pepperspray!" - M.eye_blurry = max(M.eye_blurry, 5) + face_protection = I + + var/message = null + if(eyes_covered) + message = "Your [eye_protection] protects your eyes from the pepperspray!" + else + message = "The pepperspray gets in your eyes!" + if(mouth_covered) + M.eye_blurry = max(M.eye_blurry, 15) + M.eye_blind = max(M.eye_blind, 5) + else + M.eye_blurry = max(M.eye_blurry, 25) + M.eye_blind = max(M.eye_blind, 10) + + if(mouth_covered) + if(!message) + message = "Your [face_protection] protects you from the pepperspray!" + else if(!no_pain) + message = "Your face and throat burn!" + if(prob(25)) + M.custom_emote(2, "[pick("coughs!","coughs hysterically!","splutters!")]") M.Stun(5) M.Weaken(5) - return - else if (mouth_covered) // Mouth cover is better than eye cover - M << "Your [safe_thing] protects your face from the pepperspray!" - M.eye_blurry = max(M.eye_blurry, 15) - M.eye_blind = max(M.eye_blind, 5) - return - else // Oh dear :D - M << "You're sprayed directly with the pepperspray!" - M.eye_blurry = max(M.eye_blurry, 25) - M.eye_blind = max(M.eye_blind, 10) - M.Stun(5) - M.Weaken(5) - return + + M << message /* Drinks */