mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-29 07:59:01 +01:00
Internals Dropping (#15710)
Co-authored-by: Matt Atlas <liermattia@gmail.com>
This commit is contained in:
@@ -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."
|
||||
Reference in New Issue
Block a user