diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 8b45f1d001..1dd1e54ddb 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -159,6 +159,10 @@ var/obj/item/organ/external/hand = H.organs_by_name[check_hand] if(istype(hand) && hand.is_usable()) return TRUE + var/mob/living/simple_mob/S = M + if(istype(S) && S.has_hands) //Are they a mob? And do they have hands? + return TRUE + return FALSE diff --git a/code/game/objects/items/devices/scanners/gas.dm b/code/game/objects/items/devices/scanners/gas.dm index ca35911448..9fbc319d6d 100644 --- a/code/game/objects/items/devices/scanners/gas.dm +++ b/code/game/objects/items/devices/scanners/gas.dm @@ -23,7 +23,7 @@ /obj/item/device/analyzer/attack_self(mob/user as mob) if (user.stat) return - if (!(ishuman(user) || ticker) && ticker.mode.name != "monkey") + if (!user.IsAdvancedToolUser()) to_chat(usr, "You don't have the dexterity to do this!") return diff --git a/code/game/objects/items/devices/scanners/health.dm b/code/game/objects/items/devices/scanners/health.dm index 98aa6ec2db..02b33bdec5 100644 --- a/code/game/objects/items/devices/scanners/health.dm +++ b/code/game/objects/items/devices/scanners/health.dm @@ -41,7 +41,7 @@ dat += "Body Temperature: ???" user.show_message("[dat]", 1) return - if (!(ishuman(user) || ticker) && ticker.mode.name != "monkey") + if (!user.IsAdvancedToolUser()) to_chat(user, "You don't have the dexterity to do this!") return diff --git a/code/game/objects/items/devices/scanners/mass_spectrometer.dm b/code/game/objects/items/devices/scanners/mass_spectrometer.dm index fee41eb880..5c044fc535 100644 --- a/code/game/objects/items/devices/scanners/mass_spectrometer.dm +++ b/code/game/objects/items/devices/scanners/mass_spectrometer.dm @@ -30,7 +30,7 @@ /obj/item/device/mass_spectrometer/attack_self(mob/user as mob) if (user.stat) return - if (!(ishuman(user) || ticker) && ticker.mode.name != "monkey") + if (!user.IsAdvancedToolUser()) to_chat(user, "You don't have the dexterity to do this!") return if(reagents.total_volume) diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index f065ec3ea1..9676919792 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -20,8 +20,7 @@ to_chat(user, "\The [src] cannot be applied to [M]!") return 1 - if ( ! (istype(user, /mob/living/carbon/human) || \ - istype(user, /mob/living/silicon)) ) + if (!M.IsAdvancedToolUser()) to_chat(user, "You don't have the dexterity to do this!") return 1 @@ -129,7 +128,7 @@ if(used >= available) to_chat(user, "You run out of [src]!") break - + if (W.current_stage <= W.max_bleeding_stage) user.visible_message("\The [user] bandages \a [W.desc] on [M]'s [affecting.name].", \ "You bandage \a [W.desc] on [M]'s [affecting.name]." ) diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index 02c25c736d..26f3200242 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -19,7 +19,7 @@ user.setClickCooldown(user.get_attack_speed(src)) user.do_attack_animation(M) - if (!(istype(user, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey") + if (!user.IsAdvancedToolUser()) to_chat(user, "You don't have the dexterity to do this!") return diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index f0eb2eca18..e36d5ba8c0 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -352,7 +352,7 @@ var/list/mining_overlay_cache = list() //Not even going to touch this pile of spaghetti /turf/simulated/mineral/attackby(obj/item/weapon/W as obj, mob/user as mob) - if (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey") + if (!user.IsAdvancedToolUser()) to_chat(user, "You don't have the dexterity to do this!") return diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 8d0002f0da..0252396b2c 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -570,6 +570,7 @@ if(one_handed_penalty) if(!src.is_held_twohanded(user)) + to_chat(user, "IS HELD TWOHANDED PENALTY.") switch(one_handed_penalty) if(1 to 15) if(prob(50)) //don't need to tell them every single time @@ -581,6 +582,7 @@ if(46 to INFINITY) to_chat(user, "You struggle to keep \the [src] on target with just one hand!") else if(!user.can_wield_item(src)) + to_chat(user, "CAN WIELD ITEM PENALTY.") switch(one_handed_penalty) if(1 to 15) if(prob(50)) //don't need to tell them every single time