diff --git a/code/ATMOSPHERICS/atmospherics.dm b/code/ATMOSPHERICS/atmospherics.dm
index 3656a2d3681..a1ed1bf3648 100644
--- a/code/ATMOSPHERICS/atmospherics.dm
+++ b/code/ATMOSPHERICS/atmospherics.dm
@@ -39,7 +39,7 @@ Pipelines + Other Objects -> Pipe network
pipe_color = null
..()
-/obj/machinery/atmospherics/attackby(atom/A, mob/user as mob)
+/obj/machinery/atmospherics/attackby(atom/A, mob/user as mob, params)
if(istype(A, /obj/item/device/pipe_painter))
return
..()
diff --git a/code/ATMOSPHERICS/chiller.dm b/code/ATMOSPHERICS/chiller.dm
index 717a2304ffc..80b0a06e9c6 100644
--- a/code/ATMOSPHERICS/chiller.dm
+++ b/code/ATMOSPHERICS/chiller.dm
@@ -47,7 +47,7 @@
cell.emp_act(severity)
..(severity)
-/obj/machinery/space_heater/air_conditioner/attackby(obj/item/I, mob/user)
+/obj/machinery/space_heater/air_conditioner/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/stock_parts/cell))
if(open)
if(cell)
diff --git a/code/ATMOSPHERICS/components/binary_devices/circulator.dm b/code/ATMOSPHERICS/components/binary_devices/circulator.dm
index 0ac8ab62997..843b7dc6518 100644
--- a/code/ATMOSPHERICS/components/binary_devices/circulator.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/circulator.dm
@@ -70,7 +70,7 @@
return 1
-/obj/machinery/atmospherics/binary/circulator/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/machinery/atmospherics/binary/circulator/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/wrench))
anchored = !anchored
user << "\blue You [anchored ? "secure" : "unsecure"] the bolts holding [src] to the floor."
diff --git a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm
index 4766883a645..9da08d5b117 100644
--- a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm
@@ -152,7 +152,7 @@
src.updateUsrDialog()
return
-/obj/machinery/atmospherics/binary/passive_gate/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
+/obj/machinery/atmospherics/binary/passive_gate/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob, params)
if (!istype(W, /obj/item/weapon/wrench))
return ..()
if (on)
diff --git a/code/ATMOSPHERICS/components/binary_devices/pump.dm b/code/ATMOSPHERICS/components/binary_devices/pump.dm
index 944ed53de16..6091f7240cc 100644
--- a/code/ATMOSPHERICS/components/binary_devices/pump.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/pump.dm
@@ -184,7 +184,7 @@ Thus, the two variables affect pump operation are set in New():
if(old_stat != stat)
update_icon()
-/obj/machinery/atmospherics/binary/pump/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
+/obj/machinery/atmospherics/binary/pump/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob, params)
if (!istype(W, /obj/item/weapon/wrench))
return ..()
if (!(stat & NOPOWER) && on)
diff --git a/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm b/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm
index 65eaabe40ab..cd30bf8cd2f 100644
--- a/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm
@@ -171,7 +171,7 @@ Thus, the two variables affect pump operation are set in New():
if(old_stat != stat)
update_icon()
-/obj/machinery/atmospherics/binary/volume_pump/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
+/obj/machinery/atmospherics/binary/volume_pump/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob, params)
if (!istype(W, /obj/item/weapon/wrench))
return ..()
if (!(stat & NOPOWER) && on)
diff --git a/code/ATMOSPHERICS/components/omni_devices/omni_base.dm b/code/ATMOSPHERICS/components/omni_devices/omni_base.dm
index ab97a6f2fd8..dbc1e1420b7 100644
--- a/code/ATMOSPHERICS/components/omni_devices/omni_base.dm
+++ b/code/ATMOSPHERICS/components/omni_devices/omni_base.dm
@@ -70,7 +70,7 @@
if(old_stat != stat)
update_icon()
-/obj/machinery/atmospherics/omni/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
+/obj/machinery/atmospherics/omni/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob, params)
if(!istype(W, /obj/item/weapon/wrench))
return ..()
diff --git a/code/ATMOSPHERICS/components/portables_connector.dm b/code/ATMOSPHERICS/components/portables_connector.dm
index 09fe000ec25..fda49cd6efc 100644
--- a/code/ATMOSPHERICS/components/portables_connector.dm
+++ b/code/ATMOSPHERICS/components/portables_connector.dm
@@ -133,11 +133,11 @@
return null
-/obj/machinery/atmospherics/portables_connector/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
+/obj/machinery/atmospherics/portables_connector/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob, params)
if (!istype(W, /obj/item/weapon/wrench))
return ..()
if (connected_device)
- user << "\red You cannot unwrench this [src], dettach [connected_device] first."
+ user << "\red You cannot unwrench this [src], detach [connected_device] first."
return 1
if (locate(/obj/machinery/portable_atmospherics, src.loc))
return 1
diff --git a/code/ATMOSPHERICS/components/trinary_devices/filter.dm b/code/ATMOSPHERICS/components/trinary_devices/filter.dm
index 677e5d4de2a..24ce446edb7 100755
--- a/code/ATMOSPHERICS/components/trinary_devices/filter.dm
+++ b/code/ATMOSPHERICS/components/trinary_devices/filter.dm
@@ -156,7 +156,7 @@ Filter types:
set_frequency(frequency)
..()
-/obj/machinery/atmospherics/trinary/filter/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
+/obj/machinery/atmospherics/trinary/filter/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob, params)
if (!istype(W, /obj/item/weapon/wrench))
return ..()
var/datum/gas_mixture/int_air = return_air()
diff --git a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm
index 228be72020d..841e9761231 100644
--- a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm
+++ b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm
@@ -114,7 +114,7 @@
return 1
-/obj/machinery/atmospherics/trinary/mixer/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
+/obj/machinery/atmospherics/trinary/mixer/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob, params)
if (!istype(W, /obj/item/weapon/wrench))
return ..()
var/datum/gas_mixture/int_air = return_air()
diff --git a/code/ATMOSPHERICS/components/tvalve.dm b/code/ATMOSPHERICS/components/tvalve.dm
index 22f9171ba74..da4a9cbb7bd 100644
--- a/code/ATMOSPHERICS/components/tvalve.dm
+++ b/code/ATMOSPHERICS/components/tvalve.dm
@@ -358,7 +358,7 @@
else
go_to_side()
-/obj/machinery/atmospherics/tvalve/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
+/obj/machinery/atmospherics/tvalve/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob, params)
if (!istype(W, /obj/item/weapon/wrench))
return ..()
if (istype(src, /obj/machinery/atmospherics/tvalve/digital))
diff --git a/code/ATMOSPHERICS/components/unary/heat_exchanger.dm b/code/ATMOSPHERICS/components/unary/heat_exchanger.dm
index cd92aa19d36..54e49e89378 100644
--- a/code/ATMOSPHERICS/components/unary/heat_exchanger.dm
+++ b/code/ATMOSPHERICS/components/unary/heat_exchanger.dm
@@ -65,7 +65,7 @@
return 1
- attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
+ attackby(var/obj/item/weapon/W as obj, var/mob/user as mob, params)
if (!istype(W, /obj/item/weapon/wrench))
return ..()
var/turf/T = src.loc
diff --git a/code/ATMOSPHERICS/components/unary/thermal_plate.dm b/code/ATMOSPHERICS/components/unary/thermal_plate.dm
index 605af38671e..1f5c78de6cf 100644
--- a/code/ATMOSPHERICS/components/unary/thermal_plate.dm
+++ b/code/ATMOSPHERICS/components/unary/thermal_plate.dm
@@ -68,7 +68,7 @@
icon_state = "[prefix]off"
return
- attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
+ attackby(var/obj/item/weapon/W as obj, var/mob/user as mob, params)
if (!istype(W, /obj/item/weapon/wrench))
return ..()
var/turf/T = src.loc
diff --git a/code/ATMOSPHERICS/components/unary/vent_pump.dm b/code/ATMOSPHERICS/components/unary/vent_pump.dm
index 68e0c52892a..d2092ce7e54 100644
--- a/code/ATMOSPHERICS/components/unary/vent_pump.dm
+++ b/code/ATMOSPHERICS/components/unary/vent_pump.dm
@@ -307,7 +307,7 @@
update_icon()
return
-/obj/machinery/atmospherics/unary/vent_pump/attackby(obj/item/W, mob/user)
+/obj/machinery/atmospherics/unary/vent_pump/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W
if (WT.remove_fuel(0,user))
@@ -343,7 +343,7 @@
if(old_stat != stat)
update_icon()
-/obj/machinery/atmospherics/unary/vent_pump/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
+/obj/machinery/atmospherics/unary/vent_pump/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob, params)
if (!istype(W, /obj/item/weapon/wrench))
return ..()
if (!(stat & NOPOWER) && on)
diff --git a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
index b62139cf508..05d60c80c96 100644
--- a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
+++ b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
@@ -276,7 +276,7 @@
if(old_stat != stat)
update_icon()
-/obj/machinery/atmospherics/unary/vent_scrubber/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
+/obj/machinery/atmospherics/unary/vent_scrubber/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob, params)
if (!istype(W, /obj/item/weapon/wrench))
return ..()
if (!(stat & NOPOWER) && on)
diff --git a/code/ATMOSPHERICS/components/valve.dm b/code/ATMOSPHERICS/components/valve.dm
index e8b99a9fb99..d004239acd9 100644
--- a/code/ATMOSPHERICS/components/valve.dm
+++ b/code/ATMOSPHERICS/components/valve.dm
@@ -299,7 +299,7 @@
else
open()
-/obj/machinery/atmospherics/valve/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
+/obj/machinery/atmospherics/valve/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob, params)
if (!istype(W, /obj/item/weapon/wrench))
return ..()
if (istype(src, /obj/machinery/atmospherics/valve/digital) && src:frequency)
diff --git a/code/ATMOSPHERICS/pipes.dm b/code/ATMOSPHERICS/pipes.dm
index 671f0d95158..2a143c80c51 100644
--- a/code/ATMOSPHERICS/pipes.dm
+++ b/code/ATMOSPHERICS/pipes.dm
@@ -62,7 +62,7 @@
..()
-/obj/machinery/atmospherics/pipe/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
+/obj/machinery/atmospherics/pipe/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob, params)
if (istype(src, /obj/machinery/atmospherics/pipe/tank))
return ..()
if (istype(src, /obj/machinery/atmospherics/pipe/vent))
@@ -1220,7 +1220,7 @@
return null
-/obj/machinery/atmospherics/pipe/tank/attackby(var/obj/item/W as obj, var/mob/user as mob)
+/obj/machinery/atmospherics/pipe/tank/attackby(var/obj/item/W as obj, var/mob/user as mob, params)
if(istype(W, /obj/item/device/pipe_painter))
return
diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm
index 5e65bc57536..e7721b4a4a6 100644
--- a/code/_onclick/ai.dm
+++ b/code/_onclick/ai.dm
@@ -15,7 +15,6 @@
return
if(control_disabled || stat) return
- next_move = world.time + 9
if(ismob(A))
ai_actual_track(A)
@@ -60,7 +59,6 @@
if(world.time <= next_move)
return
- next_move = world.time + 9
if(aiCamera.in_camera_mode)
aiCamera.camera_mode_off()
diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm
index fb2f17d46a9..3fbd6cde855 100644
--- a/code/_onclick/click.dm
+++ b/code/_onclick/click.dm
@@ -77,6 +77,7 @@
return M.click_action(A,src)
if(restrained())
+ changeNext_move(CLICK_CD_HANDCUFFED) //Doing shit in cuffs shall be vey slow
RestrainedClickOn(A)
return
@@ -87,37 +88,26 @@
var/obj/item/W = get_active_hand()
if(W == A)
- next_move = world.time + 6
- if(W.flags&USEDELAY)
- next_move += 5
W.attack_self(src)
if(hand)
update_inv_l_hand(0)
else
update_inv_r_hand(0)
-
return
// operate two STORAGE levels deep here (item in backpack in src; NOT item in box in backpack in src)
var/sdepth = A.storage_depth(src)
if(A == loc || (A in loc) || (sdepth != -1 && sdepth <= 1))
-
- // faster access to objects already on you
- if(A in contents)
- next_move = world.time + 6 // on your person
- else
- next_move = world.time + 8 // in a box/bag or in your square
-
// No adjacency needed
if(W)
- if(W.flags&USEDELAY)
- next_move += 5
-
var/resolved = A.attackby(W,src)
if(!resolved && A && W)
W.afterattack(A,src,1,params) // 1 indicates adjacency
else
+ if(ismob(A))
+ changeNext_move(CLICK_CD_MELEE)
UnarmedAttack(A, 1)
+
return
if(!isturf(loc)) // This is going to stop you from telekinesing from inside a closet, but I don't shed many tears for that
@@ -126,19 +116,17 @@
// Allows you to click on a box's contents, if that box is on the ground, but no deeper than that
sdepth = A.storage_depth_turf()
if(isturf(A) || isturf(A.loc) || (sdepth != -1 && sdepth <= 1))
- next_move = world.time + 10
-
if(A.Adjacent(src)) // see adjacent.dm
if(W)
- if(W.flags&USEDELAY)
- next_move += 5
-
- // Return 1 in attackby() to prevent afterattack() effects (when safely moving items for example)
- var/resolved = A.attackby(W,src)
+ // Return 1 in attackby() to prevent afterattack() effects (when safely moving items for example, params)
+ var/resolved = A.attackby(W,src,params)
if(!resolved && A && W)
W.afterattack(A,src,1,params) // 1: clicking something Adjacent
else
+ if(ismob(A))
+ changeNext_move(CLICK_CD_MELEE)
UnarmedAttack(A, 1)
+
return
else // non-adjacent click
if(W)
@@ -148,10 +136,12 @@
return
+/mob/proc/changeNext_move(num)
+ next_move = world.time + num
+
// Default behavior: ignore double clicks, consider them normal clicks instead
/mob/proc/DblClickOn(var/atom/A, var/params)
- ClickOn(A,params)
-
+ return
/*
Translates into attack_hand, etc.
@@ -164,6 +154,8 @@
in human click code to allow glove touches only at melee range.
*/
/mob/proc/UnarmedAttack(var/atom/A, var/proximity_flag)
+ if(ismob(A))
+ changeNext_move(CLICK_CD_MELEE)
return
/*
@@ -178,22 +170,12 @@
if(ishuman(src) && (istype(src:gloves, /obj/item/clothing/gloves/yellow/power)) && a_intent == "harm")
PowerGlove(A)
if(!mutations.len) return
- if((M_LASER in mutations) && a_intent == "harm")
+ if((LASER in mutations) && a_intent == "harm")
LaserEyes(A) // moved into a proc below
return
- else if(M_TK in mutations)
- switch(get_dist(src,A))
- if(0)
- ;
- if(1 to 5) // not adjacent may mean blocked by window
- next_move += 2
- if(5 to 7)
- next_move += 5
- if(8 to tk_maxrange)
- next_move += 10
- else
- return
- A.attack_tk(src)
+ else
+ if(TK in mutations)
+ A.attack_tk(src)
/*
Restrained ClickOn
@@ -309,7 +291,7 @@
return
/mob/living/LaserEyes(atom/A)
- next_move = world.time + 6
+ changeNext_move(CLICK_CD_RANGE)
var/turf/T = get_turf(src)
var/turf/U = get_turf(A)
diff --git a/code/_onclick/cyborg.dm b/code/_onclick/cyborg.dm
index 4e20ef9ec32..6d497cff462 100644
--- a/code/_onclick/cyborg.dm
+++ b/code/_onclick/cyborg.dm
@@ -72,21 +72,13 @@
return
if(W == A)
- next_move = world.time + 8
- if(W.flags&USEDELAY)
- next_move += 5
-
W.attack_self(src)
return
// cyborgs are prohibited from using storage items so we can I think safely remove (A.loc in contents)
if(A == loc || (A in loc) || (A in contents))
// No adjacency checks
- next_move = world.time + 8
- if(W.flags&USEDELAY)
- next_move += 5
-
- var/resolved = A.attackby(W,src)
+ var/resolved = A.attackby(W,src,params, params)
if(!resolved && A && W)
W.afterattack(A,src,1,params)
return
@@ -97,16 +89,11 @@
// cyborgs are prohibited from using storage items so we can I think safely remove (A.loc && isturf(A.loc.loc))
if(isturf(A) || isturf(A.loc))
if(A.Adjacent(src)) // see adjacent.dm
- next_move = world.time + 10
- if(W.flags&USEDELAY)
- next_move += 5
-
- var/resolved = A.attackby(W, src)
+ var/resolved = A.attackby(W, src, params, params)
if(!resolved && A && W)
W.afterattack(A, src, 1, params)
return
else
- next_move = world.time + 10
W.afterattack(A, src, 0, params)
return
return
diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index 1e07b13142a..8f8058aa9e3 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -52,7 +52,6 @@
return 1
if(usr.next_move >= world.time)
return
- usr.next_move = world.time + 6
if(usr.stat || usr.restrained() || usr.stunned || usr.lying)
return 1
@@ -87,7 +86,7 @@
/obj/screen/storage
name = "storage"
-/obj/screen/storage/Click()
+/obj/screen/storage/Click(location, control, params)
if(world.time <= usr.next_move)
return 1
if(usr.stat || usr.paralysis || usr.stunned || usr.weakened)
@@ -97,8 +96,7 @@
if(master)
var/obj/item/I = usr.get_active_hand()
if(I)
- master.attackby(I, usr)
- usr.next_move = world.time+2
+ master.attackby(I, usr, params, params)
return 1
/obj/screen/gun
@@ -583,12 +581,10 @@
if(iscarbon(usr))
var/mob/living/carbon/C = usr
C.activate_hand("r")
- usr.next_move = world.time+2
if("l_hand")
if(iscarbon(usr))
var/mob/living/carbon/C = usr
C.activate_hand("l")
- usr.next_move = world.time+2
if("swap")
usr:swap_hand()
if("hand")
@@ -597,5 +593,4 @@
if(usr.attack_ui(slot_id))
usr.update_inv_l_hand(0)
usr.update_inv_r_hand(0)
- usr.next_move = world.time+6
return 1
diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm
index 07fb74b8359..8722906def5 100644
--- a/code/_onclick/item_attack.dm
+++ b/code/_onclick/item_attack.dm
@@ -4,13 +4,16 @@
return
// No comment
-/atom/proc/attackby(obj/item/W, mob/user)
+/atom/proc/attackby(obj/item/W, mob/living/user, params)
return
-/atom/movable/attackby(obj/item/W, mob/user)
+/atom/movable/attackby(obj/item/W, mob/living/user, params)
+ user.changeNext_move(CLICK_CD_MELEE)
+ user.do_attack_animation(src)
if(!(W.flags&NOBLUDGEON))
visible_message("[src] has been hit by [user] with [W].")
-/mob/living/attackby(obj/item/I, mob/user)
+/mob/living/attackby(obj/item/I, mob/user, params)
+ user.changeNext_move(CLICK_CD_MELEE)
if(istype(I) && ismob(user))
I.attack(src, user)
@@ -50,7 +53,7 @@
/////////////////////////
var/power = force
- if(M_HULK in user.mutations)
+ if(HULK in user.mutations)
power *= 2
if(!istype(M, /mob/living/carbon/human))
@@ -128,6 +131,7 @@
var/showname = "."
if(user)
showname = " by [user]."
+ user.do_attack_animation(src)
if(!(user in viewers(M, null)))
showname = "."
@@ -159,7 +163,7 @@
if (istype(location, /turf/simulated))
location:add_blood_floor(M)
if("fire")
- if (!(M_RESIST_COLD in M.mutations))
+ if (!(RESIST_COLD in M.mutations))
M.take_organ_damage(0, power)
M << "Aargh it burns!"
M.updatehealth()
diff --git a/code/_onclick/observer.dm b/code/_onclick/observer.dm
index 210140bdf9f..79e080e74bd 100644
--- a/code/_onclick/observer.dm
+++ b/code/_onclick/observer.dm
@@ -19,8 +19,8 @@
if(client.buildmode)
build_click(src, client.buildmode, params, A)
return
- if(world.time <= next_move) return
- next_move = world.time + 8
+ if(world.time <= next_move)
+ return
var/list/modifiers = params2list(params)
if(modifiers["shift"])
diff --git a/code/_onclick/oldcode.dm b/code/_onclick/oldcode.dm
index f81c3f9e37f..954d2eac3fd 100644
--- a/code/_onclick/oldcode.dm
+++ b/code/_onclick/oldcode.dm
@@ -270,7 +270,7 @@
// ------- YOU HAVE AN ITEM IN YOUR HAND - HANDLE ATTACKBY AND AFTERATTACK -------
var/ignoreAA = 0 //Ignore afterattack(). Surgery uses this.
if (t5)
- ignoreAA = src.attackby(W, usr)
+ ignoreAA = src.attackby(W, usr, params)
if (W && !ignoreAA)
W.afterattack(src, usr, (t5 ? 1 : 0), params)
@@ -326,7 +326,7 @@
// ------- YOU ARE NOT RESTRAINED -------
if ((W && !( istype(src, /obj/screen) )))
// ------- IT SHOULD NEVER GET TO HERE, DUE TO THE ISTYPE(SRC, /OBJ/SCREEN) FROM PREVIOUS IF-S - I TESTED IT WITH A DEBUG OUTPUT AND I COULDN'T GET THIST TO SHOW UP. -------
- src.attackby(W, usr)
+ src.attackby(W, usr, params)
if (W)
W.afterattack(src, usr,, params)
else
@@ -347,8 +347,8 @@
src.hand_al(usr, usr.hand)
else
// ------- YOU ARE CLICKING ON AN OBJECT THAT'S INACCESSIBLE TO YOU AND IS NOT YOUR HUD -------
- if((M_LASER in usr:mutations) && usr:a_intent == "harm" && world.time >= usr.next_move)
- // ------- YOU HAVE THE M_LASER MUTATION, YOUR INTENT SET TO HURT AND IT'S BEEN MORE THAN A DECISECOND SINCE YOU LAS TATTACKED -------
+ if((LASER in usr:mutations) && usr:a_intent == "harm" && world.time >= usr.next_move)
+ // ------- YOU HAVE THE LASER MUTATION, YOUR INTENT SET TO HURT AND IT'S BEEN MORE THAN A DECISECOND SINCE YOU LAS TATTACKED -------
var/turf/T = get_turf(usr)
var/turf/U = get_turf(src)
diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm
index c6527855100..1dd064219a5 100644
--- a/code/_onclick/other_mobs.dm
+++ b/code/_onclick/other_mobs.dm
@@ -30,22 +30,13 @@
/mob/living/carbon/human/RangedAttack(var/atom/A)
if(!gloves && !mutations.len) return
var/obj/item/clothing/gloves/G = gloves
- if((M_LASER in mutations) && a_intent == "harm")
+ if((LASER in mutations) && a_intent == "harm")
LaserEyes(A) // moved into a proc below
else if(istype(G) && G.Touch(A,0)) // for magic gloves
return
- else if(M_TK in mutations)
- switch(get_dist(src,A))
- if(1 to 5) // not adjacent may mean blocked by window
- next_move += 2
- if(5 to 7)
- next_move += 5
- if(8 to 15)
- next_move += 10
- if(16 to 128)
- return
+ else if(TK in mutations)
A.attack_tk(src)
*/
@@ -78,7 +69,7 @@
if(..())
return
if(a_intent != "harm" || !ismob(A)) return
- if(istype(wear_mask, /obj/item/clothing/mask/muzzle))
+ if(is_muzzled())
return
var/mob/living/carbon/ML = A
var/dam_zone = ran_zone(pick("chest", "l_hand", "r_hand", "l_leg", "r_leg"))
diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm
index c06485ee0ec..5fb552d4384 100644
--- a/code/_onclick/telekinesis.dm
+++ b/code/_onclick/telekinesis.dm
@@ -39,13 +39,13 @@ var/const/tk_maxrange = 15
/obj/item/attack_tk(mob/user)
if(user.stat || !isturf(loc)) return
- if((M_TK in user.mutations) && !user.get_active_hand()) // both should already be true to get here
+ if((TK in user.mutations) && !user.get_active_hand()) // both should already be true to get here
var/obj/item/tk_grab/O = new(src)
user.put_in_active_hand(O)
O.host = user
O.focus_object(src)
else
- warning("Strange attack_tk(): TK([M_TK in user.mutations]) empty hand([!user.get_active_hand()])")
+ warning("Strange attack_tk(): TK([TK in user.mutations]) empty hand([!user.get_active_hand()])")
return
@@ -56,7 +56,7 @@ var/const/tk_maxrange = 15
TK Grab Item (the workhorse of old TK)
* If you have not grabbed something, do a normal tk attack
- * If you have something, throw it at the target. If it is already adjacent, do a normal attackby()
+ * If you have something, throw it at the target. If it is already adjacent, do a normal attackby(, params)
* If you click what you are holding, or attack_self(), do an attack_self_tk() on it.
* Deletes itself if it is ever not in your hand, or if you should have no access to TK.
*/
@@ -95,33 +95,24 @@ var/const/tk_maxrange = 15
if(focus)
focus.attack_self_tk(user)
- afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, proximity)//TODO: go over this
+ afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, proximity, params)//TODO: go over this
if(!target || !user) return
if(last_throw+3 > world.time) return
if(!host || host != user)
del(src)
return
- if(!(M_TK in host.mutations))
+ if(!(TK in host.mutations))
del(src)
return
if(isobj(target) && !isturf(target.loc))
return
var/d = get_dist(user, target)
- if(focus) d = max(d,get_dist(user,focus)) // whichever is further
- switch(d)
- if(0)
- ;
- if(1 to 5) // not adjacent may mean blocked by window
- if(!proximity)
- user.next_move += 2
- if(5 to 7)
- user.next_move += 5
- if(8 to tk_maxrange)
- user.next_move += 10
- else
- user << "\blue Your mind won't reach that far."
- return
+ if(focus)
+ d = max(d,get_dist(user,focus)) // whichever is further
+ if(d > tk_maxrange)
+ user << "Your mind won't reach that far."
+ return
if(!focus)
focus_object(target, user)
@@ -134,7 +125,7 @@ var/const/tk_maxrange = 15
if(!istype(target, /turf) && istype(focus,/obj/item) && target.Adjacent(focus))
var/obj/item/I = focus
- var/resolved = target.attackby(I, user, user:get_organ_target())
+ var/resolved = target.attackby(I, user, params)
if(!resolved && target && I)
I.afterattack(target,user,1) // for splashing with beakers
@@ -198,7 +189,7 @@ var/const/tk_maxrange = 15
//equip_to_slot_or_del(obj/item/W, slot, del_on_fail = 1)
/*
if(istype(user, /mob/living/carbon))
- if(user:mutations & M_TK && get_dist(source, user) <= 7)
+ if(user:mutations & TK && get_dist(source, user) <= 7)
if(user:get_active_hand()) return 0
var/X = source:x
var/Y = source:y
diff --git a/code/datums/spell.dm b/code/datums/spell.dm
index d131db35dda..e03f172f2a2 100644
--- a/code/datums/spell.dm
+++ b/code/datums/spell.dm
@@ -48,7 +48,7 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
var/icon_power_button
var/power_button_name
-/obj/effect/proc_holder/spell/wizard/proc/cast_check(skipcharge = 0, mob/user = usr) //checks if the spell can be cast based on its settings; skipcharge is used when an additional cast_check is called inside the spell
+/obj/effect/proc_holder/spell/wizard/proc/cast_check(skipcharge = 0, mob/living/user = usr) //checks if the spell can be cast based on its settings; skipcharge is used when an additional cast_check is called inside the spell
if(!(src in user.spell_list))
user << "You shouldn't have this spell! Something's wrong."
@@ -75,27 +75,27 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
return 0
if(!ghost)
- if(usr.stat && !stat_allowed)
- usr << "Not when you're incapacitated."
+ if(user.stat && !stat_allowed)
+ user << "Not when you're incapacitated."
return 0
- if(ishuman(usr) || ismonkey(usr))
- if(istype(usr.wear_mask, /obj/item/clothing/mask/muzzle))
- usr << "Mmmf mrrfff!"
+ if(ishuman(user) || ismonkey(user))
+ if(user.is_muzzled())
+ user << "Mmmf mrrfff!"
return 0
var/obj/effect/proc_holder/spell/wizard/noclothes/spell = locate() in user.spell_list
if(clothes_req && !(spell && istype(spell)))//clothes check
- if(!istype(usr, /mob/living/carbon/human))
- usr << "You aren't a human, Why are you trying to cast a human spell, silly non-human? Casting human spells is for humans."
+ if(!istype(user, /mob/living/carbon/human))
+ user << "You aren't a human, Why are you trying to cast a human spell, silly non-human? Casting human spells is for humans."
return 0
- if(!istype(usr:wear_suit, /obj/item/clothing/suit/wizrobe) && !istype(user:wear_suit, /obj/item/clothing/suit/space/rig/wizard))
- usr << "I don't feel strong enough without my robe."
+ if(!istype(user:wear_suit, /obj/item/clothing/suit/wizrobe) && !istype(user:wear_suit, /obj/item/clothing/suit/space/rig/wizard))
+ user << "I don't feel strong enough without my robe."
return 0
- if(!istype(usr:shoes, /obj/item/clothing/shoes/sandal))
- usr << "I don't feel strong enough without my sandals."
+ if(!istype(user:shoes, /obj/item/clothing/shoes/sandal))
+ user << "I don't feel strong enough without my sandals."
return 0
- if(!istype(usr:head, /obj/item/clothing/head/wizard) && !istype(usr:head, /obj/item/clothing/head/helmet/space/rig/wizard))
- usr << "I don't feel strong enough without my hat."
+ if(!istype(user:head, /obj/item/clothing/head/wizard) && !istype(user:head, /obj/item/clothing/head/helmet/space/rig/wizard))
+ user << "I don't feel strong enough without my hat."
return 0
if(!skipcharge)
diff --git a/code/datums/spells/genetic.dm b/code/datums/spells/genetic.dm
index 45be50f0b75..6bf167196cd 100644
--- a/code/datums/spells/genetic.dm
+++ b/code/datums/spells/genetic.dm
@@ -20,7 +20,7 @@
for(var/mob/living/target in targets)
for(var/x in mutations)
target.mutations.Add(x)
- if(x == M_HULK && ishuman(target))
+ if(x == HULK && ishuman(target))
target:hulk_time=world.time + duration
target.disabilities |= disabilities
target.update_mutations() //update target's mutation overlays
diff --git a/code/datums/spells/wizard.dm b/code/datums/spells/wizard.dm
index 5672052e0a2..ae507556181 100644
--- a/code/datums/spells/wizard.dm
+++ b/code/datums/spells/wizard.dm
@@ -48,7 +48,7 @@
include_user = 1
centcom_cancast = 0
- mutations = list(M_LASER, M_HULK)
+ mutations = list(LASER, HULK)
duration = 300
cooldown_min = 300 //25 deciseconds reduction per rank
diff --git a/code/defines/obj.dm b/code/defines/obj.dm
index 9df9521f6bb..5eb6c3b54fc 100644
--- a/code/defines/obj.dm
+++ b/code/defines/obj.dm
@@ -4,7 +4,7 @@
anchored = 1
density = 1
- attackby(obj/item/weapon/W as obj, mob/user as mob)
+ attackby(obj/item/weapon/W as obj, mob/user as mob, params)
return attack_hand(user)
attack_hand(mob/user as mob)
@@ -19,7 +19,7 @@
anchored = 1
density = 0
- attackby(obj/item/weapon/W as obj, mob/user as mob)
+ attackby(obj/item/weapon/W as obj, mob/user as mob, params)
return attack_hand(user)
diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm
index ccfda6b21c3..a95fe3a4ac2 100644
--- a/code/defines/obj/weapon.dm
+++ b/code/defines/obj/weapon.dm
@@ -830,7 +830,6 @@
icon = 'icons/obj/lightning.dmi'
icon_state = "lightning"
desc = "test lightning"
- flags = USEDELAY
New()
icon = midicon
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index 2a7f975e46b..fa22e742970 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -295,7 +295,7 @@ its easier to just keep the beam vertical.
add_fibers(M)
//He has no prints!
- if (M_FINGERPRINTS in M.mutations)
+ if (FINGERPRINTS in M.mutations)
if(fingerprintslast != M.key)
fingerprintshidden += "(Has no fingerprints) Real name: [M.real_name], Key: [M.key]"
fingerprintslast = M.key
diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm
index 5d4a4539e65..28c188467b4 100644
--- a/code/game/atoms_movable.dm
+++ b/code/game/atoms_movable.dm
@@ -108,7 +108,7 @@
src.throw_source = get_turf(src) //store the origin turf
if(usr)
- if(M_HULK in usr.mutations)
+ if(HULK in usr.mutations)
src.throwing = 2 // really strong throw!
var/dist_x = abs(target.x - src.x)
@@ -207,9 +207,9 @@
verbs.Cut()
return
-/atom/movable/overlay/attackby(a, b)
+/atom/movable/overlay/attackby(a, b, c)
if (src.master)
- return src.master.attackby(a, b)
+ return src.master.attackby(a, b, c)
return
/atom/movable/overlay/attack_paw(a, b, c)
diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm
index 2aacd6e3dd9..5e451c19a92 100644
--- a/code/game/dna/dna_modifier.dm
+++ b/code/game/dna/dna_modifier.dm
@@ -191,7 +191,7 @@
if(user.pulling == L)
user.pulling = null
-/obj/machinery/dna_scannernew/attackby(var/obj/item/weapon/item as obj, var/mob/user as mob)
+/obj/machinery/dna_scannernew/attackby(var/obj/item/weapon/item as obj, var/mob/user as mob, params)
if(istype(item, /obj/item/weapon/screwdriver))
if(occupant)
user << "The maintenance panel is locked."
@@ -338,7 +338,7 @@
active_power_usage = 400
var/waiting_for_user_input=0 // Fix for #274 (Mash create block injector without answering dialog to make unlimited injectors) - N3X
-/obj/machinery/computer/scan_consolenew/attackby(obj/item/I as obj, mob/user as mob)
+/obj/machinery/computer/scan_consolenew/attackby(obj/item/I as obj, mob/user as mob, params)
if (istype(I, /obj/item/weapon/disk/data)) //INSERT SOME diskS
if (!src.disk)
user.drop_item()
@@ -504,7 +504,7 @@
occupantData["name"] = connected.occupant.name
occupantData["stat"] = connected.occupant.stat
occupantData["isViableSubject"] = 1
- if ((M_NOCLONE in connected.occupant.mutations && connected.scan_level < 3) || !src.connected.occupant.dna)
+ if ((NOCLONE in connected.occupant.mutations && connected.scan_level < 3) || !src.connected.occupant.dna)
occupantData["isViableSubject"] = 0
occupantData["health"] = connected.occupant.health
occupantData["maxHealth"] = connected.occupant.maxHealth
@@ -843,7 +843,7 @@
return 1
if (bufferOption == "transfer")
- if (!src.connected.occupant || (M_NOCLONE in src.connected.occupant.mutations && connected.scan_level < 3) || !src.connected.occupant.dna)
+ if (!src.connected.occupant || (NOCLONE in src.connected.occupant.mutations && connected.scan_level < 3) || !src.connected.occupant.dna)
return
irradiating = 2
diff --git a/code/game/dna/genes/disabilities.dm b/code/game/dna/genes/disabilities.dm
index 4d80cba48c5..0431d666c53 100644
--- a/code/game/dna/genes/disabilities.dm
+++ b/code/game/dna/genes/disabilities.dm
@@ -55,7 +55,7 @@
name="Hallucinate"
activation_message="Your mind says 'Hello'."
deactivation_message ="Sanity returns. Or does it?"
- mutation=M_HALLUCINATE
+ mutation=HALLUCINATE
New()
block=HALLUCINATIONBLOCK
@@ -82,7 +82,7 @@
name="Clumsiness"
activation_message="You feel lightheaded."
deactivation_message ="You regain some control of your movements"
- mutation=M_CLUMSY
+ mutation=CLUMSY
New()
block=CLUMSYBLOCK
@@ -155,7 +155,7 @@
desc = "This will only bring death and destruction."
activation_message = "Uh oh!"
deactivation_message = "Well thank god that's over with."
- mutation=M_COMIC
+ mutation=COMIC
New()
block = COMICBLOCK
diff --git a/code/game/dna/genes/goon_disabilities.dm b/code/game/dna/genes/goon_disabilities.dm
index 1214919a441..abd64146b1f 100644
--- a/code/game/dna/genes/goon_disabilities.dm
+++ b/code/game/dna/genes/goon_disabilities.dm
@@ -57,7 +57,7 @@
activation_message = "You feel blubbery and lethargic!"
deactivation_message = "You feel fit!"
- mutation = M_OBESITY
+ mutation = OBESITY
New()
..()
@@ -219,7 +219,7 @@
deactivation_message = "Your stomach stops acting up. Phew!"
instability=2
- mutation = M_TOXIC_FARTS
+ mutation = TOXIC_FARTS
New()
..()
@@ -237,7 +237,7 @@
activation_message = "You feel buff!"
deactivation_message = "You feel wimpy and weak."
- mutation = M_STRONG
+ mutation = STRONG
New()
..()
diff --git a/code/game/dna/genes/goon_powers.dm b/code/game/dna/genes/goon_powers.dm
index 00a7879906f..c154d8f9249 100644
--- a/code/game/dna/genes/goon_powers.dm
+++ b/code/game/dna/genes/goon_powers.dm
@@ -6,7 +6,7 @@
activation_messages=list("You feel unusually sober.")
deactivation_messages = list("You feel like you could use a stiff drink.")
- mutation=M_SOBER
+ mutation=SOBER
New()
block=SOBERBLOCK
@@ -19,7 +19,7 @@
deactivation_messages = list("You feel oddly exposed.")
instability=2
- mutation=M_PSY_RESIST
+ mutation=PSY_RESIST
New()
block=PSYRESISTBLOCK
@@ -149,7 +149,7 @@
usr << "\red This will only work on normal organic beings."
return
- if (M_RESIST_COLD in C.mutations)
+ if (RESIST_COLD in C.mutations)
C.visible_message("\red A cloud of fine ice crystals engulfs [C.name], but disappears almost instantly!")
return
var/handle_suit = 0
@@ -392,7 +392,7 @@
else usr.pixel_y -= 8
sleep(1)
- if (M_FAT in usr.mutations && prob(66))
+ if (FAT in usr.mutations && prob(66))
usr.visible_message("\red [usr.name] crashes due to their heavy weight!")
//playsound(usr.loc, 'zhit.wav', 50, 1)
usr.weakened += 10
@@ -481,7 +481,7 @@
activation_messages = list("You suddenly notice more about others than you did before.")
deactivation_messages = list("You no longer feel able to sense intentions.")
instability=1
- mutation=M_EMPATH
+ mutation=EMPATH
New()
..()
@@ -514,7 +514,7 @@
usr << "\red You may only use this on other organic beings."
return
- if (M_PSY_RESIST in M.mutations)
+ if (PSY_RESIST in M.mutations)
usr << "\red You can't see into [M.name]'s mind at all!"
return
@@ -578,7 +578,7 @@
usr << "\blue Numbers: You sense the number[numbers.len>1?"s":""] [english_list(numbers)] [numbers.len>1?"are":"is"] important to [M.name]."
usr << "\blue Thoughts: [M.name] is currently [thoughts]."
- if (M_EMPATH in M.mutations)
+ if (EMPATH in M.mutations)
M << "\red You sense [usr.name] reading your mind."
else if (prob(5) || M.mind.assigned_role=="Chaplain")
M << "\red You sense someone intruding upon your thoughts..."
@@ -594,7 +594,7 @@
deactivation_messages = list("You no longer feel gassy. What a relief!")
instability=1
- mutation = M_SUPER_FART
+ mutation = SUPER_FART
New()
..()
diff --git a/code/game/dna/genes/powers.dm b/code/game/dna/genes/powers.dm
index 81d20456736..61068c81701 100644
--- a/code/game/dna/genes/powers.dm
+++ b/code/game/dna/genes/powers.dm
@@ -5,7 +5,7 @@
/datum/dna/gene/basic/nobreath
name="No Breathing"
activation_messages=list("You feel no need to breathe.")
- mutation=M_NO_BREATH
+ mutation=NO_BREATH
instability=2
New()
@@ -15,7 +15,7 @@
/datum/dna/gene/basic/regenerate
name="Regenerate"
activation_messages=list("You feel better.")
- mutation=M_REGEN
+ mutation=REGEN
instability=2
New()
@@ -24,7 +24,7 @@
/datum/dna/gene/basic/increaserun
name="Super Speed"
activation_messages=list("Your leg muscles pulsate.")
- mutation=M_RUN
+ mutation=RUN
instability=1
New()
@@ -34,7 +34,7 @@
/datum/dna/gene/basic/heat_resist
name="Heat Resistance"
activation_messages=list("Your skin is icy to the touch.")
- mutation=M_RESIST_HEAT
+ mutation=RESIST_HEAT
instability=2
New()
@@ -45,7 +45,7 @@
return !(/datum/dna/gene/basic/cold_resist in M.active_genes)
// Probability check
var/_prob = 15
- if(M_RESIST_COLD in M.mutations)
+ if(RESIST_COLD in M.mutations)
_prob=5
if(probinj(_prob,(flags&MUTCHK_FORCED)))
return 1
@@ -56,7 +56,7 @@
/datum/dna/gene/basic/cold_resist
name="Cold Resistance"
activation_messages=list("Your body is filled with warmth.")
- mutation=M_RESIST_COLD
+ mutation=RESIST_COLD
instability=2
New()
@@ -67,7 +67,7 @@
return !(/datum/dna/gene/basic/heat_resist in M.active_genes)
// Probability check
var/_prob=30
- if(M_RESIST_HEAT in M.mutations)
+ if(RESIST_HEAT in M.mutations)
_prob=5
if(probinj(_prob,(flags&MUTCHK_FORCED)))
return 1
@@ -78,7 +78,7 @@
/datum/dna/gene/basic/noprints
name="No Prints"
activation_messages=list("Your fingers feel numb.")
- mutation=M_FINGERPRINTS
+ mutation=FINGERPRINTS
instability=1
New()
@@ -87,7 +87,7 @@
/datum/dna/gene/basic/noshock
name="Shock Immunity"
activation_messages=list("Your skin feels strange.")
- mutation=M_NO_SHOCK
+ mutation=NO_SHOCK
instability=2
New()
@@ -96,7 +96,7 @@
/datum/dna/gene/basic/midget
name="Midget"
activation_messages=list("Your skin feels rubbery.")
- mutation=M_DWARF
+ mutation=DWARF
instability=1
New()
@@ -104,7 +104,7 @@
can_activate(var/mob/M,var/flags)
// Can't be big and small.
- if(M_HULK in M.mutations)
+ if(HULK in M.mutations)
return 0
return ..(M,flags)
@@ -115,7 +115,7 @@
/datum/dna/gene/basic/xray
name="X-Ray Vision"
activation_messages=list("The walls suddenly disappear.")
- mutation=M_XRAY
+ mutation=XRAY
instability=2
New()
@@ -124,7 +124,7 @@
/datum/dna/gene/basic/tk
name="Telekenesis"
activation_messages=list("You feel smarter.")
- mutation=M_TK
+ mutation=TK
activation_prob=15
instability=5
diff --git a/code/game/dna/genes/vg_disabilities.dm b/code/game/dna/genes/vg_disabilities.dm
index 9105047289c..6cb2c6f6ce8 100644
--- a/code/game/dna/genes/vg_disabilities.dm
+++ b/code/game/dna/genes/vg_disabilities.dm
@@ -30,7 +30,7 @@
can_activate(var/mob/M,var/flags)
// No loud whispering.
- if(M_LOUD in M.mutations)
+ if(LOUD in M.mutations)
return 0
return ..(M,flags)
@@ -51,5 +51,5 @@
OnMobLife(var/mob/living/carbon/human/M)
if(!istype(M)) return
- if(M_DIZZY in M.mutations)
+ if(DIZZY in M.mutations)
M.Dizzy(300)
diff --git a/code/game/dna/genes/vg_powers.dm b/code/game/dna/genes/vg_powers.dm
index b4bdee1b464..2b45360f613 100644
--- a/code/game/dna/genes/vg_powers.dm
+++ b/code/game/dna/genes/vg_powers.dm
@@ -26,12 +26,12 @@ Obviously, requires DNA2.
can_activate(var/mob/M,var/flags)
// Can't be big AND small.
- if(M_DWARF in M.mutations)
+ if(DWARF in M.mutations)
return 0
return ..(M,flags)
OnDrawUnderlays(var/mob/M,var/g,var/fat)
- if(M_HULK in M.mutations)
+ if(HULK in M.mutations)
if(fat)
return "hulk_[fat]_s"
else
@@ -40,11 +40,11 @@ Obviously, requires DNA2.
OnMobLife(var/mob/living/carbon/human/M)
if(!istype(M)) return
- if(M_HULK in M.mutations)
+ if(HULK in M.mutations)
var/timeleft=M.hulk_time - world.time
if(M.health <= 25 || timeleft <= 0)
M.hulk_time=0 // Just to be sure.
- M.mutations.Remove(M_HULK)
+ M.mutations.Remove(HULK)
//M.dna.SetSEState(HULKBLOCK,0)
M.update_mutations() //update our mutation overlays
M.update_body()
@@ -78,7 +78,7 @@ Obviously, requires DNA2.
return
var/mob/living/carbon/human/M=usr
M.hulk_time = world.time + HULK_DURATION
- M.mutations.Add(M_HULK)
+ M.mutations.Add(HULK)
M.update_mutations() //update our mutation overlays
M.update_body()
//M.say(pick("",";")+pick("HULK MAD","YOU MADE HULK ANGRY")) // Just a note to security.
@@ -98,7 +98,7 @@ Obviously, requires DNA2.
deactivation_messages = list("You body feels normal.")
- mutation=M_MORPH
+ mutation=MORPH
instability=2
New()
@@ -197,7 +197,7 @@ Obviously, requires DNA2.
/datum/dna/gene/basic/grant_spell/remotetalk
name="Telepathy"
activation_messages=list("You expand your mind outwards.")
- mutation=M_REMOTE_TALK
+ mutation=REMOTE_TALK
instability=1
spelltype =/obj/effect/proc_holder/spell/wizard/targeted/remotetalk
@@ -244,7 +244,7 @@ Obviously, requires DNA2.
var/say = strip_html(input("What do you wish to say"))
for(var/mob/living/target in targets)
- if(M_REMOTE_TALK in target.mutations)
+ if(REMOTE_TALK in target.mutations)
target.show_message("\blue You hear [usr.real_name]'s voice: [say]")
else
target.show_message("\blue You hear a voice that seems to echo around the room: [say]")
@@ -257,7 +257,7 @@ Obviously, requires DNA2.
/datum/dna/gene/basic/grant_spell/remoteview
name="Remote Viewing"
activation_messages=list("Your mind expands.")
- mutation=M_REMOTE_VIEW
+ mutation=REMOTE_VIEW
instability=3
spelltype =/obj/effect/proc_holder/spell/wizard/targeted/remoteview
@@ -283,7 +283,7 @@ Obviously, requires DNA2.
var/list/targets = living_mob_list
var/list/remoteviewers = new /list()
for(var/mob/M in targets)
- if(M_REMOTE_VIEW in M.mutations)
+ if(REMOTE_VIEW in M.mutations)
remoteviewers += M
if(!remoteviewers.len || remoteviewers.len == 1)
usr << "No valid targets with remote view were found!"
@@ -316,7 +316,7 @@ Obviously, requires DNA2.
for(var/mob/living/L in targets)
if(ishuman(L))
var/mob/living/carbon/human/H = L
- if(M_PSY_RESIST in H.mutations)
+ if(PSY_RESIST in H.mutations)
continue
target = L
diff --git a/code/game/gamemodes/blob/theblob.dm b/code/game/gamemodes/blob/theblob.dm
index 9fdcc7ce7ba..7c336b0acab 100644
--- a/code/game/gamemodes/blob/theblob.dm
+++ b/code/game/gamemodes/blob/theblob.dm
@@ -129,7 +129,9 @@
return 0
- attackby(var/obj/item/weapon/W, var/mob/user)
+ attackby(var/obj/item/weapon/W, var/mob/living/user, params)
+ user.changeNext_move(CLICK_CD_MELEE)
+ user.do_attack_animation(src)
playsound(get_turf(src), 'sound/effects/attackblob.ogg', 50, 1)
src.visible_message("\red The [src.name] has been attacked with \the [W][(user ? " by [user]." : ".")]")
var/damage = 0
@@ -144,6 +146,19 @@
health -= damage
update_icon()
return
+
+ attack_animal(mob/living/simple_animal/M as mob)
+ M.changeNext_move(CLICK_CD_MELEE)
+ M.do_attack_animation(src)
+ playsound(src.loc, 'sound/effects/attackblob.ogg', 50, 1)
+ src.visible_message("The [src.name] has been attacked by \the [M]!")
+ var/damage = rand(M.melee_damage_lower, M.melee_damage_upper)
+ if(!damage) // Avoid divide by zero errors
+ return
+ damage /= max(src.brute_resist, 1)
+ health -= damage
+ update_icon()
+ return
proc/change_to(var/type)
if(!ispath(type))
diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm
index 3a0ebf2d928..9b3bf73845c 100644
--- a/code/game/gamemodes/changeling/changeling.dm
+++ b/code/game/gamemodes/changeling/changeling.dm
@@ -148,7 +148,7 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon"
if (changeling.current.mind)
if (changeling.current.mind.assigned_role == "Clown")
changeling.current << "You have evolved beyond your clownish nature, allowing you to wield weapons without harming yourself."
- changeling.current.mutations.Remove(M_CLUMSY)
+ changeling.current.mutations.Remove(CLUMSY)
var/obj_count = 1
for(var/datum/objective/objective in changeling.objectives)
@@ -294,7 +294,7 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon"
user << "[T] is not compatible with our biology."
return
- if((M_NOCLONE || SKELETON || M_HUSK) in T.mutations)
+ if((NOCLONE || SKELETON || HUSK) in T.mutations)
user << "DNA of [target] is ruined beyond usability!"
return
diff --git a/code/game/gamemodes/changeling/powers/tiny_prick.dm b/code/game/gamemodes/changeling/powers/tiny_prick.dm
index d7820d11188..6158b8672bd 100644
--- a/code/game/gamemodes/changeling/powers/tiny_prick.dm
+++ b/code/game/gamemodes/changeling/powers/tiny_prick.dm
@@ -82,7 +82,7 @@
/obj/effect/proc_holder/changeling/sting/transformation/can_sting(var/mob/user, var/mob/target)
if(!..())
return
- if((M_HUSK in target.mutations) || (!ishuman(target) && !ismonkey(target)))
+ if((HUSK in target.mutations) || (!ishuman(target) && !ismonkey(target)))
user << "Our sting appears ineffective against its DNA."
return 0
if(ishuman(target))
diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm
index 473afa46c1e..c856fbd4b18 100644
--- a/code/game/gamemodes/cult/cult.dm
+++ b/code/game/gamemodes/cult/cult.dm
@@ -132,7 +132,7 @@
if (mob.mind)
if (mob.mind.assigned_role == "Clown")
mob << "Your training has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself."
- mob.mutations.Remove(M_CLUMSY)
+ mob.mutations.Remove(CLUMSY)
add_cult_viewpoint(mob) // give them a viewpoint
diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm
index 7be5e01f382..65310a6b250 100644
--- a/code/game/gamemodes/cult/ritual.dm
+++ b/code/game/gamemodes/cult/ritual.dm
@@ -92,7 +92,7 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
return
-/obj/effect/rune/attackby(I as obj, user as mob)
+/obj/effect/rune/attackby(I as obj, user as mob, params)
if(istype(I, /obj/item/weapon/tome) && iscultist(user))
user << "You retrace your steps, carefully undoing the lines of the rune."
del(src)
@@ -487,7 +487,7 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
user << "The book seems full of illegible scribbles. Is this a joke?"
return
- attackby(obj/item/weapon/tome/T as obj, mob/living/user as mob)
+ attackby(obj/item/weapon/tome/T as obj, mob/living/user as mob, params)
if(istype(T, /obj/item/weapon/tome)) // sanity check to prevent a runtime error
switch(alert("Copy the runes from your tome?",,"Copy", "Cancel"))
if("cancel")
diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm
index 6609005f935..a09804ac74e 100644
--- a/code/game/gamemodes/cult/runes.dm
+++ b/code/game/gamemodes/cult/runes.dm
@@ -1019,7 +1019,7 @@ var/list/sacrificed = list()
if(iscarbon(L))
var/mob/living/carbon/C = L
flick("e_flash", C.flash)
- if(C.stuttering < 1 && (!(M_HULK in C.mutations)))
+ if(C.stuttering < 1 && (!(HULK in C.mutations)))
C.stuttering = 1
C.Weaken(1)
C.Stun(1)
@@ -1046,7 +1046,7 @@ var/list/sacrificed = list()
else if(iscarbon(T))
var/mob/living/carbon/C = T
flick("e_flash", C.flash)
- if (!(M_HULK in C.mutations))
+ if (!(HULK in C.mutations))
C.silent += 15
C.Weaken(25)
C.Stun(25)
diff --git a/code/game/gamemodes/events/biomass.dm b/code/game/gamemodes/events/biomass.dm
index 55d15a6f23e..598dad6abd6 100644
--- a/code/game/gamemodes/events/biomass.dm
+++ b/code/game/gamemodes/events/biomass.dm
@@ -20,7 +20,7 @@
master.growth_queue -= src
..()
-/obj/effect/biomass/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/effect/biomass/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if (!W || !user || !W.type) return
switch(W.type)
if(/obj/item/weapon/circular_saw) del src
diff --git a/code/game/gamemodes/events/ninja_equipment.dm b/code/game/gamemodes/events/ninja_equipment.dm
index a02fc5042e7..03bdc2ab943 100644
--- a/code/game/gamemodes/events/ninja_equipment.dm
+++ b/code/game/gamemodes/events/ninja_equipment.dm
@@ -850,7 +850,7 @@ ________________________________________________________________________________
//=======//GENERAL SUIT PROCS//=======//
-/obj/item/clothing/suit/space/space_ninja/attackby(obj/item/I, mob/U)
+/obj/item/clothing/suit/space/space_ninja/attackby(obj/item/I, mob/U, params)
if(U==affecting)//Safety, in case you try doing this without wearing the suit/being the person with the suit.
if(istype(I, /obj/item/device/aicard))//If it's an AI card.
if(s_control)
@@ -1554,34 +1554,35 @@ It is possible to destroy the net by the occupant or someone else.
..()
return
- attack_hand()
- if (M_HULK in usr.mutations)
- usr << text("\blue You easily destroy the energy net.")
+ attack_hand(mob/living/user)
+ if (HULK in user.mutations)
+ user << text("\blue You easily destroy the energy net.")
for(var/mob/O in oviewers(src))
- O.show_message(text("\red [] rips the energy net apart!", usr), 1)
+ O.show_message(text("\red [] rips the energy net apart!", user), 1)
health-=50
healthcheck()
return
- attack_paw()
- return attack_hand()
+ attack_paw(mob/living/user)
+ return attack_hand(user)
- attack_alien()
- if (islarva(usr))
+ attack_alien(mob/living/user)
+ if (islarva(user))
return
- usr << text("\green You claw at the net.")
+ user.do_attack_animation(src)
+ user << text("\green You claw at the net.")
for(var/mob/O in oviewers(src))
- O.show_message(text("\red [] claws at the energy net!", usr), 1)
+ O.show_message(text("\red [] claws at the energy net!", user), 1)
playsound(get_turf(src), 'sound/weapons/slash.ogg', 80, 1)
health -= rand(10, 20)
if(health <= 0)
- usr << text("\green You slice the energy net to pieces.")
+ user << text("\green You slice the energy net to pieces.")
for(var/mob/O in oviewers(src))
- O.show_message(text("\red [] slices the energy net apart!", usr), 1)
+ O.show_message(text("\red [] slices the energy net apart!", user), 1)
healthcheck()
return
- attackby(obj/item/weapon/W as obj, mob/user as mob)
+ attackby(obj/item/weapon/W as obj, mob/user as mob, params)
var/aforce = W.force
health = max(0, health - aforce)
healthcheck()
diff --git a/code/game/gamemodes/heist/heist.dm b/code/game/gamemodes/heist/heist.dm
index 91289631400..96aacffa9b4 100644
--- a/code/game/gamemodes/heist/heist.dm
+++ b/code/game/gamemodes/heist/heist.dm
@@ -15,7 +15,7 @@ var/global/list/obj/cortical_stacks = list() //Stacks for 'leave nobody behind'
required_players = 15
required_players_secret = 25
required_enemies = 4
- recommended_enemies = 6
+ recommended_enemies = 5
votable = 0
var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds)
diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm
index 91df8611aa0..8e04c69f71f 100644
--- a/code/game/gamemodes/meteor/meteors.dm
+++ b/code/game/gamemodes/meteor/meteors.dm
@@ -148,7 +148,7 @@
del(src)
return
-/obj/effect/meteor/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/effect/meteor/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/pickaxe))
del(src)
return
diff --git a/code/game/gamemodes/mutiny/emergency_authentication_device.dm b/code/game/gamemodes/mutiny/emergency_authentication_device.dm
index 7ea8bcc004f..36a8c354caa 100644
--- a/code/game/gamemodes/mutiny/emergency_authentication_device.dm
+++ b/code/game/gamemodes/mutiny/emergency_authentication_device.dm
@@ -75,7 +75,7 @@
// Impossible!
state("Command aborted. This unit is defective.")
-/obj/machinery/emergency_authentication_device/attackby(obj/item/weapon/O, mob/user)
+/obj/machinery/emergency_authentication_device/attackby(obj/item/weapon/O, mob/user, params)
if(activated)
user << "\blue \The [src] is already active!"
return
diff --git a/code/game/gamemodes/nations/flagprocs.dm b/code/game/gamemodes/nations/flagprocs.dm
index 439167273ac..b7dc23a2913 100644
--- a/code/game/gamemodes/nations/flagprocs.dm
+++ b/code/game/gamemodes/nations/flagprocs.dm
@@ -20,7 +20,7 @@
/obj/item/flag/nation/light()
return
-/obj/item/flag/nation/attackby(var/obj/item/weapon/W, var/mob/user)
+/obj/item/flag/nation/attackby(var/obj/item/weapon/W, var/mob/user, params)
return
/obj/item/flag/nation/attack_paw()
diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm
index 8d4686148b1..c02d782612b 100644
--- a/code/game/gamemodes/nuclear/nuclearbomb.dm
+++ b/code/game/gamemodes/nuclear/nuclearbomb.dm
@@ -55,7 +55,7 @@ var/bomb_set
nanomanager.update_uis(src)
return
-/obj/machinery/nuclearbomb/attackby(obj/item/weapon/O as obj, mob/user as mob)
+/obj/machinery/nuclearbomb/attackby(obj/item/weapon/O as obj, mob/user as mob, params)
if (istype(O, /obj/item/weapon/screwdriver))
src.add_fingerprint(user)
if (src.auth)
diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm
index 56ae8c531a0..cb04e55949a 100644
--- a/code/game/gamemodes/revolution/revolution.dm
+++ b/code/game/gamemodes/revolution/revolution.dm
@@ -183,7 +183,7 @@
if (mob.mind)
if (mob.mind.assigned_role == "Clown")
mob << "Your training has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself."
- mob.mutations.Remove(M_CLUMSY)
+ mob.mutations.Remove(CLUMSY)
var/obj/item/device/flash/T = new(mob)
diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm
index e5c19a016be..926627a4a01 100644
--- a/code/game/gamemodes/traitor/traitor.dm
+++ b/code/game/gamemodes/traitor/traitor.dm
@@ -301,7 +301,7 @@
if (traitor_mob.mind)
if (traitor_mob.mind.assigned_role == "Clown")
traitor_mob << "Your training has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself."
- traitor_mob.mutations.Remove(M_CLUMSY)
+ traitor_mob.mutations.Remove(CLUMSY)
// find a radio! toolbox(es), backpack, belt, headset
var/obj/item/R = locate(/obj/item/device/pda) in traitor_mob.contents //Hide the uplink in a PDA if available, otherwise radio
diff --git a/code/game/gamemodes/vampire/vampire.dm b/code/game/gamemodes/vampire/vampire.dm
index 42eb879c5be..32541587e28 100644
--- a/code/game/gamemodes/vampire/vampire.dm
+++ b/code/game/gamemodes/vampire/vampire.dm
@@ -193,7 +193,7 @@ You are weak to holy things and starlight. Don't go into space and avoid the Cha
if (vampire.current.mind)
if (vampire.current.mind.assigned_role == "Clown")
vampire.current << "Your lust for blood has allowed you to overcome your clumsy nature allowing you to wield weapons without harming yourself."
- vampire.current.mutations.Remove(M_CLUMSY)
+ vampire.current.mutations.Remove(CLUMSY)
var/obj_count = 1
for(var/datum/objective/objective in vampire.objectives)
diff --git a/code/game/gamemodes/wizard/artefact.dm b/code/game/gamemodes/wizard/artefact.dm
index 4bda30ebe02..4c185e8f628 100644
--- a/code/game/gamemodes/wizard/artefact.dm
+++ b/code/game/gamemodes/wizard/artefact.dm
@@ -174,7 +174,7 @@
if(cowsleft <= 0)
del src
-/obj/effect/rend/cow/attackby(obj/item/I as obj, mob/user as mob)
+/obj/effect/rend/cow/attackby(obj/item/I as obj, mob/user as mob, params)
if(istype(I, /obj/item/weapon/nullrod))
visible_message("\red [I] strikes a blow against \the [src], banishing it!")
spawn(1)
diff --git a/code/game/gamemodes/wizard/rightandwrong.dm b/code/game/gamemodes/wizard/rightandwrong.dm
index 3562603df8d..529e2ddce84 100644
--- a/code/game/gamemodes/wizard/rightandwrong.dm
+++ b/code/game/gamemodes/wizard/rightandwrong.dm
@@ -111,8 +111,8 @@
new /obj/item/clothing/head/helmet/space/rig/wizard(get_turf(H))
if("scrying")
new /obj/item/weapon/scrying(get_turf(H))
- if (!(M_XRAY in H.mutations))
- H.mutations.Add(M_XRAY)
+ if (!(XRAY in H.mutations))
+ H.mutations.Add(XRAY)
H.sight |= (SEE_MOBS|SEE_OBJS|SEE_TURFS)
H.see_in_dark = 8
H.see_invisible = SEE_INVISIBLE_LEVEL_TWO
diff --git a/code/game/gamemodes/wizard/soulstone.dm b/code/game/gamemodes/wizard/soulstone.dm
index 3110498f73e..58b0077d31b 100644
--- a/code/game/gamemodes/wizard/soulstone.dm
+++ b/code/game/gamemodes/wizard/soulstone.dm
@@ -90,7 +90,7 @@
icon_state = "construct"
desc = "A wicked machine used by those skilled in magical arts. It is inactive"
-/obj/structure/constructshell/attackby(obj/item/O as obj, mob/user as mob)
+/obj/structure/constructshell/attackby(obj/item/O as obj, mob/user as mob, params)
if(istype(O, /obj/item/device/soulstone))
O.transfer_soul("CONSTRUCT",src,user)
diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm
index 5beafdeb055..43f58169edf 100644
--- a/code/game/gamemodes/wizard/spellbook.dm
+++ b/code/game/gamemodes/wizard/spellbook.dm
@@ -12,7 +12,7 @@
var/op = 1
var/activepage
-/obj/item/weapon/spellbook/attackby(obj/item/O as obj, mob/user as mob)
+/obj/item/weapon/spellbook/attackby(obj/item/O as obj, mob/user as mob, params)
if(istype(O, /obj/item/weapon/contract))
var/obj/item/weapon/contract/contract = O
if(contract.used)
@@ -366,8 +366,8 @@
if("scrying")
feedback_add_details("wizard_spell_learned","SO") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells
new /obj/item/weapon/scrying(get_turf(H))
- if (!(M_XRAY in H.mutations))
- H.mutations.Add(M_XRAY)
+ if (!(XRAY in H.mutations))
+ H.mutations.Add(XRAY)
H.sight |= (SEE_MOBS|SEE_OBJS|SEE_TURFS)
H.see_in_dark = 8
H.see_invisible = SEE_INVISIBLE_LEVEL_TWO
diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm
index 3962f5a7b39..45d19411b32 100644
--- a/code/game/jobs/job/security.dm
+++ b/code/game/jobs/job/security.dm
@@ -147,7 +147,7 @@
L.part = affected
H.dna.SetSEState(SOBERBLOCK,1)
- H.mutations += M_SOBER
+ H.mutations += SOBER
H.check_mutations = 1
return 1
diff --git a/code/game/jobs/job/support.dm b/code/game/jobs/job/support.dm
index 08258a8f7cc..96e5d089b22 100644
--- a/code/game/jobs/job/support.dm
+++ b/code/game/jobs/job/support.dm
@@ -31,7 +31,7 @@
H.equip_or_collect(new /obj/item/weapon/storage/box/survival(H), slot_in_backpack)
H.dna.SetSEState(SOBERBLOCK,1)
- H.mutations += M_SOBER
+ H.mutations += SOBER
H.check_mutations = 1
return 1
@@ -226,7 +226,7 @@
H.equip_or_collect(new /obj/item/toy/crayon/rainbow(H), slot_in_backpack)
H.equip_or_collect(new /obj/item/weapon/storage/fancy/crayons(H), slot_in_backpack)
H.equip_or_collect(new /obj/item/weapon/reagent_containers/spray/waterflower(H), slot_in_backpack)
- H.mutations.Add(M_CLUMSY)
+ H.mutations.Add(CLUMSY)
H.dna.SetSEState(COMICBLOCK,1,1)
genemutcheck(H,COMICBLOCK,null,MUTCHK_FORCED)
return 1
diff --git a/code/game/machinery/Freezer.dm b/code/game/machinery/Freezer.dm
index 255d6faa4e2..070b99571ce 100644
--- a/code/game/machinery/Freezer.dm
+++ b/code/game/machinery/Freezer.dm
@@ -44,7 +44,7 @@
min_temperature = T0C - (170 + (T*15))
current_heat_capacity = 1000 * ((H - 1) ** 2)
-/obj/machinery/atmospherics/unary/cold_sink/freezer/attackby(obj/item/I, mob/user)
+/obj/machinery/atmospherics/unary/cold_sink/freezer/attackby(obj/item/I, mob/user, params)
if(default_deconstruction_screwdriver(user, "freezer-o", "freezer", I))
on = 0
update_icon()
@@ -201,7 +201,7 @@
max_temperature = T20C + (140 * T)
current_heat_capacity = 1000 * ((H - 1) ** 2)
-/obj/machinery/atmospherics/unary/heat_reservoir/heater/attackby(obj/item/I, mob/user)
+/obj/machinery/atmospherics/unary/heat_reservoir/heater/attackby(obj/item/I, mob/user, params)
if(default_deconstruction_screwdriver(user, "heater-o", "heater", I))
on = 0
update_icon()
diff --git a/code/game/machinery/OpTable.dm b/code/game/machinery/OpTable.dm
index a3c44bf7fb7..9cdbe1fd662 100644
--- a/code/game/machinery/OpTable.dm
+++ b/code/game/machinery/OpTable.dm
@@ -43,7 +43,7 @@
del(src)
/obj/machinery/optable/attack_paw(mob/user as mob)
- if ((M_HULK in usr.mutations))
+ if ((HULK in usr.mutations))
usr << text("\blue You destroy the operating table.")
visible_message("\red [usr] destroys the operating table!")
src.density = 0
@@ -56,7 +56,7 @@
return
/obj/machinery/optable/attack_hand(mob/user as mob)
- if (M_HULK in usr.mutations)
+ if (HULK in usr.mutations)
usr << text("\blue You destroy the table.")
visible_message("\red [usr] destroys the operating table!")
src.density = 0
@@ -130,7 +130,7 @@
take_victim(usr,usr)
-/obj/machinery/optable/attackby(obj/item/weapon/W as obj, mob/living/carbon/user as mob)
+/obj/machinery/optable/attackby(obj/item/weapon/W as obj, mob/living/carbon/user as mob, params)
if (istype(W, /obj/item/weapon/grab))
if(iscarbon(W:affecting))
take_victim(W:affecting,usr)
diff --git a/code/game/machinery/PDApainter.dm b/code/game/machinery/PDApainter.dm
index a7124c21120..cdf5e479ef5 100644
--- a/code/game/machinery/PDApainter.dm
+++ b/code/game/machinery/PDApainter.dm
@@ -40,7 +40,7 @@
src.colorlist += D
-/obj/machinery/pdapainter/attackby(var/obj/item/O as obj, var/mob/user as mob)
+/obj/machinery/pdapainter/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
if(istype(O, /obj/item/device/pda))
if(storedpda)
user << "There is already a PDA inside."
diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm
index 52476c7ce02..841916a9a74 100644
--- a/code/game/machinery/Sleeper.dm
+++ b/code/game/machinery/Sleeper.dm
@@ -68,8 +68,15 @@
src.connected = sleepernew
return
return
+
+/obj/machinery/sleeper/attack_animal(var/mob/living/simple_animal/M)//Stop putting hostile mobs in things guise
+ if(M.environment_smash)
+ M.do_attack_animation(src)
+ visible_message("[M.name] smashes [src] apart!")
+ qdel(src)
+ return
-/obj/machinery/sleep_console/attackby(var/obj/item/weapon/G as obj, var/mob/user as mob)
+/obj/machinery/sleep_console/attackby(var/obj/item/weapon/G as obj, var/mob/user as mob, params)
if (istype(G, /obj/item/weapon/screwdriver))
default_deconstruction_screwdriver(user, "console-p", "console", G)
return
@@ -285,7 +292,7 @@
return
-/obj/machinery/sleeper/attackby(var/obj/item/weapon/G as obj, var/mob/user as mob)
+/obj/machinery/sleeper/attackby(var/obj/item/weapon/G as obj, var/mob/user as mob, params)
if(istype(G, /obj/item/weapon/reagent_containers/glass))
if(!beaker)
beaker = G
diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm
index a173afb2a4e..c4994ebe746 100644
--- a/code/game/machinery/adv_med.dm
+++ b/code/game/machinery/adv_med.dm
@@ -320,7 +320,7 @@
*/
-/obj/machinery/body_scanconsole/attackby(var/obj/item/weapon/G as obj, var/mob/user as mob)
+/obj/machinery/body_scanconsole/attackby(var/obj/item/weapon/G as obj, var/mob/user as mob, params)
if (istype(G, /obj/item/weapon/screwdriver))
default_deconstruction_screwdriver(user, "bodyscannerconsole-p", "bodyscannerconsole", G)
return
diff --git a/code/game/machinery/ai_slipper.dm b/code/game/machinery/ai_slipper.dm
index 1bcb2eec634..17ee041e81b 100644
--- a/code/game/machinery/ai_slipper.dm
+++ b/code/game/machinery/ai_slipper.dm
@@ -28,7 +28,7 @@
src.uses = uses
src.power_change()
-/obj/machinery/ai_slipper/attackby(obj/item/weapon/W, mob/user)
+/obj/machinery/ai_slipper/attackby(obj/item/weapon/W, mob/user, params)
if(stat & (NOPOWER|BROKEN))
return
if (istype(user, /mob/living/silicon))
diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm
index 76280bc3630..777268f0aef 100644
--- a/code/game/machinery/alarm.dm
+++ b/code/game/machinery/alarm.dm
@@ -930,7 +930,7 @@
updateUsrDialog()
-/obj/machinery/alarm/attackby(obj/item/W as obj, mob/user as mob)
+/obj/machinery/alarm/attackby(obj/item/W as obj, mob/user as mob, params)
/* if (istype(W, /obj/item/weapon/wirecutters))
stat ^= BROKEN
add_fingerprint(user)
@@ -1062,7 +1062,7 @@ Code shamelessly copied from apc_frame
icon_state = "alarm_bitem"
flags = CONDUCT
-/obj/item/alarm_frame/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/alarm_frame/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if (istype(W, /obj/item/weapon/wrench))
new /obj/item/stack/sheet/metal( get_turf(src.loc), 2 )
del(src)
@@ -1164,7 +1164,7 @@ FIRE ALARM
if(prob(50/severity)) alarm()
..()
-/obj/machinery/firealarm/attackby(obj/item/W as obj, mob/user as mob)
+/obj/machinery/firealarm/attackby(obj/item/W as obj, mob/user as mob, params)
src.add_fingerprint(user)
if (istype(W, /obj/item/weapon/screwdriver) && buildstage == 2)
@@ -1398,7 +1398,7 @@ Code shamelessly copied from apc_frame
icon_state = "fire_bitem"
flags = CONDUCT
-/obj/item/firealarm_frame/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/firealarm_frame/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if (istype(W, /obj/item/weapon/wrench))
new /obj/item/stack/sheet/metal( get_turf(src.loc), 2 )
del(src)
diff --git a/code/game/machinery/atmo_control.dm b/code/game/machinery/atmo_control.dm
index 1d0cab15733..e6338b824e0 100644
--- a/code/game/machinery/atmo_control.dm
+++ b/code/game/machinery/atmo_control.dm
@@ -101,7 +101,7 @@ obj/machinery/air_sensor
sensors = list()
src.updateUsrDialog()
- attackby(I as obj, user as mob)
+ attackby(I as obj, user as mob, params)
if(istype(I, /obj/item/weapon/screwdriver))
playsound(get_turf(src), 'sound/items/Screwdriver.ogg', 50, 1)
if(do_after(user, 20))
@@ -382,7 +382,7 @@ legend {
var/cutoff_temperature = 2000
var/on_temperature = 1200
- attackby(I as obj, user as mob)
+ attackby(I as obj, user as mob, params)
if(istype(I, /obj/item/weapon/screwdriver))
playsound(get_turf(src), 'sound/items/Screwdriver.ogg', 50, 1)
if(do_after(user, 20))
diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm
index 8ae1166ff29..4140d7cdcfe 100644
--- a/code/game/machinery/atmoalter/canister.dm
+++ b/code/game/machinery/atmoalter/canister.dm
@@ -337,7 +337,7 @@ update_flag
healthcheck()
return
-/obj/machinery/portable_atmospherics/canister/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
+/obj/machinery/portable_atmospherics/canister/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob, params)
if(iswelder(W) && src.destroyed)
if(weld(W, user))
user << "\blue You salvage whats left of \the [src]"
diff --git a/code/game/machinery/atmoalter/meter.dm b/code/game/machinery/atmoalter/meter.dm
index c7bc14c65d3..3da432b94f3 100644
--- a/code/game/machinery/atmoalter/meter.dm
+++ b/code/game/machinery/atmoalter/meter.dm
@@ -105,7 +105,7 @@
return ..()
-/obj/machinery/meter/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
+/obj/machinery/meter/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob, params)
if (!istype(W, /obj/item/weapon/wrench))
return ..()
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
@@ -130,5 +130,5 @@
if (!target)
src.target = loc
-/obj/machinery/meter/turf/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
+/obj/machinery/meter/turf/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob, params)
return
diff --git a/code/game/machinery/atmoalter/portable_atmospherics.dm b/code/game/machinery/atmoalter/portable_atmospherics.dm
index ea319bf2e32..ed56300120d 100644
--- a/code/game/machinery/atmoalter/portable_atmospherics.dm
+++ b/code/game/machinery/atmoalter/portable_atmospherics.dm
@@ -82,7 +82,7 @@
return 1
-/obj/machinery/portable_atmospherics/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
+/obj/machinery/portable_atmospherics/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob, params)
var/obj/icon = src
if ((istype(W, /obj/item/weapon/tank) && !( src.destroyed )))
if (src.holding)
diff --git a/code/game/machinery/atmoalter/scrubber.dm b/code/game/machinery/atmoalter/scrubber.dm
index 08c1d42b9ed..4821ef4f15b 100644
--- a/code/game/machinery/atmoalter/scrubber.dm
+++ b/code/game/machinery/atmoalter/scrubber.dm
@@ -48,7 +48,7 @@
else
icon_state = "scrubber:0"
- attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
+ attackby(var/obj/item/weapon/W as obj, var/mob/user as mob, params)
if(istype(W, /obj/item/weapon/wrench))
if(on)
user << "\blue Turn it off first!"
@@ -65,7 +65,7 @@
/obj/machinery/portable_atmospherics/scrubber/huge/stationary
name = "Stationary Air Scrubber"
- attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
+ attackby(var/obj/item/weapon/W as obj, var/mob/user as mob, params)
if(istype(W, /obj/item/weapon/wrench))
user << "\blue The bolts are too tight for you to unscrew!"
return
diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm
index 7eb1b51da9e..b7cdd87cdaa 100644
--- a/code/game/machinery/autolathe.dm
+++ b/code/game/machinery/autolathe.dm
@@ -101,7 +101,7 @@
return
-/obj/machinery/autolathe/attackby(obj/item/O, mob/user)
+/obj/machinery/autolathe/attackby(obj/item/O, mob/user, params)
if (busy)
user << "The autolathe is busy. Please wait for completion of previous operation."
return 1
diff --git a/code/game/machinery/bees_apiary.dm b/code/game/machinery/bees_apiary.dm
index d4e6aa6307e..9021c4ba84d 100644
--- a/code/game/machinery/bees_apiary.dm
+++ b/code/game/machinery/bees_apiary.dm
@@ -43,7 +43,7 @@
..()
return
-/obj/machinery/apiary/attackby(var/obj/item/O as obj, var/mob/user as mob)
+/obj/machinery/apiary/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
if(istype(O, /obj/item/queen_bee))
if(health > 0)
user << "\red There is already a queen in there."
diff --git a/code/game/machinery/biogenerator.dm b/code/game/machinery/biogenerator.dm
index 24335ebd65a..bf53df74ecf 100644
--- a/code/game/machinery/biogenerator.dm
+++ b/code/game/machinery/biogenerator.dm
@@ -50,7 +50,7 @@
icon_state = "biogen-work"
return
-/obj/machinery/biogenerator/attackby(var/obj/item/O as obj, var/mob/user as mob)
+/obj/machinery/biogenerator/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
if(istype(O, /obj/item/weapon/reagent_containers/glass) && !panel_open)
if(beaker)
user << "A container is already loaded into the machine."
diff --git a/code/game/machinery/bots/bots.dm b/code/game/machinery/bots/bots.dm
index e676f69c130..11e11409ae8 100644
--- a/code/game/machinery/bots/bots.dm
+++ b/code/game/machinery/bots/bots.dm
@@ -145,6 +145,8 @@
user << "[src] is in pristine condition."
/obj/machinery/bot/attack_alien(var/mob/living/carbon/alien/user as mob)
+ user.changeNext_move(CLICK_CD_MELEE)
+ user.do_attack_animation(src)
health -= rand(15,30)*brute_dam_coeff
visible_message("[user] has slashed [src]!")
playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1)
@@ -154,6 +156,7 @@
/obj/machinery/bot/attack_animal(var/mob/living/simple_animal/M as mob)
+ M.do_attack_animation(src)
if(M.melee_damage_upper == 0)
return
health -= M.melee_damage_upper
@@ -229,7 +232,7 @@
return 1 //Successful completion. Used to prevent child process() continuing if this one is ended early.
-/obj/machinery/bot/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/machinery/bot/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/screwdriver))
if(!locked)
open = !open
diff --git a/code/game/machinery/bots/cleanbot.dm b/code/game/machinery/bots/cleanbot.dm
index a77235dad26..7bd66b6838f 100644
--- a/code/game/machinery/bots/cleanbot.dm
+++ b/code/game/machinery/bots/cleanbot.dm
@@ -116,7 +116,7 @@ text("[on ? "On" : "Off"]"))
beacon_freq = freq
updateUsrDialog()
-/obj/machinery/bot/cleanbot/attackby(obj/item/weapon/W, mob/user as mob)
+/obj/machinery/bot/cleanbot/attackby(obj/item/weapon/W, mob/user as mob, params)
if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
if(allowed(usr) && !open && !emagged)
locked = !locked
@@ -262,7 +262,7 @@ text("[on ? "On" : "Off"]"))
qdel(src)
return
-/obj/item/weapon/bucket_sensor/attackby(var/obj/item/W, mob/user as mob)
+/obj/item/weapon/bucket_sensor/attackby(var/obj/item/W, mob/user as mob, params)
..()
if(istype(W, /obj/item/robot_parts/l_arm) || istype(W, /obj/item/robot_parts/r_arm))
user.drop_item()
diff --git a/code/game/machinery/bots/ed209bot.dm b/code/game/machinery/bots/ed209bot.dm
index bffd8a07032..2c9055e29c4 100644
--- a/code/game/machinery/bots/ed209bot.dm
+++ b/code/game/machinery/bots/ed209bot.dm
@@ -170,7 +170,7 @@ Auto Patrol[]"},
declare_arrests = !declare_arrests
updateUsrDialog()
-/obj/machinery/bot/ed209/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/machinery/bot/ed209/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
if (allowed(user) && !open && !emagged)
locked = !locked
@@ -257,7 +257,7 @@ Auto Patrol[]"},
icon_state = "[lasercolor]ed209[on]"
var/mob/living/carbon/M = target
if(istype(M, /mob/living/carbon/human))
- if( M.stuttering < 5 && !(M_HULK in M.mutations) )
+ if( M.stuttering < 5 && !(HULK in M.mutations) )
M.stuttering = 5
M.Stun(5)
M.Weaken(5)
@@ -538,7 +538,7 @@ Auto Patrol[]"},
-/obj/item/weapon/ed209_assembly/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/weapon/ed209_assembly/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
..()
if(istype(W, /obj/item/weapon/pen))
diff --git a/code/game/machinery/bots/farmbot.dm b/code/game/machinery/bots/farmbot.dm
index d5eff718549..c8775c7f5ca 100644
--- a/code/game/machinery/bots/farmbot.dm
+++ b/code/game/machinery/bots/farmbot.dm
@@ -161,7 +161,7 @@
src.updateUsrDialog()
return
-/obj/machinery/bot/farmbot/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/machinery/bot/farmbot/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
if (src.allowed(user))
src.locked = !src.locked
@@ -531,7 +531,7 @@
new /obj/structure/reagent_dispensers/watertank(src)
-/obj/structure/reagent_dispensers/watertank/attackby(var/obj/item/robot_parts/S, mob/user as mob)
+/obj/structure/reagent_dispensers/watertank/attackby(var/obj/item/robot_parts/S, mob/user as mob, params)
if ((!istype(S, /obj/item/robot_parts/l_arm)) && (!istype(S, /obj/item/robot_parts/r_arm)))
..()
@@ -547,7 +547,7 @@
user.unEquip(S)
del(S)
-/obj/item/weapon/farmbot_arm_assembly/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/weapon/farmbot_arm_assembly/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
..()
if((istype(W, /obj/item/device/analyzer/plant_analyzer)) && (!src.build_step))
src.build_step++
diff --git a/code/game/machinery/bots/floorbot.dm b/code/game/machinery/bots/floorbot.dm
index e9a8c67093f..4af5331c8ab 100644
--- a/code/game/machinery/bots/floorbot.dm
+++ b/code/game/machinery/bots/floorbot.dm
@@ -133,7 +133,7 @@
return
-/obj/machinery/bot/floorbot/attackby(var/obj/item/W , mob/user as mob)
+/obj/machinery/bot/floorbot/attackby(var/obj/item/W , mob/user as mob, params)
if(istype(W, /obj/item/stack/tile/plasteel))
var/obj/item/stack/tile/plasteel/T = W
if(amount >= 50)
@@ -477,7 +477,7 @@ obj/machinery/bot/floorbot/process_scan(var/scan_target)
return
-/obj/item/weapon/storage/toolbox/mechanical/attackby(var/obj/item/stack/tile/plasteel/T, mob/user as mob)
+/obj/item/weapon/storage/toolbox/mechanical/attackby(var/obj/item/stack/tile/plasteel/T, mob/user as mob, params)
if(!istype(T, /obj/item/stack/tile/plasteel))
..()
return
@@ -496,7 +496,7 @@ obj/machinery/bot/floorbot/process_scan(var/scan_target)
user << "You need 10 floor tiles to start building a floorbot."
return
-/obj/item/weapon/toolbox_tiles/attackby(var/obj/item/W, mob/user as mob)
+/obj/item/weapon/toolbox_tiles/attackby(var/obj/item/W, mob/user as mob, params)
..()
if(isprox(W))
qdel(W)
@@ -516,7 +516,7 @@ obj/machinery/bot/floorbot/process_scan(var/scan_target)
created_name = t
-/obj/item/weapon/toolbox_tiles_sensor/attackby(var/obj/item/W, mob/user as mob)
+/obj/item/weapon/toolbox_tiles_sensor/attackby(var/obj/item/W, mob/user as mob, params)
..()
if(istype(W, /obj/item/robot_parts/l_arm) || istype(W, /obj/item/robot_parts/r_arm))
qdel(W)
diff --git a/code/game/machinery/bots/medbot.dm b/code/game/machinery/bots/medbot.dm
index aa0dd6c94ab..078d9fff2b9 100644
--- a/code/game/machinery/bots/medbot.dm
+++ b/code/game/machinery/bots/medbot.dm
@@ -220,7 +220,7 @@
updateUsrDialog()
return
-/obj/machinery/bot/medbot/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/machinery/bot/medbot/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
if (allowed(user) && !open && !emagged)
locked = !locked
@@ -541,7 +541,7 @@
* Medbot Assembly -- Can be made out of all three medkits.
*/
-/obj/item/weapon/storage/firstaid/attackby(var/obj/item/robot_parts/S, mob/user as mob)
+/obj/item/weapon/storage/firstaid/attackby(var/obj/item/robot_parts/S, mob/user as mob, params)
if ((!istype(S, /obj/item/robot_parts/l_arm)) && (!istype(S, /obj/item/robot_parts/r_arm)))
..()
@@ -567,7 +567,7 @@
qdel(src)
-/obj/item/weapon/firstaid_arm_assembly/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/weapon/firstaid_arm_assembly/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
..()
if(istype(W, /obj/item/weapon/pen))
var/t = stripped_input(user, "Enter new robot name", name, created_name,MAX_NAME_LEN)
diff --git a/code/game/machinery/bots/mulebot.dm b/code/game/machinery/bots/mulebot.dm
index bbab6f7d9e7..93342641732 100644
--- a/code/game/machinery/bots/mulebot.dm
+++ b/code/game/machinery/bots/mulebot.dm
@@ -86,7 +86,7 @@ var/global/mulebot_count = 0
// screwdriver: open/close hatch
// cell: insert it
// other: chance to knock rider off bot
-/obj/machinery/bot/mulebot/attackby(var/obj/item/I, var/mob/user)
+/obj/machinery/bot/mulebot/attackby(var/obj/item/I, var/mob/user, params)
if(istype(I, /obj/item/weapon/card/id) || istype(I, /obj/item/device/pda))
if(toggle_lock(user))
user << "Controls [(locked ? "locked" : "unlocked")]."
diff --git a/code/game/machinery/bots/secbot.dm b/code/game/machinery/bots/secbot.dm
index 2b70de39797..a790767c851 100644
--- a/code/game/machinery/bots/secbot.dm
+++ b/code/game/machinery/bots/secbot.dm
@@ -175,7 +175,7 @@ Auto Patrol: []"},
updateUsrDialog()
-/obj/machinery/bot/secbot/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/machinery/bot/secbot/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
if(allowed(user) && !open && !emagged)
locked = !locked
@@ -241,7 +241,7 @@ Auto Patrol: []"},
icon_state = "[base_icon][on]"
var/mob/living/carbon/M = target
if(istype(M, /mob/living/carbon/human))
- if( M.stuttering < 5 && !(M_HULK in M.mutations) )
+ if( M.stuttering < 5 && !(HULK in M.mutations) )
M.stuttering = 5
if(harmbaton) // Bots with harmbaton enabled become shitcurity. - Dave
M.apply_damage(10)
@@ -412,7 +412,7 @@ Auto Patrol: []"},
//Secbot Construction
-/obj/item/clothing/head/helmet/attackby(var/obj/item/device/assembly/signaler/S, mob/user as mob)
+/obj/item/clothing/head/helmet/attackby(var/obj/item/device/assembly/signaler/S, mob/user as mob, params)
..()
if(!issignaler(S))
..()
@@ -431,7 +431,7 @@ Auto Patrol: []"},
else
return
-/obj/item/weapon/secbot_assembly/attackby(obj/item/I, mob/user)
+/obj/item/weapon/secbot_assembly/attackby(obj/item/I, mob/user, params)
..()
if(istype(I, /obj/item/weapon/weldingtool))
if(!build_step)
diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm
index 865bf2f3cb8..f0633e1a3e4 100644
--- a/code/game/machinery/camera/camera.dm
+++ b/code/game/machinery/camera/camera.dm
@@ -103,6 +103,7 @@
return
if(indestructible)
return
+ user.do_attack_animation(src)
status = 0
visible_message("\The [user] slashes at [src]!")
playsound(src.loc, 'sound/weapons/slash.ogg', 100, 1)
@@ -122,7 +123,7 @@
src.view_range = num
cameranet.updateVisibility(src, 0)
-/obj/machinery/camera/attackby(obj/W as obj, mob/living/user as mob)
+/obj/machinery/camera/attackby(obj/W as obj, mob/living/user as mob, params)
//invalidateCameraCache()
// DECONSTRUCTION
if(isscrewdriver(W))
diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm
index e8c7656032a..9b059b41d3f 100644
--- a/code/game/machinery/camera/camera_assembly.dm
+++ b/code/game/machinery/camera/camera_assembly.dm
@@ -21,7 +21,7 @@
4 = Screwdriver panel closed and is fully built (you cannot attach upgrades)
*/
-/obj/item/weapon/camera_assembly/attackby(obj/item/W as obj, mob/living/user as mob)
+/obj/item/weapon/camera_assembly/attackby(obj/item/W as obj, mob/living/user as mob, params)
switch(state)
diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm
index 5a9822d6531..823671c2019 100644
--- a/code/game/machinery/cell_charger.dm
+++ b/code/game/machinery/cell_charger.dm
@@ -34,7 +34,7 @@
if(charging)
usr << "Current charge: [charging.charge]"
- attackby(obj/item/weapon/W, mob/user)
+ attackby(obj/item/weapon/W, mob/user, params)
if(stat & BROKEN)
return
diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm
index f7eb7803fd4..27e16c1be95 100644
--- a/code/game/machinery/cloning.dm
+++ b/code/game/machinery/cloning.dm
@@ -328,7 +328,7 @@
return
//Let's unlock this early I guess. Might be too early, needs tweaking.
-/obj/machinery/clonepod/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/machinery/clonepod/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if (istype(W, /obj/item/weapon/screwdriver))
if(occupant || mess || locked)
user << "The maintenance panel is locked."
diff --git a/code/game/machinery/computer/HolodeckControl.dm b/code/game/machinery/computer/HolodeckControl.dm
index fc2187c24db..a14da59c097 100644
--- a/code/game/machinery/computer/HolodeckControl.dm
+++ b/code/game/machinery/computer/HolodeckControl.dm
@@ -161,7 +161,7 @@
-/obj/machinery/computer/HolodeckControl/attackby(var/obj/item/weapon/D as obj, var/mob/user as mob)
+/obj/machinery/computer/HolodeckControl/attackby(var/obj/item/weapon/D as obj, var/mob/user as mob, params)
return
/obj/machinery/computer/HolodeckControl/emag_act(user as mob)
@@ -365,7 +365,7 @@
var/turf/simulated/floor/FF = get_step(src,direction)
FF.update_icon() //so siding get updated properly
-/turf/simulated/floor/holofloor/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/turf/simulated/floor/holofloor/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
return
// HOLOFLOOR DOES NOT GIVE A FUCK
@@ -402,7 +402,7 @@
return // HOLOTABLE DOES NOT GIVE A FUCK
-/obj/structure/table/holotable/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/structure/table/holotable/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if (istype(W, /obj/item/weapon/grab) && get_dist(src,user)<2)
var/obj/item/weapon/grab/G = W
if(G.state<2)
@@ -522,7 +522,7 @@
density = 1
throwpass = 1
-/obj/structure/holohoop/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/structure/holohoop/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if (istype(W, /obj/item/weapon/grab) && get_dist(src,user)<2)
var/obj/item/weapon/grab/G = W
if(G.state<2)
@@ -580,7 +580,7 @@
..()
-/obj/machinery/readybutton/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/machinery/readybutton/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
user << "The device is a solid button, there's nothing you can do with it!"
/obj/machinery/readybutton/attack_hand(mob/user as mob)
diff --git a/code/game/machinery/computer/ai_core.dm b/code/game/machinery/computer/ai_core.dm
index 34774d936cc..d408d934c25 100644
--- a/code/game/machinery/computer/ai_core.dm
+++ b/code/game/machinery/computer/ai_core.dm
@@ -10,7 +10,7 @@
var/obj/item/device/mmi/brain = null
-/obj/structure/AIcore/attackby(obj/item/P as obj, mob/user as mob)
+/obj/structure/AIcore/attackby(obj/item/P as obj, mob/user as mob, params)
switch(state)
if(0)
if(istype(P, /obj/item/weapon/wrench))
@@ -179,7 +179,7 @@
empty_playable_ai_cores -= src
..()
-/obj/structure/AIcore/deactivated/attackby(var/obj/item/W, var/mob/user)
+/obj/structure/AIcore/deactivated/attackby(var/obj/item/W, var/mob/user, params)
if(istype(W, /obj/item/device/aicard))//Is it?
var/obj/item/device/aicard/card = W
card.transfer_ai("INACTIVE","AICARD",src,user)
diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm
index febf071bfb5..51c8626c1d1 100644
--- a/code/game/machinery/computer/aifixer.dm
+++ b/code/game/machinery/computer/aifixer.dm
@@ -13,7 +13,7 @@
src.overlays += image('icons/obj/computer.dmi', "ai-fixer-empty")
-/obj/machinery/computer/aifixer/attackby(I as obj, user as mob)
+/obj/machinery/computer/aifixer/attackby(I as obj, user as mob, params)
if(istype(I, /obj/item/device/aicard))
if(stat & (NOPOWER|BROKEN))
user << "This terminal isn't functioning right now, get it working!"
diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm
index eb8efc36264..23743ffc10c 100644
--- a/code/game/machinery/computer/buildandrepair.dm
+++ b/code/game/machinery/computer/buildandrepair.dm
@@ -233,7 +233,7 @@
board_type = "honkcomputer"
-/obj/item/weapon/circuitboard/supplycomp/attackby(obj/item/I as obj, mob/user as mob)
+/obj/item/weapon/circuitboard/supplycomp/attackby(obj/item/I as obj, mob/user as mob, params)
if(istype(I,/obj/item/device/multitool))
var/catastasis = src.contraband_enabled
var/opposite_catastasis
@@ -255,7 +255,7 @@
user << "DERP! BUG! Report this (And what you were doing to cause it) to Agouri"
return
-/obj/item/weapon/circuitboard/rdconsole/attackby(obj/item/I as obj, mob/user as mob)
+/obj/item/weapon/circuitboard/rdconsole/attackby(obj/item/I as obj, mob/user as mob, params)
if(istype(I,/obj/item/weapon/screwdriver))
user.visible_message("\blue \the [user] adjusts the jumper on the [src]'s access protocol pins.", "\blue You adjust the jumper on the access protocol pins.")
if(src.build_path == "/obj/machinery/computer/rdconsole/core")
@@ -268,7 +268,7 @@
user << "\blue Access protocols set to default."
return
-/obj/structure/computerframe/attackby(obj/item/P as obj, mob/user as mob)
+/obj/structure/computerframe/attackby(obj/item/P as obj, mob/user as mob, params)
switch(state)
if(0)
if(istype(P, /obj/item/weapon/wrench))
@@ -379,7 +379,7 @@
name = "Bananium Computer-frame"
icon = 'icons/obj/machines/HONKputer.dmi'
-/obj/structure/computerframe/HONKputer/attackby(obj/item/P as obj, mob/user as mob)
+/obj/structure/computerframe/HONKputer/attackby(obj/item/P as obj, mob/user as mob, params)
switch(state)
if(0)
if(istype(P, /obj/item/weapon/wrench))
diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm
index 3a035c3ef7d..c48a2056572 100644
--- a/code/game/machinery/computer/camera.dm
+++ b/code/game/machinery/computer/camera.dm
@@ -53,7 +53,7 @@
return 1
// Network configuration
- attackby(I as obj, user as mob)
+ attackby(I as obj, user as mob, params)
access = list()
if(istype(I,/obj/item/weapon/card/id)) // If hit by a regular ID card.
var/obj/item/weapon/card/id/E = I
diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm
index 87552942026..73931aa0183 100644
--- a/code/game/machinery/computer/card.dm
+++ b/code/game/machinery/computer/card.dm
@@ -55,7 +55,7 @@
usr << "There is nothing to remove from the console."
return
-/obj/machinery/computer/card/attackby(obj/item/weapon/card/id/id_card, mob/user)
+/obj/machinery/computer/card/attackby(obj/item/weapon/card/id/id_card, mob/user, params)
if(!istype(id_card))
return ..()
diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm
index e197042437f..bf28014c6e9 100644
--- a/code/game/machinery/computer/cloning.dm
+++ b/code/game/machinery/computer/cloning.dm
@@ -73,7 +73,7 @@
return podf
-/obj/machinery/computer/cloning/attackby(obj/item/W as obj, mob/user as mob)
+/obj/machinery/computer/cloning/attackby(obj/item/W as obj, mob/user as mob, params)
if (istype(W, /obj/item/weapon/disk/data)) //INSERT SOME DISKETTES
if (!src.diskette)
user.drop_item()
@@ -329,7 +329,7 @@
scantemp = "Error: Mental interface failure."
nanomanager.update_uis(src)
return
- if ((M_NOCLONE in subject.mutations) && src.scanner.scan_level < 2)
+ if ((NOCLONE in subject.mutations) && src.scanner.scan_level < 2)
scantemp = "Error: Mental interface failure."
nanomanager.update_uis(src)
return
diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm
index 9dab90e6ed3..13fe459ec45 100644
--- a/code/game/machinery/computer/computer.dm
+++ b/code/game/machinery/computer/computer.dm
@@ -103,7 +103,7 @@
update_icon()
-/obj/machinery/computer/attackby(I as obj, user as mob)
+/obj/machinery/computer/attackby(I as obj, user as mob, params)
if(istype(I, /obj/item/weapon/screwdriver) && circuit)
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
if(do_after(user, 20))
@@ -127,8 +127,28 @@
src.attack_hand(user)
return
+/obj/machinery/computer/attack_paw(mob/living/user)
+ user.do_attack_animation(src)
+ if(circuit)
+ if(prob(10))
+ user.visible_message("[user.name] smashes the [src.name] with its paws.",\
+ "You smash the [src.name] with your paws.",\
+ "You hear a smashing sound.")
+ set_broken()
+ return
+ user.visible_message("[user.name] smashes against the [src.name] with its paws.",\
+ "You smash against the [src.name] with your paws.",\
+ "You hear a clicking sound.")
-
-
-
-
+/obj/machinery/computer/attack_alien(mob/living/user)
+ user.do_attack_animation(src)
+ if(circuit)
+ if(prob(80))
+ user.visible_message("[user.name] smashes the [src.name] with its claws.",\
+ "You smash the [src.name] with your claws.",\
+ "You hear a smashing sound.")
+ set_broken()
+ return
+ user.visible_message("[user.name] smashes against the [src.name] with its claws.",\
+ "You smash against the [src.name] with your claws.",\
+ "You hear a clicking sound.")
diff --git a/code/game/machinery/computer/honkputer.dm b/code/game/machinery/computer/honkputer.dm
index 79ce2e97edf..bd9d0344a2c 100644
--- a/code/game/machinery/computer/honkputer.dm
+++ b/code/game/machinery/computer/honkputer.dm
@@ -90,7 +90,7 @@
onclose(user, "honkputer")
-/obj/machinery/computer/HONKputer/attackby(I as obj, user as mob)
+/obj/machinery/computer/HONKputer/attackby(I as obj, user as mob, params)
if(istype(I, /obj/item/weapon/screwdriver) && circuit)
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
if(do_after(user, 20))
diff --git a/code/game/machinery/computer/law.dm b/code/game/machinery/computer/law.dm
index 47a0951b20e..6901f72d63f 100644
--- a/code/game/machinery/computer/law.dm
+++ b/code/game/machinery/computer/law.dm
@@ -26,7 +26,7 @@
return
- attackby(obj/item/weapon/O as obj, mob/user as mob)
+ attackby(obj/item/weapon/O as obj, mob/user as mob, params)
if (user.z > 6)
user << "\red Unable to establish a connection: \black You're too far away from the station!"
return
@@ -63,7 +63,7 @@
var/mob/living/silicon/robot/current = null
- attackby(obj/item/weapon/aiModule/module as obj, mob/user as mob)
+ attackby(obj/item/weapon/aiModule/module as obj, mob/user as mob, params)
if(istype(module, /obj/item/weapon/aiModule))
module.install(src)
else
diff --git a/code/game/machinery/computer/message.dm b/code/game/machinery/computer/message.dm
index 879e6b8f150..3cf15c5308a 100644
--- a/code/game/machinery/computer/message.dm
+++ b/code/game/machinery/computer/message.dm
@@ -36,7 +36,7 @@
l_color = "#50AB00"
-/obj/machinery/computer/message_monitor/attackby(obj/item/weapon/O as obj, mob/living/user as mob)
+/obj/machinery/computer/message_monitor/attackby(obj/item/weapon/O as obj, mob/living/user as mob, params)
if(stat & (NOPOWER|BROKEN))
return
if(!istype(user))
diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm
index 94636091dde..69c68ecf8aa 100644
--- a/code/game/machinery/computer/pod.dm
+++ b/code/game/machinery/computer/pod.dm
@@ -50,7 +50,7 @@
return
/*
-/obj/machinery/computer/pod/attackby(I as obj, user as mob)
+/obj/machinery/computer/pod/attackby(I as obj, user as mob, params)
if(istype(I, /obj/item/weapon/screwdriver))
playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1)
if(do_after(user, 20))
diff --git a/code/game/machinery/computer/power.dm b/code/game/machinery/computer/power.dm
index e4c51cc8dab..fc325978682 100644
--- a/code/game/machinery/computer/power.dm
+++ b/code/game/machinery/computer/power.dm
@@ -40,7 +40,7 @@
return
interact(user)
-/obj/machinery/power/monitor/attackby(I as obj, user as mob)
+/obj/machinery/power/monitor/attackby(I as obj, user as mob, params)
if(istype(I, /obj/item/weapon/screwdriver))
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
if(do_after(user, 20))
diff --git a/code/game/machinery/computer/prisonshuttle.dm b/code/game/machinery/computer/prisonshuttle.dm
index 9ce03c4630d..a5837969741 100644
--- a/code/game/machinery/computer/prisonshuttle.dm
+++ b/code/game/machinery/computer/prisonshuttle.dm
@@ -22,7 +22,7 @@ var/prison_shuttle_timeleft = 0
var/prison_break = 0
- attackby(I as obj, user as mob)
+ attackby(I as obj, user as mob, params)
return src.attack_hand(user)
@@ -34,7 +34,7 @@ var/prison_shuttle_timeleft = 0
return src.attack_hand(user)
- attackby(I as obj, user as mob)
+ attackby(I as obj, user as mob, params)
if(istype(I, /obj/item/weapon/screwdriver))
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
if(do_after(user, 20))
diff --git a/code/game/machinery/computer/salvage_ship.dm b/code/game/machinery/computer/salvage_ship.dm
index a67868fe3de..5e0feda0c20 100644
--- a/code/game/machinery/computer/salvage_ship.dm
+++ b/code/game/machinery/computer/salvage_ship.dm
@@ -36,7 +36,7 @@
return 1
-/obj/machinery/computer/salvage_ship/attackby(obj/item/I as obj, mob/user as mob)
+/obj/machinery/computer/salvage_ship/attackby(obj/item/I as obj, mob/user as mob, params)
return attack_hand(user)
/obj/machinery/computer/salvage_ship/attack_ai(mob/user as mob)
diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm
index de83237918c..1094ede2762 100644
--- a/code/game/machinery/computer/security.dm
+++ b/code/game/machinery/computer/security.dm
@@ -25,7 +25,7 @@
l_color = "#B40000"
-/obj/machinery/computer/secure_data/attackby(obj/item/O as obj, user as mob)
+/obj/machinery/computer/secure_data/attackby(obj/item/O as obj, user as mob, params)
if(istype(O, /obj/item/weapon/card/id) && !scan)
usr.drop_item()
O.loc = src
diff --git a/code/game/machinery/computer/shuttle.dm b/code/game/machinery/computer/shuttle.dm
index 93b4c91c2c9..ee4a88fb89b 100644
--- a/code/game/machinery/computer/shuttle.dm
+++ b/code/game/machinery/computer/shuttle.dm
@@ -8,7 +8,7 @@
l_color = "#7BF9FF"
- attackby(var/obj/item/weapon/card/W as obj, var/mob/user as mob)
+ attackby(var/obj/item/weapon/card/W as obj, var/mob/user as mob, params)
if(stat & (BROKEN|NOPOWER)) return
if ((!( istype(W, /obj/item/weapon/card) ) || !( ticker ) || emergency_shuttle.location() || !( user ))) return
if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
diff --git a/code/game/machinery/computer/skills.dm b/code/game/machinery/computer/skills.dm
index 9a2372edd9a..9f1781519ae 100644
--- a/code/game/machinery/computer/skills.dm
+++ b/code/game/machinery/computer/skills.dm
@@ -22,7 +22,7 @@
var/order = 1 // -1 = Descending - 1 = Ascending
-/obj/machinery/computer/skills/attackby(obj/item/O as obj, user as mob)
+/obj/machinery/computer/skills/attackby(obj/item/O as obj, user as mob, params)
if(istype(O, /obj/item/weapon/card/id) && !scan)
usr.drop_item()
O.loc = src
diff --git a/code/game/machinery/computer/specops_shuttle.dm b/code/game/machinery/computer/specops_shuttle.dm
index 7a90e1de8b1..68ded19320d 100644
--- a/code/game/machinery/computer/specops_shuttle.dm
+++ b/code/game/machinery/computer/specops_shuttle.dm
@@ -252,7 +252,7 @@ var/specops_shuttle_timeleft = 0
/obj/machinery/computer/specops_shuttle/attack_paw(var/mob/user as mob)
return attack_hand(user)
-/obj/machinery/computer/specops_shuttle/attackby(I as obj, user as mob)
+/obj/machinery/computer/specops_shuttle/attackby(I as obj, user as mob, params)
if(istype(I,/obj/item/weapon/card/emag))
user << "\blue The electronic systems in this console are far too advanced for your primitive hacking peripherals."
else
diff --git a/code/game/machinery/computer/syndicate_specops_shuttle.dm b/code/game/machinery/computer/syndicate_specops_shuttle.dm
index a6ae2e3628a..288fa2dfdf6 100644
--- a/code/game/machinery/computer/syndicate_specops_shuttle.dm
+++ b/code/game/machinery/computer/syndicate_specops_shuttle.dm
@@ -176,7 +176,7 @@ var/syndicate_elite_shuttle_timeleft = 0
if(syndicate_elite_shuttle_moving_to_station || syndicate_elite_shuttle_moving_to_mothership) return 0
else return 1
-/obj/machinery/computer/syndicate_elite_shuttle/attackby(I as obj, user as mob)
+/obj/machinery/computer/syndicate_elite_shuttle/attackby(I as obj, user as mob, params)
return attack_hand(user)
/obj/machinery/computer/syndicate_elite_shuttle/attack_ai(var/mob/user as mob)
@@ -186,7 +186,7 @@ var/syndicate_elite_shuttle_timeleft = 0
/obj/machinery/computer/syndicate_elite_shuttle/attack_paw(var/mob/user as mob)
return attack_hand(user)
-/obj/machinery/computer/syndicate_elite_shuttle/attackby(I as obj, user as mob)
+/obj/machinery/computer/syndicate_elite_shuttle/attackby(I as obj, user as mob, params)
if(istype(I,/obj/item/weapon/card/emag))
user << "\blue The electronic systems in this console are far too advanced for your primitive hacking peripherals."
else
diff --git a/code/game/machinery/computer/telecrystalconsoles.dm b/code/game/machinery/computer/telecrystalconsoles.dm
index 4e49e677901..f65ad4aae49 100644
--- a/code/game/machinery/computer/telecrystalconsoles.dm
+++ b/code/game/machinery/computer/telecrystalconsoles.dm
@@ -29,7 +29,7 @@ var/list/possible_uplinker_IDs = list("Alfa","Bravo","Charlie","Delta","Echo","F
name = "[name] [rand(1,999)]"
-/obj/machinery/computer/telecrystals/uplinker/attackby(var/obj/item/O as obj, var/mob/user as mob)
+/obj/machinery/computer/telecrystals/uplinker/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
if(istype(O, /obj/item))
if(uplinkholder)
diff --git a/code/game/machinery/computer/xenos_shuttle.dm b/code/game/machinery/computer/xenos_shuttle.dm
index 5d5f921fdba..cdcb5efce43 100644
--- a/code/game/machinery/computer/xenos_shuttle.dm
+++ b/code/game/machinery/computer/xenos_shuttle.dm
@@ -85,7 +85,7 @@
return 1
-/obj/machinery/computer/xenos_station/attackby(obj/item/I as obj, mob/user as mob)
+/obj/machinery/computer/xenos_station/attackby(obj/item/I as obj, mob/user as mob, params)
return attack_hand(user)
/obj/machinery/computer/xenos_station/attack_ai(mob/user as mob)
diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm
index 0d3dddbba8b..546b5956f0b 100644
--- a/code/game/machinery/constructable_frame.dm
+++ b/code/game/machinery/constructable_frame.dm
@@ -92,7 +92,7 @@
else
desc += "."
-/obj/machinery/constructable_frame/machine_frame/attackby(obj/item/P as obj, mob/user as mob)
+/obj/machinery/constructable_frame/machine_frame/attackby(obj/item/P as obj, mob/user as mob, params)
if(P.crit_fail)
user << "This part is faulty, you cannot add this to the machine!"
return
@@ -270,7 +270,7 @@ to destroy them and players will be able to make replacements.
/obj/machinery/vending/suitdispenser = "Suitlord 9000",
/obj/machinery/vending/shoedispenser = "Shoelord 9000")
-/obj/item/weapon/circuitboard/vendor/attackby(obj/item/I, mob/user)
+/obj/item/weapon/circuitboard/vendor/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/screwdriver))
set_type(pick(names_paths), user)
@@ -306,7 +306,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stack/cable_coil = 1,
/obj/item/weapon/stock_parts/console_screen = 1)
-/obj/item/weapon/circuitboard/thermomachine/attackby(obj/item/I, mob/user)
+/obj/item/weapon/circuitboard/thermomachine/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/screwdriver))
if(build_path == /obj/machinery/atmospherics/unary/cold_sink/freezer)
build_path = /obj/machinery/atmospherics/unary/heat_reservoir/heater
diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm
index d4dc7ac6192..4a33f3511d7 100644
--- a/code/game/machinery/cryo.dm
+++ b/code/game/machinery/cryo.dm
@@ -270,7 +270,7 @@
add_fingerprint(usr)
return 1 // update UIs attached to this object
-/obj/machinery/atmospherics/unary/cryo_cell/attackby(var/obj/item/weapon/G as obj, var/mob/user as mob)
+/obj/machinery/atmospherics/unary/cryo_cell/attackby(var/obj/item/weapon/G as obj, var/mob/user as mob, params)
if(istype(G, /obj/item/weapon/reagent_containers/glass))
if(beaker)
user << "\red A beaker is already loaded into the machine."
diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm
index 804c0d92e3e..dec81660ef4 100644
--- a/code/game/machinery/cryopod.dm
+++ b/code/game/machinery/cryopod.dm
@@ -406,7 +406,7 @@
name = initial(name)
-/obj/machinery/cryopod/attackby(var/obj/item/weapon/G as obj, var/mob/user as mob)
+/obj/machinery/cryopod/attackby(var/obj/item/weapon/G as obj, var/mob/user as mob, params)
if(istype(G, /obj/item/weapon/grab))
diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm
index 94ded8abee1..8cde409e649 100644
--- a/code/game/machinery/deployable.dm
+++ b/code/game/machinery/deployable.dm
@@ -65,7 +65,7 @@ for reference:
var/health = 100.0
var/maxhealth = 100.0
- attackby(obj/item/W as obj, mob/user as mob)
+ attackby(obj/item/W as obj, mob/user as mob, params)
if (istype(W, /obj/item/stack/sheet/wood))
if (src.health < src.maxhealth)
visible_message("\red [user] begins to repair the [src]!")
@@ -157,7 +157,7 @@ for reference:
src.icon_state = "barrier[src.locked]"
- attackby(obj/item/weapon/W as obj, mob/user as mob)
+ attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if (istype(W, /obj/item/weapon/card/id))
if (src.allowed(user))
if (src.emagged < 2.0)
diff --git a/code/game/machinery/door_control.dm b/code/game/machinery/door_control.dm
index 84591381582..50d6eb49a0f 100644
--- a/code/game/machinery/door_control.dm
+++ b/code/game/machinery/door_control.dm
@@ -40,7 +40,7 @@
/obj/machinery/door_control/attack_paw(mob/user as mob)
return src.attack_hand(user)
-/obj/machinery/door_control/attackby(obj/item/weapon/W, mob/user as mob)
+/obj/machinery/door_control/attackby(obj/item/weapon/W, mob/user as mob, params)
/* For later implementation
if (istype(W, /obj/item/weapon/screwdriver))
{
@@ -142,7 +142,7 @@
/obj/machinery/driver_button/attack_paw(mob/user as mob)
return src.attack_hand(user)
-/obj/machinery/driver_button/attackby(obj/item/weapon/W, mob/user as mob)
+/obj/machinery/driver_button/attackby(obj/item/weapon/W, mob/user as mob, params)
if(istype(W, /obj/item/device/detective_scanner))
return
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 8730c5a14da..1582c0cd6a7 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -302,7 +302,7 @@
user << "You do not know how to operate this airlock's mechanism."
return
-/obj/machinery/door/airlock/alien/attackby(C as obj, mob/user as mob)
+/obj/machinery/door/airlock/alien/attackby(C as obj, mob/user as mob, params)
if(isalien(user) || isrobot(user) || isAI(user))
..(C, user)
else
@@ -947,7 +947,7 @@ About the new airlock wires panel:
updateUsrDialog()
return 0
-/obj/machinery/door/airlock/attackby(C as obj, mob/user as mob)
+/obj/machinery/door/airlock/attackby(C as obj, mob/user as mob, params)
//world << text("airlock attackby src [] obj [] mob []", src, C, user)
if(!istype(usr, /mob/living/silicon))
if(src.isElectrified())
@@ -1052,7 +1052,7 @@ About the new airlock wires panel:
..()
return
-/obj/machinery/door/airlock/plasma/attackby(C as obj, mob/user as mob)
+/obj/machinery/door/airlock/plasma/attackby(C as obj, mob/user as mob, params)
if(C)
ignite(is_hot(C))
..()
@@ -1180,7 +1180,7 @@ About the new airlock wires panel:
return
-/obj/machinery/door/airlock/hatch/gamma/attackby(C as obj, mob/user as mob)
+/obj/machinery/door/airlock/hatch/gamma/attackby(C as obj, mob/user as mob, params)
//world << text("airlock attackby src [] obj [] mob []", src, C, user)
if(!istype(usr, /mob/living/silicon))
if(src.isElectrified())
@@ -1213,7 +1213,7 @@ About the new airlock wires panel:
return
-/obj/machinery/door/airlock/highsecurity/red/attackby(C as obj, mob/user as mob)
+/obj/machinery/door/airlock/highsecurity/red/attackby(C as obj, mob/user as mob, params)
//world << text("airlock attackby src [] obj [] mob []", src, C, user)
if(!istype(usr, /mob/living/silicon))
if(src.isElectrified())
diff --git a/code/game/machinery/doors/airlock_control.dm b/code/game/machinery/doors/airlock_control.dm
index ad9d9910365..fef0ef7d66b 100644
--- a/code/game/machinery/doors/airlock_control.dm
+++ b/code/game/machinery/doors/airlock_control.dm
@@ -245,7 +245,7 @@ obj/machinery/access_button/update_icon()
else
icon_state = "access_button_off"
-obj/machinery/access_button/attackby(obj/item/I as obj, mob/user as mob)
+obj/machinery/access_button/attackby(obj/item/I as obj, mob/user as mob, params)
//Swiping ID on the access button
if (istype(I, /obj/item/weapon/card/id) || istype(I, /obj/item/device/pda))
attack_hand(user)
diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index 10123890da7..ebf00444022 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -143,7 +143,7 @@
return
..()
-/obj/machinery/door/attackby(obj/item/I as obj, mob/user as mob)
+/obj/machinery/door/attackby(obj/item/I as obj, mob/user as mob, params)
if(istype(I, /obj/item/device/detective_scanner))
return
if(src.operating || isrobot(user)) return //borgs can't attack doors open because it conflicts with their AI-like interaction with them.
diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm
index a6609c03ec1..e0c1cc4588a 100644
--- a/code/game/machinery/doors/firedoor.dm
+++ b/code/game/machinery/doors/firedoor.dm
@@ -169,7 +169,7 @@
/obj/machinery/door/firedoor/attack_hand(mob/user as mob)
return attackby(null, user)
-/obj/machinery/door/firedoor/attackby(obj/item/weapon/C as obj, mob/user as mob)
+/obj/machinery/door/firedoor/attackby(obj/item/weapon/C as obj, mob/user as mob, params)
add_fingerprint(user)
if(operating)
return//Already doing something.
diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm
index eeceaf2de18..2495dbfc4bc 100644
--- a/code/game/machinery/doors/poddoor.dm
+++ b/code/game/machinery/doors/poddoor.dm
@@ -25,7 +25,7 @@
else
return 0
-/obj/machinery/door/poddoor/attackby(obj/item/weapon/C as obj, mob/user as mob)
+/obj/machinery/door/poddoor/attackby(obj/item/weapon/C as obj, mob/user as mob, params)
src.add_fingerprint(user)
if (!( istype(C, /obj/item/weapon/crowbar) || (istype(C, /obj/item/weapon/twohanded/fireaxe) && C:wielded == 1) ))
return
diff --git a/code/game/machinery/doors/shutters.dm b/code/game/machinery/doors/shutters.dm
index 8f54535c8fe..d8f751ec89e 100644
--- a/code/game/machinery/doors/shutters.dm
+++ b/code/game/machinery/doors/shutters.dm
@@ -13,7 +13,7 @@
density = 0
opacity = 0
-/obj/machinery/door/poddoor/shutters/attackby(obj/item/weapon/C as obj, mob/user as mob)
+/obj/machinery/door/poddoor/shutters/attackby(obj/item/weapon/C as obj, mob/user as mob, params)
add_fingerprint(user)
if(!(istype(C, /obj/item/weapon/crowbar) || (istype(C, /obj/item/weapon/twohanded/fireaxe) && C:wielded == 1) ))
return
diff --git a/code/game/machinery/doors/unpowered.dm b/code/game/machinery/doors/unpowered.dm
index dce2ab37bda..8e03e874a71 100644
--- a/code/game/machinery/doors/unpowered.dm
+++ b/code/game/machinery/doors/unpowered.dm
@@ -10,7 +10,7 @@
return
- attackby(obj/item/I as obj, mob/user as mob)
+ attackby(obj/item/I as obj, mob/user as mob, params)
if(istype(I, /obj/item/weapon/card/emag)||istype(I, /obj/item/weapon/melee/energy/blade)) return
if(src.locked) return
..()
diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm
index 429bc886068..a8ebd55930a 100644
--- a/code/game/machinery/doors/windowdoor.dm
+++ b/code/game/machinery/doors/windowdoor.dm
@@ -195,12 +195,15 @@
/obj/machinery/door/window/proc/attack_generic(mob/user as mob, damage = 0)
if(src.operating)
return
+ user.changeNext_move(CLICK_CD_MELEE)
+ user.do_attack_animation(src)
playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1)
user.visible_message("[user] smashes against the [src.name].", \
"[user] smashes against the [src.name].")
take_damage(damage)
/obj/machinery/door/window/attack_alien(mob/living/user as mob)
+
if(islarva(user))
return
attack_generic(user, 25)
@@ -245,7 +248,7 @@
emagged = 1
return 1
-/obj/machinery/door/window/attackby(obj/item/weapon/I as obj, mob/living/user as mob)
+/obj/machinery/door/window/attackby(obj/item/weapon/I as obj, mob/living/user as mob, params)
//If it's in the process of opening/closing, ignore the click
if (src.operating)
@@ -330,6 +333,8 @@
//If it's a weapon, smash windoor. Unless it's an id card, agent card, ect.. then ignore it (Cards really shouldnt damage a door anyway)
if(src.density && istype(I, /obj/item/weapon) && !istype(I, /obj/item/weapon/card) )
+ user.changeNext_move(CLICK_CD_MELEE)
+ user.do_attack_animation(src)
if( (I.flags&NOBLUDGEON) || !I.force )
return
var/aforce = I.force
diff --git a/code/game/machinery/doppler_array.dm b/code/game/machinery/doppler_array.dm
index 9866dc54502..840ed1133c2 100644
--- a/code/game/machinery/doppler_array.dm
+++ b/code/game/machinery/doppler_array.dm
@@ -19,7 +19,7 @@ var/list/doppler_arrays = list()
/obj/machinery/doppler_array/process()
return PROCESS_KILL
-/obj/machinery/doppler_array/attackby(var/obj/item/O as obj, var/mob/user as mob)
+/obj/machinery/doppler_array/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
if(istype(O, /obj/item/weapon/wrench))
playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
anchored = !anchored
diff --git a/code/game/machinery/drying_rack.dm b/code/game/machinery/drying_rack.dm
index 48d213a3326..f8c76de25ff 100644
--- a/code/game/machinery/drying_rack.dm
+++ b/code/game/machinery/drying_rack.dm
@@ -31,7 +31,7 @@
-/obj/machinery/drying_rack/attackby(var/obj/item/W as obj, var/mob/user as mob)
+/obj/machinery/drying_rack/attackby(var/obj/item/W as obj, var/mob/user as mob, params)
if(is_type_in_list(W,accepted))
if(!running)
if(istype(W,/obj/item/weapon/reagent_containers/food/snacks/meat))
diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm
index d51f29655de..148e1b53322 100644
--- a/code/game/machinery/flasher.dm
+++ b/code/game/machinery/flasher.dm
@@ -38,7 +38,7 @@
// src.sd_SetLuminosity(0)
//Don't want to render prison breaks impossible
-/obj/machinery/flasher/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/machinery/flasher/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if (istype(W, /obj/item/weapon/wirecutters))
add_fingerprint(user)
src.disable = !src.disable
@@ -107,7 +107,7 @@
if ((M.m_intent != "walk") && (src.anchored))
src.flash()
-/obj/machinery/flasher/portable/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/machinery/flasher/portable/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if (istype(W, /obj/item/weapon/wrench))
add_fingerprint(user)
src.anchored = !src.anchored
@@ -126,7 +126,7 @@
/obj/machinery/flasher_button/attack_paw(mob/user as mob)
return src.attack_hand(user)
-/obj/machinery/flasher_button/attackby(obj/item/weapon/W, mob/user as mob)
+/obj/machinery/flasher_button/attackby(obj/item/weapon/W, mob/user as mob, params)
return src.attack_hand(user)
/obj/machinery/flasher_button/attack_hand(mob/user as mob)
diff --git a/code/game/machinery/floodlight.dm b/code/game/machinery/floodlight.dm
index 5a6544ba646..b6da9e11d95 100644
--- a/code/game/machinery/floodlight.dm
+++ b/code/game/machinery/floodlight.dm
@@ -63,7 +63,7 @@
updateicon()
-/obj/machinery/floodlight/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/machinery/floodlight/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/wrench))
if (!anchored && !isinspace())
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
diff --git a/code/game/machinery/guestpass.dm b/code/game/machinery/guestpass.dm
index 7acdc9e6fe2..83cf1682bd8 100644
--- a/code/game/machinery/guestpass.dm
+++ b/code/game/machinery/guestpass.dm
@@ -54,7 +54,7 @@
var/list/internal_log = list()
var/mode = 0 // 0 - making pass, 1 - viewing logs
-/obj/machinery/computer/guestpass/attackby(obj/O, mob/user)
+/obj/machinery/computer/guestpass/attackby(obj/O, mob/user, params)
if(istype(O, /obj/item/weapon/card/id))
if(!giver)
user.drop_item()
diff --git a/code/game/machinery/holosign.dm b/code/game/machinery/holosign.dm
index 073973cdee7..cd1e5a85e62 100644
--- a/code/game/machinery/holosign.dm
+++ b/code/game/machinery/holosign.dm
@@ -50,7 +50,7 @@
obj/machinery/holosign_switch/attack_paw(mob/user as mob)
return src.attack_hand(user)
-/obj/machinery/holosign_switch/attackby(obj/item/weapon/W, mob/user as mob)
+/obj/machinery/holosign_switch/attackby(obj/item/weapon/W, mob/user as mob, params)
if(istype(W, /obj/item/device/detective_scanner))
return
return src.attack_hand(user)
diff --git a/code/game/machinery/hydroponics.dm b/code/game/machinery/hydroponics.dm
index 58d52bc992b..ef9a7d29150 100644
--- a/code/game/machinery/hydroponics.dm
+++ b/code/game/machinery/hydroponics.dm
@@ -664,7 +664,7 @@
return
-/obj/machinery/portable_atmospherics/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob)
+/obj/machinery/portable_atmospherics/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
if(exchange_parts(user, O))
return
@@ -958,7 +958,7 @@
use_power = 0
draw_warnings = 0
-/obj/machinery/portable_atmospherics/hydroponics/soil/attackby(var/obj/item/O as obj, var/mob/user as mob)
+/obj/machinery/portable_atmospherics/hydroponics/soil/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
if(istype(O, /obj/item/weapon/shovel))
user << "You clear up [src]!"
del(src)
diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm
index 7aba3dc25f1..9577a539203 100755
--- a/code/game/machinery/igniter.dm
+++ b/code/game/machinery/igniter.dm
@@ -71,7 +71,7 @@
icon_state = "[base_state]-p"
// src.sd_SetLuminosity(0)
-/obj/machinery/sparker/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/machinery/sparker/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/device/detective_scanner))
return
if (istype(W, /obj/item/weapon/screwdriver))
@@ -125,7 +125,7 @@
/obj/machinery/ignition_switch/attack_paw(mob/user as mob)
return src.attack_hand(user)
-/obj/machinery/ignition_switch/attackby(obj/item/weapon/W, mob/user as mob)
+/obj/machinery/ignition_switch/attackby(obj/item/weapon/W, mob/user as mob, params)
return src.attack_hand(user)
/obj/machinery/ignition_switch/attack_hand(mob/user as mob)
diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm
index 4063396f5c5..31b41770259 100644
--- a/code/game/machinery/iv_drip.dm
+++ b/code/game/machinery/iv_drip.dm
@@ -57,7 +57,7 @@
src.update_icon()
-/obj/machinery/iv_drip/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/machinery/iv_drip/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if (istype(W, /obj/item/weapon/reagent_containers))
if(!isnull(src.beaker))
user << "There is already a reagent container loaded!"
@@ -110,7 +110,7 @@
if(!istype(T)) return
if(!T.dna)
return
- if(M_NOCLONE in T.mutations)
+ if(NOCLONE in T.mutations)
return
if(T.species && T.species.flags & NO_BLOOD)
diff --git a/code/game/machinery/kitchen/gibber.dm b/code/game/machinery/kitchen/gibber.dm
index d5510dbbd26..8e657b6b53f 100644
--- a/code/game/machinery/kitchen/gibber.dm
+++ b/code/game/machinery/kitchen/gibber.dm
@@ -78,7 +78,7 @@
else
src.startgibbing(user)
-/obj/machinery/gibber/attackby(obj/item/weapon/grab/G as obj, mob/user as mob)
+/obj/machinery/gibber/attackby(obj/item/weapon/grab/G as obj, mob/user as mob, params)
if(src.occupant)
user << "\red The gibber is full, empty it first!"
return
diff --git a/code/game/machinery/kitchen/icecream_vat.dm b/code/game/machinery/kitchen/icecream_vat.dm
index ab39761b3da..711e2020361 100644
--- a/code/game/machinery/kitchen/icecream_vat.dm
+++ b/code/game/machinery/kitchen/icecream_vat.dm
@@ -89,7 +89,7 @@ var/list/ingredients_source = list(
user << browse(dat,"window=icecreamvat;size=600x400")
-/obj/machinery/icecream_vat/attackby(var/obj/item/O as obj, var/mob/user as mob)
+/obj/machinery/icecream_vat/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
if(istype(O, /obj/item/weapon/reagent_containers))
if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/icecream))
var/obj/item/weapon/reagent_containers/food/snacks/icecream/I = O
diff --git a/code/game/machinery/kitchen/juicer.dm b/code/game/machinery/kitchen/juicer.dm
index 89ead24fddb..86d59679f76 100644
--- a/code/game/machinery/kitchen/juicer.dm
+++ b/code/game/machinery/kitchen/juicer.dm
@@ -31,7 +31,7 @@
return
-/obj/machinery/juicer/attackby(var/obj/item/O as obj, var/mob/user as mob)
+/obj/machinery/juicer/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
if (istype(O,/obj/item/weapon/reagent_containers/glass) || \
istype(O,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass))
if (beaker)
diff --git a/code/game/machinery/kitchen/microwave.dm b/code/game/machinery/kitchen/microwave.dm
index 6eb988f98c5..cd8e806fbb0 100644
--- a/code/game/machinery/kitchen/microwave.dm
+++ b/code/game/machinery/kitchen/microwave.dm
@@ -71,7 +71,7 @@
* Item Adding
********************/
-/obj/machinery/microwave/attackby(var/obj/item/O as obj, var/mob/user as mob)
+/obj/machinery/microwave/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
if(operating)
return
if(!broken && dirty < 100)
diff --git a/code/game/machinery/kitchen/monkeyrecycler.dm b/code/game/machinery/kitchen/monkeyrecycler.dm
index f4b373e8eab..9342e6530b3 100644
--- a/code/game/machinery/kitchen/monkeyrecycler.dm
+++ b/code/game/machinery/kitchen/monkeyrecycler.dm
@@ -12,7 +12,7 @@
var/grinded = 0
-/obj/machinery/monkey_recycler/attackby(var/obj/item/O as obj, var/mob/user as mob)
+/obj/machinery/monkey_recycler/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
if (src.stat != 0) //NOPOWER etc
return
if (istype(O, /obj/item/weapon/grab))
diff --git a/code/game/machinery/kitchen/processor.dm b/code/game/machinery/kitchen/processor.dm
index aea4592faae..f466149d8d1 100644
--- a/code/game/machinery/kitchen/processor.dm
+++ b/code/game/machinery/kitchen/processor.dm
@@ -104,7 +104,7 @@
return P
return 0
-/obj/machinery/processor/attackby(var/obj/item/O as obj, var/mob/user as mob)
+/obj/machinery/processor/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
if(src.processing)
user << "\red The processor is in the process of processing."
return 1
diff --git a/code/game/machinery/kitchen/smartfridge.dm b/code/game/machinery/kitchen/smartfridge.dm
index 1e178bf54ff..397ee26b20a 100644
--- a/code/game/machinery/kitchen/smartfridge.dm
+++ b/code/game/machinery/kitchen/smartfridge.dm
@@ -75,7 +75,7 @@
* Item Adding
********************/
-/obj/machinery/smartfridge/attackby(var/obj/item/O as obj, var/mob/user as mob)
+/obj/machinery/smartfridge/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
if(!src.ispowered)
user << "\The [src] is unpowered and useless."
return
diff --git a/code/game/machinery/laprecharger.dm b/code/game/machinery/laprecharger.dm
index 7570227d755..cafd5e3d297 100644
--- a/code/game/machinery/laprecharger.dm
+++ b/code/game/machinery/laprecharger.dm
@@ -13,7 +13,7 @@
var/icon_state_charging = "recharger1"
var/icon_state_idle = "recharger0"
-/obj/machinery/laprecharger/attackby(obj/item/weapon/G as obj, mob/user as mob)
+/obj/machinery/laprecharger/attackby(obj/item/weapon/G as obj, mob/user as mob, params)
if(istype(user,/mob/living/silicon))
return
if(istype(G, /obj/item/weapon/gun/energy) || istype(G, /obj/item/weapon/melee/baton))
diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm
index 7d9eb50d44b..e30776ef6b4 100644
--- a/code/game/machinery/machinery.dm
+++ b/code/game/machinery/machinery.dm
@@ -218,7 +218,7 @@ Class Procs:
if(restrained() || lying || stat || stunned || weakened)
return
if(be_close && !in_range(M, src))
- if(M_TK in mutations)
+ if(TK in mutations)
var/mob/living/carbon/human/H = M
if(istype(H.l_hand, /obj/item/tk_grab) || istype(H.r_hand, /obj/item/tk_grab))
return 1
diff --git a/code/game/machinery/metaldetector.dm b/code/game/machinery/metaldetector.dm
index 72be4f67785..95e76eaa2c5 100644
--- a/code/game/machinery/metaldetector.dm
+++ b/code/game/machinery/metaldetector.dm
@@ -26,7 +26,7 @@
return 0
return 1
-/obj/machinery/metaldetector/attackby(obj/item/W as obj, mob/user as mob)
+/obj/machinery/metaldetector/attackby(obj/item/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/card))
for(var/ID in list(user.equipped(), user:wear_id, user:belt))
if(src.check_access(ID,list("20")))
diff --git a/code/game/machinery/navbeacon.dm b/code/game/machinery/navbeacon.dm
index 414c6c365b1..a8f39a4597e 100644
--- a/code/game/machinery/navbeacon.dm
+++ b/code/game/machinery/navbeacon.dm
@@ -101,7 +101,7 @@
frequency.post_signal(src, signal, filter = RADIO_NAVBEACONS)
-/obj/machinery/navbeacon/attackby(var/obj/item/I, var/mob/user)
+/obj/machinery/navbeacon/attackby(var/obj/item/I, var/mob/user, params)
var/turf/T = loc
if(T.intact)
return // prevent intraction when T-scanner revealed
diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm
index 85b4e35f7af..248908ed824 100644
--- a/code/game/machinery/newscaster.dm
+++ b/code/game/machinery/newscaster.dm
@@ -736,7 +736,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
src.updateUsrDialog()
-/obj/machinery/newscaster/attackby(obj/item/I as obj, mob/user as mob)
+/obj/machinery/newscaster/attackby(obj/item/I as obj, mob/living/user as mob, params)
if(istype(I, /obj/item/weapon/wrench))
user << "Now [anchored ? "un" : ""]securing [name]"
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
@@ -938,7 +938,7 @@ obj/item/weapon/newspaper/Topic(href, href_list)
src.attack_self(src.loc)
-obj/item/weapon/newspaper/attackby(obj/item/weapon/W as obj, mob/user as mob)
+obj/item/weapon/newspaper/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/pen))
if(src.scribble_page == src.curr_page)
user << "There's already a scribble in this page... You wouldn't want to make things too cluttered, would you?"
diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm
index 84ec1966a1c..21e66517422 100644
--- a/code/game/machinery/pipe/construction.dm
+++ b/code/game/machinery/pipe/construction.dm
@@ -388,7 +388,7 @@ Buildable meters
/obj/item/pipe/attack_self(mob/user as mob)
return rotate()
-/obj/item/pipe/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
+/obj/item/pipe/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob, params)
..()
//*
if (!istype(W, /obj/item/weapon/wrench))
@@ -1040,7 +1040,7 @@ Buildable meters
item_state = "buildpipe"
w_class = 4
-/obj/item/pipe_meter/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
+/obj/item/pipe_meter/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob, params)
..()
if (!istype(W, /obj/item/weapon/wrench))
diff --git a/code/game/machinery/pipe/pipe_dispenser.dm b/code/game/machinery/pipe/pipe_dispenser.dm
index e52737efd8f..959df353b38 100644
--- a/code/game/machinery/pipe/pipe_dispenser.dm
+++ b/code/game/machinery/pipe/pipe_dispenser.dm
@@ -87,7 +87,7 @@
wait = 0
return
-/obj/machinery/pipedispenser/attackby(var/obj/item/W as obj, var/mob/user as mob)
+/obj/machinery/pipedispenser/attackby(var/obj/item/W as obj, var/mob/user as mob, params)
src.add_fingerprint(usr)
if (istype(W, /obj/item/pipe) || istype(W, /obj/item/pipe_meter))
usr << "\blue You put [W] back to [src]."
diff --git a/code/game/machinery/podmen.dm b/code/game/machinery/podmen.dm
index 4a698e2a4e2..58dc6dc7888 100644
--- a/code/game/machinery/podmen.dm
+++ b/code/game/machinery/podmen.dm
@@ -27,7 +27,7 @@ Growing it to term with nothing injected will grab a ghost from the observers. *
var/found_player = 0
var/beingharvested = 0
-/obj/item/seeds/replicapod/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/seeds/replicapod/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W,/obj/item/weapon/reagent_containers))
diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm
index 464144d832d..fa36bcc23c5 100644
--- a/code/game/machinery/portable_turret.dm
+++ b/code/game/machinery/portable_turret.dm
@@ -285,7 +285,7 @@ Status: []
"},
-/obj/machinery/porta_turret/attackby(obj/item/W as obj, mob/user as mob)
+/obj/machinery/porta_turret/attackby(obj/item/W as obj, mob/user as mob, params)
if(stat & BROKEN)
if(istype(W, /obj/item/weapon/crowbar))
@@ -692,7 +692,7 @@ Status: []
"},
-/obj/machinery/porta_turret_construct/attackby(obj/item/W as obj, mob/user as mob)
+/obj/machinery/porta_turret_construct/attackby(obj/item/W as obj, mob/user as mob, params)
// this is a bit unweildy but self-explanitory
switch(build_step)
@@ -1018,7 +1018,7 @@ Status: []
"},
-/obj/machinery/porta_turret_cover/attackby(obj/item/W as obj, mob/user as mob)
+/obj/machinery/porta_turret_cover/attackby(obj/item/W as obj, mob/user as mob, params)
if ((istype(W, /obj/item/weapon/card/emag)) && (!Parent_Turret.emagged))
user << "\red You short out [Parent_Turret]'s threat assessment circuits."
diff --git a/code/game/machinery/programmable_unloader.dm b/code/game/machinery/programmable_unloader.dm
index f2aaefc03fa..291b5849d2f 100644
--- a/code/game/machinery/programmable_unloader.dm
+++ b/code/game/machinery/programmable_unloader.dm
@@ -195,7 +195,7 @@
updateUsrDialog()
return
-/obj/machinery/programmable/attackby(obj/item/I as obj, mob/user as mob)
+/obj/machinery/programmable/attackby(obj/item/I as obj, mob/user as mob, params)
if(istype(I,/obj/item/weapon/wrench)) // code borrowed from pipe dispenser
if (unwrenched==0)
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
@@ -510,7 +510,7 @@
return
playsound(loc, "punch", 25, 1, -1)
- if(M_HULK in H.mutations) damage += 5
+ if(HULK in H.mutations) damage += 5
if(damage < 5)
visible_message("[H] gives \the [src] a weak punch.")
@@ -580,7 +580,7 @@
..()
resetlists()
- attackby(obj/item/I as obj, mob/user as mob)
+ attackby(obj/item/I as obj, mob/user as mob, params)
if(istype(I,/obj/item/device/multitool))
hacking = (hacking?0:1)
if(hacking)
diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm
index 758b76814ab..8f79948d09c 100644
--- a/code/game/machinery/recharger.dm
+++ b/code/game/machinery/recharger.dm
@@ -13,7 +13,7 @@
var/icon_state_charging = "recharger1"
var/icon_state_idle = "recharger0"
-/obj/machinery/recharger/attackby(obj/item/weapon/G as obj, mob/user as mob)
+/obj/machinery/recharger/attackby(obj/item/weapon/G as obj, mob/user as mob, params)
if(istype(user,/mob/living/silicon))
return
if(istype(G, /obj/item/weapon/gun/energy) || istype(G, /obj/item/weapon/melee/baton) || istype(G,/obj/item/device/laptop))
diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm
index f339132dca6..6b26c084997 100644
--- a/code/game/machinery/rechargestation.dm
+++ b/code/game/machinery/rechargestation.dm
@@ -79,7 +79,7 @@
else
icon_state = "borgcharger0"
-/obj/machinery/recharge_station/attackby(obj/item/P as obj, mob/user as mob)
+/obj/machinery/recharge_station/attackby(obj/item/P as obj, mob/user as mob, params)
if (istype(P, /obj/item/weapon/screwdriver))
if(src.occupant)
user << "The maintenance panel is locked."
diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm
index edfac0425a0..3cc7919424b 100644
--- a/code/game/machinery/recycler.dm
+++ b/code/game/machinery/recycler.dm
@@ -31,7 +31,7 @@ var/const/SAFETY_COOLDOWN = 100
update_icon()
-/obj/machinery/recycler/attackby(var/obj/item/I, var/mob/user)
+/obj/machinery/recycler/attackby(var/obj/item/I, var/mob/user, params)
if(istype(I, /obj/item/weapon/screwdriver) && emagged)
emagged = 0
update_icon()
diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm
index 16d7b16572e..ed6e201a3ff 100644
--- a/code/game/machinery/requests_console.dm
+++ b/code/game/machinery/requests_console.dm
@@ -358,7 +358,7 @@ var/list/obj/machinery/requests_console/allConsoles = list()
return
//err... hacking code, which has no reason for existing... but anyway... it's supposed to unlock priority 3 messanging on that console (EXTREME priority...) the code for that actually exists.
-/obj/machinery/requests_console/attackby(var/obj/item/weapon/O as obj, var/mob/user as mob)
+/obj/machinery/requests_console/attackby(var/obj/item/weapon/O as obj, var/mob/user as mob, params)
/*
if (istype(O, /obj/item/weapon/crowbar))
if(open)
diff --git a/code/game/machinery/robot_fabricator.dm b/code/game/machinery/robot_fabricator.dm
index 65f31c94c0d..504f7ef8956 100644
--- a/code/game/machinery/robot_fabricator.dm
+++ b/code/game/machinery/robot_fabricator.dm
@@ -11,7 +11,7 @@
idle_power_usage = 20
active_power_usage = 5000
-/obj/machinery/robotic_fabricator/attackby(var/obj/item/O as obj, var/mob/user as mob)
+/obj/machinery/robotic_fabricator/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
if (istype(O, /obj/item/stack/sheet/metal))
if (src.metal_amount < 150000.0)
var/count = 0
diff --git a/code/game/machinery/seed_extractor.dm b/code/game/machinery/seed_extractor.dm
index dbb5a9d2712..f2e45ccdc41 100644
--- a/code/game/machinery/seed_extractor.dm
+++ b/code/game/machinery/seed_extractor.dm
@@ -6,7 +6,7 @@
density = 1
anchored = 1
-obj/machinery/seed_extractor/attackby(var/obj/item/O as obj, var/mob/user as mob)
+obj/machinery/seed_extractor/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
// Fruits and vegetables.
if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown) || istype(O, /obj/item/weapon/grown))
diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm
index 39e9e903c1a..07570114f00 100644
--- a/code/game/machinery/shieldgen.dm
+++ b/code/game/machinery/shieldgen.dm
@@ -25,7 +25,7 @@
if(!height || air_group) return 0
else return ..()
-/obj/machinery/shield/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/machinery/shield/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(!istype(W)) return
//Calculate damage
@@ -38,7 +38,7 @@
if (src.health <= 0)
- visible_message("\blue The [src] dissapates")
+ visible_message("\blue The [src] dissipates")
del(src)
return
@@ -51,7 +51,7 @@
src.health -= max_health*0.75 //3/4 health as damage
if(src.health <= 0)
- visible_message("\blue The [src] dissapates")
+ visible_message("\blue The [src] dissipates")
del(src)
return
@@ -63,7 +63,7 @@
health -= Proj.damage
..()
if(health <=0)
- visible_message("\blue The [src] dissapates")
+ visible_message("\blue The [src] dissipates")
del(src)
return
opacity = 1
@@ -112,7 +112,7 @@
//Handle the destruction of the shield
if (src.health <= 0)
- visible_message("\blue The [src] dissapates")
+ visible_message("\blue The [src] dissipates")
del(src)
return
@@ -241,7 +241,7 @@
user << "The device must first be secured to the floor."
return
-/obj/machinery/shieldgen/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/machinery/shieldgen/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/card/emag))
malfunction = 1
update_icon()
@@ -461,7 +461,7 @@
CF.dir = field_dir
-/obj/machinery/shieldwallgen/attackby(obj/item/W, mob/user)
+/obj/machinery/shieldwallgen/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/weapon/wrench))
if(active)
user << "Turn off the field generator first."
@@ -489,8 +489,8 @@
user << "\red Access denied."
else
- src.add_fingerprint(user)
- visible_message("\red The [src.name] has been hit with the [W.name] by [user.name]!")
+ add_fingerprint(user)
+ ..()
/obj/machinery/shieldwallgen/proc/cleanup(var/NSEW)
var/obj/machinery/shieldwall/F
diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm
index fd90622de14..9877ac6f138 100644
--- a/code/game/machinery/spaceheater.dm
+++ b/code/game/machinery/spaceheater.dm
@@ -50,7 +50,7 @@
cell.emp_act(severity)
..(severity)
- attackby(obj/item/I, mob/user)
+ attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/stock_parts/cell))
if(open)
if(cell)
diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm
index 0a0d9c32ebd..66c26a8b654 100644
--- a/code/game/machinery/suit_storage_unit.dm
+++ b/code/game/machinery/suit_storage_unit.dm
@@ -470,7 +470,7 @@
return
-/obj/machinery/suit_storage_unit/attackby(obj/item/I as obj, mob/user as mob)
+/obj/machinery/suit_storage_unit/attackby(obj/item/I as obj, mob/user as mob, params)
if(!src.ispowered)
return
if(istype(I, /obj/item/weapon/screwdriver))
@@ -631,7 +631,7 @@
user << "\blue The console controls are far too complicated for your tiny brain!"
return
-/obj/machinery/suit_cycler/attackby(obj/item/I as obj, mob/user as mob)
+/obj/machinery/suit_cycler/attackby(obj/item/I as obj, mob/user as mob, params)
if(electrified != 0)
if(src.shock(user, 100))
diff --git a/code/game/machinery/syndicatebeacon.dm b/code/game/machinery/syndicatebeacon.dm
index 8cc2408c46c..916ae1a23af 100644
--- a/code/game/machinery/syndicatebeacon.dm
+++ b/code/game/machinery/syndicatebeacon.dm
@@ -156,7 +156,7 @@
return
- attackby(obj/item/weapon/W as obj, mob/user as mob)
+ attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W,/obj/item/weapon/screwdriver))
if(active)
user << "\red You need to deactivate the beacon first!"
diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm
index 2aff4b378e7..314f14e0ffa 100644
--- a/code/game/machinery/syndicatebomb.dm
+++ b/code/game/machinery/syndicatebomb.dm
@@ -48,7 +48,7 @@
/obj/machinery/syndicatebomb/update_icon()
icon_state = "[initial(icon_state)][active ? "-active" : "-inactive"][open_panel ? "-wires" : ""]"
-/obj/machinery/syndicatebomb/attackby(var/obj/item/I, var/mob/user)
+/obj/machinery/syndicatebomb/attackby(var/obj/item/I, var/mob/user, params)
if(istype(I, /obj/item/weapon/wrench))
if(!anchored)
if(!isturf(src.loc) || istype(src.loc, /turf/space))
diff --git a/code/game/machinery/telecomms/logbrowser.dm b/code/game/machinery/telecomms/logbrowser.dm
index ef50d3ea865..2fb2cd3cc69 100644
--- a/code/game/machinery/telecomms/logbrowser.dm
+++ b/code/game/machinery/telecomms/logbrowser.dm
@@ -217,7 +217,7 @@
updateUsrDialog()
return
- attackby(var/obj/item/weapon/D as obj, var/mob/user as mob)
+ attackby(var/obj/item/weapon/D as obj, var/mob/user as mob, params)
if(istype(D, /obj/item/weapon/screwdriver))
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
if(do_after(user, 20))
diff --git a/code/game/machinery/telecomms/machine_interactions.dm b/code/game/machinery/telecomms/machine_interactions.dm
index af05db47db6..55a4e604e0f 100644
--- a/code/game/machinery/telecomms/machine_interactions.dm
+++ b/code/game/machinery/telecomms/machine_interactions.dm
@@ -13,7 +13,7 @@
var/construct_op = 0
-/obj/machinery/telecomms/attackby(obj/item/P as obj, mob/user as mob)
+/obj/machinery/telecomms/attackby(obj/item/P as obj, mob/user as mob, params)
// Using a multitool lets you access the receiver's interface
if(istype(P, /obj/item/device/multitool))
diff --git a/code/game/machinery/telecomms/telemonitor.dm b/code/game/machinery/telecomms/telemonitor.dm
index c02ef59e1be..23969177606 100644
--- a/code/game/machinery/telecomms/telemonitor.dm
+++ b/code/game/machinery/telecomms/telemonitor.dm
@@ -126,7 +126,7 @@
updateUsrDialog()
return
- attackby(var/obj/item/weapon/D as obj, var/mob/user as mob)
+ attackby(var/obj/item/weapon/D as obj, var/mob/user as mob, params)
if(istype(D, /obj/item/weapon/screwdriver))
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
if(do_after(user, 20))
diff --git a/code/game/machinery/telecomms/traffic_control.dm b/code/game/machinery/telecomms/traffic_control.dm
index e2b42ddbb44..889623b60e6 100644
--- a/code/game/machinery/telecomms/traffic_control.dm
+++ b/code/game/machinery/telecomms/traffic_control.dm
@@ -206,7 +206,7 @@
return
-/obj/machinery/computer/telecomms/traffic/attackby(var/obj/item/weapon/D as obj, var/mob/user as mob)
+/obj/machinery/computer/telecomms/traffic/attackby(var/obj/item/weapon/D as obj, var/mob/user as mob, params)
if(istype(D, /obj/item/weapon/screwdriver))
playsound(get_turf(src), 'sound/items/Screwdriver.ogg', 50, 1)
if(do_after(user, 20))
diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm
index d9afea3dd80..9d30d7207af 100644
--- a/code/game/machinery/teleporter.dm
+++ b/code/game/machinery/teleporter.dm
@@ -30,7 +30,7 @@
break
return power_station
-/obj/machinery/computer/teleporter/attackby(I as obj, mob/living/user as mob)
+/obj/machinery/computer/teleporter/attackby(I as obj, mob/living/user as mob, params)
if(istype(I, /obj/item/device/gps))
var/obj/item/device/gps/L = I
if(L.locked_location && !(stat & (NOPOWER|BROKEN)))
@@ -329,7 +329,7 @@
//--FalseIncarnate
return
-/obj/machinery/teleport/hub/attackby(obj/item/W, mob/user)
+/obj/machinery/teleport/hub/attackby(obj/item/W, mob/user, params)
if(default_deconstruction_screwdriver(user, "tele-o", "tele0", W))
return
@@ -414,7 +414,7 @@
teleporter_hub.update_icon()
..()
-/obj/machinery/teleport/station/attackby(var/obj/item/weapon/W, mob/user)
+/obj/machinery/teleport/station/attackby(var/obj/item/weapon/W, mob/user, params)
if(istype(W, /obj/item/device/multitool) && !panel_open)
var/obj/item/device/multitool/M = W
if(M.buffer && istype(M.buffer, /obj/machinery/teleport/station) && M.buffer != src)
diff --git a/code/game/machinery/turrets.dm b/code/game/machinery/turrets.dm
index 90dd7f27d71..5ecc801d985 100644
--- a/code/game/machinery/turrets.dm
+++ b/code/game/machinery/turrets.dm
@@ -299,7 +299,8 @@
/obj/machinery/turret/attackby(obj/item/weapon/W, mob/user)//I can't believe no one added this before/N
..()
- playsound(get_turf(src), 'sound/weapons/smash.ogg', 60, 1)
+ user.changeNext_move(CLICK_CD_MELEE)
+ playsound(src.loc, 'sound/weapons/smash.ogg', 60, 1)
src.spark_system.start()
src.health -= W.force * 0.5
if (src.health <= 0)
@@ -359,7 +360,7 @@
//don't have to check if control_area is path, since get_area_all_atoms can take path.
return
-/obj/machinery/turretid/attackby(obj/item/weapon/W, mob/user)
+/obj/machinery/turretid/attackby(obj/item/weapon/W, mob/user, params)
if(stat & BROKEN) return
if (istype(user, /mob/living/silicon))
return src.attack_hand(user)
@@ -433,26 +434,31 @@
popup.open()
+
/obj/machinery/turret/attack_animal(mob/living/simple_animal/M as mob)
+ M.changeNext_move(CLICK_CD_MELEE)
+ M.do_attack_animation(src)
if(M.melee_damage_upper == 0) return
if(!(stat & BROKEN))
- visible_message("\red [M] [M.attacktext] [src]!")
- M.attack_log += text("\[[time_stamp()]\] attacked [src.name]")
+ visible_message("[M] [M.attacktext] [src]!")
+ add_logs(M, src, "attacked", admin=0)
//src.attack_log += text("\[[time_stamp()]\] was attacked by [M.name] ([M.ckey])")
src.health -= M.melee_damage_upper
if (src.health <= 0)
src.die()
else
- M << "\red That object is useless to you."
+ M << "That object is useless to you."
return
/obj/machinery/turret/attack_alien(mob/living/carbon/alien/humanoid/M as mob)
+ M.changeNext_move(CLICK_CD_MELEE)
+ M.do_attack_animation(src)
if(!(stat & BROKEN))
- playsound(get_turf(src), 'sound/weapons/slash.ogg', 25, 1, -1)
- visible_message("\red [] has slashed at []!", M, src)
+ playsound(src.loc, 'sound/weapons/slash.ogg', 25, 1, -1)
+ visible_message("[M] has slashed at [src]!")
src.health -= 15
if (src.health <= 0)
src.die()
@@ -574,7 +580,10 @@
return attack_hand(user)
-/obj/machinery/gun_turret/attack_alien(mob/user as mob)
+/obj/machinery/gun_turret/attack_alien(mob/living/user as mob)
+ user.changeNext_move(CLICK_CD_MELEE)
+ user.do_attack_animation(src)
+ playsound(src.loc, 'sound/weapons/slash.ogg', 25, 1, -1)
user.visible_message("[user] slashes at [src]", "You slash at [src]")
take_damage(15)
return
diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm
index 9376aae0ae4..a74d7ad5bde 100644
--- a/code/game/machinery/vending.dm
+++ b/code/game/machinery/vending.dm
@@ -209,7 +209,7 @@
break
return total
-/obj/machinery/vending/attackby(obj/item/weapon/W, mob/user)
+/obj/machinery/vending/attackby(obj/item/weapon/W, mob/user, params)
if (currently_vending && vendor_account && !vendor_account.suspended)
var/paid = 0
var/handled = 0
diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm
index c48d5e3a89c..19108eec93d 100644
--- a/code/game/machinery/washing_machine.dm
+++ b/code/game/machinery/washing_machine.dm
@@ -194,7 +194,7 @@
/obj/machinery/washing_machine/update_icon()
icon_state = "wm_[state][panel]"
-/obj/machinery/washing_machine/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/machinery/washing_machine/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
/*if(istype(W,/obj/item/weapon/screwdriver))
panel = !panel
user << "\blue you [panel ? "open" : "close"] the [src]'s maintenance panel"*/
diff --git a/code/game/machinery/wishgranter.dm b/code/game/machinery/wishgranter.dm
index 87561d447ab..c253dd2d084 100644
--- a/code/game/machinery/wishgranter.dm
+++ b/code/game/machinery/wishgranter.dm
@@ -58,29 +58,29 @@
charges--
insisting = 0
- if (!(M_HULK in user.mutations))
+ if (!(HULK in user.mutations))
user.dna.SetSEState(HULKBLOCK,1)
- if (!(M_LASER in user.mutations))
- user.mutations.Add(M_LASER)
+ if (!(LASER in user.mutations))
+ user.mutations.Add(LASER)
- if (!(M_XRAY in user.mutations))
- user.mutations.Add(M_XRAY)
+ if (!(XRAY in user.mutations))
+ user.mutations.Add(XRAY)
user.sight |= (SEE_MOBS|SEE_OBJS|SEE_TURFS)
user.see_in_dark = 8
user.see_invisible = SEE_INVISIBLE_LEVEL_TWO
- if (!(M_RESIST_COLD in user.mutations))
- user.mutations.Add(M_RESIST_COLD)
+ if (!(RESIST_COLD in user.mutations))
+ user.mutations.Add(RESIST_COLD)
- if (!(M_RESIST_HEAT in user.mutations))
- user.mutations.Add(M_RESIST_HEAT)
+ if (!(RESIST_HEAT in user.mutations))
+ user.mutations.Add(RESIST_HEAT)
- if (!(M_TK in user.mutations))
- user.mutations.Add(M_TK)
+ if (!(TK in user.mutations))
+ user.mutations.Add(TK)
- if(!(M_REGEN in user.mutations))
- user.mutations.Add(M_REGEN)
+ if(!(REGEN in user.mutations))
+ user.mutations.Add(REGEN)
user.update_mutations()
diff --git a/code/game/mecha/equipment/tools/tools.dm b/code/game/mecha/equipment/tools/tools.dm
index efe31d5bf62..c618ec8c72f 100644
--- a/code/game/mecha/equipment/tools/tools.dm
+++ b/code/game/mecha/equipment/tools/tools.dm
@@ -548,9 +548,9 @@
if(!chassis) return
return "* [src.name]"
- proc/dynattackby(obj/item/weapon/W as obj, mob/user as mob)
+ proc/dynattackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(!action_checks(user))
- return chassis.dynattackby(W,user)
+ return chassis.dynattackby(W,user, params)
chassis.log_message("Attacked by [W]. Attacker - [user]")
if(prob(chassis.deflect_chance*deflect_coeff))
user << "\red The [W] bounces off [chassis] armor."
@@ -920,7 +920,7 @@
return 0
return
- attackby(weapon,mob/user)
+ attackby(weapon,mob/user, params)
var/result = load_fuel(weapon)
if(isnull(result))
user.visible_message("[user] tries to shove [weapon] into [src]. What a dumb-ass.","[fuel] traces minimal. [weapon] cannot be used as fuel.")
diff --git a/code/game/mecha/equipment/tools/unused_tools.dm b/code/game/mecha/equipment/tools/unused_tools.dm
index 68578913813..50fcc9d62bb 100644
--- a/code/game/mecha/equipment/tools/unused_tools.dm
+++ b/code/game/mecha/equipment/tools/unused_tools.dm
@@ -129,11 +129,11 @@
chassis.proc_res["dynattackby"] = src
return
- proc/dynattackby(obj/item/weapon/W as obj, mob/user as mob)
+ proc/dynattackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(!action_checks(user) || !active)
return
user.electrocute_act(shock_damage, src)
- return chassis.dynattackby(W,user)
+ return chassis.dynattackby(W,user, params)
/*
diff --git a/code/game/mecha/mech_bay.dm b/code/game/mecha/mech_bay.dm
index 59883f8b8df..3ff3c66408d 100644
--- a/code/game/mecha/mech_bay.dm
+++ b/code/game/mecha/mech_bay.dm
@@ -76,7 +76,7 @@
recharge_console.update_icon()
-/obj/machinery/mech_bay_recharge_port/attackby(obj/item/I, mob/user)
+/obj/machinery/mech_bay_recharge_port/attackby(obj/item/I, mob/user, params)
if(default_deconstruction_screwdriver(user, "recharge_port-o", "recharge_port", I))
return
diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm
index 76d2c03c934..e69394432be 100644
--- a/code/game/mecha/mech_fabricator.dm
+++ b/code/game/mecha/mech_fabricator.dm
@@ -498,7 +498,7 @@
return result
-/obj/machinery/mecha_part_fabricator/attackby(obj/W as obj, mob/user as mob)
+/obj/machinery/mecha_part_fabricator/attackby(obj/W as obj, mob/user as mob, params)
if(default_deconstruction_screwdriver(user, "fab-o", "fab-idle", W))
return
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index 398c297cb24..8633d1c871f 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -453,7 +453,9 @@
src.destroy()
return
-/obj/mecha/attack_hand(mob/user as mob)
+/obj/mecha/attack_hand(mob/living/user as mob)
+ user.changeNext_move(CLICK_CD_MELEE)
+ user.do_attack_animation(src)
src.log_message("Attack by hand/paw. Attacker - [user].",1)
if(ishuman(user))
@@ -461,7 +463,7 @@
call(/obj/item/clothing/gloves/space_ninja/proc/drain)("MECHA",src,user:wear_suit)
return
- if ((M_HULK in user.mutations) && !prob(src.deflect_chance))
+ if ((HULK in user.mutations) && !prob(src.deflect_chance))
src.take_damage(15)
src.check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST))
user.visible_message("[user] hits [src.name], doing some damage.", "You hit [src.name] with all your might. The metal creaks and bends.")
@@ -470,12 +472,14 @@
src.log_append_to_last("Armor saved.")
return
-/obj/mecha/attack_paw(mob/user as mob)
+/obj/mecha/attack_paw(mob/living/user as mob)
return src.attack_hand(user)
-/obj/mecha/attack_alien(mob/user as mob)
+/obj/mecha/attack_alien(mob/living/user as mob)
src.log_message("Attack by alien. Attacker - [user].",1)
+ user.changeNext_move(CLICK_CD_MELEE)
+ user.do_attack_animation(src)
if(!prob(src.deflect_chance))
src.take_damage(15)
src.check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST))
@@ -496,6 +500,7 @@
if(user.melee_damage_upper == 0)
user.emote("[user.friendly] [src]")
else
+ user.do_attack_animation(src)
if(!prob(src.deflect_chance))
var/damage = rand(user.melee_damage_lower, user.melee_damage_upper)
src.take_damage(damage)
@@ -674,8 +679,10 @@
src.check_for_internal_damage(list(MECHA_INT_FIRE, MECHA_INT_TEMP_CONTROL))
return
-/obj/mecha/proc/dynattackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/mecha/proc/dynattackby(obj/item/weapon/W as obj, mob/living/user as mob, params)
src.log_message("Attacked by [W]. Attacker - [user]")
+ user.changeNext_move(CLICK_CD_MELEE)
+ user.do_attack_animation(src)
if(prob(src.deflect_chance))
user << "\red The [W] bounces off [src.name] armor."
src.log_append_to_last("Armor saved.")
@@ -695,7 +702,7 @@
////// AttackBy //////
//////////////////////
-/obj/mecha/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/mecha/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/device/mmi) || istype(W, /obj/item/device/mmi/posibrain))
if(mmi_move_inside(W,user))
diff --git a/code/game/mecha/mecha_parts.dm b/code/game/mecha/mecha_parts.dm
index f89390139b6..6237bcfd523 100644
--- a/code/game/mecha/mecha_parts.dm
+++ b/code/game/mecha/mecha_parts.dm
@@ -20,7 +20,7 @@
construction_cost = list("metal"=20000)
flags = CONDUCT
- attackby(obj/item/W as obj, mob/user as mob)
+ attackby(obj/item/W as obj, mob/user as mob, params)
if(!construct || !construct.action(W, user))
..()
return
diff --git a/code/game/mecha/mecha_wreckage.dm b/code/game/mecha/mecha_wreckage.dm
index 62c8c7c5d47..b2c4b0bc0db 100644
--- a/code/game/mecha/mecha_wreckage.dm
+++ b/code/game/mecha/mecha_wreckage.dm
@@ -30,7 +30,7 @@
return
-/obj/effect/decal/mecha_wreckage/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/effect/decal/mecha_wreckage/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W
if(salvage_num <= 0)
diff --git a/code/game/objects/effects/aliens.dm b/code/game/objects/effects/aliens.dm
index c3a05eae825..a5b6c4c8d6a 100644
--- a/code/game/objects/effects/aliens.dm
+++ b/code/game/objects/effects/aliens.dm
@@ -101,7 +101,8 @@
/obj/structure/alien/resin/attack_hand(mob/living/user)
- if(M_HULK in user.mutations)
+ if(HULK in user.mutations)
+ user.do_attack_animation(src)
user.visible_message("[user] destroys [src]!")
health = 0
healthcheck()
@@ -112,6 +113,8 @@
/obj/structure/alien/resin/attack_alien(mob/living/user)
+ user.changeNext_move(CLICK_CD_MELEE)
+ user.do_attack_animation(src)
if(islarva(user))
return
user.visible_message("[user] claws at the resin!")
@@ -122,7 +125,8 @@
healthcheck()
-/obj/structure/alien/resin/attackby(obj/item/I, mob/living/user)
+/obj/structure/alien/resin/attackby(obj/item/I, mob/living/user, params)
+ user.changeNext_move(CLICK_CD_MELEE)
health -= I.force
playsound(loc, 'sound/effects/attackblob.ogg', 100, 1)
healthcheck()
@@ -202,7 +206,7 @@
del(src)
-/obj/structure/alien/weeds/attackby(obj/item/I, mob/user)
+/obj/structure/alien/weeds/attackby(obj/item/I, mob/user, params)
if(I.attack_verb.len)
visible_message("[user] has [pick(I.attack_verb)] [src] with [I]!")
else
@@ -355,7 +359,7 @@
healthcheck()
-/obj/structure/alien/egg/attackby(obj/item/I, mob/user)
+/obj/structure/alien/egg/attackby(obj/item/I, mob/user, params)
if(I.attack_verb.len)
visible_message("[user] has [pick(I.attack_verb)] [src] with [I]!")
else
diff --git a/code/game/objects/effects/anomalies.dm b/code/game/objects/effects/anomalies.dm
index 2a0235652ac..a0b3fff9c7b 100644
--- a/code/game/objects/effects/anomalies.dm
+++ b/code/game/objects/effects/anomalies.dm
@@ -35,7 +35,7 @@
qdel(src)
-/obj/effect/anomaly/attackby(obj/item/I, mob/user)
+/obj/effect/anomaly/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/device/analyzer))
user << "Analyzing... [src]'s unstable field is fluctuating along frequency [aSignal.code]:[format_frequency(aSignal.frequency)]."
diff --git a/code/game/objects/effects/decals/contraband.dm b/code/game/objects/effects/decals/contraband.dm
index d32c2b9b7e1..7f3de1cf8c6 100644
--- a/code/game/objects/effects/decals/contraband.dm
+++ b/code/game/objects/effects/decals/contraband.dm
@@ -48,7 +48,7 @@ obj/structure/sign/poster/New(var/serial)
icon_state = design.icon_state // poster[serial_number]
..()
-obj/structure/sign/poster/attackby(obj/item/weapon/W as obj, mob/user as mob)
+obj/structure/sign/poster/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/wirecutters))
playsound(loc, 'sound/items/Wirecutter.ogg', 100, 1)
if(ruined)
@@ -89,7 +89,7 @@ obj/structure/sign/poster/attackby(obj/item/weapon/W as obj, mob/user as mob)
del(src)
-//seperated to reduce code duplication. Moved here for ease of reference and to unclutter r_wall/attackby()
+//seperated to reduce code duplication. Moved here for ease of reference and to unclutter r_wall/attackby(, params)
/turf/simulated/wall/proc/place_poster(var/obj/item/weapon/contraband/poster/P, var/mob/user)
if(!istype(src,/turf/simulated/wall))
diff --git a/code/game/objects/effects/effect_system.dm b/code/game/objects/effects/effect_system.dm
index 4440c825215..4cb89d01ea5 100644
--- a/code/game/objects/effects/effect_system.dm
+++ b/code/game/objects/effects/effect_system.dm
@@ -1074,7 +1074,7 @@ steam.start() -- spawns the effect
return
attack_hand(var/mob/user)
- if ((M_HULK in user.mutations) || (prob(75 - metal*25)))
+ if ((HULK in user.mutations) || (prob(75 - metal*25)))
user << "\blue You smash through the metal foam wall."
for(var/mob/O in oviewers(user))
if ((O.client && !( O.blinded )))
@@ -1086,7 +1086,7 @@ steam.start() -- spawns the effect
return
- attackby(var/obj/item/I, var/mob/user)
+ attackby(var/obj/item/I, var/mob/user, params)
if (istype(I, /obj/item/weapon/grab))
var/obj/item/weapon/grab/G = I
diff --git a/code/game/objects/effects/glowshroom.dm b/code/game/objects/effects/glowshroom.dm
index 61ab55b4c68..e8b8cc4bdaf 100644
--- a/code/game/objects/effects/glowshroom.dm
+++ b/code/game/objects/effects/glowshroom.dm
@@ -133,7 +133,7 @@
floor = 1
return 1
-/obj/effect/glowshroom/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/effect/glowshroom/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
..()
endurance -= W.force
diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm
index e11b35ac207..62a9bb7a57b 100644
--- a/code/game/objects/effects/spiders.dm
+++ b/code/game/objects/effects/spiders.dm
@@ -20,7 +20,7 @@
qdel(src)
return
-/obj/effect/spider/attackby(var/obj/item/weapon/W, var/mob/user)
+/obj/effect/spider/attackby(var/obj/item/weapon/W, var/mob/user, params)
if(W.attack_verb.len)
visible_message("\red \The [src] have been [pick(W.attack_verb)] with \the [W][(user ? " by [user]." : ".")]")
else
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 24af225a8ab..399455d208c 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -126,7 +126,7 @@
if(5.0)
size = "huge"
else
- //if ((M_CLUMSY in usr.mutations) && prob(50)) t = "funny-looking"
+ //if ((CLUMSY in usr.mutations) && prob(50)) t = "funny-looking"
usr << "This is a [src.blood_DNA ? "bloody " : ""]\icon[src][src.name]. It is a [size] item."
if(src.desc)
usr << src.desc
@@ -155,7 +155,6 @@
else
if(isliving(loc))
return 0
- user.next_move = max(user.next_move+2,world.time + 2)
pickup(user)
add_fingerprint(user)
@@ -187,7 +186,6 @@
if(istype(src.loc, /mob/living))
return
src.pickup(user)
- user.next_move = max(user.next_move+2,world.time + 2)
user.put_in_active_hand(src)
return
@@ -213,7 +211,7 @@
// Due to storage type consolidation this should get used more now.
// I have cleaned it up a little, but it could probably use more. -Sayu
-/obj/item/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W,/obj/item/weapon/storage))
var/obj/item/weapon/storage/S = W
if(S.use_to_pickup)
@@ -302,7 +300,7 @@
if(istype(src, /obj/item/clothing/under) || istype(src, /obj/item/clothing/suit))
- if(M_FAT in H.mutations)
+ if(FAT in H.mutations)
testing("[M] TOO FAT TO WEAR [src]!")
if(!(flags & ONESIZEFITSALL))
if(!disable_warning)
@@ -614,7 +612,7 @@
M.LAssailant = user
src.add_fingerprint(user)
- //if((M_CLUMSY in user.mutations) && prob(50))
+ //if((CLUMSY in user.mutations) && prob(50))
// M = user
/*
M << "\red You stab yourself in the eye."
diff --git a/code/game/objects/items/apc_frame.dm b/code/game/objects/items/apc_frame.dm
index b81a80a5f65..764be72b131 100644
--- a/code/game/objects/items/apc_frame.dm
+++ b/code/game/objects/items/apc_frame.dm
@@ -7,7 +7,7 @@
icon_state = "apc_frame"
flags = CONDUCT
-/obj/item/apc_frame/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/apc_frame/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
..()
if (istype(W, /obj/item/weapon/wrench))
new /obj/item/stack/sheet/metal( get_turf(src.loc), 2 )
diff --git a/code/game/objects/items/ashtray.dm b/code/game/objects/items/ashtray.dm
index 5e6274b7cf0..bf554463a42 100644
--- a/code/game/objects/items/ashtray.dm
+++ b/code/game/objects/items/ashtray.dm
@@ -14,7 +14,7 @@
src.pixel_x = rand(-6, 6)
return
-/obj/item/ashtray/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/ashtray/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if (health < 1)
return
if (istype(W,/obj/item/weapon/cigbutt) || istype(W,/obj/item/clothing/mask/cigarette) || istype(W, /obj/item/weapon/match))
diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm
index 0bb680f069d..8eaf699205d 100644
--- a/code/game/objects/items/bodybag.dm
+++ b/code/game/objects/items/bodybag.dm
@@ -40,7 +40,7 @@
density = 0
- attackby(W as obj, mob/user as mob)
+ attackby(W as obj, mob/user as mob, params)
if (istype(W, /obj/item/weapon/pen))
var/t = input(user, "What would you like the label to be?", text("[]", src.name), null) as text
if (user.get_active_hand() != W)
@@ -127,7 +127,7 @@
usr << "\red You can't fold that up anymore.."
..()
- attackby(W as obj, mob/user as mob)
+ attackby(W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/card/id) || istype(W, /obj/item/device/pda))
if(src.allowed(user))
src.locked = !src.locked
diff --git a/code/game/objects/items/candle.dm b/code/game/objects/items/candle.dm
index 61f341f0362..a68258e6a1c 100644
--- a/code/game/objects/items/candle.dm
+++ b/code/game/objects/items/candle.dm
@@ -22,7 +22,7 @@
icon_state = "candle[i][lit ? "_lit" : ""]"
- attackby(obj/item/weapon/W as obj, mob/user as mob)
+ attackby(obj/item/weapon/W as obj, mob/user as mob, params)
..()
if(istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W
diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm
index a2d06058e08..914ec7d6be0 100755
--- a/code/game/objects/items/devices/PDA/PDA.dm
+++ b/code/game/objects/items/devices/PDA/PDA.dm
@@ -1055,7 +1055,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
return
// access to status display signals
-/obj/item/device/pda/attackby(obj/item/C as obj, mob/user as mob)
+/obj/item/device/pda/attackby(obj/item/C as obj, mob/user as mob, params)
..()
if(istype(C, /obj/item/weapon/cartridge) && !cartridge)
cartridge = C
diff --git a/code/game/objects/items/devices/flash.dm b/code/game/objects/items/devices/flash.dm
index fe322e30dbd..8643a20aaa5 100644
--- a/code/game/objects/items/devices/flash.dm
+++ b/code/game/objects/items/devices/flash.dm
@@ -16,7 +16,7 @@
/obj/item/device/flash/proc/clown_check(mob/user)
- if(user && (M_CLUMSY in user.mutations) && prob(50))
+ if(user && (CLUMSY in user.mutations) && prob(50))
flash_carbon(user, user, 15, 0)
return 0
return 1
diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm
index 10c31d54773..05a851b0d28 100644
--- a/code/game/objects/items/devices/flashlight.dm
+++ b/code/game/objects/items/devices/flashlight.dm
@@ -49,7 +49,7 @@
add_fingerprint(user)
if(on && user.zone_sel.selecting == "eyes")
- if(((M_CLUMSY in user.mutations) || user.getBrainLoss() >= 60) && prob(50)) //too dumb to use flashlight properly
+ if(((CLUMSY in user.mutations) || user.getBrainLoss() >= 60) && prob(50)) //too dumb to use flashlight properly
return ..() //just hit them in the head
if(!(istype(user, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey") //don't have dexterity
@@ -77,7 +77,7 @@
if(istype(M, /mob/living/carbon/human) || istype(M, /mob/living/carbon/monkey)) //robots and aliens are unaffected
if(M.stat == DEAD || M.sdisabilities & BLIND) //mob is dead or fully blind
user << "[M] pupils does not react to the light!"
- else if(M_XRAY in M.mutations) //mob has X-RAY vision
+ else if(XRAY in M.mutations) //mob has X-RAY vision
flick("flash", M.flash) //Yes, you can still get flashed wit X-Ray.
user << "[M] pupils give an eerie glow!"
else //they're okay!
diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm
index d3ba41ca58c..5c104fcef54 100644
--- a/code/game/objects/items/devices/laserpointer.dm
+++ b/code/game/objects/items/devices/laserpointer.dm
@@ -5,7 +5,7 @@
icon_state = "pointer"
item_state = "pen"
var/pointer_icon_state
- flags = CONDUCT | USEDELAY
+ flags = CONDUCT
slot_flags = SLOT_BELT
m_amt = 500
g_amt = 500
@@ -45,7 +45,7 @@
/obj/item/device/laser_pointer/attack(mob/living/M, mob/user)
laser_act(M, user)
-/obj/item/device/laser_pointer/attackby(obj/item/W, mob/user)
+/obj/item/device/laser_pointer/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/weapon/stock_parts/micro_laser))
if(!diode)
user.drop_item()
diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm
index f4129666026..3d9e623d53b 100644
--- a/code/game/objects/items/devices/lightreplacer.dm
+++ b/code/game/objects/items/devices/lightreplacer.dm
@@ -71,7 +71,7 @@
..()
usr << "It has [uses] lights remaining."
-/obj/item/device/lightreplacer/attackby(obj/item/W, mob/user)
+/obj/item/device/lightreplacer/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/stack/sheet/glass))
var/obj/item/stack/sheet/glass/G = W
if(G.amount - decrement >= 0 && uses < max_uses)
diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm
index 6fb0a998d0b..f9907855224 100644
--- a/code/game/objects/items/devices/powersink.dm
+++ b/code/game/objects/items/devices/powersink.dm
@@ -21,7 +21,7 @@
var/obj/structure/cable/attached // the attached cable
- attackby(var/obj/item/I, var/mob/user)
+ attackby(var/obj/item/I, var/mob/user, params)
if(istype(I, /obj/item/weapon/screwdriver))
if(mode == 0)
var/turf/T = loc
diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm
index b737f9d92ca..ff5c90e0985 100644
--- a/code/game/objects/items/devices/radio/electropack.dm
+++ b/code/game/objects/items/devices/radio/electropack.dm
@@ -26,7 +26,7 @@
S.part2 = null
master = null
-/obj/item/device/radio/electropack/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/device/radio/electropack/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
..()
if(istype(W, /obj/item/clothing/head/helmet))
if(!b_stat)
diff --git a/code/game/objects/items/devices/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm
index bd4119ecef3..2c112dc12d0 100644
--- a/code/game/objects/items/devices/radio/encryptionkey.dm
+++ b/code/game/objects/items/devices/radio/encryptionkey.dm
@@ -13,7 +13,7 @@
/obj/item/device/encryptionkey/New()
-/obj/item/device/encryptionkey/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/device/encryptionkey/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
/obj/item/device/encryptionkey/syndicate
icon_state = "cypherkey"
diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm
index 6cb551ceac3..887cc3bd25f 100644
--- a/code/game/objects/items/devices/radio/headset.dm
+++ b/code/game/objects/items/devices/radio/headset.dm
@@ -254,7 +254,7 @@
return -1 //Transciever Disabled.
return ..(freq, level, 1)
-/obj/item/device/radio/headset/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/device/radio/headset/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
// ..()
user.set_machine(src)
if (!( istype(W, /obj/item/weapon/screwdriver) || (istype(W, /obj/item/device/encryptionkey/ ))))
diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm
index 503fc2b5041..fc4e955a50f 100644
--- a/code/game/objects/items/devices/radio/radio.dm
+++ b/code/game/objects/items/devices/radio/radio.dm
@@ -476,7 +476,7 @@
user.show_message("\blue \the [src] can not be modified or attached!")
return
-/obj/item/device/radio/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/device/radio/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
..()
user.set_machine(src)
if (!( istype(W, /obj/item/weapon/screwdriver) ))
@@ -535,7 +535,7 @@
var/datum/robot_component/C = R.components["radio"]
R.use_power(C.energy_consumption)
-/obj/item/device/radio/borg/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/device/radio/borg/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
// ..()
user.set_machine(src)
if (!( istype(W, /obj/item/weapon/screwdriver) || (istype(W, /obj/item/device/encryptionkey/ ))))
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index 097c60d57df..92cfb499ad0 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -110,7 +110,7 @@ REAGENT SCANNER
/obj/item/device/healthanalyzer/attack(mob/living/M as mob, mob/living/user as mob)
- if (( (M_CLUMSY in user.mutations) || user.getBrainLoss() >= 60) && prob(50))
+ if (( (CLUMSY in user.mutations) || user.getBrainLoss() >= 60) && prob(50))
user << text("\red You try to analyze the floor's vitals!")
for(var/mob/O in viewers(M, null))
O.show_message(text("\red [user] has analyzed the floor's vitals!"), 1)
diff --git a/code/game/objects/items/devices/suit_cooling.dm b/code/game/objects/items/devices/suit_cooling.dm
index 9c98165239e..577dba2fdbe 100644
--- a/code/game/objects/items/devices/suit_cooling.dm
+++ b/code/game/objects/items/devices/suit_cooling.dm
@@ -121,7 +121,7 @@
if (on)
user << "You switch on the [src]."
-/obj/item/device/suit_cooling_unit/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/device/suit_cooling_unit/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if (istype(W, /obj/item/weapon/screwdriver))
if(cover_open)
cover_open = 0
diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm
index 1dc2142d31a..e882adfae23 100644
--- a/code/game/objects/items/devices/transfer_valve.dm
+++ b/code/game/objects/items/devices/transfer_valve.dm
@@ -15,7 +15,7 @@
/obj/item/device/transfer_valve/IsAssemblyHolder()
return 1
-/obj/item/device/transfer_valve/attackby(obj/item/item, mob/user)
+/obj/item/device/transfer_valve/attackby(obj/item/item, mob/user, params)
if(istype(item, /obj/item/weapon/tank))
if(tank_one && tank_two)
user << "There are already two tanks attached, remove one first."
diff --git a/code/game/objects/items/devices/uplinks.dm b/code/game/objects/items/devices/uplinks.dm
index d83c1b56ede..3fce029a056 100644
--- a/code/game/objects/items/devices/uplinks.dm
+++ b/code/game/objects/items/devices/uplinks.dm
@@ -251,7 +251,7 @@ var/list/world_uplinks = list()
return 0
//Refund proc for the borg teleporter (later I'll make a general refund proc if there is demand for it)
-/obj/item/device/radio/headset/syndicate/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/device/radio/headset/syndicate/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/antag_spawner/borg_tele))
var/obj/item/weapon/antag_spawner/borg_tele/S = W
if(!S.used && !S.checking)
@@ -261,7 +261,7 @@ var/list/world_uplinks = list()
else
user << "This teleporter is already used, or is currently being used."
-/obj/item/device/radio/uplink/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/device/radio/uplink/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/antag_spawner/borg_tele))
var/obj/item/weapon/antag_spawner/borg_tele/S = W
if(!S.used && !S.checking)
diff --git a/code/game/objects/items/flag.dm b/code/game/objects/items/flag.dm
index 22b5285556a..e3e02dc1047 100644
--- a/code/game/objects/items/flag.dm
+++ b/code/game/objects/items/flag.dm
@@ -35,7 +35,7 @@
del(src)
return
-/obj/item/flag/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/flag/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
..()
if(istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W
diff --git a/code/game/objects/items/latexballoon.dm b/code/game/objects/items/latexballoon.dm
index f00a9ed48b5..daab9b55a69 100644
--- a/code/game/objects/items/latexballoon.dm
+++ b/code/game/objects/items/latexballoon.dm
@@ -43,6 +43,6 @@
burst()
return
-/obj/item/latexballon/attackby(obj/item/W as obj, mob/user as mob)
+/obj/item/latexballon/attackby(obj/item/W as obj, mob/user as mob, params)
if (can_puncture(W))
burst()
\ No newline at end of file
diff --git a/code/game/objects/items/policetape.dm b/code/game/objects/items/policetape.dm
index 583aaafe379..f5044b1de28 100644
--- a/code/game/objects/items/policetape.dm
+++ b/code/game/objects/items/policetape.dm
@@ -119,7 +119,7 @@
else
return 0
-/obj/item/tape/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/tape/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
breaktape(W, user)
/obj/item/tape/attack_hand(mob/user as mob)
diff --git a/code/game/objects/items/random_items.dm b/code/game/objects/items/random_items.dm
index 72cedf73e2b..4ed64721966 100644
--- a/code/game/objects/items/random_items.dm
+++ b/code/game/objects/items/random_items.dm
@@ -269,7 +269,7 @@
name = "\improper Mysterious Crate"
desc = "What could it be?"
- attackby(obj/item/weapon/W as obj, mob/user as mob)
+ attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/crowbar))
var/list/menace = pick( /mob/living/simple_animal/hostile/carp,/mob/living/simple_animal/hostile/faithless,/mob/living/simple_animal/hostile/pirate,
/mob/living/simple_animal/hostile/creature,/mob/living/simple_animal/hostile/pirate/ranged,
@@ -299,7 +299,7 @@
name = "Schrodinger's Crate"
desc = "What happens if you open it?"
- attackby(obj/item/weapon/W as obj, mob/user as mob)
+ attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/crowbar))
var/mob/living/simple_animal/cat/Cat1 = new(loc)
Cat1.apply_damage(250)//,TOX)
diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm
index c28dc6ac883..775b4c24690 100644
--- a/code/game/objects/items/robot/robot_parts.dm
+++ b/code/game/objects/items/robot/robot_parts.dm
@@ -101,7 +101,7 @@
return 1
return 0
-/obj/item/robot_parts/robot_suit/attackby(obj/item/W as obj, mob/user as mob)
+/obj/item/robot_parts/robot_suit/attackby(obj/item/W as obj, mob/user as mob, params)
..()
if(istype(W, /obj/item/stack/sheet/metal) && !l_arm && !r_arm && !l_leg && !r_leg && !chest && !head)
var/obj/item/weapon/ed209_assembly/B = new /obj/item/weapon/ed209_assembly
@@ -249,7 +249,7 @@
return
-/obj/item/robot_parts/chest/attackby(obj/item/W as obj, mob/user as mob)
+/obj/item/robot_parts/chest/attackby(obj/item/W as obj, mob/user as mob, params)
..()
if(istype(W, /obj/item/weapon/stock_parts/cell))
if(src.cell)
@@ -271,7 +271,7 @@
user << "\blue You insert the wire!"
return
-/obj/item/robot_parts/head/attackby(obj/item/W as obj, mob/user as mob)
+/obj/item/robot_parts/head/attackby(obj/item/W as obj, mob/user as mob, params)
..()
if(istype(W, /obj/item/device/flash))
if(istype(user,/mob/living/silicon/robot))
@@ -299,7 +299,7 @@
return
return
-/obj/item/robot_parts/attackby(obj/item/W as obj, mob/user as mob)
+/obj/item/robot_parts/attackby(obj/item/W as obj, mob/user as mob, params)
if(istype(W,/obj/item/weapon/card/emag))
if(sabotaged)
user << "\red [src] is already sabotaged!"
diff --git a/code/game/objects/items/shooting_range.dm b/code/game/objects/items/shooting_range.dm
index 19a2e38e179..dfd5777d9d0 100644
--- a/code/game/objects/items/shooting_range.dm
+++ b/code/game/objects/items/shooting_range.dm
@@ -32,7 +32,7 @@
- attackby(obj/item/W as obj, mob/user as mob)
+ attackby(obj/item/W as obj, mob/user as mob, params)
if (istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W
if(WT.remove_fuel(0, user))
diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm
index 0bdbfe90647..e4924825b13 100644
--- a/code/game/objects/items/stacks/rods.dm
+++ b/code/game/objects/items/stacks/rods.dm
@@ -13,7 +13,7 @@
max_amount = 60
attack_verb = list("hit", "bludgeoned", "whacked")
-/obj/item/stack/rods/attackby(obj/item/W as obj, mob/user as mob)
+/obj/item/stack/rods/attackby(obj/item/W as obj, mob/user as mob, params)
..()
if (istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W
diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm
index 9a12d36e5db..117473aa1ad 100644
--- a/code/game/objects/items/stacks/sheets/glass.dm
+++ b/code/game/objects/items/stacks/sheets/glass.dm
@@ -34,7 +34,7 @@
/obj/item/stack/sheet/glass/attack_self(mob/user as mob)
construct_window(user)
-/obj/item/stack/sheet/glass/attackby(obj/item/W, mob/user)
+/obj/item/stack/sheet/glass/attackby(obj/item/W, mob/user, params)
..()
if(istype(W,/obj/item/stack/cable_coil))
var/obj/item/stack/cable_coil/CC = W
@@ -255,7 +255,7 @@
/obj/item/stack/sheet/plasmaglass/attack_self(mob/user as mob)
construct_window(user)
-/obj/item/stack/sheet/plasmaglass/attackby(obj/item/W, mob/user)
+/obj/item/stack/sheet/plasmaglass/attackby(obj/item/W, mob/user, params)
..()
if( istype(W, /obj/item/stack/rods) )
var/obj/item/stack/rods/V = W
diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm
index 72339452e77..97bf00120ef 100644
--- a/code/game/objects/items/stacks/sheets/leather.dm
+++ b/code/game/objects/items/stacks/sheets/leather.dm
@@ -90,7 +90,7 @@
//Step one - dehairing.
-/obj/item/stack/sheet/animalhide/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/stack/sheet/animalhide/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if( istype(W, /obj/item/weapon/kitchenknife) || \
istype(W, /obj/item/weapon/kitchen/utensil/knife) || \
istype(W, /obj/item/weapon/twohanded/fireaxe) || \
diff --git a/code/game/objects/items/stacks/sheets/light.dm b/code/game/objects/items/stacks/sheets/light.dm
index 51aed957168..7b2b30660ec 100644
--- a/code/game/objects/items/stacks/sheets/light.dm
+++ b/code/game/objects/items/stacks/sheets/light.dm
@@ -11,7 +11,7 @@
flags = CONDUCT
max_amount = 60
-/obj/item/stack/light_w/attackby(var/obj/item/O as obj, var/mob/user as mob)
+/obj/item/stack/light_w/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
..()
if(istype(O,/obj/item/weapon/wirecutters))
var/obj/item/stack/cable_coil/CC = new/obj/item/stack/cable_coil(user.loc)
diff --git a/code/game/objects/items/stacks/sheets/sheets.dm b/code/game/objects/items/stacks/sheets/sheets.dm
index 74ebf59b11e..8482d4a7cd1 100644
--- a/code/game/objects/items/stacks/sheets/sheets.dm
+++ b/code/game/objects/items/stacks/sheets/sheets.dm
@@ -14,7 +14,7 @@
// Since the sheetsnatcher was consolidated into weapon/storage/bag we now use
// item/attackby() properly, making this unnecessary
-/*/obj/item/stack/sheet/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/*/obj/item/stack/sheet/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if (istype(W, /obj/item/weapon/storage/bag/sheetsnatcher))
var/obj/item/weapon/storage/bag/sheetsnatcher/S = W
if(!S.mode)
diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm
index a4f2cc60829..45b483d602d 100644
--- a/code/game/objects/items/stacks/stack.dm
+++ b/code/game/objects/items/stacks/stack.dm
@@ -203,7 +203,7 @@
..()
return
-/obj/item/stack/attackby(obj/item/W as obj, mob/user as mob)
+/obj/item/stack/attackby(obj/item/W as obj, mob/user as mob, params)
..()
if (istype(W, src.type))
var/obj/item/stack/S = W
diff --git a/code/game/objects/items/stacks/tiles/light.dm b/code/game/objects/items/stacks/tiles/light.dm
index 688c3347116..e395acbfde4 100644
--- a/code/game/objects/items/stacks/tiles/light.dm
+++ b/code/game/objects/items/stacks/tiles/light.dm
@@ -25,7 +25,7 @@
else
state = 0 //fine
-/obj/item/stack/tile/light/attackby(var/obj/item/O as obj, var/mob/user as mob)
+/obj/item/stack/tile/light/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
..()
if(istype(O,/obj/item/weapon/crowbar))
new/obj/item/stack/sheet/metal(user.loc)
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index b338a1c259a..983278dd71c 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -56,7 +56,7 @@
src.update_icon()
return
-/obj/item/toy/balloon/attackby(obj/O as obj, mob/user as mob)
+/obj/item/toy/balloon/attackby(obj/O as obj, mob/user as mob, params)
if(istype(O, /obj/item/weapon/reagent_containers/glass))
if(O.reagents)
if(O.reagents.total_volume < 1)
@@ -148,7 +148,7 @@
..()
return
- attackby(obj/item/toy/ammo/gun/A as obj, mob/user as mob)
+ attackby(obj/item/toy/ammo/gun/A as obj, mob/user as mob, params)
if (istype(A, /obj/item/toy/ammo/gun))
if (src.bullets >= 7)
@@ -221,7 +221,7 @@
if (bullets)
usr << "\blue It is loaded with [bullets] foam darts!"
- attackby(obj/item/I as obj, mob/user as mob)
+ attackby(obj/item/I as obj, mob/user as mob, params)
if(istype(I, /obj/item/toy/ammo/crossbow))
if(bullets <= 4)
user.drop_item()
@@ -330,7 +330,7 @@
attack_verb = list("struck", "hammered", "hit", "bashed")
bullets = 20.0
-/obj/item/toy/crossbow/tommygun/attackby(obj/item/I as obj, mob/user as mob)
+/obj/item/toy/crossbow/tommygun/attackby(obj/item/I as obj, mob/user as mob, params)
if(istype(I, /obj/item/toy/ammo/crossbow))
if(bullets <= 19)
user.drop_item()
@@ -377,7 +377,7 @@
return
// Copied from /obj/item/weapon/melee/energy/sword/attackby
-/obj/item/toy/sword/attackby(obj/item/weapon/W, mob/living/user)
+/obj/item/toy/sword/attackby(obj/item/weapon/W, mob/living/user, params)
..()
if(istype(W, /obj/item/toy/sword))
if(W == src)
@@ -703,7 +703,7 @@ obj/item/toy/cards/deck/attack_self(mob/user as mob)
user.visible_message("[user] shuffles the deck.", "You shuffle the deck.")
cooldown = world.time
-obj/item/toy/cards/deck/attackby(obj/item/toy/cards/singlecard/C, mob/living/user)
+obj/item/toy/cards/deck/attackby(obj/item/toy/cards/singlecard/C, mob/living/user, params)
..()
if(istype(C))
if(C.parentdeck == src)
@@ -723,7 +723,7 @@ obj/item/toy/cards/deck/attackby(obj/item/toy/cards/singlecard/C, mob/living/use
src.icon_state = "deck_[deckstyle]_low"
-obj/item/toy/cards/deck/attackby(obj/item/toy/cards/cardhand/C, mob/living/user)
+obj/item/toy/cards/deck/attackby(obj/item/toy/cards/cardhand/C, mob/living/user, params)
..()
if(istype(C))
if(C.parentdeck == src)
@@ -827,7 +827,7 @@ obj/item/toy/cards/cardhand/Topic(href, href_list)
del(src)
return
-obj/item/toy/cards/cardhand/attackby(obj/item/toy/cards/singlecard/C, mob/living/user)
+obj/item/toy/cards/cardhand/attackby(obj/item/toy/cards/singlecard/C, mob/living/user, params)
if(istype(C))
if(C.parentdeck == src.parentdeck)
src.currenthand += C.cardname
@@ -898,7 +898,7 @@ obj/item/toy/cards/singlecard/verb/Flip()
src.name = "card"
src.pixel_x = -5
-obj/item/toy/cards/singlecard/attackby(obj/item/I, mob/living/user)
+obj/item/toy/cards/singlecard/attackby(obj/item/I, mob/living/user, params)
if(istype(I, /obj/item/toy/cards/singlecard/))
var/obj/item/toy/cards/singlecard/C = I
if(C.parentdeck == src.parentdeck)
diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm
index 1cb3dbcd718..ec8f3e1457c 100644
--- a/code/game/objects/items/weapons/RCD.dm
+++ b/code/game/objects/items/weapons/RCD.dm
@@ -36,7 +36,7 @@ RCD
return
- attackby(obj/item/weapon/W, mob/user)
+ attackby(obj/item/weapon/W, mob/user, params)
..()
if(istype(W, /obj/item/weapon/rcd_ammo))
if((matter + 20) > 100)
diff --git a/code/game/objects/items/weapons/RSF.dm b/code/game/objects/items/weapons/RSF.dm
index 1712f52d6f2..055b28ede27 100644
--- a/code/game/objects/items/weapons/RSF.dm
+++ b/code/game/objects/items/weapons/RSF.dm
@@ -19,7 +19,7 @@ RSF
desc = "A RSF. It currently holds [matter]/30 fabrication-units."
return
-/obj/item/weapon/rsf/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/weapon/rsf/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
..()
if (istype(W, /obj/item/weapon/rcd_ammo))
if ((matter + 10) > 30)
diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm
index 86d90735ad6..026c058ba46 100644
--- a/code/game/objects/items/weapons/cards_ids.dm
+++ b/code/game/objects/items/weapons/cards_ids.dm
@@ -161,7 +161,7 @@
/obj/item/weapon/card/id/GetID()
return src
-/obj/item/weapon/card/id/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/weapon/card/id/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
..()
if(istype(W,/obj/item/weapon/id_wallet))
user << "You slip [src] into [W]."
diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm
index 33b7f064e14..92990626a0e 100644
--- a/code/game/objects/items/weapons/cigs_lighters.dm
+++ b/code/game/objects/items/weapons/cigs_lighters.dm
@@ -78,7 +78,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
..()
del(reagents)
-/obj/item/clothing/mask/cigarette/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/clothing/mask/cigarette/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
..()
if(istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W
@@ -287,7 +287,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
icon_state = "cigarbutt"
-/obj/item/clothing/mask/cigarette/cigar/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/clothing/mask/cigarette/cigar/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/match))
..()
else
@@ -359,7 +359,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
smoketime = initial(smoketime)
return
-/obj/item/clothing/mask/cigarette/pipe/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/clothing/mask/cigarette/pipe/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/match))
..()
else
diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm
index 377ff97902a..dbbc2f807ac 100644
--- a/code/game/objects/items/weapons/defib.dm
+++ b/code/game/objects/items/weapons/defib.dm
@@ -78,7 +78,7 @@
usr << "Put the defibrillator on your back first!"
return
-/obj/item/weapon/defibrillator/attackby(obj/item/weapon/W, mob/user)
+/obj/item/weapon/defibrillator/attackby(obj/item/weapon/W, mob/user, params)
if(istype(W, /obj/item/weapon/stock_parts/cell))
var/obj/item/weapon/stock_parts/cell/C = W
if(bcell)
@@ -231,7 +231,7 @@
update_icon()
return
-/obj/item/weapon/defibrillator/compact/combat/attackby(obj/item/weapon/W, mob/user)
+/obj/item/weapon/defibrillator/compact/combat/attackby(obj/item/weapon/W, mob/user, params)
if(W == paddles)
paddles.unwield()
toggle_paddles()
@@ -363,7 +363,7 @@
for(var/datum/organ/external/O in H.organs)
total_brute += O.brute_dam
total_burn += O.burn_dam
- if(H.health <= config.health_threshold_dead && total_burn <= 180 && total_brute <= 180 && !H.suiciding && !ghost && tplus < tlimit && !(M_NOCLONE in H.mutations))
+ if(H.health <= config.health_threshold_dead && total_burn <= 180 && total_brute <= 180 && !H.suiciding && !ghost && tplus < tlimit && !(NOCLONE in H.mutations))
tobehealed = health + threshold
tobehealed -= 5 //They get 5 of each type of damage healed so excessive combined damage will not immediately kill them after they get revived
H.adjustOxyLoss(tobehealed)
@@ -471,7 +471,7 @@
for(var/datum/organ/external/O in H.organs)
total_brute += O.brute_dam
total_burn += O.burn_dam
- if(H.health <= config.health_threshold_dead && total_burn <= 180 && total_brute <= 180 && !H.suiciding && !ghost && tplus < tlimit && !(M_NOCLONE in H.mutations))
+ if(H.health <= config.health_threshold_dead && total_burn <= 180 && total_brute <= 180 && !H.suiciding && !ghost && tplus < tlimit && !(NOCLONE in H.mutations))
tobehealed = health + threshold
tobehealed -= 5 //They get 5 of each type of damage healed so excessive combined damage will not immediately kill them after they get revived
H.adjustOxyLoss(tobehealed)
diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm
index 3cc4caebb33..19dc7b0850e 100644
--- a/code/game/objects/items/weapons/dna_injector.dm
+++ b/code/game/objects/items/weapons/dna_injector.dm
@@ -67,7 +67,7 @@
if(istype(M,/mob/living))
M.apply_effect(rand(5,20),IRRADIATE,0)
- if (!(M_NOCLONE in M.mutations)) // prevents drained people from having their DNA changed
+ if (!(NOCLONE in M.mutations)) // prevents drained people from having their DNA changed
// UI in syringe.
if (buf.types & DNA2_BUF_UI)
if (!block) //isolated block?
diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm
index 84be7792502..f0208139b81 100644
--- a/code/game/objects/items/weapons/explosives.dm
+++ b/code/game/objects/items/weapons/explosives.dm
@@ -44,7 +44,7 @@
explode(get_turf(user))
return .
-/obj/item/weapon/plastique/attackby(var/obj/item/I, var/mob/user)
+/obj/item/weapon/plastique/attackby(var/obj/item/I, var/mob/user, params)
if(istype(I, /obj/item/weapon/screwdriver))
open_panel = !open_panel
user << "You [open_panel ? "open" : "close"] the wire panel."
diff --git a/code/game/objects/items/weapons/extinguisher.dm b/code/game/objects/items/weapons/extinguisher.dm
index 760bef9c2e2..8896e9a77d2 100644
--- a/code/game/objects/items/weapons/extinguisher.dm
+++ b/code/game/objects/items/weapons/extinguisher.dm
@@ -64,7 +64,7 @@
return
/*
-/obj/item/weapon/extinguisher/attackby(obj/item/W, mob/user)
+/obj/item/weapon/extinguisher/attackby(obj/item/W, mob/user, params)
if(user.stat || user.restrained() || user.lying) return
if (istype(W, /obj/item/weapon/wrench))
diff --git a/code/game/objects/items/weapons/fireworks.dm b/code/game/objects/items/weapons/fireworks.dm
index 6372145968e..9a90c3ae205 100644
--- a/code/game/objects/items/weapons/fireworks.dm
+++ b/code/game/objects/items/weapons/fireworks.dm
@@ -4,7 +4,7 @@ obj/item/weapon/firework
icon_state = "rocket_0"
var/litzor = 0
var/datum/effects/system/sparkel_spread/S
-obj/item/weapon/firework/attackby(obj/item/weapon/W,mob/user)
+obj/item/weapon/firework/attackby(obj/item/weapon/W,mob/user, params)
if(litzor)
return
if (istype(W, /obj/item/weapon/weldingtool) && W:welding || istype(W,/obj/item/weapon/lighter) && W:lit)
@@ -26,7 +26,7 @@ obj/item/weapon/sparkler
icon_state = "sparkler_0"
var/litzor = 0
var/datum/effect/effect/system/spark_spread/S
-obj/item/weapon/sparkler/attackby(obj/item/weapon/W,mob/user)
+obj/item/weapon/sparkler/attackby(obj/item/weapon/W,mob/user, params)
if(litzor)
return
if (istype(W, /obj/item/weapon/weldingtool) && W:welding || istype(W,/obj/item/weapon/lighter) && W:lit)
diff --git a/code/game/objects/items/weapons/flamethrower.dm b/code/game/objects/items/weapons/flamethrower.dm
index 7a8bdb8a69c..67d4528ef1e 100644
--- a/code/game/objects/items/weapons/flamethrower.dm
+++ b/code/game/objects/items/weapons/flamethrower.dm
@@ -69,7 +69,7 @@
var/turflist = getline(user, target_turf)
flame_turf(turflist)
-/obj/item/weapon/flamethrower/attackby(obj/item/W as obj, mob/user as mob)
+/obj/item/weapon/flamethrower/attackby(obj/item/W as obj, mob/user as mob, params)
if(user.stat || user.restrained() || user.lying) return
if(iswrench(W) && !status)//Taking this apart
var/turf/T = get_turf(src)
diff --git a/code/game/objects/items/weapons/gift_wrappaper.dm b/code/game/objects/items/weapons/gift_wrappaper.dm
index 314566fe81d..c87d3f9ef3f 100644
--- a/code/game/objects/items/weapons/gift_wrappaper.dm
+++ b/code/game/objects/items/weapons/gift_wrappaper.dm
@@ -43,7 +43,7 @@
return
user << "\blue You cant move."
-/obj/effect/spresent/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/effect/spresent/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
..()
if (!istype(W, /obj/item/weapon/wirecutters))
diff --git a/code/game/objects/items/weapons/grenades/bananade.dm b/code/game/objects/items/weapons/grenades/bananade.dm
index 119a72d59a6..a2947d7791d 100644
--- a/code/game/objects/items/weapons/grenades/bananade.dm
+++ b/code/game/objects/items/weapons/grenades/bananade.dm
@@ -38,7 +38,7 @@ var/turf/T
var/fillamt = 0
-/obj/item/weapon/grenade/bananade/casing/attackby(var/obj/item/I, mob/user as mob)
+/obj/item/weapon/grenade/bananade/casing/attackby(var/obj/item/I, mob/user as mob, params)
if(istype(I, /obj/item/weapon/bananapeel))
if(fillamt < 9)
usr << "You add another banana peel to the assembly."
diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm
index 3b6da3c7c2a..72ebabc0283 100644
--- a/code/game/objects/items/weapons/grenades/chem_grenade.dm
+++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm
@@ -103,7 +103,7 @@
prime()
-/obj/item/weapon/grenade/chem_grenade/attackby(obj/item/I, mob/user)
+/obj/item/weapon/grenade/chem_grenade/attackby(obj/item/I, mob/user, params)
if(istype(I,/obj/item/weapon/hand_labeler))
var/obj/item/weapon/hand_labeler/HL = I
if(length(HL.label))
@@ -368,7 +368,7 @@
//I tried to just put it in the allowed_containers list but
//if you do that it must have reagents. If you're going to
//make a special case you might as well do it explicitly. -Sayu
-/obj/item/weapon/grenade/chem_grenade/large/attackby(obj/item/I, mob/user)
+/obj/item/weapon/grenade/chem_grenade/large/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/slime_extract) && stage == WIRED)
user << "You add [I] to the assembly."
user.drop_item()
diff --git a/code/game/objects/items/weapons/grenades/grenade.dm b/code/game/objects/items/weapons/grenades/grenade.dm
index 5b5e25ff384..2e9c8dd64ed 100644
--- a/code/game/objects/items/weapons/grenades/grenade.dm
+++ b/code/game/objects/items/weapons/grenades/grenade.dm
@@ -14,7 +14,7 @@
var/display_timer = 1
/obj/item/weapon/grenade/proc/clown_check(var/mob/living/user)
- if((M_CLUMSY in user.mutations) && prob(50))
+ if((CLUMSY in user.mutations) && prob(50))
user << "Huh? How does this thing work?"
active = 1
icon_state = initial(icon_state) + "_active"
@@ -81,7 +81,7 @@
M.unEquip(src)
-/obj/item/weapon/grenade/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/weapon/grenade/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/screwdriver))
switch(det_time)
if ("1")
diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm
index 5c6da3e797b..ee83c71aa93 100644
--- a/code/game/objects/items/weapons/handcuffs.dm
+++ b/code/game/objects/items/weapons/handcuffs.dm
@@ -17,7 +17,7 @@
var/trashtype = null //For disposable cuffs
/obj/item/weapon/restraints/handcuffs/attack(mob/living/carbon/C, mob/user)
- if(M_CLUMSY in user.mutations && prob(50))
+ if(CLUMSY in user.mutations && prob(50))
user << "Uh... how do those things work?!"
apply_cuffs(user,user)
@@ -122,7 +122,7 @@ var/last_chew = 0
desc = "Use this to keep prisoners in line. Or you know, your significant other."
icon_state = "pinkcuffs"
-/obj/item/weapon/restraints/handcuffs/cable/attackby(var/obj/item/I, mob/user as mob)
+/obj/item/weapon/restraints/handcuffs/cable/attackby(var/obj/item/I, mob/user as mob, params)
..()
if(istype(I, /obj/item/stack/rods))
var/obj/item/stack/rods/R = I
diff --git a/code/game/objects/items/weapons/hydroponics.dm b/code/game/objects/items/weapons/hydroponics.dm
index 19193fdf4ea..6dd593eac7e 100644
--- a/code/game/objects/items/weapons/hydroponics.dm
+++ b/code/game/objects/items/weapons/hydroponics.dm
@@ -39,7 +39,7 @@
if(0)
usr << "The bag now picks up one seed pouch at a time."
-/obj/item/seeds/attackby(var/obj/item/O as obj, var/mob/user as mob)
+/obj/item/seeds/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
..()
if (istype(O, /obj/item/weapon/seedbag))
var/obj/item/weapon/seedbag/S = O
@@ -230,7 +230,7 @@
/*
* Corncob
*/
-/obj/item/weapon/corncob/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/weapon/corncob/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
..()
if(istype(W, /obj/item/weapon/circular_saw) || istype(W, /obj/item/weapon/hatchet) || istype(W, /obj/item/weapon/kitchen/utensil/knife) || istype(W, /obj/item/weapon/kitchenknife) || istype(W, /obj/item/weapon/kitchenknife/ritual))
user << "You use [W] to fashion a pipe out of the corn cob!"
diff --git a/code/game/objects/items/weapons/implants/implantcase.dm b/code/game/objects/items/weapons/implants/implantcase.dm
index 15713658712..f4f9f3d2400 100644
--- a/code/game/objects/items/weapons/implants/implantcase.dm
+++ b/code/game/objects/items/weapons/implants/implantcase.dm
@@ -21,7 +21,7 @@
return
- attackby(obj/item/weapon/I as obj, mob/user as mob)
+ attackby(obj/item/weapon/I as obj, mob/user as mob, params)
..()
if (istype(I, /obj/item/weapon/pen))
var/t = input(user, "What would you like the label to be?", text("[]", src.name), null) as text
diff --git a/code/game/objects/items/weapons/implants/implantchair.dm b/code/game/objects/items/weapons/implants/implantchair.dm
index 0edd1a87362..d03f499a26c 100644
--- a/code/game/objects/items/weapons/implants/implantchair.dm
+++ b/code/game/objects/items/weapons/implants/implantchair.dm
@@ -74,7 +74,7 @@
return
- attackby(var/obj/item/weapon/G as obj, var/mob/user as mob)
+ attackby(var/obj/item/weapon/G as obj, var/mob/user as mob, params)
if(istype(G, /obj/item/weapon/grab))
if(!ismob(G:affecting))
return
diff --git a/code/game/objects/items/weapons/implants/implantpad.dm b/code/game/objects/items/weapons/implants/implantpad.dm
index 476ed726cd9..b589c68eea7 100644
--- a/code/game/objects/items/weapons/implants/implantpad.dm
+++ b/code/game/objects/items/weapons/implants/implantpad.dm
@@ -38,7 +38,7 @@
return
- attackby(obj/item/weapon/implantcase/C as obj, mob/user as mob)
+ attackby(obj/item/weapon/implantcase/C as obj, mob/user as mob, params)
..()
if(istype(C, /obj/item/weapon/implantcase))
if(!( src.case ))
diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm
index bce6b1d02d8..2ed20f0e535 100644
--- a/code/game/objects/items/weapons/kitchen.dm
+++ b/code/game/objects/items/weapons/kitchen.dm
@@ -42,7 +42,7 @@
if(user.a_intent != "help")
if(user.zone_sel.selecting == "head" || user.zone_sel.selecting == "eyes")
- if((M_CLUMSY in user.mutations) && prob(50))
+ if((CLUMSY in user.mutations) && prob(50))
M = user
return eyestab(M,user)
else
@@ -103,7 +103,7 @@
return (BRUTELOSS)
/obj/item/weapon/kitchen/utensil/knife/attack(target as mob, mob/living/user as mob)
- if ((M_CLUMSY in user.mutations) && prob(50))
+ if ((CLUMSY in user.mutations) && prob(50))
user << "\red You accidentally cut yourself with the [src]."
user.take_organ_damage(20)
return
@@ -118,7 +118,7 @@
throwforce = 10.0
/obj/item/weapon/kitchen/utensil/knife/attack(target as mob, mob/living/user as mob)
- if ((M_CLUMSY in user.mutations) && prob(50))
+ if ((CLUMSY in user.mutations) && prob(50))
user << "\red You somehow managed to cut yourself with the [src]."
user.take_organ_damage(20)
return
@@ -216,7 +216,7 @@
attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked") //I think the rollingpin attackby will end up ignoring this anyway.
/obj/item/weapon/kitchen/rollingpin/attack(mob/living/M as mob, mob/living/user as mob)
- if ((M_CLUMSY in user.mutations) && prob(50))
+ if ((CLUMSY in user.mutations) && prob(50))
user << "\red The [src] slips out of your hand and hits your head."
user.take_organ_damage(10)
user.Paralyse(2)
@@ -303,7 +303,7 @@
sleep(rand(2,4))
- if((M_CLUMSY in user.mutations) && prob(50)) //What if he's a clown?
+ if((CLUMSY in user.mutations) && prob(50)) //What if he's a clown?
M << "\red You accidentally slam yourself with the [src]!"
M.Weaken(1)
user.take_organ_damage(2)
@@ -411,7 +411,7 @@
/obj/item/weapon/tray/var/cooldown = 0 //shield bash cooldown. based on world.time
-/obj/item/weapon/tray/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/weapon/tray/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/kitchen/rollingpin))
if(cooldown < world.time - 25)
user.visible_message("[user] bashes [src] with [W]!")
diff --git a/code/game/objects/items/weapons/mop.dm b/code/game/objects/items/weapons/mop.dm
index 7b7a7c7a829..5581eaf3bd5 100644
--- a/code/game/objects/items/weapons/mop.dm
+++ b/code/game/objects/items/weapons/mop.dm
@@ -49,7 +49,7 @@
user << "You have finished mopping!"
-/obj/effect/attackby(obj/item/I, mob/user)
+/obj/effect/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/mop) || istype(I, /obj/item/weapon/soap))
return
..()
diff --git a/code/game/objects/items/weapons/shards.dm b/code/game/objects/items/weapons/shards.dm
index cafcb4c3a44..c406a1bea1d 100644
--- a/code/game/objects/items/weapons/shards.dm
+++ b/code/game/objects/items/weapons/shards.dm
@@ -50,7 +50,7 @@
else
return
-/obj/item/weapon/shard/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/weapon/shard/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
..()
if ( istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W
@@ -61,7 +61,7 @@
continue
if(G.amount>=G.max_amount)
continue
- G.attackby(NG, user)
+ G.attackby(NG, user, params)
usr << "You add the newly-formed glass to the stack. It now contains [NG.amount] sheets."
//SN src = null
del(src)
diff --git a/code/game/objects/items/weapons/shields.dm b/code/game/objects/items/weapons/shields.dm
index eb4f6236c76..931d6e09f84 100644
--- a/code/game/objects/items/weapons/shields.dm
+++ b/code/game/objects/items/weapons/shields.dm
@@ -22,7 +22,7 @@
IsShield()
return 1
- attackby(obj/item/weapon/W as obj, mob/user as mob)
+ attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/melee/baton))
if(cooldown < world.time - 25)
user.visible_message("[user] bashes [src] with [W]!")
diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm
index c47c4dd83d5..45bb865df0f 100644
--- a/code/game/objects/items/weapons/storage/backpack.dm
+++ b/code/game/objects/items/weapons/storage/backpack.dm
@@ -13,7 +13,7 @@
max_w_class = 3
max_combined_w_class = 21
-/obj/item/weapon/storage/backpack/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/weapon/storage/backpack/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
playsound(src.loc, "rustle", 50, 1, -5)
..()
@@ -33,7 +33,7 @@
..()
return
- attackby(obj/item/weapon/W as obj, mob/user as mob)
+ attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(crit_fail)
user << "\red The Bluespace generator isn't working."
return
diff --git a/code/game/objects/items/weapons/storage/bible.dm b/code/game/objects/items/weapons/storage/bible.dm
index d4efe740192..20c336fa8a5 100644
--- a/code/game/objects/items/weapons/storage/bible.dm
+++ b/code/game/objects/items/weapons/storage/bible.dm
@@ -66,7 +66,7 @@
user.take_organ_damage(0,10)
return
- if ((M_CLUMSY in user.mutations) && prob(50))
+ if ((CLUMSY in user.mutations) && prob(50))
user << "\red The [src] slips out of your hand and hits your head."
user.take_organ_damage(10)
user.Paralyse(20)
@@ -115,6 +115,6 @@
A.reagents.del_reagent("water")
A.reagents.add_reagent("holywater",water2holy)
-/obj/item/weapon/storage/bible/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/weapon/storage/bible/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
playsound(src.loc, "rustle", 50, 1, -5)
..()
diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm
index 2e63b0a2cec..43957b3a695 100644
--- a/code/game/objects/items/weapons/storage/boxes.dm
+++ b/code/game/objects/items/weapons/storage/boxes.dm
@@ -562,7 +562,7 @@
for(var/i=1; i <= storage_slots; i++)
new /obj/item/weapon/match(src)
- attackby(obj/item/weapon/match/W as obj, mob/user as mob)
+ attackby(obj/item/weapon/match/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/match) && W.lit == 0)
W.lit = 1
W.icon_state = "match_lit"
diff --git a/code/game/objects/items/weapons/storage/briefcase.dm b/code/game/objects/items/weapons/storage/briefcase.dm
index 1a2faf6b1a7..ec403929c85 100644
--- a/code/game/objects/items/weapons/storage/briefcase.dm
+++ b/code/game/objects/items/weapons/storage/briefcase.dm
@@ -19,7 +19,7 @@
/obj/item/weapon/storage/briefcase/attack(mob/living/M as mob, mob/living/user as mob)
//..()
- if ((M_CLUMSY in user.mutations) && prob(50))
+ if ((CLUMSY in user.mutations) && prob(50))
user << "\red The [src] slips out of your hand and hits your head."
user.take_organ_damage(10)
user.Paralyse(2)
diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm
index 2ff671074ef..41f998e5d6f 100644
--- a/code/game/objects/items/weapons/storage/fancy.dm
+++ b/code/game/objects/items/weapons/storage/fancy.dm
@@ -129,7 +129,7 @@
for(var/obj/item/toy/crayon/crayon in contents)
overlays += image('icons/obj/crayons.dmi',crayon.colourName)
-/obj/item/weapon/storage/fancy/crayons/attackby(obj/item/W as obj, mob/user as mob)
+/obj/item/weapon/storage/fancy/crayons/attackby(obj/item/W as obj, mob/user as mob, params)
if(istype(W,/obj/item/toy/crayon))
switch(W:colourName)
if("mime")
@@ -319,7 +319,7 @@
overlays += image(icon, src, "ledb")
return
-/obj/item/weapon/storage/lockbox/vials/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/weapon/storage/lockbox/vials/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
..()
update_icon()
diff --git a/code/game/objects/items/weapons/storage/lockbox.dm b/code/game/objects/items/weapons/storage/lockbox.dm
index 7caa4e9b0dc..85de627f0b8 100644
--- a/code/game/objects/items/weapons/storage/lockbox.dm
+++ b/code/game/objects/items/weapons/storage/lockbox.dm
@@ -17,7 +17,7 @@
var/icon_broken = "lockbox+b"
- attackby(obj/item/weapon/W as obj, mob/user as mob)
+ attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if (istype(W, /obj/item/weapon/card/id))
if(src.broken)
user << "\red It appears to be broken."
diff --git a/code/game/objects/items/weapons/storage/secure.dm b/code/game/objects/items/weapons/storage/secure.dm
index 8620b4d2339..0c5b2edab05 100644
--- a/code/game/objects/items/weapons/storage/secure.dm
+++ b/code/game/objects/items/weapons/storage/secure.dm
@@ -32,7 +32,7 @@
..()
usr << text("The service panel is [src.open ? "open" : "closed"].")
- attackby(obj/item/weapon/W as obj, mob/user as mob)
+ attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(locked)
if ((istype(W, /obj/item/weapon/melee/energy/blade)) && (!src.emagged))
emag_act(user, W)
@@ -179,7 +179,7 @@
//I consider this worthless but it isn't my code so whatever. Remove or uncomment.
/*attack(mob/M as mob, mob/living/user as mob)
- if ((M_CLUMSY in user.mutations) && prob(50))
+ if ((CLUMSY in user.mutations) && prob(50))
user << "\red The [src] slips out of your hand and hits your head."
user.take_organ_damage(10)
user.Paralyse(2)
diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm
index 56ac3caff67..bbe4a083468 100644
--- a/code/game/objects/items/weapons/storage/storage.dm
+++ b/code/game/objects/items/weapons/storage/storage.dm
@@ -1,6 +1,6 @@
// To clarify:
// For use_to_pickup and allow_quick_gather functionality,
-// see item/attackby() (/game/objects/items.dm)
+// see item/attackby() (/game/objects/items.dm, params)
// Do not remove this functionality without good reason, cough reagent_containers cough.
// -Sayu
@@ -326,7 +326,7 @@
return 1
//This proc is called when you want to place an item into the storage item.
-/obj/item/weapon/storage/attackby(obj/item/W as obj, mob/user as mob)
+/obj/item/weapon/storage/attackby(obj/item/W as obj, mob/user as mob, params)
..()
if(isrobot(user))
diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm
index ae0509b00fa..cb991abd057 100644
--- a/code/game/objects/items/weapons/stunbaton.dm
+++ b/code/game/objects/items/weapons/stunbaton.dm
@@ -59,7 +59,7 @@
if(!bcell)
user <<"The baton does not have a power source installed."
-/obj/item/weapon/melee/baton/attackby(obj/item/weapon/W, mob/user)
+/obj/item/weapon/melee/baton/attackby(obj/item/weapon/W, mob/user, params)
if(istype(W, /obj/item/weapon/stock_parts/cell))
var/obj/item/weapon/stock_parts/cell/C = W
if(bcell)
@@ -101,7 +101,7 @@
add_fingerprint(user)
/obj/item/weapon/melee/baton/attack(mob/M, mob/living/user)
- if(status && (M_CLUMSY in user.mutations) && prob(50))
+ if(status && (CLUMSY in user.mutations) && prob(50))
user.visible_message("[user] accidentally hits themself with [src]!", \
"You accidentally hit yourself with [src]!")
user.Weaken(stunforce*3)
@@ -118,6 +118,7 @@
if(user.a_intent != "harm")
if(status)
+ user.do_attack_animation(L)
baton_stun(L, user)
else
L.visible_message("[L] has been prodded with [src] by [user]. Luckily it was off.", \
@@ -176,7 +177,7 @@
bcell = R.cell
return ..()
-/obj/item/weapon/melee/baton/robot/attackby(obj/item/weapon/W, mob/user)
+/obj/item/weapon/melee/baton/robot/attackby(obj/item/weapon/W, mob/user, params)
return
/obj/item/weapon/melee/baton/loaded/ntcane
diff --git a/code/game/objects/items/weapons/surgery_tools.dm b/code/game/objects/items/weapons/surgery_tools.dm
index e85df4485bf..2354dcb9832 100644
--- a/code/game/objects/items/weapons/surgery_tools.dm
+++ b/code/game/objects/items/weapons/surgery_tools.dm
@@ -401,9 +401,9 @@ LOOK FOR SURGERY.DM*/
if(!istype(M))
return ..()
- //if(M.mutations & M_HUSK) return ..()
+ //if(M.mutations & HUSK) return ..()
- if((M_CLUMSY in user.mutations) && prob(50))
+ if((CLUMSY in user.mutations) && prob(50))
M = user
return eyestab(M,user)
@@ -649,7 +649,7 @@ LOOK FOR SURGERY.DM*/
if(!istype(M))
return ..()
- if((M_CLUMSY in user.mutations) && prob(50))
+ if((CLUMSY in user.mutations) && prob(50))
M = user
return eyestab(M,user)
diff --git a/code/game/objects/items/weapons/swords_axes_etc.dm b/code/game/objects/items/weapons/swords_axes_etc.dm
index 9cf1cee7846..c0228d3c725 100644
--- a/code/game/objects/items/weapons/swords_axes_etc.dm
+++ b/code/game/objects/items/weapons/swords_axes_etc.dm
@@ -27,7 +27,7 @@
blade_color = pick("red","blue","green","purple")
/obj/item/weapon/melee/energy/sword/attack_self(mob/living/user as mob)
- if ((M_CLUMSY in user.mutations) && prob(50))
+ if ((CLUMSY in user.mutations) && prob(50))
user << "\red You accidentally cut yourself with [src]."
user.take_organ_damage(5,5)
active = !active
@@ -60,7 +60,7 @@
add_fingerprint(user)
return
-/obj/item/weapon/melee/energy/sword/attackby(obj/item/weapon/W, mob/living/user)
+/obj/item/weapon/melee/energy/sword/attackby(obj/item/weapon/W, mob/living/user, params)
..()
if(istype(W, /obj/item/weapon/melee/energy/sword))
if(W == src)
@@ -105,7 +105,7 @@
force = 10
/obj/item/weapon/melee/classic_baton/attack(mob/M as mob, mob/living/user as mob)
- if ((M_CLUMSY in user.mutations) && prob(50))
+ if ((CLUMSY in user.mutations) && prob(50))
user << "\red You club yourself over the head."
user.Weaken(3 * force)
if(ishuman(user))
@@ -124,7 +124,7 @@
if (user.a_intent == "harm")
if(!..()) return
playsound(get_turf(src), "swing_hit", 50, 1, -1)
- if (M.stuttering < 8 && (!(M_HULK in M.mutations)) /*&& (!istype(H:wear_suit, /obj/item/clothing/suit/judgerobe))*/)
+ if (M.stuttering < 8 && (!(HULK in M.mutations)) /*&& (!istype(H:wear_suit, /obj/item/clothing/suit/judgerobe))*/)
M.stuttering = 8
M.Stun(8)
M.Weaken(8)
@@ -201,7 +201,7 @@
/obj/item/weapon/melee/telebaton/attack(mob/target as mob, mob/living/user as mob)
if(on)
add_fingerprint(user)
- if((M_CLUMSY in user.mutations) && prob(50))
+ if((CLUMSY in user.mutations) && prob(50))
user << "You club yourself over the head."
user.Weaken(3 * force)
if(ishuman(user))
@@ -295,7 +295,7 @@
return 0
/obj/item/weapon/shield/energy/attack_self(mob/living/user as mob)
- if ((M_CLUMSY in user.mutations) && prob(50))
+ if ((CLUMSY in user.mutations) && prob(50))
user << "\red You beat yourself in the head with [src]."
user.take_organ_damage(5)
active = !active
diff --git a/code/game/objects/items/weapons/table_rack_parts.dm b/code/game/objects/items/weapons/table_rack_parts.dm
index 042efc84203..2c2b44ae387 100644
--- a/code/game/objects/items/weapons/table_rack_parts.dm
+++ b/code/game/objects/items/weapons/table_rack_parts.dm
@@ -11,7 +11,7 @@
/*
* Table Parts
*/
-/obj/item/weapon/table_parts/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/weapon/table_parts/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
..()
if (istype(W, /obj/item/weapon/wrench))
new /obj/item/stack/sheet/metal( user.loc )
@@ -36,7 +36,7 @@
/*
* Reinforced Table Parts
*/
-/obj/item/weapon/table_parts/reinforced/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/weapon/table_parts/reinforced/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if (istype(W, /obj/item/weapon/wrench))
new /obj/item/stack/sheet/metal( user.loc )
new /obj/item/stack/rods( user.loc )
@@ -51,7 +51,7 @@
/*
* Wooden Table Parts
*/
-/obj/item/weapon/table_parts/wood/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/weapon/table_parts/wood/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if (istype(W, /obj/item/weapon/wrench))
new /obj/item/stack/sheet/wood( user.loc )
del(src)
@@ -65,7 +65,7 @@
/*
* Rack Parts
*/
-/obj/item/weapon/rack_parts/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/weapon/rack_parts/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
..()
if (istype(W, /obj/item/weapon/wrench))
new /obj/item/stack/sheet/metal( user.loc )
diff --git a/code/game/objects/items/weapons/tanks/tank_types.dm b/code/game/objects/items/weapons/tanks/tank_types.dm
index 21881c27986..7c39f530ace 100644
--- a/code/game/objects/items/weapons/tanks/tank_types.dm
+++ b/code/game/objects/items/weapons/tanks/tank_types.dm
@@ -110,7 +110,7 @@
src.air_contents.update_values()
return
-/obj/item/weapon/tank/plasma/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/weapon/tank/plasma/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
..()
if (istype(W, /obj/item/weapon/flamethrower))
diff --git a/code/game/objects/items/weapons/tanks/tanks.dm b/code/game/objects/items/weapons/tanks/tanks.dm
index f12b27f5de2..9d1907df0e8 100644
--- a/code/game/objects/items/weapons/tanks/tanks.dm
+++ b/code/game/objects/items/weapons/tanks/tanks.dm
@@ -78,7 +78,7 @@
del(src)
-/obj/item/weapon/tank/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/weapon/tank/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
..()
var/obj/icon = src
diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm
index 8f85c3f0bff..e925b39de25 100644
--- a/code/game/objects/items/weapons/tools.dm
+++ b/code/game/objects/items/weapons/tools.dm
@@ -87,7 +87,7 @@
if(!istype(M)) return ..()
if(user.zone_sel.selecting != "eyes" && user.zone_sel.selecting != "head")
return ..()
- if((M_CLUMSY in user.mutations) && prob(50))
+ if((CLUMSY in user.mutations) && prob(50))
M = user
return eyestab(M,user)
@@ -172,7 +172,7 @@
return
-/obj/item/weapon/weldingtool/attackby(obj/item/W as obj, mob/user as mob)
+/obj/item/weapon/weldingtool/attackby(obj/item/W as obj, mob/user as mob, params)
if(istype(W,/obj/item/weapon/screwdriver))
if(welding)
user << "\red Stop welding first!"
diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm
index 417cfdbbca7..5f5d913823b 100644
--- a/code/game/objects/items/weapons/twohanded.dm
+++ b/code/game/objects/items/weapons/twohanded.dm
@@ -227,7 +227,7 @@ obj/item/weapon/twohanded/
/obj/item/weapon/twohanded/dualsaber/attack(target as mob, mob/living/user as mob)
..()
- if((M_CLUMSY in user.mutations) && (wielded) &&prob(40))
+ if((CLUMSY in user.mutations) && (wielded) &&prob(40))
user << "\red You twirl around a bit before losing your balance and impaling yourself on the [src]."
user.take_organ_damage(20,25)
return
@@ -267,7 +267,7 @@ obj/item/weapon/twohanded/
..()
hitsound = 'sound/weapons/blade1.ogg'
-/obj/item/weapon/twohanded/dualsaber/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/weapon/twohanded/dualsaber/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
..()
if(istype(W, /obj/item/device/multitool))
if(hacked == 0)
diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm
index 998d24f8abc..d63f07d4e06 100644
--- a/code/game/objects/items/weapons/weaponry.dm
+++ b/code/game/objects/items/weapons/weaponry.dm
@@ -47,7 +47,7 @@
user << "\red You don't have the dexterity to do this!"
return
- if ((M_CLUMSY in user.mutations) && prob(50))
+ if ((CLUMSY in user.mutations) && prob(50))
user << "\red The rod slips out of your hand and hits your head."
user.take_organ_damage(10)
user.Paralyse(20)
@@ -165,7 +165,7 @@ obj/item/weapon/wirerod
m_amt = 1875
attack_verb = list("hit", "bludgeoned", "whacked", "bonked")
-obj/item/weapon/wirerod/attackby(var/obj/item/I, mob/user as mob)
+obj/item/weapon/wirerod/attackby(var/obj/item/I, mob/user as mob, params)
..()
if(istype(I, /obj/item/weapon/shard))
var/obj/item/weapon/twohanded/spear/S = new /obj/item/weapon/twohanded/spear
diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm
index 19cfca4eaf4..3b37a08299c 100644
--- a/code/game/objects/structures/bedsheet_bin.dm
+++ b/code/game/objects/structures/bedsheet_bin.dm
@@ -178,7 +178,7 @@ LINEN BINS
else icon_state = "linenbin-full"
-/obj/structure/bedsheetbin/attackby(obj/item/I as obj, mob/user as mob)
+/obj/structure/bedsheetbin/attackby(obj/item/I as obj, mob/user as mob, params)
if(istype(I, /obj/item/weapon/bedsheet))
user.drop_item()
I.loc = src
diff --git a/code/game/objects/structures/coathanger.dm b/code/game/objects/structures/coathanger.dm
index b79588b78f3..13136868954 100644
--- a/code/game/objects/structures/coathanger.dm
+++ b/code/game/objects/structures/coathanger.dm
@@ -13,7 +13,7 @@
coat = null
update_icon()
-/obj/structure/coatrack/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/structure/coatrack/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
var/can_hang = 0
for (var/T in allowed)
if(istype(W,T))
diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm
index 1054dbfcb1e..1375ed71d61 100644
--- a/code/game/objects/structures/crates_lockers/closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets.dm
@@ -162,6 +162,7 @@
/obj/structure/closet/attack_animal(mob/living/simple_animal/user as mob)
if(user.environment_smash)
+ user.do_attack_animation(src)
visible_message("\red [user] destroys the [src]. ")
for(var/atom/movable/A as mob|obj in src)
A.loc = src.loc
@@ -181,7 +182,7 @@
src.dump_contents()
del(src)
-/obj/structure/closet/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/structure/closet/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/rcs) && !src.opened)
var/obj/item/weapon/rcs/E = W
if(E.rcharges != 0)
diff --git a/code/game/objects/structures/crates_lockers/closets/fireaxe.dm b/code/game/objects/structures/crates_lockers/closets/fireaxe.dm
index 87eb2cb8114..14807277647 100644
--- a/code/game/objects/structures/crates_lockers/closets/fireaxe.dm
+++ b/code/game/objects/structures/crates_lockers/closets/fireaxe.dm
@@ -14,14 +14,14 @@
var/locked = 1
var/smashed = 0
- attackby(var/obj/item/O as obj, var/mob/user as mob) //Marker -Agouri
+ attackby(var/obj/item/O as obj, var/mob/living/user as mob) //Marker -Agouri
//..() //That's very useful, Erro
var/hasaxe = 0 //gonna come in handy later~
if(fireaxe)
hasaxe = 1
- if (isrobot(usr) || src.locked)
+ if (isrobot(user) || src.locked)
if(istype(O, /obj/item/device/multitool))
user << "\red Resetting circuitry..."
playsound(user, 'sound/machines/lockreset.ogg', 50, 1)
@@ -31,6 +31,7 @@
update_icon()
return
else if(istype(O, /obj/item/weapon))
+ user.changeNext_move(CLICK_CD_MELEE)
var/obj/item/weapon/W = O
if(src.smashed || src.localopened)
if(localopened)
@@ -39,6 +40,7 @@
spawn(10) update_icon()
return
else
+ user.do_attack_animation(src)
playsound(user, 'sound/effects/Glasshit.ogg', 100, 1) //We don't want this playing every time
if(W.force < 15)
user << "\blue The cabinet's protective glass glances off the hit."
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm
index 01505311c9b..9d14c48765c 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm
@@ -58,7 +58,7 @@
new /obj/item/device/radio/headset( src )
return
-/obj/structure/closet/secure_closet/personal/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/structure/closet/secure_closet/personal/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if (src.opened)
if (istype(W, /obj/item/weapon/grab))
src.MouseDrop_T(W:affecting, user) //act like they were dragged onto the closet
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
index 3f60559f0fe..7d3fde7744c 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
@@ -65,7 +65,7 @@
else
user << "Access Denied"
-/obj/structure/closet/secure_closet/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/structure/closet/secure_closet/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(src.opened)
if(istype(W, /obj/item/weapon/grab))
if(src.large)
diff --git a/code/game/objects/structures/crates_lockers/closets/statue.dm b/code/game/objects/structures/crates_lockers/closets/statue.dm
index b8177c9b4a1..85696e2973e 100644
--- a/code/game/objects/structures/crates_lockers/closets/statue.dm
+++ b/code/game/objects/structures/crates_lockers/closets/statue.dm
@@ -122,7 +122,7 @@
M.meteorhit(O)
shatter(M)
-/obj/structure/closet/statue/attackby(obj/item/I as obj, mob/user as mob)
+/obj/structure/closet/statue/attackby(obj/item/I as obj, mob/user as mob, params)
health -= I.force
visible_message("\red [user] strikes [src] with [I].")
if(health <= 0)
diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm
index 9df3987af5f..9bf8bfb5e5a 100644
--- a/code/game/objects/structures/crates_lockers/crates.dm
+++ b/code/game/objects/structures/crates_lockers/crates.dm
@@ -67,7 +67,7 @@
src.opened = 0
return 1
-/obj/structure/closet/crate/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/structure/closet/crate/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/rcs) && !src.opened)
var/obj/item/weapon/rcs/E = W
if(E.rcharges != 0)
@@ -246,7 +246,7 @@
else
src.toggle(user)
-/obj/structure/closet/crate/secure/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/structure/closet/crate/secure/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(is_type_in_list(W, list(/obj/item/stack/packageWrap, /obj/item/stack/cable_coil, /obj/item/device/radio/electropack, /obj/item/weapon/wirecutters)))
return ..()
if(locked && (istype(W, /obj/item/weapon/card/emag)||istype(W, /obj/item/weapon/melee/energy/blade)))
diff --git a/code/game/objects/structures/crates_lockers/largecrate.dm b/code/game/objects/structures/crates_lockers/largecrate.dm
index 62d77768e2a..3668a530ed6 100644
--- a/code/game/objects/structures/crates_lockers/largecrate.dm
+++ b/code/game/objects/structures/crates_lockers/largecrate.dm
@@ -9,7 +9,7 @@
user << "You need a crowbar to pry this open!"
return
-/obj/structure/largecrate/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/structure/largecrate/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/crowbar))
new /obj/item/stack/sheet/wood(src)
var/turf/T = get_turf(src)
@@ -37,7 +37,7 @@
name = "cow crate"
icon_state = "lisacrate"
-/obj/structure/largecrate/cow/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/structure/largecrate/cow/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/crowbar))
new /mob/living/simple_animal/cow(loc)
..()
@@ -46,7 +46,7 @@
name = "goat crate"
icon_state = "lisacrate"
-/obj/structure/largecrate/goat/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/structure/largecrate/goat/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/crowbar))
new /mob/living/simple_animal/hostile/retaliate/goat(loc)
..()
@@ -55,7 +55,7 @@
name = "chicken crate"
icon_state = "lisacrate"
-/obj/structure/largecrate/chick/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/structure/largecrate/chick/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/crowbar))
var/num = rand(4, 6)
for(var/i = 0, i < num, i++)
@@ -66,7 +66,7 @@
name = "Mysterious Crate"
icon_state = "lisacrate"
-/obj/structure/largecrate/ninja/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/structure/largecrate/ninja/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/crowbar))
new /obj/item/clothing/gloves/space_ninja(loc)
new /obj/item/clothing/mask/gas/voice/space_ninja(loc)
@@ -80,7 +80,7 @@
name = "cat crate"
icon_state = "lisacrate"
-/obj/structure/largecrate/cat/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/structure/largecrate/cat/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/crowbar))
new /mob/living/simple_animal/cat(loc)
..()
\ No newline at end of file
diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm
index 577e28c02f9..f153035fede 100644
--- a/code/game/objects/structures/displaycase.dm
+++ b/code/game/objects/structures/displaycase.dm
@@ -5,7 +5,7 @@
var/obj/item/weapon/airlock_electronics/circuit = null
var/state=0
-/obj/structure/displaycase_frame/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/structure/displaycase_frame/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
var/pstate=state
var/turf/T=get_turf(src)
switch(state)
@@ -162,7 +162,7 @@
return
-/obj/structure/displaycase/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/structure/displaycase/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/card))
var/obj/item/weapon/card/id/I=W
if(!check_access(I))
diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm
index 355ec779efe..1c178848899 100644
--- a/code/game/objects/structures/door_assembly.dm
+++ b/code/game/objects/structures/door_assembly.dm
@@ -135,7 +135,7 @@ obj/structure/door_assembly
-/obj/structure/door_assembly/attackby(obj/item/W as obj, mob/user as mob)
+/obj/structure/door_assembly/attackby(obj/item/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/pen))
var/t = copytext(stripped_input(user, "Enter the name for the door.", src.name, src.created_name),1,MAX_NAME_LEN)
if(!t) return
diff --git a/code/game/objects/structures/electricchair.dm b/code/game/objects/structures/electricchair.dm
index 828098fd07e..f9e49fcc40b 100644
--- a/code/game/objects/structures/electricchair.dm
+++ b/code/game/objects/structures/electricchair.dm
@@ -12,7 +12,7 @@
overlays += image('icons/obj/objects.dmi', src, "echair_over", MOB_LAYER + 1, dir)
return
-/obj/structure/stool/bed/chair/e_chair/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/structure/stool/bed/chair/e_chair/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/wrench))
var/obj/structure/stool/bed/chair/C = new /obj/structure/stool/bed/chair(loc)
playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
diff --git a/code/game/objects/structures/engicart.dm b/code/game/objects/structures/engicart.dm
index 1257195ddf7..85fee295e38 100644
--- a/code/game/objects/structures/engicart.dm
+++ b/code/game/objects/structures/engicart.dm
@@ -20,7 +20,7 @@
updateUsrDialog()
user << "You put [I] into [src]."
return
-/obj/structure/engineeringcart/attackby(obj/item/I, mob/user)
+/obj/structure/engineeringcart/attackby(obj/item/I, mob/user, params)
var/fail_msg = "There is already one of those in [src]."
if(!I.is_robot_module())
if(istype(I, /obj/item/stack/sheet/glass))
diff --git a/code/game/objects/structures/extinguisher.dm b/code/game/objects/structures/extinguisher.dm
index cfcc3c1176d..80a6e4b34a8 100644
--- a/code/game/objects/structures/extinguisher.dm
+++ b/code/game/objects/structures/extinguisher.dm
@@ -9,7 +9,7 @@
var/opened = 0
-/obj/structure/extinguisher_cabinet/attackby(obj/item/O, mob/user)
+/obj/structure/extinguisher_cabinet/attackby(obj/item/O, mob/user, params)
if(isrobot(user) || isalien(user))
return
if(istype(O, /obj/item/weapon/extinguisher))
diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm
index 2c586f79f5d..e00b7f1c366 100644
--- a/code/game/objects/structures/false_walls.dm
+++ b/code/game/objects/structures/false_walls.dm
@@ -165,7 +165,7 @@
qdel(src)
return T
-/obj/structure/falsewall/attackby(obj/item/weapon/W, mob/user)
+/obj/structure/falsewall/attackby(obj/item/weapon/W, mob/user, params)
if(opening)
user << "You must wait until the door has stopped moving."
return
@@ -271,7 +271,7 @@
var/active = null
var/last_event = 0
-/obj/structure/falsewall/uranium/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/structure/falsewall/uranium/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
radiate()
..()
diff --git a/code/game/objects/structures/foodcart.dm b/code/game/objects/structures/foodcart.dm
index 37c030aba81..c1a3a388d48 100644
--- a/code/game/objects/structures/foodcart.dm
+++ b/code/game/objects/structures/foodcart.dm
@@ -29,7 +29,7 @@
user << "You put [I] into [src]."
return
-/obj/structure/foodcart/attackby(obj/item/I, mob/user)
+/obj/structure/foodcart/attackby(obj/item/I, mob/user, params)
var/fail_msg = "There are no open spaces for this in [src]."
if(!I.is_robot_module())
if(istype(I, /obj/item/weapon/reagent_containers/food/snacks))
diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm
index 7bf35f6c6e0..f5a2e615b6a 100644
--- a/code/game/objects/structures/girders.dm
+++ b/code/game/objects/structures/girders.dm
@@ -6,7 +6,7 @@
var/state = 0
var/health = 200
-/obj/structure/girder/attackby(obj/item/W as obj, mob/user as mob)
+/obj/structure/girder/attackby(obj/item/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/wrench) && state == 0)
if(anchored && !istype(src,/obj/structure/girder/displaced))
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
@@ -231,7 +231,7 @@
layer = 2
var/health = 250
-/obj/structure/cultgirder/attackby(obj/item/W as obj, mob/user as mob)
+/obj/structure/cultgirder/attackby(obj/item/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/wrench))
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
user << "\blue Now disassembling the girder"
diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm
index 2475ee9eeed..c5114cf2ef9 100644
--- a/code/game/objects/structures/grille.dm
+++ b/code/game/objects/structures/grille.dm
@@ -55,10 +55,12 @@
if(ismob(user)) shock(user, 70)
-/obj/structure/grille/attack_paw(mob/user as mob)
+/obj/structure/grille/attack_paw(mob/living/user as mob)
attack_hand(user)
-/obj/structure/grille/attack_hand(mob/user as mob)
+/obj/structure/grille/attack_hand(mob/living/user as mob)
+ user.changeNext_move(CLICK_CD_MELEE)
+ user.do_attack_animation(src)
playsound(loc, 'sound/effects/grillehit.ogg', 80, 1)
user.visible_message("[user] kicks [src].", \
"You kick [src].", \
@@ -66,15 +68,16 @@
if(shock(user, 70))
return
- if(M_HULK in user.mutations)
+ if(HULK in user.mutations)
health -= 5
else
health -= 1
healthcheck()
-/obj/structure/grille/attack_alien(mob/user as mob)
+/obj/structure/grille/attack_alien(mob/living/user as mob)
if(istype(user, /mob/living/carbon/alien/larva)) return
-
+ user.changeNext_move(CLICK_CD_MELEE)
+ user.do_attack_animation(src)
playsound(loc, 'sound/effects/grillehit.ogg', 80, 1)
user.visible_message("[user] mangles [src].", \
"You mangle [src].", \
@@ -85,7 +88,9 @@
healthcheck()
return
-/obj/structure/grille/attack_slime(mob/user as mob)
+/obj/structure/grille/attack_slime(mob/living/user as mob)
+ user.changeNext_move(CLICK_CD_MELEE)
+ user.do_attack_animation(src)
var/mob/living/carbon/slime/S = user
if (!S.is_adult)
return
@@ -101,7 +106,8 @@
/obj/structure/grille/attack_animal(var/mob/living/simple_animal/M as mob)
if(M.melee_damage_upper == 0) return
-
+ M.changeNext_move(CLICK_CD_MELEE)
+ M.do_attack_animation(src)
playsound(loc, 'sound/effects/grillehit.ogg', 80, 1)
M.visible_message("[M] smashes against [src].", \
"You smash against [src].", \
@@ -136,7 +142,8 @@
healthcheck()
return
-/obj/structure/grille/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/structure/grille/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
+ user.changeNext_move(CLICK_CD_MELEE)
if(iswirecutter(W))
if(!shock(user, 100))
playsound(loc, 'sound/items/Wirecutter.ogg', 100, 1)
diff --git a/code/game/objects/structures/inflatable.dm b/code/game/objects/structures/inflatable.dm
index 640a7f6951c..3cb32653054 100644
--- a/code/game/objects/structures/inflatable.dm
+++ b/code/game/objects/structures/inflatable.dm
@@ -101,7 +101,7 @@
attack_generic(user, rand(10, 15))
- attackby(obj/item/weapon/W as obj, mob/user as mob)
+ attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(!istype(W)) return
if (can_puncture(W))
diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm
index e6c7105796c..cc7e50bf888 100644
--- a/code/game/objects/structures/janicart.dm
+++ b/code/game/objects/structures/janicart.dm
@@ -38,7 +38,7 @@
if((INFINITY * -1) to 0)
usr << "It appears completely unsalvageable"
-/obj/structure/stool/bed/chair/cart/attackby(obj/item/W, mob/user)
+/obj/structure/stool/bed/chair/cart/attackby(obj/item/W, mob/user, params)
if (istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W
if (WT.remove_fuel(0))
@@ -287,7 +287,7 @@
if(mybag)
usr << "\A [mybag] is hanging on the [name]."
-/obj/structure/stool/bed/chair/cart/janicart/attackby(obj/item/W, mob/user)
+/obj/structure/stool/bed/chair/cart/janicart/attackby(obj/item/W, mob/user, params)
..()
if(istype(W, /obj/item/weapon/mop))
if(reagents.total_volume >= 2)
@@ -442,7 +442,7 @@
return
-/obj/structure/janitorialcart/attackby(obj/item/I, mob/user)
+/obj/structure/janitorialcart/attackby(obj/item/I, mob/user, params)
var/fail_msg = "There is already one of those in [src]."
if(!I.is_robot_module())
@@ -504,7 +504,7 @@
"You hear ratchet.")
anchored = 0
else if(mybag)
- mybag.attackby(I, user)
+ mybag.attackby(I, user, params)
else
usr << "You cannot interface your modules [src]!"
diff --git a/code/game/objects/structures/kitchen_spike.dm b/code/game/objects/structures/kitchen_spike.dm
index f0060dfe935..eb3f0a3c371 100644
--- a/code/game/objects/structures/kitchen_spike.dm
+++ b/code/game/objects/structures/kitchen_spike.dm
@@ -15,7 +15,7 @@
attack_paw(mob/user as mob)
return src.attack_hand(usr)
- attackby(obj/item/weapon/grab/G as obj, mob/user as mob)
+ attackby(obj/item/weapon/grab/G as obj, mob/user as mob, params)
if(!istype(G, /obj/item/weapon/grab))
return
if(istype(G.affecting, /mob/living/carbon/monkey))
diff --git a/code/game/objects/structures/ladders.dm b/code/game/objects/structures/ladders.dm
index a10448cfcc4..dfcb2f58270 100644
--- a/code/game/objects/structures/ladders.dm
+++ b/code/game/objects/structures/ladders.dm
@@ -69,5 +69,5 @@
/obj/structure/ladder/attack_paw(mob/user as mob)
return attack_hand(user)
-/obj/structure/ladder/attackby(obj/item/weapon/W, mob/user as mob)
+/obj/structure/ladder/attackby(obj/item/weapon/W, mob/user as mob, params)
return attack_hand(user)
\ No newline at end of file
diff --git a/code/game/objects/structures/lamarr_cage.dm b/code/game/objects/structures/lamarr_cage.dm
index bd870f68341..5b6acef00ec 100644
--- a/code/game/objects/structures/lamarr_cage.dm
+++ b/code/game/objects/structures/lamarr_cage.dm
@@ -66,7 +66,7 @@
return
-/obj/structure/lamarr/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/structure/lamarr/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
src.health -= W.force
src.healthcheck()
..()
diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm
index 4faf0d28596..ef8d3dd15e4 100644
--- a/code/game/objects/structures/lattice.dm
+++ b/code/game/objects/structures/lattice.dm
@@ -49,7 +49,7 @@
else
return
-/obj/structure/lattice/attackby(obj/item/C as obj, mob/user as mob)
+/obj/structure/lattice/attackby(obj/item/C as obj, mob/user as mob, params)
if (istype(C, /obj/item/stack/tile/plasteel) || istype(C, /obj/item/stack/rods))
var/turf/T = get_turf(src)
diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm
index 06bd5d139a3..a022c1c722b 100644
--- a/code/game/objects/structures/mineral_doors.dm
+++ b/code/game/objects/structures/mineral_doors.dm
@@ -102,7 +102,7 @@
else
icon_state = mineralType
- attackby(obj/item/weapon/W as obj, mob/user as mob)
+ attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W,/obj/item/weapon/pickaxe))
var/obj/item/weapon/pickaxe/digTool = W
user << "You start digging the [name]."
@@ -187,7 +187,7 @@
/obj/structure/mineral_door/transparent/plasma
mineralType = "plasma"
- attackby(obj/item/weapon/W as obj, mob/user as mob)
+ attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W,/obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W
if(WT.remove_fuel(0, user))
diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm
index 59771219737..e32c879b304 100644
--- a/code/game/objects/structures/mirror.dm
+++ b/code/game/objects/structures/mirror.dm
@@ -71,7 +71,8 @@
..()
-/obj/structure/mirror/attackby(obj/item/I as obj, mob/user as mob)
+/obj/structure/mirror/attackby(obj/item/I as obj, mob/living/user as mob, params)
+ user.do_attack_animation(src)
if(shattered)
playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1)
return
@@ -84,8 +85,9 @@
playsound(src.loc, 'sound/effects/Glasshit.ogg', 70, 1)
-/obj/structure/mirror/attack_alien(mob/user as mob)
+/obj/structure/mirror/attack_alien(mob/living/user as mob)
if(islarva(user)) return
+ user.do_attack_animation(src)
if(shattered)
playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1)
return
@@ -93,10 +95,11 @@
shatter()
-/obj/structure/mirror/attack_animal(mob/user as mob)
+/obj/structure/mirror/attack_animal(mob/living/user as mob)
if(!isanimal(user)) return
var/mob/living/simple_animal/M = user
if(M.melee_damage_upper <= 0) return
+ M.do_attack_animation(src)
if(shattered)
playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1)
return
@@ -104,10 +107,11 @@
shatter()
-/obj/structure/mirror/attack_slime(mob/user as mob)
+/obj/structure/mirror/attack_slime(mob/living/user as mob)
var/mob/living/carbon/slime/S = user
if (!S.is_adult)
return
+ user.do_attack_animation(src)
if(shattered)
playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1)
return
diff --git a/code/game/objects/structures/mop_bucket.dm b/code/game/objects/structures/mop_bucket.dm
index d7304c9cc57..9c25217d603 100644
--- a/code/game/objects/structures/mop_bucket.dm
+++ b/code/game/objects/structures/mop_bucket.dm
@@ -19,7 +19,7 @@
usr << text("\icon[] [] contains [] units of water left!", src, src.name, src.reagents.total_volume)
..()
-/obj/structure/mopbucket/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/structure/mopbucket/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if (istype(W, /obj/item/weapon/mop))
if (src.reagents.total_volume >= 2)
src.reagents.trans_to(W, 2)
diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm
index 5708ed9c604..c591c75b0e3 100644
--- a/code/game/objects/structures/morgue.dm
+++ b/code/game/objects/structures/morgue.dm
@@ -104,7 +104,7 @@
update()
return
-/obj/structure/morgue/attackby(P as obj, mob/user as mob)
+/obj/structure/morgue/attackby(P as obj, mob/user as mob, params)
if (istype(P, /obj/item/weapon/pen))
var/t = input(user, "What would you like the label to be?", text("[]", src.name), null) as text
if (user.get_active_hand() != P)
@@ -278,7 +278,7 @@
src.add_fingerprint(user)
update()
-/obj/structure/crematorium/attackby(P as obj, mob/user as mob)
+/obj/structure/crematorium/attackby(P as obj, mob/user as mob, params)
if (istype(P, /obj/item/weapon/pen))
var/t = input(user, "What would you like the label to be?", text("[]", src.name), null) as text
if (user.get_active_hand() != P)
diff --git a/code/game/objects/structures/musician.dm b/code/game/objects/structures/musician.dm
index 733ff964466..ea3b35be1ae 100644
--- a/code/game/objects/structures/musician.dm
+++ b/code/game/objects/structures/musician.dm
@@ -332,7 +332,7 @@
user.set_machine(src)
song.interact(user)
-/obj/structure/piano/attackby(obj/item/O as obj, mob/user as mob)
+/obj/structure/piano/attackby(obj/item/O as obj, mob/user as mob, params)
if (istype(O, /obj/item/weapon/wrench))
if (!anchored && !isinspace())
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
diff --git a/code/game/objects/structures/noticeboard.dm b/code/game/objects/structures/noticeboard.dm
index a5ad84c20eb..d5997adfda9 100644
--- a/code/game/objects/structures/noticeboard.dm
+++ b/code/game/objects/structures/noticeboard.dm
@@ -16,7 +16,7 @@
icon_state = "nboard0[notices]"
//attaching papers!!
-/obj/structure/noticeboard/attackby(var/obj/item/weapon/O as obj, var/mob/user as mob)
+/obj/structure/noticeboard/attackby(var/obj/item/weapon/O as obj, var/mob/user as mob, params)
if(istype(O, /obj/item/weapon/paper))
if(notices < 5)
O.add_fingerprint(user)
diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm
index 7a7d16c2eb0..d665589182e 100644
--- a/code/game/objects/structures/safe.dm
+++ b/code/game/objects/structures/safe.dm
@@ -142,7 +142,7 @@ FLOOR SAFES
updateUsrDialog()
-/obj/structure/safe/attackby(obj/item/I as obj, mob/user as mob)
+/obj/structure/safe/attackby(obj/item/I as obj, mob/user as mob, params)
if(open)
if(I.w_class + space <= maxspace)
space += I.w_class
diff --git a/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm b/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm
index 5c387450fd5..914f8847ec0 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm
@@ -70,7 +70,7 @@
overlays.Cut()
..()
-/obj/structure/stool/bed/nest/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/structure/stool/bed/nest/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
var/aforce = W.force
health = max(0, health - aforce)
playsound(loc, 'sound/effects/attackblob.ogg', 100, 1)
diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
index 182d1c64050..2a493bdff37 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
@@ -121,7 +121,7 @@
icon_state = "down"
anchored = 0
-/obj/structure/stool/bed/roller/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/structure/stool/bed/roller/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W,/obj/item/roller_holder))
if(buckled_mob)
manual_unbuckle()
@@ -145,7 +145,7 @@
R.add_fingerprint(user)
del(src)
-/obj/item/roller/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/roller/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W,/obj/item/roller_holder))
var/obj/item/roller_holder/RH = W
diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm
index f892ce74239..6a5598a37ef 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm
@@ -16,7 +16,7 @@
handle_rotation()
return
-/obj/structure/stool/bed/chair/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/structure/stool/bed/chair/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
..()
if(istype(W, /obj/item/assembly/shock_kit))
var/obj/item/assembly/shock_kit/SK = W
@@ -86,7 +86,7 @@
name = "wooden chair"
desc = "Old is never too old to not be in fashion."
-/obj/structure/stool/bed/chair/wood/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/structure/stool/bed/chair/wood/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/wrench))
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
new /obj/item/stack/sheet/wood(src.loc)
diff --git a/code/game/objects/structures/stool_bed_chair_nest/stools.dm b/code/game/objects/structures/stool_bed_chair_nest/stools.dm
index bad562d595a..050dbb56629 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/stools.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/stools.dm
@@ -26,7 +26,7 @@
new /obj/item/stack/sheet/metal(src.loc)
del(src)
-/obj/structure/stool/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/structure/stool/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/wrench))
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
new /obj/item/stack/sheet/metal(src.loc)
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index 676250d27a0..da7e049ef65 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -278,26 +278,30 @@
if(prob(75))
destroy()
-/obj/structure/table/attack_paw(mob/user)
- if(M_HULK in user.mutations)
+/obj/structure/table/attack_paw(mob/living/user)
+ if(HULK in user.mutations)
+ user.do_attack_animation(src)
user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ))
visible_message("[user] smashes the [src] apart!")
destroy()
-/obj/structure/table/attack_alien(mob/user)
+/obj/structure/table/attack_alien(mob/living/user)
+ user.do_attack_animation(src)
visible_message("[user] slices [src] apart!")
destroy()
/obj/structure/table/attack_animal(mob/living/simple_animal/user)
if(user.environment_smash)
+ user.do_attack_animation(src)
visible_message("[user] smashes [src] apart!")
destroy()
-/obj/structure/table/attack_hand(mob/user)
- if(M_HULK in user.mutations)
+/obj/structure/table/attack_hand(mob/living/user)
+ if(HULK in user.mutations)
+ user.do_attack_animation(src)
visible_message("[user] smashes [src] apart!")
user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ))
destroy()
@@ -372,7 +376,7 @@
return
-/obj/structure/table/attackby(obj/item/W as obj, mob/user as mob)
+/obj/structure/table/attackby(obj/item/W as obj, mob/user as mob, params)
if (istype(W, /obj/item/weapon/grab) && get_dist(src,user)<2)
var/obj/item/weapon/grab/G = W
if (istype(G.affecting, /mob/living))
@@ -416,6 +420,10 @@
if(!(W.flags & ABSTRACT))
if(user.drop_item())
W.Move(loc)
+ var/list/click_params = params2list(params)
+ //Center the icon where the user clicked.
+ W.pixel_x = (text2num(click_params["icon-x"]) - 16)
+ W.pixel_y = (text2num(click_params["icon-y"]) - 16)
return
/obj/structure/table/proc/straight_table_check(var/direction)
@@ -531,7 +539,7 @@
health = 50
autoignition_temperature = AUTOIGNITION_WOOD // TODO: Special ash subtype that looks like charred table legs.
-/obj/structure/table/woodentable/attackby(obj/item/I as obj, mob/user as mob)
+/obj/structure/table/woodentable/attackby(obj/item/I as obj, mob/user as mob, params)
if (istype(I, /obj/item/stack/tile/grass))
del(I)
@@ -581,6 +589,10 @@
if(!(I.flags & ABSTRACT))
if(user.drop_item())
I.Move(loc)
+ var/list/click_params = params2list(params)
+ //Center the icon where the user clicked.
+ I.pixel_x = (text2num(click_params["icon-x"]) - 16)
+ I.pixel_y = (text2num(click_params["icon-y"]) - 16)
//if(W && W.loc) W.loc = src.loc
return 1
@@ -590,7 +602,7 @@
icon_state = "pokertable"
-/obj/structure/table/woodentable/poker/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/structure/table/woodentable/poker/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if (istype(W, /obj/item/weapon/grab))
var/obj/item/weapon/grab/G = W
@@ -635,6 +647,10 @@
if(!(W.flags & ABSTRACT))
if(user.drop_item())
W.Move(loc)
+ var/list/click_params = params2list(params)
+ //Center the icon where the user clicked.
+ W.pixel_x = (text2num(click_params["icon-x"]) - 16)
+ W.pixel_y = (text2num(click_params["icon-y"]) - 16)
return 1
@@ -655,7 +671,7 @@
else
return ..()
-/obj/structure/table/reinforced/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/structure/table/reinforced/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if (istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W
if(WT.remove_fuel(0, user))
@@ -742,7 +758,7 @@
step(O, get_dir(O, src))
return
-/obj/structure/rack/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/structure/rack/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if (istype(W, /obj/item/weapon/wrench))
new /obj/item/weapon/rack_parts( src.loc )
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
@@ -760,26 +776,29 @@
/obj/structure/table/attack_hand(mob/user)
- if(M_HULK in user.mutations)
+ if(HULK in user.mutations)
visible_message("[user] smashes [src] apart!")
user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ))
destroy()
-/obj/structure/rack/attack_paw(mob/user)
- if(M_HULK in user.mutations)
+/obj/structure/rack/attack_paw(mob/living/user)
+ if(HULK in user.mutations)
+ user.do_attack_animation(src)
user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ))
visible_message("[user] smashes [src] apart!")
destroy()
-/obj/structure/rack/attack_alien(mob/user)
+/obj/structure/rack/attack_alien(mob/living/user)
+ user.do_attack_animation(src)
visible_message("[user] slices [src] apart!")
destroy()
/obj/structure/rack/attack_animal(mob/living/simple_animal/user)
if(user.environment_smash)
+ user.do_attack_animation(src)
visible_message("[user] smashes [src] apart!")
destroy()
diff --git a/code/game/objects/structures/tables_racks.dm.bak b/code/game/objects/structures/tables_racks.dm.bak
deleted file mode 100644
index be396a3196f..00000000000
--- a/code/game/objects/structures/tables_racks.dm.bak
+++ /dev/null
@@ -1,480 +0,0 @@
-/* Tables and Racks
- * Contains:
- * Tables
- * Wooden tables
- * Reinforced tables
- * Racks
- */
-
-
-/*
- * Tables
- */
-/obj/structure/table
- name = "table"
- desc = "A square piece of metal standing on four metal legs. It can not move."
- icon = 'icons/obj/structures.dmi'
- icon_state = "table"
- density = 1
- anchored = 1.0
- layer = 2.8
- throwpass = 1 //You can throw objects over this, despite it's density.")
- var/parts = /obj/item/weapon/table_parts
-
-/obj/structure/table/New()
- ..()
- for(var/obj/structure/table/T in src.loc)
- if(T != src)
- del(T)
- update_icon()
- for(var/direction in list(1,2,4,8,5,6,9,10))
- if(locate(/obj/structure/table,get_step(src,direction)))
- var/obj/structure/table/T = locate(/obj/structure/table,get_step(src,direction))
- T.update_icon()
-
-/obj/structure/table/Del()
- for(var/direction in list(1,2,4,8,5,6,9,10))
- if(locate(/obj/structure/table,get_step(src,direction)))
- var/obj/structure/table/T = locate(/obj/structure/table,get_step(src,direction))
- T.update_icon()
- ..()
-
-/obj/structure/table/proc/destroy()
- new parts(loc)
- density = 0
- del(src)
-
-
-/obj/structure/table/update_icon()
- spawn(2) //So it properly updates when deleting
- var/dir_sum = 0
- for(var/direction in list(1,2,4,8,5,6,9,10))
- var/skip_sum = 0
- for(var/obj/structure/window/W in src.loc)
- if(W.dir == direction) //So smooth tables don't go smooth through windows
- skip_sum = 1
- continue
- var/inv_direction //inverse direction
- switch(direction)
- if(1)
- inv_direction = 2
- if(2)
- inv_direction = 1
- if(4)
- inv_direction = 8
- if(8)
- inv_direction = 4
- if(5)
- inv_direction = 10
- if(6)
- inv_direction = 9
- if(9)
- inv_direction = 6
- if(10)
- inv_direction = 5
- for(var/obj/structure/window/W in get_step(src,direction))
- if(W.dir == inv_direction) //So smooth tables don't go smooth through windows when the window is on the other table's tile
- skip_sum = 1
- continue
- if(!skip_sum) //means there is a window between the two tiles in this direction
- if(locate(/obj/structure/table,get_step(src,direction)))
- if(direction <5)
- dir_sum += direction
- else
- if(direction == 5) //This permits the use of all table directions. (Set up so clockwise around the central table is a higher value, from north)
- dir_sum += 16
- if(direction == 6)
- dir_sum += 32
- if(direction == 8) //Aherp and Aderp. Jezes I am stupid. -- SkyMarshal
- dir_sum += 8
- if(direction == 10)
- dir_sum += 64
- if(direction == 9)
- dir_sum += 128
-
- var/table_type = 0 //stand_alone table
- if(dir_sum%16 in cardinal)
- table_type = 1 //endtable
- dir_sum %= 16
- if(dir_sum%16 in list(3,12))
- table_type = 2 //1 tile thick, streight table
- if(dir_sum%16 == 3) //3 doesn't exist as a dir
- dir_sum = 2
- if(dir_sum%16 == 12) //12 doesn't exist as a dir.
- dir_sum = 4
- if(dir_sum%16 in list(5,6,9,10))
- if(locate(/obj/structure/table,get_step(src.loc,dir_sum%16)))
- table_type = 3 //full table (not the 1 tile thick one, but one of the 'tabledir' tables)
- else
- table_type = 2 //1 tile thick, corner table (treated the same as streight tables in code later on)
- dir_sum %= 16
- if(dir_sum%16 in list(13,14,7,11)) //Three-way intersection
- table_type = 5 //full table as three-way intersections are not sprited, would require 64 sprites to handle all combinations. TOO BAD -- SkyMarshal
- switch(dir_sum%16) //Begin computation of the special type tables. --SkyMarshal
- if(7)
- if(dir_sum == 23)
- table_type = 6
- dir_sum = 8
- else if(dir_sum == 39)
- dir_sum = 4
- table_type = 6
- else if(dir_sum == 55 || dir_sum == 119 || dir_sum == 247 || dir_sum == 183)
- dir_sum = 4
- table_type = 3
- else
- dir_sum = 4
- if(11)
- if(dir_sum == 75)
- dir_sum = 5
- table_type = 6
- else if(dir_sum == 139)
- dir_sum = 9
- table_type = 6
- else if(dir_sum == 203 || dir_sum == 219 || dir_sum == 251 || dir_sum == 235)
- dir_sum = 8
- table_type = 3
- else
- dir_sum = 8
- if(13)
- if(dir_sum == 29)
- dir_sum = 10
- table_type = 6
- else if(dir_sum == 141)
- dir_sum = 6
- table_type = 6
- else if(dir_sum == 189 || dir_sum == 221 || dir_sum == 253 || dir_sum == 157)
- dir_sum = 1
- table_type = 3
- else
- dir_sum = 1
- if(14)
- if(dir_sum == 46)
- dir_sum = 1
- table_type = 6
- else if(dir_sum == 78)
- dir_sum = 2
- table_type = 6
- else if(dir_sum == 110 || dir_sum == 254 || dir_sum == 238 || dir_sum == 126)
- dir_sum = 2
- table_type = 3
- else
- dir_sum = 2 //These translate the dir_sum to the correct dirs from the 'tabledir' icon_state.
- if(dir_sum%16 == 15)
- table_type = 4 //4-way intersection, the 'middle' table sprites will be used.
-
- if(istype(src,/obj/structure/table/reinforced))
- switch(table_type)
- if(0)
- icon_state = "reinf_table"
- if(1)
- icon_state = "reinf_1tileendtable"
- if(2)
- icon_state = "reinf_1tilethick"
- if(3)
- icon_state = "reinf_tabledir"
- if(4)
- icon_state = "reinf_middle"
- if(5)
- icon_state = "reinf_tabledir2"
- if(6)
- icon_state = "reinf_tabledir3"
- else if(istype(src,/obj/structure/table/woodentable))
- switch(table_type)
- if(0)
- icon_state = "wood_table"
- if(1)
- icon_state = "wood_1tileendtable"
- if(2)
- icon_state = "wood_1tilethick"
- if(3)
- icon_state = "wood_tabledir"
- if(4)
- icon_state = "wood_middle"
- if(5)
- icon_state = "wood_tabledir2"
- if(6)
- icon_state = "wood_tabledir3"
- else
- switch(table_type)
- if(0)
- icon_state = "table"
- if(1)
- icon_state = "table_1tileendtable"
- if(2)
- icon_state = "table_1tilethick"
- if(3)
- icon_state = "tabledir"
- if(4)
- icon_state = "table_middle"
- if(5)
- icon_state = "tabledir2"
- if(6)
- icon_state = "tabledir3"
- if (dir_sum in list(1,2,4,8,5,6,9,10))
- dir = dir_sum
- else
- dir = 2
-
-/obj/structure/table/ex_act(severity)
- switch(severity)
- if(1.0)
- del(src)
- return
- if(2.0)
- if (prob(50))
- del(src)
- return
- if(3.0)
- if (prob(25))
- destroy()
- else
- return
-
-
-/obj/structure/table/blob_act()
- if(prob(75))
- destroy()
-
-/obj/structure/table/attack_paw(mob/user)
- if(HULK in user.mutations)
- user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ))
- visible_message("[user] smashes the [src] apart!")
- destroy()
-
-
-/obj/structure/table/attack_alien(mob/user)
- visible_message("[user] slices [src] apart!")
-
-/obj/structure/table/attack_animal(mob/living/simple_animal/user)
- if(user.wall_smash)
- visible_message("[user] smashes [src] apart!")
- destroy()
-
-
-
-/obj/structure/table/attack_hand(mob/user)
- if(HULK in user.mutations)
- visible_message("[user] smashes [src] apart!")
- user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ))
- destroy()
-
-/obj/structure/table/attack_tk() // no telehulk sorry
- return
-
-/obj/structure/table/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
- if(air_group || (height==0)) return 1
-
- if(istype(mover) && mover.checkpass(PASSTABLE))
- return 1
- else
- return 0
-
-
-/obj/structure/table/MouseDrop_T(obj/O as obj, mob/user as mob)
-
- if ((!( istype(O, /obj/item/weapon) ) || user.get_active_hand() != O))
- return
- if(isrobot(user))
- return
- user.drop_item()
- if (O.loc != src.loc)
- step(O, get_dir(O, src))
- return
-
-
-/obj/structure/table/attackby(obj/item/W as obj, mob/user as mob)
- if (istype(W, /obj/item/weapon/grab) && get_dist(src,user)<2)
- var/obj/item/weapon/grab/G = W
- if (istype(G.affecting, /mob/living))
- var/mob/living/M = G.affecting
- if (G.state < 2)
- if(user.a_intent == "hurt")
- if (prob(15)) M.Weaken(5)
- M.apply_damage(8,def_zone = "head")
- visible_message("\red [G.assailant] slams [G.affecting]'s face against \the [src]!")
- playsound(src.loc, 'sound/weapons/tablehit1.ogg', 50, 1)
- else
- user << "\red You need a better grip to do that!"
- return
- else
- G.affecting.loc = src.loc
- G.affecting.Weaken(5)
- visible_message("\red [G.assailant] puts [G.affecting] on \the [src].")
- del(W)
- return
-
- if (istype(W, /obj/item/weapon/wrench))
- user << "\blue Now disassembling table"
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
- if(do_after(user,50))
- destroy()
- return
-
- if(isrobot(user))
- return
-
- if(istype(W, /obj/item/weapon/melee/energy/blade))
- var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
- spark_system.set_up(5, 0, src.loc)
- spark_system.start()
- playsound(src.loc, 'sound/weapons/blade1.ogg', 50, 1)
- playsound(src.loc, "sparks", 50, 1)
- for(var/mob/O in viewers(user, 4))
- O.show_message("\blue The [src] was sliced apart by [user]!", 1, "\red You hear [src] coming apart.", 2)
- destroy()
-
- user.drop_item(src)
- return
-
-
-/*
- * Wooden tables
- */
-/obj/structure/table/woodentable
- name = "wooden table"
- desc = "Do not apply fire to this. Rumour says it burns easily."
- icon_state = "wood_table"
- parts = /obj/item/weapon/table_parts/wood
-
-/*
- * Reinforced tables
- */
-/obj/structure/table/reinforced
- name = "reinforced table"
- desc = "A version of the four legged table. It is stronger."
- icon_state = "reinf_table"
- var/status = 2
- parts = /obj/item/weapon/table_parts/reinforced
-
-
-/obj/structure/table/reinforced/attackby(obj/item/weapon/W as obj, mob/user as mob)
- if (istype(W, /obj/item/weapon/weldingtool))
- var/obj/item/weapon/weldingtool/WT = W
- if(WT.remove_fuel(0, user))
- if(src.status == 2)
- user << "\blue Now weakening the reinforced table"
- playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
- if (do_after(user, 50))
- if(!src || !WT.isOn()) return
- user << "\blue Table weakened"
- src.status = 1
- else
- user << "\blue Now strengthening the reinforced table"
- playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
- if (do_after(user, 50))
- if(!src || !WT.isOn()) return
- user << "\blue Table strengthened"
- src.status = 2
- return
- return
-
- if (istype(W, /obj/item/weapon/wrench))
- if(src.status == 2)
- return
-
- ..()
-
-/*
- * Racks
- */
-/obj/structure/rack
- name = "rack"
- desc = "Different from the Middle Ages version."
- icon = 'icons/obj/objects.dmi'
- icon_state = "rack"
- density = 1
- flags = FPRINT
- anchored = 1.0
- throwpass = 1 //You can throw objects over this, despite it's density.
-
-/obj/structure/rack/ex_act(severity)
- switch(severity)
- if(1.0)
- del(src)
- if(2.0)
- del(src)
- if(prob(50))
- new /obj/item/weapon/rack_parts(src.loc)
- if(3.0)
- if(prob(25))
- del(src)
- new /obj/item/weapon/rack_parts(src.loc)
-
-/obj/structure/rack/blob_act()
- if(prob(75))
- del(src)
- return
- else if(prob(50))
- new /obj/item/weapon/rack_parts(src.loc)
- del(src)
- return
-
-/obj/structure/rack/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
- if(air_group || (height==0)) return 1
- if(src.density == 0) //Because broken racks -Agouri |TODO: SPRITE!|
- return 1
- if(istype(mover) && mover.checkpass(PASSTABLE))
- return 1
- else
- return 0
-
-/obj/structure/rack/MouseDrop_T(obj/O as obj, mob/user as mob)
- if ((!( istype(O, /obj/item/weapon) ) || user.get_active_hand() != O))
- return
- if(isrobot(user))
- return
- user.drop_item()
- if (O.loc != src.loc)
- step(O, get_dir(O, src))
- return
-
-/obj/structure/rack/attackby(obj/item/weapon/W as obj, mob/user as mob)
- if (istype(W, /obj/item/weapon/wrench))
- new /obj/item/weapon/rack_parts( src.loc )
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
- del(src)
- return
- if(isrobot(user))
- return
- user.drop_item()
- if(W && W.loc) W.loc = src.loc
- return
-
-/obj/structure/rack/meteorhit(obj/O as obj)
- del(src)
-
-
-/obj/structure/table/attack_hand(mob/user)
- if(HULK in user.mutations)
- visible_message("[user] smashes [src] apart!")
- user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ))
- new /obj/item/weapon/rack_parts(loc)
- density = 0
- del(src)
-
-
-/obj/structure/rack/attack_paw(mob/user)
- if(HULK in user.mutations)
- user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ))
- visible_message("[user] smashes [src] apart!")
- new /obj/item/weapon/rack_parts(loc)
- density = 0
- del(src)
-
-
-/obj/structure/rack/attack_alien(mob/user)
- visible_message("[user] slices [src] apart!")
- new /obj/item/weapon/rack_parts(loc)
- density = 0
- del(src)
-
-
-/obj/structure/rack/attack_animal(mob/living/simple_animal/user)
- if(user.wall_smash)
- visible_message("[user] smashes [src] apart!")
- new /obj/item/weapon/rack_parts(loc)
- density = 0
- del(src)
-
-/obj/structure/rack/attack_tk() // no telehulk sorry
- return
diff --git a/code/game/objects/structures/tank_dispenser.dm b/code/game/objects/structures/tank_dispenser.dm
index 37e019963fc..3d8b13ff08b 100644
--- a/code/game/objects/structures/tank_dispenser.dm
+++ b/code/game/objects/structures/tank_dispenser.dm
@@ -42,7 +42,7 @@
return
-/obj/structure/dispenser/attackby(obj/item/I as obj, mob/user as mob)
+/obj/structure/dispenser/attackby(obj/item/I as obj, mob/user as mob, params)
if(istype(I, /obj/item/weapon/tank/oxygen) || istype(I, /obj/item/weapon/tank/air) || istype(I, /obj/item/weapon/tank/anesthetic))
if(oxygentanks < 10)
user.drop_item()
diff --git a/code/game/objects/structures/target_stake.dm b/code/game/objects/structures/target_stake.dm
index 1e9ac37a558..08bcc985611 100644
--- a/code/game/objects/structures/target_stake.dm
+++ b/code/game/objects/structures/target_stake.dm
@@ -18,7 +18,7 @@
pinned_target = null
density = 1
- attackby(obj/item/W as obj, mob/user as mob)
+ attackby(obj/item/W as obj, mob/user as mob, params)
// Putting objects on the stake. Most importantly, targets
if(pinned_target)
return // get rid of that pinned target first!
diff --git a/code/game/objects/structures/transit_tubes/station.dm b/code/game/objects/structures/transit_tubes/station.dm
index c1026c4e207..4806844ac4d 100644
--- a/code/game/objects/structures/transit_tubes/station.dm
+++ b/code/game/objects/structures/transit_tubes/station.dm
@@ -67,7 +67,7 @@
break
-/obj/structure/transit_tube/station/attackby(obj/item/W, mob/user)
+/obj/structure/transit_tube/station/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/weapon/grab) && icon_state == "open")
var/obj/item/weapon/grab/G = W
if(ismob(G.affecting) && G.state >= GRAB_AGGRESSIVE)
diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm
index c3032dbe840..74e351702ac 100644
--- a/code/game/objects/structures/watercloset.dm
+++ b/code/game/objects/structures/watercloset.dm
@@ -42,7 +42,7 @@
/obj/structure/toilet/update_icon()
icon_state = "toilet[open][cistern]"
-/obj/structure/toilet/attackby(obj/item/I as obj, mob/living/user as mob)
+/obj/structure/toilet/attackby(obj/item/I as obj, mob/living/user as mob, params)
if(istype(I, /obj/item/weapon/crowbar))
user << "You start to [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"]."
playsound(loc, 'sound/effects/stonedoor_openclose.ogg', 50, 1)
@@ -99,7 +99,7 @@
density = 0
anchored = 1
-/obj/structure/urinal/attackby(obj/item/I as obj, mob/user as mob)
+/obj/structure/urinal/attackby(obj/item/I as obj, mob/user as mob, params)
if(istype(I, /obj/item/weapon/grab))
var/obj/item/weapon/grab/G = I
if(isliving(G.affecting))
@@ -149,7 +149,7 @@
for (var/atom/movable/G in src.loc)
G.clean_blood()
-/obj/machinery/shower/attackby(obj/item/I as obj, mob/user as mob)
+/obj/machinery/shower/attackby(obj/item/I as obj, mob/user as mob, params)
if(I.type == /obj/item/device/analyzer)
user << "The water temperature seems to be [watertemp]."
if(istype(I, /obj/item/weapon/wrench))
@@ -360,7 +360,7 @@
V.show_message("\blue [user] washes their hands using \the [src].")
-/obj/structure/sink/attackby(obj/item/O as obj, mob/user as mob)
+/obj/structure/sink/attackby(obj/item/O as obj, mob/user as mob, params)
if(busy)
user << "\red Someone's already washing here."
return
@@ -424,7 +424,7 @@
..()
icon_state = "puddle"
-/obj/structure/sink/puddle/attackby(obj/item/O as obj, mob/user as mob)
+/obj/structure/sink/puddle/attackby(obj/item/O as obj, mob/user as mob, params)
icon_state = "puddle-splash"
..()
icon_state = "puddle"
diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm
index 20569ee7af8..b41b5be8afc 100644
--- a/code/game/objects/structures/windoor_assembly.dm
+++ b/code/game/objects/structures/windoor_assembly.dm
@@ -57,7 +57,7 @@ obj/structure/windoor_assembly/Destroy()
return 1
-/obj/structure/windoor_assembly/attackby(obj/item/W as obj, mob/user as mob)
+/obj/structure/windoor_assembly/attackby(obj/item/W as obj, mob/user as mob, params)
//I really should have spread this out across more states but thin little windoors are hard to sprite.
add_fingerprint(user)
switch(state)
diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm
index 8cdc2666bc2..3882da9cef3 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -153,7 +153,7 @@ var/global/wcColored
/obj/structure/window/attack_hand(mob/user as mob)
- if(M_HULK in user.mutations)
+ if(HULK in user.mutations)
user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!"))
user.visible_message("[user] smashes through [src]!")
var/pdiff=performWallPressureCheck(src.loc)
@@ -162,11 +162,13 @@ var/global/wcColored
log_admin("Window destroyed by hulk [user.real_name] ([user.ckey]) with pdiff [pdiff] at [loc]!")
destroy()
else if (usr.a_intent == "harm")
+ user.changeNext_move(CLICK_CD_MELEE)
playsound(get_turf(src), 'sound/effects/glassknock.ogg', 80, 1)
usr.visible_message("\red [usr.name] bangs against the [src.name]!", \
"\red You bang against the [src.name]!", \
"You hear a banging sound.")
else
+ user.changeNext_move(CLICK_CD_MELEE)
playsound(src.loc, 'sound/effects/glassknock.ogg', 80, 1)
usr.visible_message("[usr.name] knocks on the [src.name].", \
"You knock on the [src.name].", \
@@ -177,7 +179,9 @@ var/global/wcColored
/obj/structure/window/attack_paw(mob/user as mob)
return attack_hand(user)
-/obj/structure/window/proc/attack_generic(mob/user as mob, damage = 0) //used by attack_alien, attack_animal, and attack_slime
+/obj/structure/window/proc/attack_generic(mob/living/user as mob, damage = 0) //used by attack_alien, attack_animal, and attack_slime
+ user.changeNext_move(CLICK_CD_MELEE)
+ user.do_attack_animation(src)
health -= damage
if(health <= 0)
user.visible_message("[user] smashes through [src]!")
@@ -190,25 +194,25 @@ var/global/wcColored
playsound(loc, 'sound/effects/Glasshit.ogg', 100, 1)
-/obj/structure/window/attack_alien(mob/user as mob)
+/obj/structure/window/attack_alien(mob/living/user as mob)
if(islarva(user)) return
attack_generic(user, 15)
-/obj/structure/window/attack_animal(mob/user as mob)
+/obj/structure/window/attack_animal(mob/living/user as mob)
if(!isanimal(user)) return
var/mob/living/simple_animal/M = user
if(M.melee_damage_upper <= 0) return
attack_generic(M, M.melee_damage_upper)
-/obj/structure/window/attack_slime(mob/user as mob)
+/obj/structure/window/attack_slime(mob/living/user as mob)
var/mob/living/carbon/slime/S = user
if (!S.is_adult)
return
attack_generic(user, rand(10, 15))
-/obj/structure/window/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/structure/window/attackby(obj/item/weapon/W as obj, mob/living/user as mob, params)
if(!istype(W)) return//I really wish I did not need this
if (istype(W, /obj/item/weapon/grab) && get_dist(src,user)<2)
var/obj/item/weapon/grab/G = W
@@ -279,7 +283,7 @@ var/global/wcColored
continue
if(G.amount>=G.max_amount)
continue
- G.attackby(NG, user)
+ G.attackby(NG, user, params)
if (reinf)
var/obj/item/stack/rods/NR = new (src.loc)
@@ -288,7 +292,7 @@ var/global/wcColored
continue
if(R.amount>=R.max_amount)
continue
- R.attackby(NR, user)
+ R.attackby(NR, user, params)
user << "You have disassembled the window."
disassembled = 1
@@ -298,6 +302,7 @@ var/global/wcColored
del(src)
else
if(W.damtype == BRUTE || W.damtype == BURN)
+ user.changeNext_move(CLICK_CD_MELEE)
hit(W.force)
if(health <= 7)
anchored = 0
diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm
index 9f938b58a3d..bf1b9577b21 100644
--- a/code/game/supplyshuttle.dm
+++ b/code/game/supplyshuttle.dm
@@ -494,7 +494,7 @@ var/list/mechtoys = list(
onclose(user, "computer")
return
-/obj/machinery/computer/supplycomp/attackby(I as obj, user as mob)
+/obj/machinery/computer/supplycomp/attackby(I as obj, user as mob, params)
if(istype(I,/obj/item/weapon/card/emag) && !hacked)
user << "\blue Special supplies unlocked."
hacked = 1
diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm
index 3691f877890..0aae7a28e69 100644
--- a/code/game/turfs/simulated/floor.dm
+++ b/code/game/turfs/simulated/floor.dm
@@ -457,7 +457,7 @@ turf/simulated/floor/proc/update_icon()
update_icon()
levelupdate()
-/turf/simulated/floor/attackby(obj/item/C as obj, mob/user as mob)
+/turf/simulated/floor/attackby(obj/item/C as obj, mob/user as mob, params)
if(!C || !user)
return 0
diff --git a/code/game/turfs/simulated/floor_types.dm b/code/game/turfs/simulated/floor_types.dm
index cd139319e7e..9f1288de647 100644
--- a/code/game/turfs/simulated/floor_types.dm
+++ b/code/game/turfs/simulated/floor_types.dm
@@ -51,7 +51,7 @@
thermal_conductivity = 0.025
heat_capacity = 325000
-/turf/simulated/floor/engine/attackby(obj/item/weapon/C as obj, mob/user as mob)
+/turf/simulated/floor/engine/attackby(obj/item/weapon/C as obj, mob/user as mob, params)
if(!C)
return
if(!user)
diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm
index 4fbe7180941..afbcc4b74be 100644
--- a/code/game/turfs/simulated/walls.dm
+++ b/code/game/turfs/simulated/walls.dm
@@ -240,8 +240,10 @@
//Interactions
-/turf/simulated/wall/attack_paw(mob/user as mob)
- if ((M_HULK in user.mutations))
+/turf/simulated/wall/attack_paw(mob/living/user as mob)
+ user.changeNext_move(CLICK_CD_MELEE)
+ if ((HULK in user.mutations))
+ user.do_attack_animation(src)
if (prob(40))
usr << text("\blue You smash through the wall.")
usr.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ))
@@ -255,6 +257,8 @@
return src.attack_hand(user)
/turf/simulated/wall/attack_animal(var/mob/living/simple_animal/M)
+ M.changeNext_move(CLICK_CD_MELEE)
+ M.do_attack_animation(src)
if(M.environment_smash >= 2)
if(istype(src, /turf/simulated/wall/r_wall))
if(M.environment_smash == 3)
@@ -269,7 +273,8 @@
return
/turf/simulated/wall/attack_hand(mob/user as mob)
- if (M_HULK in user.mutations)
+ user.changeNext_move(CLICK_CD_MELEE)
+ if (HULK in user.mutations)
if (prob(40) || rotting)
user << text("\blue You smash through the wall.")
user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ))
@@ -290,8 +295,8 @@
src.add_fingerprint(user)
return
-/turf/simulated/wall/attackby(obj/item/weapon/W as obj, mob/user as mob)
-
+/turf/simulated/wall/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
+ user.changeNext_move(CLICK_CD_MELEE)
if (!(istype(user, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
user << "You don't have the dexterity to do this!"
return
diff --git a/code/game/turfs/simulated/walls_mineral.dm b/code/game/turfs/simulated/walls_mineral.dm
index 0de4efd3db7..6f0e99475ab 100644
--- a/code/game/turfs/simulated/walls_mineral.dm
+++ b/code/game/turfs/simulated/walls_mineral.dm
@@ -68,7 +68,7 @@
radiate()
..()
-/turf/simulated/wall/mineral/uranium/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/turf/simulated/wall/mineral/uranium/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
radiate()
..()
@@ -83,7 +83,7 @@
walltype = "plasma"
mineral = "plasma"
-/turf/simulated/wall/mineral/plasma/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/turf/simulated/wall/mineral/plasma/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(is_hot(W) > 300)//If the temperature of the object is over 300, then ignite
ignite(is_hot(W))
return
@@ -139,7 +139,7 @@
else
return 0
-/turf/simulated/wall/mineral/proc/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/turf/simulated/wall/mineral/proc/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if((mineral == "gold") || (mineral == "silver"))
if(shocked)
shock()
diff --git a/code/game/turfs/simulated/walls_reinforced.dm b/code/game/turfs/simulated/walls_reinforced.dm
index dd9736d3685..9514e9c7afd 100644
--- a/code/game/turfs/simulated/walls_reinforced.dm
+++ b/code/game/turfs/simulated/walls_reinforced.dm
@@ -13,7 +13,7 @@
var/d_state = 0
/turf/simulated/wall/r_wall/attack_hand(mob/user as mob)
- if (M_HULK in user.mutations)
+ if (HULK in user.mutations)
if (prob(10) || rotting)
usr << text("\blue You smash through the wall.")
usr.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ))
@@ -33,7 +33,7 @@
return
-/turf/simulated/wall/r_wall/attackby(obj/item/W as obj, mob/user as mob)
+/turf/simulated/wall/r_wall/attackby(obj/item/W as obj, mob/user as mob, params)
if (!(istype(user, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
user << "You don't have the dexterity to do this!"
diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm
index 0979d4fc002..6768fdf3afd 100644
--- a/code/game/turfs/space/space.dm
+++ b/code/game/turfs/space/space.dm
@@ -31,7 +31,7 @@
step(user.pulling, get_dir(user.pulling.loc, src))
return
-/turf/space/attackby(obj/item/C as obj, mob/user as mob)
+/turf/space/attackby(obj/item/C as obj, mob/user as mob, params)
if (istype(C, /obj/item/stack/rods))
var/obj/item/stack/rods/R = C
diff --git a/code/game/turfs/space/transit.dm b/code/game/turfs/space/transit.dm
index d84b33dbfe9..1d3bcac2384 100644
--- a/code/game/turfs/space/transit.dm
+++ b/code/game/turfs/space/transit.dm
@@ -2,7 +2,7 @@
var/pushdirection // push things that get caught in the transit tile this direction
//Overwrite because we dont want people building rods in space.
-/turf/space/transit/attackby(obj/O as obj, mob/user as mob)
+/turf/space/transit/attackby(obj/O as obj, mob/user as mob, params)
return
/turf/space/transit/north // moving to the north
diff --git a/code/game/vehicles/spacepods/construction.dm b/code/game/vehicles/spacepods/construction.dm
index c1a68f9fa2f..aac72fc0e99 100644
--- a/code/game/vehicles/spacepods/construction.dm
+++ b/code/game/vehicles/spacepods/construction.dm
@@ -19,7 +19,7 @@
dir = EAST
-/obj/structure/spacepod_frame/attackby(obj/item/W as obj, mob/user as mob)
+/obj/structure/spacepod_frame/attackby(obj/item/W as obj, mob/user as mob, params)
if(!construct || !construct.action(W, user))
..()
return
diff --git a/code/game/vehicles/spacepods/spacepod.dm b/code/game/vehicles/spacepods/spacepod.dm
index 55a748b26c3..a1195a22868 100644
--- a/code/game/vehicles/spacepods/spacepod.dm
+++ b/code/game/vehicles/spacepods/spacepod.dm
@@ -158,7 +158,7 @@
if(prob(40))
deal_damage(50)
-/obj/spacepod/attackby(obj/item/W as obj, mob/user as mob)
+/obj/spacepod/attackby(obj/item/W as obj, mob/user as mob, params)
if(iscrowbar(W))
hatch_open = !hatch_open
playsound(loc, 'sound/items/Crowbar.ogg', 50, 1)
diff --git a/code/game/verbs/atom_verbs.dm b/code/game/verbs/atom_verbs.dm
index 34b6e2cad71..aa55f33da0a 100644
--- a/code/game/verbs/atom_verbs.dm
+++ b/code/game/verbs/atom_verbs.dm
@@ -29,7 +29,7 @@
return
var/P = new /obj/effect/decal/point(tile)
- usr.next_move = world.time + 10
+ usr.changeNext_move(CLICK_CD_POINT)
spawn (20)
if(P) del(P)
diff --git a/code/modules/DetectiveWork/evidence.dm b/code/modules/DetectiveWork/evidence.dm
index 807c6138406..e2cf4ba6931 100644
--- a/code/modules/DetectiveWork/evidence.dm
+++ b/code/modules/DetectiveWork/evidence.dm
@@ -13,7 +13,7 @@
return
evidencebagEquip(I, user)
-/obj/item/weapon/evidencebag/attackby(obj/item/I, mob/user)
+/obj/item/weapon/evidencebag/attackby(obj/item/I, mob/user, params)
if(evidencebagEquip(I, user))
return 1
diff --git a/code/modules/admin/verbs/honksquad.dm b/code/modules/admin/verbs/honksquad.dm
index a56d6cd091f..5583b36435b 100644
--- a/code/modules/admin/verbs/honksquad.dm
+++ b/code/modules/admin/verbs/honksquad.dm
@@ -119,7 +119,7 @@ var/global/sent_honksquad = 0
equip_to_slot_or_del(new /obj/item/toy/crayon/rainbow(src), slot_in_backpack)
equip_to_slot_or_del(new /obj/item/weapon/gun/energy/clown(src), slot_in_backpack)
equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/spray/waterflower(src), slot_in_backpack)
- src.mutations.Add(M_CLUMSY)
+ src.mutations.Add(CLUMSY)
diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm
index 5e7cc3461ba..913c8f46194 100644
--- a/code/modules/assembly/assembly.dm
+++ b/code/modules/assembly/assembly.dm
@@ -119,7 +119,7 @@
return 0
- attackby(obj/item/weapon/W as obj, mob/user as mob)
+ attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(isassembly(W))
var/obj/item/device/assembly/A = W
if((!A.secured) && (!secured))
diff --git a/code/modules/assembly/bomb.dm b/code/modules/assembly/bomb.dm
index 2137d8b72c6..9d028acf4a2 100644
--- a/code/modules/assembly/bomb.dm
+++ b/code/modules/assembly/bomb.dm
@@ -23,9 +23,9 @@
overlays += bombassembly.overlays
overlays += "bomb_assembly"
-/obj/item/device/onetankbomb/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/device/onetankbomb/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/device/analyzer))
- bombtank.attackby(W, user)
+ bombtank.attackby(W, user, params)
return
if(istype(W, /obj/item/weapon/wrench) && !status) //This is basically bomb assembly code inverted. apparently it works.
diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm
index a39cd4dc97b..127f3c5d9ca 100644
--- a/code/modules/assembly/holder.dm
+++ b/code/modules/assembly/holder.dm
@@ -130,7 +130,7 @@
return
- attackby(obj/item/weapon/W as obj, mob/user as mob)
+ attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/screwdriver))
if(!a_left || !a_right)
user << "\red BUG:Assembly part missing, please report this!"
diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm
index a7ac697ad8f..507f879cca4 100644
--- a/code/modules/assembly/mousetrap.dm
+++ b/code/modules/assembly/mousetrap.dm
@@ -19,7 +19,7 @@
if(!armed)
if(ishuman(usr))
var/mob/living/carbon/human/user = usr
- if(((user.getBrainLoss() >= 60 || (M_CLUMSY in user.mutations)) && prob(50)))
+ if(((user.getBrainLoss() >= 60 || (CLUMSY in user.mutations)) && prob(50)))
user << "Your hand slips, setting off the trigger."
pulse(0)
update_icon()
@@ -69,7 +69,7 @@
if(!armed)
user << "You arm [src]."
else
- if(((user.getBrainLoss() >= 60 || (M_CLUMSY in user.mutations)) && prob(50)))
+ if(((user.getBrainLoss() >= 60 || (CLUMSY in user.mutations)) && prob(50)))
var/which_hand = "l_hand"
if(!user.hand)
which_hand = "r_hand"
@@ -85,7 +85,7 @@
attack_hand(mob/living/user as mob)
if(armed)
- if(((user.getBrainLoss() >= 60 || M_CLUMSY in user.mutations)) && prob(50))
+ if(((user.getBrainLoss() >= 60 || CLUMSY in user.mutations)) && prob(50))
var/which_hand = "l_hand"
if(!user.hand)
which_hand = "r_hand"
diff --git a/code/modules/assembly/shock_kit.dm b/code/modules/assembly/shock_kit.dm
index 20a606113b2..53bbd47beca 100644
--- a/code/modules/assembly/shock_kit.dm
+++ b/code/modules/assembly/shock_kit.dm
@@ -15,7 +15,7 @@
..()
return
-/obj/item/assembly/shock_kit/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/assembly/shock_kit/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/wrench) && !status)
var/turf/T = loc
if(ismob(T))
diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm
index 859242947a9..ca47ab1afc7 100644
--- a/code/modules/awaymissions/gateway.dm
+++ b/code/modules/awaymissions/gateway.dm
@@ -137,7 +137,7 @@ obj/machinery/gateway/centerstation/process()
return
-/obj/machinery/gateway/centerstation/attackby(obj/item/device/W as obj, mob/user as mob)
+/obj/machinery/gateway/centerstation/attackby(obj/item/device/W as obj, mob/user as mob, params)
if(istype(W,/obj/item/device/multitool))
user << "\black The gate is already calibrated, there is no work for you to do here."
return
@@ -234,7 +234,7 @@ obj/machinery/gateway/centerstation/process()
M.dir = SOUTH
-/obj/machinery/gateway/centeraway/attackby(obj/item/device/W as obj, mob/user as mob)
+/obj/machinery/gateway/centeraway/attackby(obj/item/device/W as obj, mob/user as mob, params)
if(istype(W,/obj/item/device/multitool))
if(calibrated)
user << "\black The gate is already calibrated, there is no work for you to do here."
diff --git a/code/modules/awaymissions/mission_code/wildwest.dm b/code/modules/awaymissions/mission_code/wildwest.dm
index 3a91028f2df..180fbf7a331 100644
--- a/code/modules/awaymissions/mission_code/wildwest.dm
+++ b/code/modules/awaymissions/mission_code/wildwest.dm
@@ -77,9 +77,9 @@
if("Power")
user << "Your wish is granted, but at a terrible cost..."
user << "The Wish Granter punishes you for your selfishness, claiming your soul and warping your body to match the darkness in your heart."
- user.mutations.Add(M_LASER)
- user.mutations.Add(M_RESIST_COLD)
- user.mutations.Add(M_XRAY)
+ user.mutations.Add(LASER)
+ user.mutations.Add(RESIST_COLD)
+ user.mutations.Add(XRAY)
user.dna.mutantrace = "shadow"
user.regenerate_icons()
if("Wealth")
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index dfb6b4092d2..f86d222a4a4 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -1464,8 +1464,8 @@ datum/preferences
else continue
if(disabilities & DISABILITY_FLAG_FAT && character.species.flags & CAN_BE_FAT)//character.species.flags & CAN_BE_FAT)
- character.mutations += M_FAT
- character.mutations += M_OBESITY
+ character.mutations += FAT
+ character.mutations += OBESITY
if(disabilities & DISABILITY_FLAG_NEARSIGHTED)
character.disabilities|=NEARSIGHTED
if(disabilities & DISABILITY_FLAG_EPILEPTIC)
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index fd68636f599..17438defd0c 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -160,7 +160,7 @@ BLIND // can't see anything
var/clipped = 0
species_restricted = list("exclude","Unathi","Tajaran")
-/obj/item/clothing/gloves/attackby(obj/item/weapon/W, mob/user)
+/obj/item/clothing/gloves/attackby(obj/item/weapon/W, mob/user, params)
if(istype(W, /obj/item/weapon/wirecutters))
if(clipped == 0)
playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1)
@@ -344,7 +344,7 @@ BLIND // can't see anything
if (AC.slot == A.slot)
return 0
-/obj/item/clothing/under/attackby(obj/item/I, mob/user)
+/obj/item/clothing/under/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/clothing/accessory))
var/obj/item/clothing/accessory/A = I
if(can_attach_accessory(A))
@@ -362,7 +362,7 @@ BLIND // can't see anything
if(accessories.len)
for(var/obj/item/clothing/accessory/A in accessories)
- A.attackby(I, user)
+ A.attackby(I, user, params)
return
..()
diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm
index dc584be1e73..84a5e7b77b8 100644
--- a/code/modules/clothing/masks/gasmask.dm
+++ b/code/modules/clothing/masks/gasmask.dm
@@ -158,7 +158,7 @@
/obj/item/clothing/mask/gas/sechailer/hos
icon_state = "hosmask"
-/obj/item/clothing/mask/gas/sechailer/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/item/clothing/mask/gas/sechailer/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/screwdriver))
switch(aggressiveness)
if(1)
diff --git a/code/modules/clothing/shoes/colour.dm b/code/modules/clothing/shoes/colour.dm
index 2b64c59906b..ef92c5837df 100644
--- a/code/modules/clothing/shoes/colour.dm
+++ b/code/modules/clothing/shoes/colour.dm
@@ -97,7 +97,7 @@
src.icon_state = "orange"
return
-/obj/item/clothing/shoes/orange/attackby(H as obj, loc)
+/obj/item/clothing/shoes/orange/attackby(H as obj, loc, params)
..()
if ((istype(H, /obj/item/weapon/restraints/handcuffs) && !( src.chained )))
//H = null
diff --git a/code/modules/clothing/spacesuits/breaches.dm b/code/modules/clothing/spacesuits/breaches.dm
index 5bc1ecaf5ab..0c83d8e7464 100644
--- a/code/modules/clothing/spacesuits/breaches.dm
+++ b/code/modules/clothing/spacesuits/breaches.dm
@@ -174,7 +174,7 @@ var/global/list/breach_burn_descriptors = list(
//Handles repairs (and also upgrades).
-/obj/item/clothing/suit/space/attackby(obj/item/W as obj, mob/user as mob)
+/obj/item/clothing/suit/space/attackby(obj/item/W as obj, mob/user as mob, params)
if(istype(W,/obj/item/stack/sheet/mineral/plastic) || istype(W,/obj/item/stack/sheet/metal))
if(istype(src.loc,/mob/living))
diff --git a/code/modules/clothing/spacesuits/rig.dm b/code/modules/clothing/spacesuits/rig.dm
index d93863276ec..98afff2a9bb 100644
--- a/code/modules/clothing/spacesuits/rig.dm
+++ b/code/modules/clothing/spacesuits/rig.dm
@@ -221,7 +221,7 @@
helmet.flags |= NODROP
H << "\blue You deploy your hardsuit helmet, sealing you off from the world."
-/obj/item/clothing/suit/space/rig/attackby(obj/item/W as obj, mob/user as mob)
+/obj/item/clothing/suit/space/rig/attackby(obj/item/W as obj, mob/user as mob, params)
if(!istype(user,/mob/living)) return
diff --git a/code/modules/clothing/suits/storage.dm b/code/modules/clothing/suits/storage.dm
index c3b5c6f616a..12c21e2a70e 100644
--- a/code/modules/clothing/suits/storage.dm
+++ b/code/modules/clothing/suits/storage.dm
@@ -16,9 +16,9 @@
if (pockets.handle_mousedrop(usr, over_object))
..(over_object)
-/obj/item/clothing/suit/storage/attackby(obj/item/W as obj, mob/user as mob)
+/obj/item/clothing/suit/storage/attackby(obj/item/W as obj, mob/user as mob, params)
..()
- pockets.attackby(W, user)
+ pockets.attackby(W, user, params)
/obj/item/clothing/suit/storage/emp_act(severity)
pockets.emp_act(severity)
diff --git a/code/modules/clothing/under/accessories/accessory.dm b/code/modules/clothing/under/accessories/accessory.dm
index 9ba54e57306..ee6800f4c18 100644
--- a/code/modules/clothing/under/accessories/accessory.dm
+++ b/code/modules/clothing/under/accessories/accessory.dm
@@ -35,7 +35,7 @@
src.add_fingerprint(user)
//default attackby behaviour
-/obj/item/clothing/accessory/attackby(obj/item/I, mob/user)
+/obj/item/clothing/accessory/attackby(obj/item/I, mob/user, params)
..()
//default attack_hand behaviour
@@ -188,7 +188,7 @@
if(isliving(user))
user.visible_message("\red [user] displays their NanoTrasen Internal Security Legal Authorization Badge.\nIt reads: [stored_name], NT Security.","\red You display your NanoTrasen Internal Security Legal Authorization Badge.\nIt reads: [stored_name], NT Security.")
-/obj/item/clothing/accessory/holobadge/attackby(var/obj/item/O as obj, var/mob/user as mob)
+/obj/item/clothing/accessory/holobadge/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
if(istype(O, /obj/item/weapon/card/id) || istype(O, /obj/item/device/pda))
var/obj/item/weapon/card/id/id_card = null
diff --git a/code/modules/clothing/under/accessories/holster.dm b/code/modules/clothing/under/accessories/holster.dm
index a009c662f4f..3d61a789742 100644
--- a/code/modules/clothing/under/accessories/holster.dm
+++ b/code/modules/clothing/under/accessories/holster.dm
@@ -70,7 +70,7 @@
..(user)
-/obj/item/clothing/accessory/holster/attackby(obj/item/W as obj, mob/user as mob)
+/obj/item/clothing/accessory/holster/attackby(obj/item/W as obj, mob/user as mob, params)
holster(W, user)
/obj/item/clothing/accessory/holster/emp_act(severity)
diff --git a/code/modules/clothing/under/accessories/storage.dm b/code/modules/clothing/under/accessories/storage.dm
index caa7638befd..d33d5e9a263 100644
--- a/code/modules/clothing/under/accessories/storage.dm
+++ b/code/modules/clothing/under/accessories/storage.dm
@@ -29,8 +29,8 @@
if (hold.handle_mousedrop(usr, over_object))
..(over_object)
-/obj/item/clothing/accessory/storage/attackby(obj/item/W as obj, mob/user as mob)
- return hold.attackby(W, user)
+/obj/item/clothing/accessory/storage/attackby(obj/item/W as obj, mob/user as mob, params)
+ return hold.attackby(W, user, params)
/obj/item/clothing/accessory/storage/emp_act(severity)
hold.emp_act(severity)
diff --git a/code/modules/clothing/under/chameleon.dm b/code/modules/clothing/under/chameleon.dm
index 21147299397..3e51b7b267e 100644
--- a/code/modules/clothing/under/chameleon.dm
+++ b/code/modules/clothing/under/chameleon.dm
@@ -21,7 +21,7 @@
return
- attackby(obj/item/clothing/under/U as obj, mob/user as mob)
+ attackby(obj/item/clothing/under/U as obj, mob/user as mob, params)
..()
if(istype(U, /obj/item/clothing/under/chameleon))
user << "\red Nothing happens."
diff --git a/code/modules/computer3/buildandrepair.dm b/code/modules/computer3/buildandrepair.dm
index d525f40a73e..277d0f538c8 100644
--- a/code/modules/computer3/buildandrepair.dm
+++ b/code/modules/computer3/buildandrepair.dm
@@ -76,7 +76,7 @@
completed = /obj/machinery/computer3/laptop
max_components = 3
-/obj/structure/computer3frame/attackby(obj/item/P as obj, mob/user as mob)
+/obj/structure/computer3frame/attackby(obj/item/P as obj, mob/user as mob, params)
switch(state)
if(0)
if(istype(P, /obj/item/weapon/wrench))
diff --git a/code/modules/computer3/component.dm b/code/modules/computer3/component.dm
index ca4639c73bd..739c2472e4c 100644
--- a/code/modules/computer3/component.dm
+++ b/code/modules/computer3/component.dm
@@ -24,7 +24,7 @@
// If the computer is attacked by an item it will reference this to decide which peripheral(s) are affected.
var/list/attackby_types = list()
- proc/allow_attackby(var/obj/item/I as obj,var/mob/user as mob)
+ proc/allow_attackby(var/obj/item/I as obj,var/mob/user as mob, params)
for(var/typekey in attackby_types)
if(istype(I,typekey))
@@ -60,7 +60,7 @@
return
..()
- attackby(obj/I as obj,mob/user as mob)
+ attackby(obj/I as obj,mob/user as mob, params)
if(computer && !computer.stat)
if(istype(I, /obj/item/device/aicard))
I:transfer_ai("AIFIXER","AICARD",src,user)
@@ -94,7 +94,7 @@
usr << "You are unable to insert \the card, as the reader slot is occupied"
return 0
- attackby(var/obj/item/I as obj, var/mob/user as mob)
+ attackby(var/obj/item/I as obj, var/mob/user as mob, params)
if(istype(I,/obj/item/weapon/card))
insert(I)
return
diff --git a/code/modules/computer3/computer.dm b/code/modules/computer3/computer.dm
index 796dee7cd95..9ea3bff1b36 100644
--- a/code/modules/computer3/computer.dm
+++ b/code/modules/computer3/computer.dm
@@ -317,7 +317,7 @@
if(os)
os.error = BUSTED_ASS_COMPUTER
- attackby(I as obj, mob/user as mob)
+ attackby(I as obj, mob/user as mob, params)
if(istype(I, /obj/item/weapon/screwdriver) && allow_disassemble)
disassemble(user)
return
@@ -341,7 +341,7 @@
P = input(user,"Which component?") as null|anything in p_list
if(P)
- P.attackby(I,user)
+ P.attackby(I,user, params)
return
..()
diff --git a/code/modules/computer3/computers/law.dm b/code/modules/computer3/computers/law.dm
index 409552cc79a..3d0cd0eb23e 100644
--- a/code/modules/computer3/computers/law.dm
+++ b/code/modules/computer3/computers/law.dm
@@ -24,7 +24,7 @@
return
- attackby(obj/item/weapon/aiModule/module as obj, mob/user as mob)
+ attackby(obj/item/weapon/aiModule/module as obj, mob/user as mob, params)
if (user.z > 6)
user << "\red Unable to establish a connection: \black You're too far away from the station!"
return
@@ -60,7 +60,7 @@
var/mob/living/silicon/robot/current = null
- attackby(obj/item/weapon/aiModule/module as obj, mob/user as mob)
+ attackby(obj/item/weapon/aiModule/module as obj, mob/user as mob, params)
if(istype(module, /obj/item/weapon/aiModule))
module.install(src)
else
diff --git a/code/modules/computer3/computers/prisonshuttle.dm b/code/modules/computer3/computers/prisonshuttle.dm
index f6f246e5784..e091c4dd5f5 100644
--- a/code/modules/computer3/computers/prisonshuttle.dm
+++ b/code/modules/computer3/computers/prisonshuttle.dm
@@ -22,7 +22,7 @@ var/prison_shuttle_timeleft = 0
var/prison_break = 0
- attackby(I as obj, user as mob)
+ attackby(I as obj, user as mob, params)
return src.attack_hand(user)
@@ -34,7 +34,7 @@ var/prison_shuttle_timeleft = 0
return src.attack_hand(user)
- attackby(I as obj, user as mob)
+ attackby(I as obj, user as mob, params)
if(istype(I, /obj/item/tool/screwdriver))
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
if(do_after(user, 20))
diff --git a/code/modules/computer3/computers/shuttle.dm b/code/modules/computer3/computers/shuttle.dm
index 9f0619ce321..37c5291bada 100644
--- a/code/modules/computer3/computers/shuttle.dm
+++ b/code/modules/computer3/computers/shuttle.dm
@@ -11,7 +11,7 @@
var/list/authorized = list( )
- attackby(var/obj/item/card/W as obj, var/mob/user as mob)
+ attackby(var/obj/item/card/W as obj, var/mob/user as mob, params)
if(stat & (BROKEN|NOPOWER)) return
if ((!( istype(W, /obj/item/card) ) || !( ticker ) || emergency_shuttle.location != 1 || !( user ))) return
if (istype(W, /obj/item/card/id)||istype(W, /obj/item/device/pda))
diff --git a/code/modules/computer3/computers/specops_shuttle.dm b/code/modules/computer3/computers/specops_shuttle.dm
index 81c94614cf0..409246b9c8a 100644
--- a/code/modules/computer3/computers/specops_shuttle.dm
+++ b/code/modules/computer3/computers/specops_shuttle.dm
@@ -159,7 +159,7 @@ var/specops_shuttle_timeleft = 0
if(specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom) return 0
else return 1
-/obj/machinery/computer3/specops_shuttle/attackby(I as obj, user as mob)
+/obj/machinery/computer3/specops_shuttle/attackby(I as obj, user as mob, params)
return attack_hand(user)
/obj/machinery/computer3/specops_shuttle/attack_ai(var/mob/user as mob)
@@ -168,7 +168,7 @@ var/specops_shuttle_timeleft = 0
/obj/machinery/computer3/specops_shuttle/attack_paw(var/mob/user as mob)
return attack_hand(user)
-/obj/machinery/computer3/specops_shuttle/attackby(I as obj, user as mob)
+/obj/machinery/computer3/specops_shuttle/attackby(I as obj, user as mob, params)
if(istype(I,/obj/item/card/emag))
user << "\blue The electronic systems in this console are far too advanced for your primitive hacking peripherals."
else
diff --git a/code/modules/computer3/computers/syndicate_shuttle.dm b/code/modules/computer3/computers/syndicate_shuttle.dm
index ccd711788b3..1b4d35456c7 100644
--- a/code/modules/computer3/computers/syndicate_shuttle.dm
+++ b/code/modules/computer3/computers/syndicate_shuttle.dm
@@ -36,7 +36,7 @@
return 1
-/obj/machinery/computer3/syndicate_station/attackby(obj/item/I as obj, mob/user as mob)
+/obj/machinery/computer3/syndicate_station/attackby(obj/item/I as obj, mob/user as mob, params)
return attack_hand(user)
/obj/machinery/computer3/syndicate_station/attack_ai(mob/user as mob)
diff --git a/code/modules/computer3/computers/syndicate_specops_shuttle.dm b/code/modules/computer3/computers/syndicate_specops_shuttle.dm
index 61dc0ba975b..2e9b4bc1842 100644
--- a/code/modules/computer3/computers/syndicate_specops_shuttle.dm
+++ b/code/modules/computer3/computers/syndicate_specops_shuttle.dm
@@ -172,7 +172,7 @@ var/syndicate_elite_shuttle_timeleft = 0
if(syndicate_elite_shuttle_moving_to_station || syndicate_elite_shuttle_moving_to_mothership) return 0
else return 1
-/obj/machinery/computer3/syndicate_elite_shuttle/attackby(I as obj, user as mob)
+/obj/machinery/computer3/syndicate_elite_shuttle/attackby(I as obj, user as mob, params)
return attack_hand(user)
/obj/machinery/computer3/syndicate_elite_shuttle/attack_ai(var/mob/user as mob)
@@ -181,7 +181,7 @@ var/syndicate_elite_shuttle_timeleft = 0
/obj/machinery/computer3/syndicate_elite_shuttle/attack_paw(var/mob/user as mob)
return attack_hand(user)
-/obj/machinery/computer3/syndicate_elite_shuttle/attackby(I as obj, user as mob)
+/obj/machinery/computer3/syndicate_elite_shuttle/attackby(I as obj, user as mob, params)
if(istype(I,/obj/item/card/emag))
user << "\blue The electronic systems in this console are far too advanced for your primitive hacking peripherals."
else
diff --git a/code/modules/computer3/lapvend.dm b/code/modules/computer3/lapvend.dm
index 8979d4c1c2f..4188e3a55e8 100644
--- a/code/modules/computer3/lapvend.dm
+++ b/code/modules/computer3/lapvend.dm
@@ -37,7 +37,7 @@
return
-/obj/machinery/lapvend/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/machinery/lapvend/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(vendmode == 1)
if(istype(W, /obj/item/weapon/card))
var/obj/item/weapon/card/I = W
diff --git a/code/modules/computer3/program.dm b/code/modules/computer3/program.dm
index 74083b8ffde..e7c1afd082f 100644
--- a/code/modules/computer3/program.dm
+++ b/code/modules/computer3/program.dm
@@ -85,7 +85,7 @@ Programs are a file that can be executed
*/
-/datum/file/program/proc/attackby(O as obj, user as mob)
+/datum/file/program/proc/attackby(O as obj, user as mob, params)
return
/*
diff --git a/code/modules/computer3/storage.dm b/code/modules/computer3/storage.dm
index acf9a76288f..3fe8279fad7 100644
--- a/code/modules/computer3/storage.dm
+++ b/code/modules/computer3/storage.dm
@@ -114,7 +114,7 @@
inserted = null
- attackby(obj/O as obj, mob/user as mob)
+ attackby(obj/O as obj, mob/user as mob, params)
if(inserted && istype(O,/obj/item/weapon/pen))
usr << "You use [O] to carefully pry [inserted] out of [src]."
eject_disk(forced = 1)
diff --git a/code/modules/crafting/guncrafting.dm b/code/modules/crafting/guncrafting.dm
index a466b2431d6..e29a1b47e64 100644
--- a/code/modules/crafting/guncrafting.dm
+++ b/code/modules/crafting/guncrafting.dm
@@ -18,7 +18,7 @@
// CRAFTING //
-/obj/item/weaponcrafting/receiver/attackby(obj/item/W as obj, mob/user as mob)
+/obj/item/weaponcrafting/receiver/attackby(obj/item/W as obj, mob/user as mob, params)
if(istype(W,/obj/item/pipe))
user << "You attach the shotgun barrel to the receiver. The pins seem loose."
var/obj/item/weaponcrafting/ishotgunconstruction/I = new /obj/item/weaponcrafting/ishotgunconstruction
@@ -36,7 +36,7 @@
icon = 'icons/obj/improvised.dmi'
icon_state = "ishotgunstep1"
-/obj/item/weaponcrafting/ishotgunconstruction/attackby(var/obj/item/I, mob/user as mob)
+/obj/item/weaponcrafting/ishotgunconstruction/attackby(var/obj/item/I, mob/user as mob, params)
..()
if(istype(I, /obj/item/weapon/screwdriver))
var/obj/item/weaponcrafting/ishotgunconstruction2/C = new /obj/item/weaponcrafting/ishotgunconstruction2
@@ -51,7 +51,7 @@
icon = 'icons/obj/improvised.dmi'
icon_state = "ishotgunstep1"
-/obj/item/weaponcrafting/ishotgunconstruction2/attackby(obj/item/W as obj, mob/user as mob)
+/obj/item/weaponcrafting/ishotgunconstruction2/attackby(obj/item/W as obj, mob/user as mob, params)
if(istype(W,/obj/item/weaponcrafting/stock))
user << "You attach the stock to the receiver-barrel assembly."
var/obj/item/weaponcrafting/ishotgunconstruction3/I = new /obj/item/weaponcrafting/ishotgunconstruction3
@@ -67,7 +67,7 @@
icon = 'icons/obj/improvised.dmi'
icon_state = "ishotgunstep2"
-/obj/item/weaponcrafting/ishotgunconstruction3/attackby(var/obj/item/I, mob/user as mob)
+/obj/item/weaponcrafting/ishotgunconstruction3/attackby(var/obj/item/I, mob/user as mob, params)
..()
if(istype(I, /obj/item/stack/packageWrap))
var/obj/item/stack/packageWrap/C = I
diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm
index 590e90d9231..2641f0e4496 100644
--- a/code/modules/customitems/item_defines.dm
+++ b/code/modules/customitems/item_defines.dm
@@ -859,7 +859,7 @@
held.loc = get_turf(user)
src.held = null
-/obj/item/clothing/accessory/fluff/konaa_hirano/attackby(var/obj/item/O as obj, mob/user as mob)
+/obj/item/clothing/accessory/fluff/konaa_hirano/attackby(var/obj/item/O as obj, mob/user as mob, params)
if(istype(O,/obj/item/weapon/paper))
if(held)
usr << "[src] already has something inside it."
diff --git a/code/modules/destilery/main.dm b/code/modules/destilery/main.dm
index ded080d2b12..808b74411c9 100644
--- a/code/modules/destilery/main.dm
+++ b/code/modules/destilery/main.dm
@@ -56,7 +56,7 @@
del(milled_item)
busy = 0
-/obj/machinery/mill/attackby(var/obj/item/weapon/W as obj, mob/user as mob)
+/obj/machinery/mill/attackby(var/obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W,/obj/item/weapon/reagent_containers/food))
user.unEquip(W)
W.loc = src
@@ -126,7 +126,7 @@
del(fermenting_item)
busy = 0
-/obj/machinery/fermenter/attackby(var/obj/item/weapon/W as obj, mob/user as mob)
+/obj/machinery/fermenter/attackby(var/obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W,/obj/item/weapon/reagent_containers/food))
user.unEquip(W)
W.loc = src
@@ -187,7 +187,7 @@
del(destilling_item)
busy = 0
-/obj/machinery/still/attackby(var/obj/item/weapon/W as obj, mob/user as mob)
+/obj/machinery/still/attackby(var/obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W,/obj/item/weapon/reagent_containers/food))
user.unEquip(W)
W.loc = src
@@ -272,7 +272,7 @@
output += spinning_item
busy = 0
-/obj/machinery/centrifuge/attackby(var/obj/item/weapon/W as obj, mob/user as mob)
+/obj/machinery/centrifuge/attackby(var/obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W,/obj/item/weapon/reagent_containers/food))
user.unEquip(W)
W.loc = src
diff --git a/code/modules/economy/ATM.dm b/code/modules/economy/ATM.dm
index f389f9c2863..fad9c88110b 100644
--- a/code/modules/economy/ATM.dm
+++ b/code/modules/economy/ATM.dm
@@ -85,7 +85,7 @@ log transactions
linked_db = DB
break
-/obj/machinery/atm/attackby(obj/item/I as obj, mob/user as mob)
+/obj/machinery/atm/attackby(obj/item/I as obj, mob/user as mob, params)
if(istype(I, /obj/item/weapon/card))
var/obj/item/weapon/card/id/idcard = I
if(!held_card)
diff --git a/code/modules/economy/Accounts_DB.dm b/code/modules/economy/Accounts_DB.dm
index e7c16540552..ddd432d3dfc 100644
--- a/code/modules/economy/Accounts_DB.dm
+++ b/code/modules/economy/Accounts_DB.dm
@@ -56,7 +56,7 @@
machine_id = "[station_name()] Acc. DB #[num_financial_terminals++]"
..()
-/obj/machinery/account_database/attackby(obj/O, mob/user)
+/obj/machinery/account_database/attackby(obj/O, mob/user, params)
if(!istype(O, /obj/item/weapon/card/id))
return ..()
diff --git a/code/modules/economy/EFTPOS.dm b/code/modules/economy/EFTPOS.dm
index b0a412bfa12..a6c8a3e74a4 100644
--- a/code/modules/economy/EFTPOS.dm
+++ b/code/modules/economy/EFTPOS.dm
@@ -100,7 +100,7 @@
else
user << browse(null,"window=eftpos")
-/obj/item/device/eftpos/attackby(O as obj, user as mob)
+/obj/item/device/eftpos/attackby(O as obj, user as mob, params)
if(istype(O, /obj/item/weapon/card))
//attempt to connect to a new db, and if that doesn't work then fail
if(!linked_db)
diff --git a/code/modules/economy/POS.dm b/code/modules/economy/POS.dm
index d4bbbb9abaa..7b1c885ff10 100644
--- a/code/modules/economy/POS.dm
+++ b/code/modules/economy/POS.dm
@@ -482,7 +482,7 @@ var/const/POS_HEADER = {"
products[pid]=LI
src.attack_hand(usr)
-/obj/machinery/pos/attackby(var/atom/movable/A, var/mob/user)
+/obj/machinery/pos/attackby(var/atom/movable/A, var/mob/user, params)
if(istype(A,/obj/item/weapon/card/id))
var/obj/item/weapon/card/id/I = A
if(!logged_in)
diff --git a/code/modules/events/sayuevents/wormholes.dm b/code/modules/events/sayuevents/wormholes.dm
index c31645d7a00..16daa8fe7c9 100644
--- a/code/modules/events/sayuevents/wormholes.dm
+++ b/code/modules/events/sayuevents/wormholes.dm
@@ -46,7 +46,7 @@
/obj/effect/portal/wormhole/attack_hand(mob/user)
teleport(user)
-/obj/effect/portal/wormhole/attackby(obj/item/I, mob/user)
+/obj/effect/portal/wormhole/attackby(obj/item/I, mob/user, params)
teleport(user)
/obj/effect/portal/wormhole/teleport(atom/movable/M)
diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm
index bc39a2cbf00..19405dfaf06 100644
--- a/code/modules/flufftext/Hallucination.dm
+++ b/code/modules/flufftext/Hallucination.dm
@@ -11,18 +11,19 @@ Gunshots/explosions/opening doors/less rare audio (done)
*/
-mob/living/carbon/var
- image/halimage
- image/halbody
- obj/halitem
- hal_screwyhud = 0 //1 - critical, 2 - dead, 3 - oxygen indicator, 4 - toxin indicator
- handling_hal = 0
- hal_crit = 0
+mob/living/carbon/
+ var/image/halimage
+ var/image/halbody
+ var/obj/halitem
+ var/hal_screwyhud = 0 //1 - critical, 2 - dead, 3 - oxygen indicator, 4 - toxin indicator
+ var/handling_hal = 0
+ var/hal_crit = 0
mob/living/carbon/proc/handle_hallucinations()
- if(handling_hal) return
+ if(handling_hal)
+ return
handling_hal = 1
- while(client && hallucination > 20)
+ while(hallucination > 20)
sleep(rand(200,500)/(hallucination/25))
var/halpick = rand(1,100)
switch(halpick)
@@ -77,9 +78,7 @@ mob/living/carbon/proc/handle_hallucinations()
halitem.name = "Flashbang"
if(client) client.screen += halitem
spawn(rand(100,250))
- if(client)
- client.screen -= halitem
- halitem = null
+ qdel(halitem)
if(26 to 40)
//Flashes of danger
//src << "Danger Flash"
@@ -111,7 +110,7 @@ mob/living/carbon/proc/handle_hallucinations()
if(41 to 65)
//Strange audio
//src << "Strange Audio"
- switch(rand(1,12))
+ switch(rand(1,14))
if(1) src << 'sound/machines/airlock.ogg'
if(2)
if(prob(50))src << 'sound/effects/Explosion1.ogg'
@@ -142,9 +141,14 @@ mob/living/carbon/proc/handle_hallucinations()
'sound/hallucinations/look_up1.ogg', 'sound/hallucinations/look_up2.ogg', 'sound/hallucinations/over_here1.ogg', 'sound/hallucinations/over_here2.ogg', 'sound/hallucinations/over_here3.ogg',\
'sound/hallucinations/turn_around1.ogg', 'sound/hallucinations/turn_around2.ogg', 'sound/hallucinations/veryfar_noise.ogg', 'sound/hallucinations/wail.ogg')
src << pick(creepyasssounds)
+ if(13)
+ src << "You feel a tiny prick!"
+ if(14)
+ src << "Priority Announcement
"
+ src << "
The Emergency Shuttle has docked with the station. You have 3 minutes to board the Emergency Shuttle.
"
+ src << sound('sound/AI/shuttledock.ogg')
if(66 to 70)
//Flashes of danger
- //src << "Danger Flash"
if(!halbody)
var/list/possible_points = list()
for(var/turf/simulated/floor/F in view(src,world.view))
@@ -158,8 +162,6 @@ mob/living/carbon/proc/handle_hallucinations()
halbody = image('icons/mob/human.dmi',target,"husk_s",TURF_LAYER)
if(4)
halbody = image('icons/mob/alien.dmi',target,"alienother",TURF_LAYER)
- // if(5)
- // halbody = image('xcomalien.dmi',target,"chryssalid",TURF_LAYER)
if(client) client.images += halbody
spawn(rand(50,80)) //Only seen for a brief moment.
@@ -167,55 +169,58 @@ mob/living/carbon/proc/handle_hallucinations()
halbody = null
if(71 to 72)
//Fake death
-// src.sleeping_willingly = 1
src.sleeping = 20
hal_crit = 1
hal_screwyhud = 1
spawn(rand(50,100))
-// src.sleeping_willingly = 0
src.sleeping = 0
hal_crit = 0
hal_screwyhud = 0
+ if(73 to 75)
+ fake_attack()
handling_hal = 0
+/mob/living/carbon/proc/fake_attack()
+// var/list/possible_clones = new/list()
+ var/mob/living/carbon/human/clone = null
+ var/clone_weapon = null
+ for(var/mob/living/carbon/human/H in living_mob_list)
+ if(H.stat || H.lying)
+ continue
+// possible_clones += H
+ clone = H
+ break //changed the code a bit. Less randomised, but less work to do. Should be ok, world.contents aren't stored in any particular order.
-/*obj/machinery/proc/mockpanel(list/buttons,start_txt,end_txt,list/mid_txts)
+// if(!possible_clones.len) return
+// clone = pick(possible_clones)
+ if(!clone)
+ return
- if(!mocktxt)
+ //var/obj/effect/fake_attacker/F = new/obj/effect/fake_attacker(outside_range(target))
+ var/obj/effect/fake_attacker/F = new/obj/effect/fake_attacker(src.loc)
+ if(clone.l_hand)
+ if(!(locate(clone.l_hand) in non_fakeattack_weapons))
+ clone_weapon = clone.l_hand.name
+ F.weap = clone.l_hand
+ else if (clone.r_hand)
+ if(!(locate(clone.r_hand) in non_fakeattack_weapons))
+ clone_weapon = clone.r_hand.name
+ F.weap = clone.r_hand
- mocktxt = ""
+ F.name = clone.name
+ F.my_target = src
+ F.weapon_name = clone_weapon
+ src.hallucinations += F
- var/possible_txt = list("Launch Escape Pods","Self-Destruct Sequence","\[Swipe ID\]","De-Monkify",\
- "Reticulate Splines","Plasma","Open Valve","Lockdown","Nerf Airflow","Kill Traitor","Nihilism",\
- "OBJECTION!","Arrest Stephen Bowman","Engage Anti-Trenna Defenses","Increase Captain IQ","Retrieve Arms",\
- "Play Charades","Oxygen","Inject BeAcOs","Ninja Lizards","Limit Break","Build Sentry")
+ F.left = image(clone,dir = WEST)
+ F.right = image(clone,dir = EAST)
+ F.up = image(clone,dir = NORTH)
+ F.down = image(clone,dir = SOUTH)
- if(mid_txts)
- while(mid_txts.len)
- var/mid_txt = pick(mid_txts)
- mocktxt += mid_txt
- mid_txts -= mid_txt
+ F.updateimage()
- while(buttons.len)
-
- var/button = pick(buttons)
-
- var/button_txt = pick(possible_txt)
-
- mocktxt += "[button_txt]
"
-
- buttons -= button
- possible_txt -= button_txt
-
- return start_txt + mocktxt + end_txt + "