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