Transparent protection for clothing [READY] (#42075)

* Transparent_protection

* No longer protects captain mask

webedit?

* Use NONE
This commit is contained in:
4dplanner
2019-01-02 15:23:10 -05:00
committed by Jordan Brown
parent 620195fe22
commit 9e962ff5b7
8 changed files with 11 additions and 6 deletions
+2
View File
@@ -72,6 +72,7 @@
desc = "A protective & concealing hood."
armor = list("melee" = 35, "bullet" = 10, "laser" = 25, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 60, "acid" = 60)
flags_inv = HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR
transparent_protection = HIDEMASK
/obj/item/clothing/suit/hooded/cloak/drake
name = "drake armour"
@@ -84,6 +85,7 @@
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF | ACID_PROOF
transparent_protection = HIDEGLOVES|HIDESUITSTORAGE|HIDEJUMPSUIT|HIDESHOES
/obj/item/clothing/head/hooded/cloakhood/drake
name = "drake helm"
+3 -1
View File
@@ -385,12 +385,14 @@
drop_all_held_items()
/mob/living/carbon/proc/check_obscured_slots()
/mob/living/carbon/proc/check_obscured_slots(transparent_protection)
var/list/obscured = list()
var/hidden_slots = NONE
for(var/obj/item/I in get_equipped_items())
hidden_slots |= I.flags_inv
if(transparent_protection)
hidden_slots |= I.transparent_protection
if(hidden_slots & HIDENECK)
obscured |= SLOT_NECK
@@ -240,7 +240,7 @@
if(href_list["item"]) //canUseTopic check for this is handled by mob/Topic()
var/slot = text2num(href_list["item"])
if(slot in check_obscured_slots())
if(slot in check_obscured_slots(TRUE))
to_chat(usr, "<span class='warning'>You can't reach that! Something is covering it.</span>")
return
@@ -492,7 +492,7 @@
L.receive_damage(0,5)
Paralyze(100)
/mob/living/carbon/human/acid_act(acidpwr, acid_volume, bodyzone_hit) //todo: update this to utilize check_obscured_slots()
/mob/living/carbon/human/acid_act(acidpwr, acid_volume, bodyzone_hit) //todo: update this to utilize check_obscured_slots() //and make sure it's check_obscured_slots(TRUE) to stop aciding through visors etc
var/list/damaged = list()
var/list/inventory_items_to_kill = list()
var/acidity = acidpwr * min(acid_volume*0.005, 0.1)
@@ -1579,7 +1579,7 @@ GLOBAL_LIST_EMPTY(roundstart_races)
if(H.on_fire)
//the fire tries to damage the exposed clothes and items
var/list/burning_items = list()
var/list/obscured = H.check_obscured_slots()
var/list/obscured = H.check_obscured_slots(TRUE)
//HEAD//
if(H.glasses && !(SLOT_GLASSES in obscured))
@@ -151,7 +151,7 @@
//the fire tries to damage the exposed clothes and items
var/list/burning_items = list()
//HEAD//
var/list/obscured = check_obscured_slots()
var/list/obscured = check_obscured_slots(TRUE)
if(wear_mask && !(SLOT_WEAR_MASK in obscured))
burning_items += wear_mask
if(wear_neck && !(SLOT_NECK in obscured))