|
27 | 27 | else
|
28 | 28 | . += E.bang_protect
|
29 | 29 |
|
30 |
| -/mob/living/carbon/is_mouth_covered(check_flags = ALL) |
31 |
| - if((check_flags & ITEM_SLOT_HEAD) && head && (head.flags_cover & HEADCOVERSMOUTH)) |
32 |
| - return head |
33 |
| - if((check_flags & ITEM_SLOT_MASK) && wear_mask && (wear_mask.flags_cover & MASKCOVERSMOUTH)) |
34 |
| - return wear_mask |
35 |
| - |
| 30 | +/mob/living/carbon/proc/check_equipment_cover_flags(flags = NONE) |
| 31 | + for(var/obj/item/thing in get_equipped_items()) |
| 32 | + if(thing.flags_cover & flags) |
| 33 | + return thing |
36 | 34 | return null
|
37 | 35 |
|
38 |
| -/mob/living/carbon/is_eyes_covered(check_flags = ALL) |
39 |
| - if((check_flags & ITEM_SLOT_HEAD) && head && (head.flags_cover & HEADCOVERSEYES)) |
40 |
| - return head |
41 |
| - if((check_flags & ITEM_SLOT_MASK) && wear_mask && (wear_mask.flags_cover & MASKCOVERSEYES)) |
42 |
| - return wear_mask |
43 |
| - if((check_flags & ITEM_SLOT_EYES) && glasses && (glasses.flags_cover & GLASSESCOVERSEYES)) |
44 |
| - return glasses |
| 36 | +/mob/living/carbon/is_mouth_covered(check_flags = ALL) |
| 37 | + var/needed_coverage = NONE |
| 38 | + if(check_flags & ITEM_SLOT_HEAD) |
| 39 | + needed_coverage |= HEADCOVERSMOUTH |
| 40 | + if(check_flags & ITEM_SLOT_MASK) |
| 41 | + needed_coverage |= MASKCOVERSMOUTH |
| 42 | + return check_equipment_cover_flags(needed_coverage) |
45 | 43 |
|
46 |
| - return null |
| 44 | +/mob/living/carbon/is_eyes_covered(check_flags = ALL) |
| 45 | + var/needed_coverage = NONE |
| 46 | + if(check_flags & ITEM_SLOT_HEAD) |
| 47 | + needed_coverage |= HEADCOVERSEYES |
| 48 | + if(check_flags & ITEM_SLOT_MASK) |
| 49 | + needed_coverage |= MASKCOVERSEYES |
| 50 | + if(check_flags & ITEM_SLOT_EYES) |
| 51 | + needed_coverage |= GLASSESCOVERSEYES |
| 52 | + return check_equipment_cover_flags(needed_coverage) |
47 | 53 |
|
48 | 54 | /mob/living/carbon/is_pepper_proof(check_flags = ALL)
|
49 | 55 | var/obj/item/organ/internal/eyes/eyes = get_organ_by_type(/obj/item/organ/internal/eyes)
|
50 |
| - if(eyes && eyes.pepperspray_protect) |
| 56 | + if(eyes?.pepperspray_protect) |
51 | 57 | return eyes
|
52 |
| - if((check_flags & ITEM_SLOT_HEAD) && head && (head.flags_cover & PEPPERPROOF)) |
53 |
| - return head |
54 |
| - if((check_flags & ITEM_SLOT_MASK) && wear_mask && (wear_mask.flags_cover & PEPPERPROOF)) |
55 |
| - return wear_mask |
56 |
| - |
57 |
| - return null |
| 58 | + return check_equipment_cover_flags(PEPPERPROOF) |
58 | 59 |
|
59 | 60 | /mob/living/carbon/check_projectile_dismemberment(obj/projectile/P, def_zone)
|
60 | 61 | var/obj/item/bodypart/affecting = get_bodypart(def_zone)
|
|
0 commit comments