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"