diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index fc880c0181a..a360b95c195 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -61,7 +61,7 @@ /obj/machinery/suit_storage_unit/mining suit_type = /obj/item/clothing/suit/hooded/explorer - mask_type = /obj/item/clothing/mask/gas + mask_type = /obj/item/clothing/mask/gas/explorer /obj/machinery/suit_storage_unit/mining/eva suit_type = /obj/item/clothing/suit/space/hardsuit/mining diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 3054e6a18e1..8f6e62eae7f 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -6,6 +6,7 @@ var/up = 0 // but seperated to allow items to protect but not impair vision, like space helmets var/visor_flags = 0 // flags that are added/removed when an item is adjusted up/down var/visor_flags_inv = 0 // same as visor_flags, but for flags_inv + var/visor_flags_cover = 0 // same as above, but for flags_cover lefthand_file = 'icons/mob/inhands/clothing_lefthand.dmi' righthand_file = 'icons/mob/inhands/clothing_righthand.dmi' var/alt_desc = null @@ -164,7 +165,7 @@ BLIND // can't see anything //Proc that moves gas/breath masks out of the way, disabling them and allowing pill/food consumption /obj/item/clothing/mask/proc/adjustmask(mob/living/user) - if(user.incapacitated()) + if(user && user.incapacitated()) return mask_adjusted = !mask_adjusted if(!mask_adjusted) @@ -173,7 +174,7 @@ BLIND // can't see anything permeability_coefficient = initial(permeability_coefficient) flags |= visor_flags flags_inv |= visor_flags_inv - flags_cover = initial(flags_cover) + flags_cover |= visor_flags_cover user << "You push \the [src] back into place." slot_flags = initial(slot_flags) else @@ -183,11 +184,12 @@ BLIND // can't see anything permeability_coefficient = null flags &= ~visor_flags flags_inv &= ~visor_flags_inv - flags_cover = 0 + flags_cover &= ~visor_flags_cover if(adjusted_flags) slot_flags = adjusted_flags - user.wear_mask_update(src, toggle_off = mask_adjusted) - user.update_action_buttons_icon() //when mask is adjusted out, we update all buttons icon so the user's potential internal tank correctly shows as off. + if(user) + user.wear_mask_update(src, toggle_off = mask_adjusted) + user.update_action_buttons_icon() //when mask is adjusted out, we update all buttons icon so the user's potential internal tank correctly shows as off. diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 21301636ada..6205d0bf9d0 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -60,7 +60,7 @@ up = !up flags ^= visor_flags flags_inv ^= visor_flags_inv - flags_cover ^= initial(flags_cover) + flags_cover ^= visor_flags_cover icon_state = "[initial(icon_state)][up ? "up" : ""]" user << "[up ? alt_toggle_message : toggle_message] \the [src]" diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index dd1875aaead..93b1f039b7e 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -25,6 +25,7 @@ flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE actions_types = list(/datum/action/item_action/toggle) visor_flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE + visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH burn_state = FIRE_PROOF /obj/item/clothing/head/welding/attack_self() diff --git a/code/modules/clothing/masks/breath.dm b/code/modules/clothing/masks/breath.dm index 8b82ff05ae2..ca7f65f42c5 100644 --- a/code/modules/clothing/masks/breath.dm +++ b/code/modules/clothing/masks/breath.dm @@ -11,6 +11,7 @@ permeability_coefficient = 0.50 actions_types = list(/datum/action/item_action/adjust) flags_cover = MASKCOVERSMOUTH + visor_flags_cover = MASKCOVERSMOUTH burn_state = FIRE_PROOF /obj/item/clothing/mask/breath/attack_self(mob/user) diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 0c9538bf7a5..13111438142 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -26,6 +26,7 @@ flags_inv = HIDEEARS|HIDEEYES|HIDEFACE flags_cover = MASKCOVERSEYES visor_flags_inv = HIDEEYES + visor_flags_cover = MASKCOVERSEYES /obj/item/clothing/mask/gas/welding/attack_self() toggle() diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index 669c5467606..03e8fd31c83 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -22,9 +22,10 @@ icon_state = "sterile" item_state = "sterile" w_class = 1 - flags_cover = MASKCOVERSMOUTH flags_inv = HIDEFACE + flags_cover = MASKCOVERSMOUTH visor_flags_inv = HIDEFACE + visor_flags_cover = MASKCOVERSMOUTH gas_transfer_coefficient = 0.90 permeability_coefficient = 0.01 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 25, rad = 0) @@ -108,6 +109,7 @@ flags_cover = MASKCOVERSMOUTH flags_inv = HIDEFACE|HIDEFACIALHAIR visor_flags_inv = HIDEFACE|HIDEFACIALHAIR + visor_flags_cover = MASKCOVERSMOUTH slot_flags = SLOT_MASK adjusted_flags = SLOT_HEAD icon_state = "bandbotany" diff --git a/code/modules/jobs/job_types/job.dm b/code/modules/jobs/job_types/job.dm index 0bc5c56ac1f..03158ae4ad9 100644 --- a/code/modules/jobs/job_types/job.dm +++ b/code/modules/jobs/job_types/job.dm @@ -164,7 +164,9 @@ else back = backpack //Department backpack - backpack_contents[box] = 1 + if(box) + backpack_contents.Insert(1, box) // Box always takes a first slot in backpack + backpack_contents[box] = 1 /datum/outfit/job/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) if(visualsOnly) diff --git a/code/modules/mining/equipment.dm b/code/modules/mining/equipment.dm index d9a7db23b8b..e3c8ced705e 100644 --- a/code/modules/mining/equipment.dm +++ b/code/modules/mining/equipment.dm @@ -26,6 +26,26 @@ max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 50, bio = 100, rad = 50) +/obj/item/clothing/mask/gas/explorer + name = "explorer gas mask" + desc = "A military-grade gas mask that can be connected to an air supply." + icon_state = "gas_mining" + visor_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS + visor_flags_inv = HIDEFACIALHAIR + visor_flags_cover = MASKCOVERSMOUTH + actions_types = list(/datum/action/item_action/adjust) + armor = list(melee = 10, bullet = 5, laser = 5, energy = 5, bomb = 0, bio = 50, rad = 0) + +/obj/item/clothing/mask/gas/explorer/attack_self(mob/user) + adjustmask(user) + +/obj/item/clothing/mask/gas/explorer/adjustmask(user) + ..() + w_class = mask_adjusted ? 3 : 2 + +/obj/item/clothing/mask/gas/explorer/folded/New() + ..() + adjustmask() /**********************Mining Equipment Vendor Items**************************/ diff --git a/icons/mob/mask.dmi b/icons/mob/mask.dmi index f219a494ea3..e82945a3a94 100644 Binary files a/icons/mob/mask.dmi and b/icons/mob/mask.dmi differ diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi index 5aef58a5d3c..407e0d40540 100644 Binary files a/icons/obj/clothing/masks.dmi and b/icons/obj/clothing/masks.dmi differ