diff --git a/code/game/objects/items/weapons/garrote.dm b/code/game/objects/items/weapons/garrote.dm index 22b589c7517..a48bc19d512 100644 --- a/code/game/objects/items/weapons/garrote.dm +++ b/code/game/objects/items/weapons/garrote.dm @@ -107,6 +107,12 @@ return /obj/item/weapon/twohanded/garrote/process() + if(!strangling) + // Our mark got gibbed or similar + update_icon() + processing_objects.Remove(src) + return + if(!istype(loc, /mob/living/carbon/human)) strangling = null diff --git a/code/modules/mining/equipment_locker.dm b/code/modules/mining/equipment_locker.dm index fb98f3a8c15..e573c20840e 100644 --- a/code/modules/mining/equipment_locker.dm +++ b/code/modules/mining/equipment_locker.dm @@ -737,6 +737,7 @@ healable = 0 var/mode = MINEDRONE_COLLECT var/light_on = 0 + var/mesons_active var/datum/action/innate/minedrone/toggle_light/toggle_light_action var/datum/action/innate/minedrone/toggle_meson_vision/toggle_meson_vision_action @@ -863,6 +864,28 @@ mode = MINEDRONE_COLLECT SetCollectBehavior() + +/mob/living/simple_animal/hostile/mining_drone/update_sight() + if(!client) + return + if(stat == DEAD) + grant_death_vision() + return + + if(mesons_active) + sight |= SEE_TURFS + see_invisible = SEE_INVISIBLE_MINIMUM + else + sight &= ~SEE_TURFS + see_invisible = SEE_INVISIBLE_LIVING + + see_in_dark = initial(see_in_dark) + + if(client.eye != src) + var/atom/A = client.eye + if(A.update_remote_sight(src)) //returns 1 if we override all other sight updates. + return + //Actions for sentient minebots /datum/action/innate/minedrone @@ -889,15 +912,10 @@ /datum/action/innate/minedrone/toggle_meson_vision/Activate() var/mob/living/simple_animal/hostile/mining_drone/user = owner + user.mesons_active = !user.mesons_active + user.update_sight() - if(user.sight & SEE_TURFS) - user.sight &= ~SEE_TURFS - user.see_invisible = SEE_INVISIBLE_LIVING - else - user.sight |= SEE_TURFS - user.see_invisible = SEE_INVISIBLE_MINIMUM - - to_chat(user, "You toggle your meson vision [(user.sight & SEE_TURFS) ? "on" : "off"].") + to_chat(user, "You toggle your meson vision [(user.mesons_active) ? "on" : "off"].") /datum/action/innate/minedrone/toggle_mode name = "Toggle Mode" diff --git a/code/modules/surgery/organs/subtypes/standard.dm b/code/modules/surgery/organs/subtypes/standard.dm index faa6c403355..62ae8c78d66 100644 --- a/code/modules/surgery/organs/subtypes/standard.dm +++ b/code/modules/surgery/organs/subtypes/standard.dm @@ -103,7 +103,7 @@ can_stand = 1 /obj/item/organ/external/foot/remove() - if(owner.shoes) owner.unEquip(owner.shoes) + if(owner && owner.shoes) owner.unEquip(owner.shoes) . = ..() /obj/item/organ/external/foot/right @@ -128,12 +128,13 @@ can_grasp = 1 /obj/item/organ/external/hand/remove() - if(owner.gloves) - owner.unEquip(owner.gloves) - if(owner.l_hand) - owner.unEquip(owner.l_hand,1) - if(owner.r_hand) - owner.unEquip(owner.r_hand,1) + if(owner) + if(owner.gloves) + owner.unEquip(owner.gloves) + if(owner.l_hand) + owner.unEquip(owner.l_hand,1) + if(owner.r_hand) + owner.unEquip(owner.r_hand,1) . = ..()