diff --git a/_maps/map_files/cyberiad/z2.dmm b/_maps/map_files/cyberiad/z2.dmm
index 9ebdc851f73..48b47a12c33 100644
--- a/_maps/map_files/cyberiad/z2.dmm
+++ b/_maps/map_files/cyberiad/z2.dmm
@@ -1743,7 +1743,7 @@
"HA" = (/obj/machinery/door/window/southleft{name = "Cell B"; req_access_txt = "101"},/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin)
"HB" = (/obj/structure/rack,/obj/item/clothing/suit/space/space_ninja,/turf/unsimulated/floor{icon_state = "engine"},/area/admin)
"HC" = (/turf/unsimulated/floor{icon_state = "engine"},/area/admin)
-"HD" = (/obj/structure/rack,/obj/item/clothing/head/helmet/space/space_ninja,/obj/item/clothing/glasses/hud/space_ninja,/turf/unsimulated/floor{icon_state = "engine"},/area/admin)
+"HD" = (/obj/structure/rack,/obj/item/clothing/head/helmet/space/space_ninja,/turf/unsimulated/floor{icon_state = "engine"},/area/admin)
"HE" = (/turf/unsimulated/wall,/area/tdome)
"HF" = (/turf/unsimulated/wall{desc = "The door appears to be locked tightly."; icon = 'icons/obj/doors/Doorhatchele.dmi'; icon_state = "door_closed"; name = "Locked Door"},/area/tdome)
"HG" = (/obj/machinery/iv_drip,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin)
diff --git a/code/modules/ninja/energy_katana.dm b/code/modules/ninja/energy_katana.dm
index dfa8b819166..61269d6b85a 100644
--- a/code/modules/ninja/energy_katana.dm
+++ b/code/modules/ninja/energy_katana.dm
@@ -1,5 +1,3 @@
-
-
/obj/item/weapon/katana/energy
name = "energy katana"
desc = "A katana infused with a strong energy"
@@ -9,6 +7,8 @@
force = 40
throwforce = 20
var/cooldown = 0 // Because spam aint cool, yo.
+ var/datum/effect/effect/system/spark_spread/spark_system
+
/obj/item/weapon/katana/energy/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
playsound(user, 'sound/weapons/blade1.ogg', 50, 1, -1)
@@ -18,8 +18,9 @@
if(!user || !target)
return
- if(proximity_flag && user.mind.special_role == "Ninja" && !cooldown)
+ if(proximity_flag && user.mind.special_role == "Ninja" && !cooldown && isobj(target))
cooldown = 1
+ spark_system.start()
playsound(user, "sparks", 50, 1)
playsound(user, 'sound/weapons/blade1.ogg', 50, 1)
user.visible_message("[user] masterfully slices [target]!", "You masterfully slice [target]!")
@@ -27,3 +28,58 @@
sleep(15)
cooldown = 0
+/*/obj/item/weapon/katana/energy/throw_impact(atom/hit_atom)
+ if(ishuman(hit_atom))
+ var/mob/living/carbon/human/H = hit_atom
+ if(istype(H.wear_suit, /obj/item/clothing/suit/space/space_ninja))
+ var/obj/item/clothing/suit/space/space_ninja/SN = H.wear_suit
+ if(SN.energyKatana && SN.energyKatana == src)
+ returnToOwner(H, 0, 1)
+ return
+ ..()*/
+
+
+/obj/item/weapon/katana/energy/proc/returnToOwner(var/mob/living/carbon/human/user, var/doSpark = 1, var/caught = 0)
+ if(!istype(user))
+ return
+ loc = get_turf(src)
+
+ if(doSpark)
+ spark_system.start()
+ playsound(get_turf(src), "sparks", 50, 1)
+
+ var/msg = ""
+
+ if(user.put_in_hands(src))
+ msg = "Your Energy Katana teleports into your hand!"
+ else if(user.equip_to_slot_if_possible(src, slot_belt, 0, 1, 1))
+ msg = "Your Energy Katana teleports back to you, sheathing itself as it does so!"
+ else
+ loc = get_turf(user)
+ msg = "Your Energy Katana teleports to your location!"
+
+ if(caught)
+ if(loc == user)
+ msg = "You catch your Energy Katana!"
+ else
+ msg = "Your Energy Katana lands at your feet!"
+
+ if(msg)
+ user << "[msg]"
+
+/obj/item/weapon/katana/energy/New()
+ ..()
+ spark_system = new /datum/effect/effect/system/spark_spread()
+ spark_system.set_up(5, 0, src)
+ spark_system.attach(src)
+
+
+/obj/item/weapon/katana/energy/Del()
+ qdel(spark_system)
+ spark_system = null
+ ..()
+
+/obj/item/weapon/katana/energy/Destroy()
+ qdel(spark_system)
+ spark_system = null
+ return ..()
\ No newline at end of file
diff --git a/code/modules/ninja/suit/eye.dm b/code/modules/ninja/suit/eye.dm
deleted file mode 100644
index 427a50a7497..00000000000
--- a/code/modules/ninja/suit/eye.dm
+++ /dev/null
@@ -1,107 +0,0 @@
-/obj/item/clothing/glasses/hud/space_ninja
- name = "vision enhancement implant"
- desc = "A high-tech ocular implant designed for Spider Clan operatives."
- icon_state = "cybereye-off"
- item_state = "eyepatch"
- flags = NODROP
-
- var/enabled = 0
- var/energyConsumption = 0
- var/antagHUDEnabled = 0
- var/mesonEnabled = 0
- var/materialEnabled = 0
- var/thermalEnabled = 0
-
-/obj/item/clothing/glasses/hud/space_ninja/verb/modifyHUD(mob/user as mob)
- set category = "Space Ninja - Equiptment"
- set name = "Modify Vision"
-
- if(usr.mind.special_role != "Ninja")
- usr << "FĆAL �Rr�R: µ§er n¤t rec¤gnized, c-c¤ntr-r¤£§-£§ £¤cked."
- return
-
- if(!enabled) // If the Ninja's suit is on and connected.
- usr << "ERROR: No power supply detected, cannot activate optical implant."
- return
-
- if(!user) // The user var is, so far as I can tell, required to refresh the window after each click.
- user = usr
-
- /*
- * Each vision type the Ninja enables will drain more from his suit's battery per tick.
- * For instance, if the Ninja were to rn around with thermals and AntagHUD on he would be losing an additional 10 energy per tick.
- * Current vision modes are:
- * - Night
- * - Meson (Turfs)
- * - Material (Objects)
- * - Thermal (Mobs)
- * - Antag HUD
- *
- * -Dave
- */
- var/dat = {"
- Night Vision (2E) - [darkness_view ? "ENABLED" : "DISABLED"]
- Meson Scanner (2E) - [mesonEnabled ? "ENABLED" : "DISABLED"]
- Material Scanner (4E) - [materialEnabled ? "ENABLED" : "DISABLED"]
- Thermal Scanner (4E) - [thermalEnabled ? "ENABLED" : "DISABLED"]
- Threat Identification HUD (6E) - [antagHUDEnabled ? "ENABLED" : "DISABLED"]
- "}
-
- var/datum/browser/popup = new(user, "SpiderOS", "SpiderOS Optical Interface", 310, 150)
- popup.set_content(dat)
- popup.open()
-
-
-/obj/item/clothing/glasses/hud/space_ninja/Topic(href, href_list)
- if(usr.stat != 0 || !enabled)
- return 1
-
- if(href_list["night"])
- darkness_view = (darkness_view ? 0 : 8)
- see_darkness = (darkness_view ? 0 : 1)
- energyConsumption += (darkness_view ? 2 : -2)
- usr << "Light amplification [(darkness_view ? "ENABLED" : "DISABLED")]."
-
- else if(href_list["meson"])
- mesonEnabled = (mesonEnabled ? 0 : 1)
-
- if(mesonEnabled)
- vision_flags |= SEE_TURFS
- else
- vision_flags &= ~SEE_TURFS
-
- energyConsumption += (mesonEnabled ? 2 : -2)
- usr << "Meson scanning [(mesonEnabled ? "ENABLED" : "DISABLED")]."
-
- else if(href_list["material"])
- materialEnabled = (materialEnabled ? 0 : 1)
-
- if(materialEnabled)
- vision_flags |= SEE_OBJS
- else
- vision_flags &= ~SEE_OBJS
-
- energyConsumption += (materialEnabled ? 4 : -4)
- usr << "Material scanning [(materialEnabled ? "ENABLED" : "DISABLED")]."
-
- else if(href_list["thermal"])
- thermalEnabled = (thermalEnabled ? 0 : 1)
-
- if(thermalEnabled)
- vision_flags |= SEE_MOBS
- invisa_view = 2
- else
- vision_flags &= ~SEE_MOBS
- invisa_view = 0
-
- energyConsumption += (thermalEnabled ? 4 : -4)
- usr << "Thermal scanning [(thermalEnabled ? "ENABLED" : "DISABLED")]."
-
- else if(href_list["antagHUD"])
- antagHUDEnabled = (antagHUDEnabled ? 0 : 1)
- energyConsumption += (antagHUDEnabled ? 6 : -6)
- usr << "Threat identification HUD [(antagHUDEnabled ? "ENABLED" : "DISABLED")]."
-
- modifyHUD(usr) // Re-call the verb to get a fresh version of the window.
- return
-
diff --git a/code/modules/ninja/suit/suit.dm b/code/modules/ninja/suit/suit.dm
index 2550ce13eb0..be2ffc21e9f 100644
--- a/code/modules/ninja/suit/suit.dm
+++ b/code/modules/ninja/suit/suit.dm
@@ -26,7 +26,6 @@ Contents:
var/obj/item/clothing/gloves/space_ninja/suitGloves
var/obj/item/clothing/shoes/space_ninja/suitShoes
var/obj/item/clothing/mask/gas/voice/space_ninja/suitMask
- var/obj/item/clothing/glasses/hud/space_ninja/suitGlasses
var/mob/living/carbon/human/suitOccupant
/obj/item/clothing/suit/space/space_ninja/proc/toggle_suit_lock(mob/living/carbon/human/user)
@@ -46,12 +45,6 @@ Contents:
if(!istype(user.wear_mask, /obj/item/clothing/mask/gas/voice/space_ninja))
user<< "ERROR: Unable to locate mask.\nABORTING..."
return 0
- if(!istype(user.glasses, /obj/item/clothing/glasses/hud/space_ninja))
- user<< "WARNING: Unable to locate eye gear, vision enhancement unavailable.\nProceeding..."
- else
- suitGlasses = user.glasses
- suitGlasses.enabled = 1
- suitGlasses.icon_state = "cybereye-green"
suitHood = user.head
suitMask = user.wear_mask
@@ -77,9 +70,6 @@ Contents:
flags &= ~NODROP
suitHood.flags &= ~NODROP
suitMask.flags &= ~NODROP
- if(suitGlasses)
- suitGlasses.enabled = 0
- suitGlasses.icon_state = "cybereye-off"
suitGloves.flags &= ~NODROP
suitGloves.pickpocket = 0
suitShoes.flags &= ~NODROP
@@ -90,7 +80,6 @@ Contents:
suitHood = null
suitMask = null
- suitGlasses = null
suitGloves = null
suitShoes = null
suitOccupant = null
diff --git a/icons/mob/in-hand/swords.dmi b/icons/mob/in-hand/swords.dmi
index b4a7a6724d5..041632b0d06 100644
Binary files a/icons/mob/in-hand/swords.dmi and b/icons/mob/in-hand/swords.dmi differ
diff --git a/paradise.dme b/paradise.dme
index 11215a52a2a..9e79c090bc7 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -1459,7 +1459,6 @@
#include "code\modules\nano\nanoui.dm"
#include "code\modules\nano\modules\crew_monitor.dm"
#include "code\modules\ninja\energy_katana.dm"
-#include "code\modules\ninja\suit\eye.dm"
#include "code\modules\ninja\suit\gloves.dm"
#include "code\modules\ninja\suit\head.dm"
#include "code\modules\ninja\suit\mask.dm"