diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm
index 4952544aeb7..a4cdf6f6470 100644
--- a/code/game/machinery/machinery.dm
+++ b/code/game/machinery/machinery.dm
@@ -230,6 +230,8 @@ Class Procs:
return
/mob/living/canUseTopic(atom/movable/M, be_close = 0, no_dextery = 0)
+ if(incapacitated())
+ return
if(no_dextery)
if(be_close && in_range(M, src))
return 1
diff --git a/code/modules/mining/equipment_locker.dm b/code/modules/mining/equipment_locker.dm
index f0e699253be..36b7e7e4eb4 100644
--- a/code/modules/mining/equipment_locker.dm
+++ b/code/modules/mining/equipment_locker.dm
@@ -573,6 +573,7 @@
/**********************Facehugger toy**********************/
/obj/item/clothing/mask/facehugger/toy
+ item_state = "facehugger_inactive"
desc = "A toy often used to play pranks on other miners by putting it in their beds. It takes a bit to recharge after latching onto something."
throwforce = 0
real = 0
diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm
index 03745eb7306..c077bd38b5b 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm
@@ -77,17 +77,3 @@
icon_state = "queen_s"
pixel_x = -16
mob_size = MOB_SIZE_LARGE
-
-/mob/living/carbon/alien/humanoid/queen/large/update_icons()
- update_hud() //TODO: remove the need for this to be here
- overlays.Cut()
- if(stat == DEAD)
- icon_state = "queen_dead"
- else if((stat == UNCONSCIOUS && !sleeping) || weakened)
- icon_state = "queen_l"
- else if(sleeping || lying || resting)
- icon_state = "queen_sleep"
- else
- icon_state = "queen_s"
- for(var/image/I in overlays_standing)
- overlays += I
diff --git a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm
index 1495d4f99d3..de272e0c0d7 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm
@@ -50,4 +50,29 @@
if(lying > 0)
lying = 90 //Anything else looks retarded
..()
- update_icons()
\ No newline at end of file
+ update_icons()
+
+
+/mob/living/carbon/alien/humanoid/queen/large/update_icons()
+ update_hud() //TODO: remove the need for this to be here
+ overlays.Cut()
+ if(stat == DEAD)
+ icon_state = "queen_dead"
+ else if((stat == UNCONSCIOUS && !sleeping) || weakened)
+ icon_state = "queen_l"
+ else if(sleeping || lying || resting)
+ icon_state = "queen_sleep"
+ else
+ icon_state = "queen_s"
+ for(var/image/I in overlays_standing)
+ overlays += I
+
+/mob/living/carbon/alien/humanoid/queen/large/update_inv_l_hand()
+ remove_overlay(L_HAND_LAYER)
+ if(handcuffed)
+ drop_l_hand()
+
+/mob/living/carbon/alien/humanoid/queen/large/update_inv_r_hand()
+ remove_overlay(R_HAND_LAYER)
+ if(handcuffed)
+ drop_r_hand()
diff --git a/code/modules/mob/living/carbon/alien/organs.dm b/code/modules/mob/living/carbon/alien/organs.dm
index b7db238a99a..b7e09988277 100644
--- a/code/modules/mob/living/carbon/alien/organs.dm
+++ b/code/modules/mob/living/carbon/alien/organs.dm
@@ -79,6 +79,7 @@
var/mod = 1
if(!isalien(owner))
mod = 0.2
+ owner.adjustPlasma(plasma_rate/2)
owner.adjustBruteLoss(-heal_rate*mod)
owner.adjustFireLoss(-heal_rate*mod)
owner.adjustOxyLoss(-heal_rate*mod)
diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm
index 1a9ba9601a2..d4f997ddf7b 100644
--- a/code/modules/mob/living/carbon/alien/special/facehugger.dm
+++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm
@@ -187,7 +187,6 @@ var/const/MAX_ACTIVE_TIME = 400
else
target.visible_message("[src] violates [target]'s face!", \
"[src] violates [target]'s face!")
- return
/obj/item/clothing/mask/facehugger/proc/GoActive()
if(stat == DEAD || stat == CONSCIOUS)
@@ -196,20 +195,10 @@ var/const/MAX_ACTIVE_TIME = 400
stat = CONSCIOUS
icon_state = "[initial(icon_state)]"
-/* for(var/mob/living/carbon/alien/alien in world)
- var/image/activeIndicator = image('icons/mob/alien.dmi', loc = src, icon_state = "facehugger_active")
- activeIndicator.override = 1
- if(alien && alien.client)
- alien.client.images += activeIndicator */
-
- return
-
/obj/item/clothing/mask/facehugger/proc/GoIdle()
if(stat == DEAD || stat == UNCONSCIOUS)
return
-/* RemoveActiveIndicators() */
-
stat = UNCONSCIOUS
icon_state = "[initial(icon_state)]_inactive"
@@ -221,15 +210,12 @@ var/const/MAX_ACTIVE_TIME = 400
if(stat == DEAD)
return
-/* RemoveActiveIndicators() */
-
icon_state = "[initial(icon_state)]_dead"
+ item_state = "facehugger_inactive"
stat = DEAD
visible_message("[src] curls up into a ball!")
- return
-
/proc/CanHug(mob/living/M)
if(!istype(M))
return 0
diff --git a/code/modules/mob/living/carbon/monkey/examine.dm b/code/modules/mob/living/carbon/examine.dm
similarity index 65%
rename from code/modules/mob/living/carbon/monkey/examine.dm
rename to code/modules/mob/living/carbon/examine.dm
index 48963b00eed..e46f62193d8 100644
--- a/code/modules/mob/living/carbon/monkey/examine.dm
+++ b/code/modules/mob/living/carbon/examine.dm
@@ -1,45 +1,58 @@
-/mob/living/carbon/monkey/examine(mob/user)
- var/msg = "*---------*\nThis is \icon[src] \a [src]!\n"
-
- if (src.handcuffed)
- msg += "It is \icon[src.handcuffed] handcuffed!\n"
- if (src.head)
- msg += "It has \icon[src.head] \a [src.head] on its head. \n"
- if (src.wear_mask)
- msg += "It has \icon[src.wear_mask] \a [src.wear_mask] on its face.\n"
- if (src.l_hand)
- msg += "It has \icon[src.l_hand] \a [src.l_hand] in its left hand.\n"
- if (src.r_hand)
- msg += "It has \icon[src.r_hand] \a [src.r_hand] in its right hand.\n"
- if (src.back)
- msg += "It has \icon[src.back] \a [src.back] on its back.\n"
- if (src.stat == DEAD)
- msg += "It is limp and unresponsive, with no signs of life.\n"
- else
- msg += ""
- if (src.getBruteLoss())
- if (src.getBruteLoss() < 30)
- msg += "It has minor bruising.\n"
- else
- msg += "It has severe bruising!\n"
- if (src.getFireLoss())
- if (src.getFireLoss() < 30)
- msg += "It has minor burns.\n"
- else
- msg += "It has severe burns!\n"
-
- if (src.fire_stacks > 0)
- msg += "It's covered in something flammable.\n"
- if (src.fire_stacks < 0)
- msg += "It's soaked in water.\n"
-
- if (src.stat == UNCONSCIOUS)
- msg += "It isn't responding to anything around it; it seems to be asleep.\n"
- msg += ""
-
- if (src.digitalcamo)
- msg += "It is moving its body in an unnatural and blatantly unsimian manner.\n"
-
- msg += "*---------*"
-
+/mob/living/carbon/examine(mob/user)
+ var/msg = "*---------*\nThis is \icon[src] \a [src]!\n"
+
+ if (handcuffed)
+ msg += "It is \icon[src.handcuffed] handcuffed!\n"
+ if (head)
+ msg += "It has \icon[src.head] \a [src.head] on its head. \n"
+ if (wear_mask)
+ msg += "It has \icon[src.wear_mask] \a [src.wear_mask] on its face.\n"
+ if (l_hand)
+ msg += "It has \icon[src.l_hand] \a [src.l_hand] in its left hand.\n"
+ if (r_hand)
+ msg += "It has \icon[src.r_hand] \a [src.r_hand] in its right hand.\n"
+ if (back)
+ msg += "It has \icon[src.back] \a [src.back] on its back.\n"
+ if (stat == DEAD)
+ msg += "It is limp and unresponsive, with no signs of life.\n"
+ else
+ msg += ""
+ var/temp = getBruteLoss()
+ if(temp)
+ if (temp < 30)
+ msg += "It has minor bruising.\n"
+ else
+ msg += "It has severe bruising!\n"
+
+ temp = getFireLoss()
+ if(temp)
+ if (temp < 30)
+ msg += "It has minor burns.\n"
+ else
+ msg += "It has severe burns!\n"
+
+ temp = getCloneLoss()
+ if(temp)
+ if(getCloneLoss() < 30)
+ msg += "It is slightly deformed.\n"
+ else
+ msg += "It is severely deformed.\n"
+
+ if(getBrainLoss() > 60)
+ msg += "It seems to be clumsy and unable to think.\n"
+
+ if(fire_stacks > 0)
+ msg += "It's covered in something flammable.\n"
+ if(fire_stacks < 0)
+ msg += "It's soaked in water.\n"
+
+ if(stat == UNCONSCIOUS)
+ msg += "It isn't responding to anything around it; it seems to be asleep.\n"
+ msg += ""
+
+ if (digitalcamo)
+ msg += "It is moving its body in an unnatural and blatantly unsimian manner.\n"
+
+ msg += "*---------*"
+
user << msg
\ No newline at end of file
diff --git a/icons/mob/inhands/clothing_lefthand.dmi b/icons/mob/inhands/clothing_lefthand.dmi
index d36bbaeda97..84cb19f814b 100644
Binary files a/icons/mob/inhands/clothing_lefthand.dmi and b/icons/mob/inhands/clothing_lefthand.dmi differ
diff --git a/icons/mob/inhands/clothing_righthand.dmi b/icons/mob/inhands/clothing_righthand.dmi
index 65366e873a4..248431514e1 100644
Binary files a/icons/mob/inhands/clothing_righthand.dmi and b/icons/mob/inhands/clothing_righthand.dmi differ
diff --git a/tgstation.dme b/tgstation.dme
index 383abb503be..4b0e32905e0 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -1116,6 +1116,7 @@
#include "code\modules\mob\living\carbon\carbon_defines.dm"
#include "code\modules\mob\living\carbon\death.dm"
#include "code\modules\mob\living\carbon\emote.dm"
+#include "code\modules\mob\living\carbon\examine.dm"
#include "code\modules\mob\living\carbon\inventory.dm"
#include "code\modules\mob\living\carbon\life.dm"
#include "code\modules\mob\living\carbon\say.dm"
@@ -1181,7 +1182,6 @@
#include "code\modules\mob\living\carbon\human\whisper.dm"
#include "code\modules\mob\living\carbon\monkey\death.dm"
#include "code\modules\mob\living\carbon\monkey\emote.dm"
-#include "code\modules\mob\living\carbon\monkey\examine.dm"
#include "code\modules\mob\living\carbon\monkey\inventory.dm"
#include "code\modules\mob\living\carbon\monkey\life.dm"
#include "code\modules\mob\living\carbon\monkey\login.dm"