diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm index e319a26bfe1..04d0358c9f5 100644 --- a/code/game/objects/items/devices/powersink.dm +++ b/code/game/objects/items/devices/powersink.dm @@ -23,6 +23,7 @@ var/mode = 0 // 0 = off, 1=clamped (off), 2=operating var/admins_warned = FALSE // stop spam, only warn the admins once that we are about to boom var/obj/structure/cable/attached // the attached cable + new_attack_chain = TRUE /obj/item/powersink/Destroy() STOP_PROCESSING(SSobj, src) diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 3f465ba9344..dbdd778a2c8 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -20,6 +20,7 @@ SLIME SCANNER materials = list(MAT_METAL = 300) origin_tech = "magnets=1;engineering=1" var/on = FALSE + new_attack_chain = TRUE /obj/item/t_scanner/Destroy() if(on) @@ -34,8 +35,12 @@ SLIME SCANNER else STOP_PROCESSING(SSobj, src) -/obj/item/t_scanner/attack_self__legacy__attackchain(mob/user) +/obj/item/t_scanner/activate_self(mob/user) + if(..()) + return ITEM_INTERACT_COMPLETE toggle_on() + add_fingerprint(user) + return ITEM_INTERACT_COMPLETE /obj/item/t_scanner/process() if(!on) @@ -92,10 +97,12 @@ SLIME SCANNER /obj/item/reagent_scanner/interact_with_atom(atom/target, mob/living/user, list/modifiers) . = ..() do_scan(target, user) + return ITEM_INTERACT_COMPLETE /obj/item/reagent_scanner/ranged_interact_with_atom(atom/target, mob/living/user, list/modifiers) . = ..() do_scan(target, user) + return ITEM_INTERACT_COMPLETE /obj/item/reagent_scanner/proc/do_scan(atom/target, mob/living/user) if(user.stat != CONSCIOUS) @@ -104,6 +111,8 @@ SLIME SCANNER to_chat(user, SPAN_WARNING("You don't have the dexterity to do this!")) return + add_fingerprint(user) + if(!target.reagents) to_chat(user, SPAN_NOTICE("No significant chemical agents found in [target].")) return @@ -170,15 +179,19 @@ SLIME SCANNER w_class = WEIGHT_CLASS_SMALL flags = CONDUCT throw_speed = 3 - materials = list(MAT_METAL=30, MAT_GLASS=20) + materials = list(MAT_METAL = 30, MAT_GLASS = 20) + new_attack_chain = TRUE -/obj/item/slime_scanner/attack__legacy__attackchain(mob/living/M, mob/living/user) +/obj/item/slime_scanner/interact_with_atom(atom/target, mob/living/user, list/modifiers) if(user.incapacitated() || user.AmountBlinded()) - return - if(!isslime(M)) + return ..() + if(!isslime(target)) to_chat(user, SPAN_WARNING("This device can only scan slimes!")) - return - slime_scan(M, user) + return ITEM_INTERACT_COMPLETE + + slime_scan(target, user) + add_fingerprint(user) + return ITEM_INTERACT_COMPLETE /proc/slime_scan(mob/living/simple_animal/slime/T, mob/living/user) to_chat(user, "========================") diff --git a/code/modules/mining/equipment/mining_charges.dm b/code/modules/mining/equipment/mining_charges.dm index f2f20ef285d..fcdde6ea2cf 100644 --- a/code/modules/mining/equipment/mining_charges.dm +++ b/code/modules/mining/equipment/mining_charges.dm @@ -163,18 +163,18 @@ . = ..() . += SPAN_NOTICE("This scanner has an extra port for overriding mining charge safeties.") -/obj/item/t_scanner/adv_mining_scanner/syndicate/afterattack__legacy__attackchain(atom/target, mob/user, proximity_flag, click_parameters) +/obj/item/t_scanner/adv_mining_scanner/syndicate/interact_with_atom(atom/target, mob/living/user, list/modifiers) if(!istype(target, /obj/item/grenade/plastic/miningcharge)) - return + return ..() var/obj/item/grenade/plastic/miningcharge/charge = target if(charge.hacked) - to_chat(user, SPAN_NOTICE("[src] is already overridden!")) - return + to_chat(user, SPAN_WARNING("[src] is already overridden!")) + return ITEM_INTERACT_COMPLETE if(charges <= 0) - to_chat(user, SPAN_NOTICE("Its overriding function is depleted.")) - return + to_chat(user, SPAN_WARNING("Its overriding function is depleted!")) + return ITEM_INTERACT_COMPLETE charge.override_safety() visible_message(SPAN_WARNING("Sparks fly out of [src]!")) @@ -182,6 +182,8 @@ charges-- if(charges <= 0) to_chat(user, SPAN_WARNING("[src]'s internal battery for overriding mining charges has run dry!")) + add_fingerprint(user) + return ITEM_INTERACT_COMPLETE // MINING CHARGES DETONATOR