diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm index 69fd58207ca..8c1faf44a9c 100644 --- a/code/game/objects/items/devices/transfer_valve.dm +++ b/code/game/objects/items/devices/transfer_valve.dm @@ -135,7 +135,7 @@ toggle_valve(usr) if("device") if(attached_device) - attached_device.attack_self__legacy__attackchain(usr) + attached_device.activate_self(usr) if("remove_device") if(attached_device) attached_device.forceMove(get_turf(src)) diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm index 486a710c5ce..ace92ba1b13 100644 --- a/code/game/objects/items/weapons/explosives.dm +++ b/code/game/objects/items/weapons/explosives.dm @@ -81,7 +81,7 @@ return ITEM_INTERACT_COMPLETE if(nadeassembly) - nadeassembly.attack_self__legacy__attackchain(user) + nadeassembly.activate_self(user) return ITEM_INTERACT_COMPLETE var/newtime = input(usr, "Please set the timer.", "Timer", det_time) as num diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm index b1e94b49707..0c305255508 100644 --- a/code/modules/assembly/assembly.dm +++ b/code/modules/assembly/assembly.dm @@ -13,6 +13,7 @@ usesound = 'sound/items/deconstruct.ogg' drop_sound = 'sound/items/handling/component_drop.ogg' pickup_sound = 'sound/items/handling/component_pickup.ogg' + new_attack_chain = TRUE var/bomb_name = "bomb" // used for naming bombs / mines @@ -34,8 +35,9 @@ /obj/item/assembly/proc/holder_movement() return -/// Called when attack_self is called +/// Called when activate_self is called /obj/item/assembly/interact(mob/user) + add_fingerprint(user) return /obj/item/assembly/proc/on_atom_entered(datum/source, atom/movable/entered) @@ -130,14 +132,13 @@ return TRUE return FALSE -/obj/item/assembly/attackby__legacy__attackchain(obj/item/W, mob/user, params) - if(isassembly(W)) - var/obj/item/assembly/A = W - if(!A.secured && !secured) - attach_assembly(A, user) - return - - return ..() +/obj/item/assembly/item_interaction(mob/living/user, obj/item/used, list/modifiers) + if(!isassembly(used)) + return ..() + var/obj/item/assembly/A = used + if(!A.secured && !secured) + attach_assembly(A, user) + return ITEM_INTERACT_COMPLETE /obj/item/assembly/screwdriver_act(mob/user, obj/item/I) . = TRUE @@ -159,9 +160,9 @@ else . += "[src] can be attached!" -/obj/item/assembly/attack_self__legacy__attackchain(mob/user) +/obj/item/assembly/activate_self(mob/user) if(!user) - return + return ..() user.set_machine(src) interact(user) - return TRUE + return ITEM_INTERACT_COMPLETE diff --git a/code/modules/assembly/assembly_holder.dm b/code/modules/assembly/assembly_holder.dm index 6a0ef5730aa..c40b5101741 100644 --- a/code/modules/assembly/assembly_holder.dm +++ b/code/modules/assembly/assembly_holder.dm @@ -162,13 +162,13 @@ if(istype(a_left, a_right.type)) // If they are the same type it causes issues due to window code switch(tgui_alert(user, "Which side would you like to use?", "Choose", list("Left", "Right"))) if("Left") - a_left.attack_self__legacy__attackchain(user) + a_left.activate_self(user) if("Right") - a_right.attack_self__legacy__attackchain(user) + a_right.activate_self(user) return else - a_left.attack_self__legacy__attackchain(user) - a_right.attack_self__legacy__attackchain(user) + a_left.activate_self(user) + a_right.activate_self(user) else var/turf/T = get_turf(src) if(!T) diff --git a/code/modules/assembly/health.dm b/code/modules/assembly/health.dm index 6fb5a047010..9921f381c26 100644 --- a/code/modules/assembly/health.dm +++ b/code/modules/assembly/health.dm @@ -70,7 +70,8 @@ user_health = null // Clear out the user data, we're no longer scanning STOP_PROCESSING(SSobj, src) -/obj/item/assembly/health/attack_self__legacy__attackchain(mob/user) +/obj/item/assembly/health/activate_self(mob/user) + . = ..() ui_interact(user) /obj/item/assembly/health/ui_state(mob/user) diff --git a/code/modules/assembly/igniter.dm b/code/modules/assembly/igniter.dm index bc37c9e247f..e960cc7d45a 100644 --- a/code/modules/assembly/igniter.dm +++ b/code/modules/assembly/igniter.dm @@ -57,9 +57,10 @@ return TRUE -/obj/item/assembly/igniter/attack__legacy__attackchain(mob/living/target, mob/living/user) +/obj/item/assembly/igniter/interact_with_atom(mob/living/target, mob/living/user, list/modifiers) if(!cigarette_lighter_act(user, target)) return ..() + return ITEM_INTERACT_COMPLETE /obj/item/assembly/igniter/cigarette_lighter_act(mob/living/user, mob/living/target, obj/item/direct_attackby_item) var/obj/item/clothing/mask/cigarette/cig = ..() @@ -82,10 +83,10 @@ cig.light(user, target) return TRUE -/obj/item/assembly/igniter/attack_self__legacy__attackchain(mob/user) +/obj/item/assembly/igniter/activate_self(mob/user) + . = ..() if(!istype(loc, /obj/item/assembly_holder)) activate() - add_fingerprint(user) /obj/item/assembly/igniter/get_heat() return 2000 diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index 8d24b49f823..798ae54d92b 100644 --- a/code/modules/assembly/infrared.dm +++ b/code/modules/assembly/infrared.dm @@ -146,6 +146,7 @@ popup.set_content(dat) popup.open(0) onclose(user, "infra") + return ..() /obj/item/assembly/infra/Topic(href, href_list) ..() @@ -166,7 +167,7 @@ usr << browse(null, "window=infra") return if(usr) - attack_self__legacy__attackchain(usr) + activate_self(usr) /obj/item/assembly/infra/AltClick(mob/user) rotate(user) diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm index f92deaa126b..86c1023e61a 100644 --- a/code/modules/assembly/mousetrap.dm +++ b/code/modules/assembly/mousetrap.dm @@ -77,7 +77,8 @@ update_icon() pulse(0) -/obj/item/assembly/mousetrap/attack_self__legacy__attackchain(mob/living/user) +/obj/item/assembly/mousetrap/activate_self(mob/living/user) + . = ..() if(!armed) to_chat(user, SPAN_NOTICE("You arm [src].")) else @@ -97,16 +98,17 @@ playsound(user.loc, 'sound/weapons/handcuffs.ogg', 30, TRUE, -3) /obj/item/assembly/mousetrap/attack_hand(mob/living/user) - if(armed) - if((user.getBrainLoss() >= 60 || HAS_TRAIT(user, TRAIT_CLUMSY)) && prob(50)) - var/which_hand = "l_hand" - if(!user.hand) - which_hand = "r_hand" + if(!armed) + return ..() + if(!((user.getBrainLoss() >= 60 || HAS_TRAIT(user, TRAIT_CLUMSY)) && prob(50))) + return ..() + var/which_hand = "l_hand" + if(!user.hand) + which_hand = "r_hand" + + triggered(user, which_hand) + user.visible_message(SPAN_WARNING("[user] accidentally sets off [src], breaking [user.p_their()] fingers."), SPAN_WARNING("You accidentally trigger [src]!")) - triggered(user, which_hand) - user.visible_message(SPAN_WARNING("[user] accidentally sets off [src], breaking [user.p_their()] fingers."), SPAN_WARNING("You accidentally trigger [src]!")) - return - ..() /obj/item/assembly/mousetrap/on_atom_entered(datum/source, atom/movable/entered) if(armed) @@ -128,7 +130,7 @@ if(armed) finder.visible_message(SPAN_WARNING("[finder] accidentally sets off [src], breaking [finder.p_their()] fingers."), SPAN_WARNING("You accidentally trigger [src]!")) triggered(finder, finder.hand ? "l_hand" : "r_hand") - return TRUE //end the search! + return TRUE // End the search! return FALSE diff --git a/code/modules/assembly/proximity.dm b/code/modules/assembly/proximity.dm index f9c54137eca..a0dac4d5085 100644 --- a/code/modules/assembly/proximity.dm +++ b/code/modules/assembly/proximity.dm @@ -62,7 +62,7 @@ return FALSE cooldown = 2 pulse(FALSE) - visible_message("[bicon(src)] *beep* *beep* *beep*", "*beep* *beep* *beep*") + audible_message("[bicon(src)] *beep* *beep* *beep*", "*beep* *beep* *beep*") playsound(src, 'sound/machines/triple_beep.ogg', 40, extrarange = -10) addtimer(CALLBACK(src, PROC_REF(process_cooldown)), 10) @@ -157,6 +157,7 @@ popup.set_content(dat) popup.open(0) onclose(user, "prox") + return ..() /obj/item/assembly/prox_sensor/Topic(href, href_list) ..() @@ -182,4 +183,4 @@ return if(usr) - attack_self__legacy__attackchain(usr) + activate_self(usr) diff --git a/code/modules/assembly/shock_kit.dm b/code/modules/assembly/shock_kit.dm index 5e1567b8f95..acb10867ab2 100644 --- a/code/modules/assembly/shock_kit.dm +++ b/code/modules/assembly/shock_kit.dm @@ -34,11 +34,14 @@ add_fingerprint(user) return TRUE -/obj/item/assembly/shock_kit/attack_self__legacy__attackchain(mob/user as mob) +/obj/item/assembly/shock_kit/activate_self(mob/user) + if(!user) + return ..() + if(!part1 || !part2) + return part1.activate_self(user) part2.attack_self__legacy__attackchain(user, status) add_fingerprint(user) - return /obj/item/assembly/shock_kit/proc/shock_invoke() if(istype(loc, /obj/structure/chair/e_chair)) diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm index 6e31e970554..728b620a60f 100644 --- a/code/modules/assembly/signaler.dm +++ b/code/modules/assembly/signaler.dm @@ -32,14 +32,16 @@ GLOBAL_LIST_EMPTY(remote_signalers) to_chat(user, SPAN_NOTICE("You activate [src].")) activate() -/obj/item/assembly/signaler/attackby__legacy__attackchain(obj/item/W, mob/user, params) - if(issignaler(W)) - var/obj/item/assembly/signaler/signaler2 = W - if(secured && signaler2.secured) - code = signaler2.code - frequency = signaler2.frequency - to_chat(user, "You transfer the frequency and code to [src].") - return ..() +/obj/item/assembly/signaler/item_interaction(mob/living/user, obj/item/used, list/modifiers) + if(!issignaler(used)) + return ..() + var/obj/item/assembly/signaler/signaler2 = used + if(!secured || !signaler2.secured) + return ITEM_INTERACT_COMPLETE + code = signaler2.code + frequency = signaler2.frequency + to_chat(user, "You transfer the frequency and code to [src].") + return ITEM_INTERACT_COMPLETE /// Called from activate(), actually invokes the signal on other signallers in the world /obj/item/assembly/signaler/proc/signal() @@ -58,7 +60,7 @@ GLOBAL_LIST_EMPTY(remote_signalers) /obj/item/assembly/signaler/proc/signal_callback() pulse(1) - visible_message("[bicon(src)] *beep* *beep* *beep*") + audible_message("[bicon(src)] *beep* *beep* *beep*") playsound(src, 'sound/machines/triple_beep.ogg', 40, extrarange = -10) // Activation pre-runner, handles cooldown and calls signal(), invoked from ui_act() @@ -74,7 +76,8 @@ GLOBAL_LIST_EMPTY(remote_signalers) // UI STUFF // -/obj/item/assembly/signaler/attack_self__legacy__attackchain(mob/user) +/obj/item/assembly/signaler/activate_self(mob/user) + . = ..() ui_interact(user) /obj/item/assembly/signaler/ui_state(mob/user) diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm index 95464ca6483..a8773305f33 100644 --- a/code/modules/assembly/timer.dm +++ b/code/modules/assembly/timer.dm @@ -43,7 +43,7 @@ cooldown = 2 pulse(FALSE) if(loc) - loc.visible_message("[bicon(src)] *beep* *beep* *beep*", "*beep* *beep* *beep*") + loc.audible_message("[bicon(src)] *beep* *beep* *beep*", "*beep* *beep* *beep*") playsound(src, 'sound/machines/triple_beep.ogg', 40, extrarange = -10) addtimer(CALLBACK(src, PROC_REF(process_cooldown)), 10) @@ -64,7 +64,7 @@ if(holder) holder.update_icon() -/obj/item/assembly/timer/interact(mob/user as mob)//TODO: Have this use the wires +/obj/item/assembly/timer/interact(mob/user)//TODO: Have this use the wires if(!secured) user.show_message(SPAN_WARNING("[src] is unsecured!")) return FALSE @@ -92,6 +92,7 @@ popup.set_content(dat) popup.open(0) onclose(user, "timer") + return ..() /obj/item/assembly/timer/Topic(href, href_list) ..() @@ -125,4 +126,4 @@ return if(usr) - attack_self__legacy__attackchain(usr) + activate_self(usr) diff --git a/code/modules/assembly/voice.dm b/code/modules/assembly/voice.dm index e871f3994c5..1f9262cd9f3 100644 --- a/code/modules/assembly/voice.dm +++ b/code/modules/assembly/voice.dm @@ -45,14 +45,15 @@ return ..() // previously this toggled listning when not in a holder, that's a little silly. It was only called in attack_self that way. -/obj/item/assembly/voice/attack_self__legacy__attackchain(mob/user) +/obj/item/assembly/voice/activate_self(mob/user) + . = ..() if(!user || !secured) return FALSE listening = !listening var/turf/T = get_turf(src) T.visible_message("[bicon(src)] beeps, \"[listening ? "Now" : "No longer"] recording input.\"") - return TRUE + return ITEM_INTERACT_COMPLETE /obj/item/assembly/voice/toggle_secure() @@ -65,7 +66,10 @@ materials = list(MAT_METAL = 210, MAT_GLASS = 50) bomb_name = "noise-activated bomb" -/obj/item/assembly/voice/noise/attack_self__legacy__attackchain(mob/user) +/obj/item/assembly/voice/noise/activate_self(mob/user) + if(!user) + return ..() + add_fingerprint(user) return /obj/item/assembly/voice/noise/examine(mob/user) diff --git a/code/modules/research/anomaly/anomaly.dm b/code/modules/research/anomaly/anomaly.dm index e335419a27b..d6e1b62bb12 100644 --- a/code/modules/research/anomaly/anomaly.dm +++ b/code/modules/research/anomaly/anomaly.dm @@ -13,7 +13,9 @@ var/obj/effect/anomaly/A = loc A.anomalyNeutralize() -/obj/item/assembly/signaler/anomaly/attack_self__legacy__attackchain() +/obj/item/assembly/signaler/anomaly/activate_self(mob/user) + if(!user) + return ..() return //Anomaly cores