diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 3cb13df7651..2ea581aa967 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -113,8 +113,6 @@ if(isturf(A) || isturf(A.loc) || (A.loc && isturf(A.loc.loc))) if(A.Adjacent(src)) // see adjacent.dm if(W) - if(W.preattack(A,src,1,params)) //Weapon attack override,return 1 to exit - return // Return 1 in attackby() to prevent afterattack() effects (when safely moving items for example) var/resolved = A.attackby(W,src) if(!resolved && A && W) @@ -126,8 +124,6 @@ return else // non-adjacent click if(W) - if(W.preattack(A,src,0,params)) //Weapon attack override,return 1 to exit - return W.afterattack(A,src,0,params) // 0: not Adjacent else RangedAttack(A, params) diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index d42b1c311c8..16a8ffa7dbc 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -43,11 +43,6 @@ /obj/item/proc/afterattack(atom/target, mob/user, proximity_flag, click_parameters) return -// Overrides the weapon attack so it can attack any atoms like when we want to have an effect on an object independent of attackby -// It is a powerfull proc but it should be used wisely, if there is other alternatives instead use those -// If it returns 1 it exits click code. Always . = 1 at start of the function if you delete src. -/obj/item/proc/preattack(atom/target, mob/user, proximity_flag, click_parameters) - return obj/item/proc/get_clamped_volume() if(src.force && src.w_class) diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm index 244c67a54fb..9ff6e7bfd03 100644 --- a/code/game/objects/items/weapons/explosives.dm +++ b/code/game/objects/items/weapons/explosives.dm @@ -56,8 +56,8 @@ timer = newtime user << "Timer set for [timer] seconds." -/obj/item/weapon/plastique/preattack(atom/target as obj|turf, mob/user as mob,proximity_flag) - if (!proximity_flag) +/obj/item/weapon/plastique/afterattack(atom/movable/target, mob/user, flag) + if (!flag) return if (istype(target, /turf/unsimulated) || istype(target, /turf/simulated/shuttle) || istype(target, /obj/item/weapon/storage/)) return @@ -86,7 +86,6 @@ user << "Bomb has been planted. Timer counting down from [timer]." spawn(timer*10) explode(get_turf(target)) - return 1 /obj/item/weapon/plastique/proc/explode(var/location) diff --git a/code/modules/detectivework/evidence.dm b/code/modules/detectivework/evidence.dm index 8e75055e17b..c381d15bb7c 100644 --- a/code/modules/detectivework/evidence.dm +++ b/code/modules/detectivework/evidence.dm @@ -8,16 +8,22 @@ item_state = "" w_class = 1 -/obj/item/weapon/evidencebag/afterattack(obj/item/I, mob/user as mob,proximity) - if(!proximity) +/obj/item/weapon/evidencebag/afterattack(obj/item/I, mob/user,proximity) + if(!proximity || loc == I) return + evidencebagEquip(I, user) +/obj/item/weapon/evidencebag/attackby(obj/item/I, mob/user) + if(evidencebagEquip(I, user)) + return 1 + +/obj/item/weapon/evidencebag/proc/evidencebagEquip(obj/item/I, mob/user) if(!istype(I) || I.anchored == 1) - return ..() + return if(istype(I, /obj/item/weapon/evidencebag)) user << "You find putting an evidence bag in another evidence bag to be slightly absurd." - return + return 1 //now this is podracing if(I.w_class > 3) user << "[I] won't fit in [src]." @@ -25,7 +31,7 @@ if(contents.len) user << "[src] already has something inside it." - return ..() + return if(!isturf(I.loc)) //If it isn't on the floor. Do some checks to see if it's in our hands or a box. Otherwise give up. if(istype(I.loc,/obj/item/weapon/storage)) //in a container. @@ -39,8 +45,8 @@ else return - user.visible_message("[user] puts [I] into [src]", "You put [I] inside [src].",\ - "You hear a rustle as someone puts something into a plastic bag.") + user.visible_message("[user] puts [I] into [src].", "You put [I] inside [src].",\ + "You hear a rustle as someone puts something into a plastic bag.") icon_state = "evidence" @@ -57,14 +63,13 @@ desc = "An evidence bag containing [I]. [I.desc]" I.loc = src w_class = I.w_class - return - + return 1 /obj/item/weapon/evidencebag/attack_self(mob/user as mob) if(contents.len) var/obj/item/I = contents[1] - user.visible_message("[user] takes [I] out of [src]", "You take [I] out of [src].",\ - "You hear someone rustle around in a plastic bag, and remove something.") + user.visible_message("[user] takes [I] out of [src].", "You take [I] out of [src].",\ + "You hear someone rustle around in a plastic bag, and remove something.") overlays.Cut() //remove the overlays user.put_in_hands(I) w_class = 1