diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm
index 8a8b1836eae..30b3f246671 100644
--- a/code/game/machinery/camera/camera.dm
+++ b/code/game/machinery/camera/camera.dm
@@ -214,15 +214,6 @@
user << "Camera bugged."
src.bug = W
src.bug.bugged_cameras[src.c_tag] = src
- else if(istype(W, /obj/item/weapon/melee/energy/blade))//Putting it here last since it's a special case. I wonder if there is a better way to do these than type casting.
- deactivate(user,2)//Here so that you can disconnect anyone viewing the camera, regardless if it's on or off.
- var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
- spark_system.set_up(5, 0, loc)
- spark_system.start()
- playsound(loc, 'sound/weapons/blade1.ogg', 50, 1)
- playsound(loc, "sparks", 50, 1)
- visible_message("[user] has sliced the camera apart with an energy blade!")
- qdel(src)
else if(istype(W, /obj/item/device/laser_pointer))
var/obj/item/device/laser_pointer/L = W
L.laser_act(src, user)
diff --git a/code/game/machinery/doors/unpowered.dm b/code/game/machinery/doors/unpowered.dm
index c0da7ec0dba..df94284c2c5 100644
--- a/code/game/machinery/doors/unpowered.dm
+++ b/code/game/machinery/doors/unpowered.dm
@@ -9,7 +9,6 @@
/obj/machinery/door/unpowered/attackby(obj/item/I as obj, mob/user as mob, params)
- if(istype(I, /obj/item/weapon/melee/energy/blade)) return
if(src.locked) return
..()
return
diff --git a/code/game/objects/items/weapons/storage/lockbox.dm b/code/game/objects/items/weapons/storage/lockbox.dm
index a8cbcbcb282..9b7d8f19952 100644
--- a/code/game/objects/items/weapons/storage/lockbox.dm
+++ b/code/game/objects/items/weapons/storage/lockbox.dm
@@ -35,18 +35,6 @@
else
user << "Access Denied."
return
- else if(istype(W, /obj/item/weapon/melee/energy/blade) && !src.broken)
- broken = 1
- locked = 0
- desc = "It appears to be broken."
- icon_state = src.icon_broken
- 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)
- visible_message("[user] has sliced open \the [src] with an energy blade!", "You hear metal being sliced and sparks flying.")
- return
if(!locked)
..()
else
diff --git a/code/game/objects/items/weapons/storage/secure.dm b/code/game/objects/items/weapons/storage/secure.dm
index f39e702b365..a92d674a6e9 100644
--- a/code/game/objects/items/weapons/storage/secure.dm
+++ b/code/game/objects/items/weapons/storage/secure.dm
@@ -33,21 +33,6 @@
/obj/item/weapon/storage/secure/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(locked)
- if (istype(W, /obj/item/weapon/melee/energy/blade) && !emagged)
- emagged = 1
- src.overlays += image('icons/obj/storage.dmi', icon_sparking)
- sleep(6)
- src.overlays = null
- overlays += image('icons/obj/storage.dmi', icon_locking)
- locked = 0
- 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)
- user << "You slice through the lock on [src]."
- return
-
if (istype(W, /obj/item/weapon/screwdriver))
if (do_after(user, 20))
src.open =! src.open
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 c117504b4ea..4c9095fb4df 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,18 +65,6 @@
if(!src.opened && src.broken)
user << "The locker appears to be broken."
return
- else if(istype(W, /obj/item/weapon/melee/energy/blade) && !broken)
- broken = 1
- locked = 0
- desc = "It appears to be broken."
- icon_state = icon_off
- flick(icon_broken, src)
- 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)
- visible_message("[user] has sliced the locker open with an energy blade!", "You hear metal being sliced and sparks flying.")
else
..(W, user)
diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm
index f6aa7b779b2..f64395b7f24 100644
--- a/code/game/objects/structures/crates_lockers/crates.dm
+++ b/code/game/objects/structures/crates_lockers/crates.dm
@@ -307,17 +307,6 @@
overlays += redlight
add_fingerprint(user)
return
- else if (istype(W, /obj/item/weapon/melee/energy/blade) && locked && !broken)
- overlays.Cut()
- overlays += emag
- overlays += sparks
- spawn(6) overlays -= sparks //Tried lots of stuff but nothing works right. so i have to use this *sadface*
- playsound(src.loc, "sparks", 60, 1)
- src.locked = 0
- src.broken = 1
- user << "You unlock \the [src]."
- add_fingerprint(user)
- return
return ..()
diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm
index 08123b5fec1..ee5684c24c6 100644
--- a/code/game/objects/structures/false_walls.dm
+++ b/code/game/objects/structures/false_walls.dm
@@ -118,7 +118,7 @@
else
user << "You can't reach, close it first!"
- if(istype(W, /obj/item/weapon/pickaxe/plasmacutter) || istype(W, /obj/item/weapon/melee/energy/blade))
+ if(istype(W, /obj/item/weapon/pickaxe/plasmacutter))
dismantle(user)
if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer))
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index 196ce0cbb0b..da22c57e321 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -314,16 +314,6 @@
if(isrobot(user))
return
- if(istype(I, /obj/item/weapon/melee/energy/blade))
- var/datum/effect/effect/system/spark_spread/SS = new /datum/effect/effect/system/spark_spread()
- SS.set_up(5, 0, src.loc)
- SS.start()
- playsound(src.loc, 'sound/weapons/blade1.ogg', 50, 1)
- playsound(src.loc, "sparks", 50, 1)
- user.visible_message("The [src.name] was sliced apart by [user]!")
- table_destroy(1)
- return
-
if(!(I.flags & ABSTRACT)) //rip more parems rip in peace ;_;
if(user.drop_item())
I.Move(loc)
diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm
index bd54b2067b9..2c88719d4b9 100644
--- a/code/game/turfs/simulated/walls.dm
+++ b/code/game/turfs/simulated/walls.dm
@@ -136,13 +136,6 @@
if( thermite )
if(is_hot(W))
thermitemelt(user)
-
- if( istype(W, /obj/item/weapon/melee/energy/blade) )
- var/obj/item/weapon/melee/energy/blade/EB = W
- EB.spark_system.start()
- user << "You slash \the [src] with \the [EB]; the thermite ignites!"
- playsound(src, "sparks", 50, 1)
- playsound(src, 'sound/weapons/blade1.ogg', 50, 1)
return
var/turf/T = user.loc //get user's location for delay checks
@@ -225,21 +218,6 @@
dismantle_wall()
visible_message("[user] smashes through the [name] with the [W.name]!", "You hear the grinding of metal.")
return 1
- else if( istype(W, /obj/item/weapon/melee/energy/blade) )
- var/obj/item/weapon/melee/energy/blade/EB = W
- EB.spark_system.start()
- user << "You stab \the [EB] into the wall and begin to slice it apart."
- playsound(src, "sparks", 50, 1)
- if(do_after(user, slicing_duration*0.7)) //energy blade slicing is faster than welding tool slicing
- if( !istype(src, /turf/simulated/wall) || !user || !EB || !T )
- return 1
- if( user.loc == T && user.get_active_hand() == W )
- EB.spark_system.start()
- playsound(src, "sparks", 50, 1)
- playsound(src, 'sound/weapons/blade1.ogg', 50, 1)
- dismantle_wall(1)
- visible_message("The wall was sliced apart by [user]!", "You hear metal being sliced apart and sparks flying.")
- return 1
return 0
diff --git a/code/game/turfs/simulated/walls_reinforced.dm b/code/game/turfs/simulated/walls_reinforced.dm
index c66d1061e50..b7e71d69e0b 100644
--- a/code/game/turfs/simulated/walls_reinforced.dm
+++ b/code/game/turfs/simulated/walls_reinforced.dm
@@ -29,10 +29,7 @@
M << "This wall is far too strong for you to destroy."
/turf/simulated/wall/r_wall/try_destroy(obj/item/weapon/W as obj, mob/user as mob, turf/T as turf)
- if(istype(W, /obj/item/weapon/melee/energy/blade))
- user << "This wall is too thick to slice through. You will need to find a different path."
- return 1
- else if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer))
+ if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer))
var/obj/item/weapon/pickaxe/drill/jackhammer/D = W
if(!D.bcell.use(800))
user << "Your [D.name] doesn't have enough power to break through the [name]."
diff --git a/code/modules/ninja/energy_katana.dm b/code/modules/ninja/energy_katana.dm
index fba0963d57e..0a398a7ba27 100644
--- a/code/modules/ninja/energy_katana.dm
+++ b/code/modules/ninja/energy_katana.dm
@@ -7,4 +7,14 @@
item_state = "energy_katana"
force = 40
throwforce = 20
- slot_flags = SLOT_BELT
+
+/obj/item/weapon/katana/energy/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
+ if(!user || !target)
+ return
+
+ if(proximity_flag)
+ target.emag_act()
+ user.visible_message("[user] masterfully slices [target]!", "You masterfully slice [target]!")
+ playsound(user, "sparks", 50, 1)
+ playsound(user, 'sound/weapons/blade1.ogg', 50, 1)
+
diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm
index ef4b2049d97..b4d951cc78e 100644
--- a/code/modules/recycling/disposal.dm
+++ b/code/modules/recycling/disposal.dm
@@ -115,10 +115,6 @@
else
return
- if(istype(I, /obj/item/weapon/melee/energy/blade))
- user << "You can't place \the [I] into \the [src]."
- return
-
if(istype(I, /obj/item/weapon/storage/bag/trash))
var/obj/item/weapon/storage/bag/trash/T = I
user << " You empty the bag."
diff --git a/icons/mob/back.dmi b/icons/mob/back.dmi
index af975d079e4..fbcfe4414ab 100644
Binary files a/icons/mob/back.dmi and b/icons/mob/back.dmi differ