Internals Dropping (#15710)

Co-authored-by: Matt Atlas <liermattia@gmail.com>
This commit is contained in:
Geeves
2023-02-04 01:57:24 +01:00
committed by GitHub
co-authored by Matt Atlas
parent 655996a1c8
commit f80fa9933d
3 changed files with 23 additions and 12 deletions
@@ -14,14 +14,7 @@
if(C.internals)
C.internals.icon_state = "internal0"
else
var/no_mask
if(!(C.wear_mask && C.wear_mask.item_flags & AIRTIGHT))
var/mob/living/carbon/human/H = C
if(!(H.head && H.head.item_flags & AIRTIGHT))
no_mask = 1
if(no_mask)
if(!has_internals_mask(C))
to_chat(C, "<span class='notice'>You are not wearing a suitable mask or helmet.</span>")
return 1
else
@@ -150,3 +143,14 @@
C.internals.icon_state = "internal1"
else
to_chat(C, "<span class='notice'>You don't have a[breathes==GAS_OXYGEN ? "n oxygen" : addtext(" ",breathes)] tank.</span>")
/obj/screen/internals/proc/lose_internals(var/mob/living/carbon/human/user)
icon_state = "internal0"
user.internal = null
/obj/screen/internals/proc/has_internals_mask(var/mob/living/carbon/human/user)
if(user.wear_mask && HAS_FLAG(user.wear_mask.item_flags, AIRTIGHT))
return TRUE
if(user.head && HAS_FLAG(user.head.item_flags, AIRTIGHT))
return TRUE
return FALSE
@@ -142,6 +142,8 @@ This saves us from having to call add_fingerprint() any time something is put in
update_inv_l_ear(0)
update_inv_r_ear(0)
update_inv_wear_mask(0)
if(internal && internals && !internals.has_internals_mask(src))
internals.lose_internals(src)
update_inv_head()
else if (W == l_ear)
l_ear = null
@@ -176,10 +178,8 @@ This saves us from having to call add_fingerprint() any time something is put in
update_hair(0) //rebuild hair
update_inv_l_ear(0)
update_inv_r_ear(0)
if(internal)
if(internals)
internals.icon_state = "internal0"
internal = null
if(internal && internals && !internals.has_internals_mask(src))
internals.lose_internals(src)
update_inv_wear_mask()
else if (W == wear_id)
wear_id = null
@@ -0,0 +1,7 @@
author: Geeves
delete-after: True
changes:
- bugfix: "You will no longer lose internals if you drop a mask/helmet and have an airtight helmet/mask to spare."
- bugfix: "You will now lose internals if you drop a helmet and don't have an airtight mask to spare."