diff --git a/code/game/objects/items/implants/implant_honor.dm b/code/game/objects/items/implants/implant_honor.dm new file mode 100644 index 000000000000..32aa757218a8 --- /dev/null +++ b/code/game/objects/items/implants/implant_honor.dm @@ -0,0 +1,32 @@ +/obj/item/implant/honor + name = "honor implant" + desc = "For the honorable." + activated = 0 + +/obj/item/implant/honor/implant(mob/living/target, mob/user, silent = FALSE, force = FALSE) //Copied and adjusted from mindshields + if(..()) + if(!target.mind) + ADD_TRAIT(target, TRAIT_NOGUNS, "implant") + return TRUE + if(!silent) + to_chat(target, span_notice("You feel that the use of guns would bring you shame. You no longer think that you can hold the trigger.")) + ADD_TRAIT(target, TRAIT_NOGUNS, "implant") + return TRUE + +/obj/item/implant/honor/removed(mob/target, silent = FALSE, special = 0) + if(..()) + if(isliving(target)) + var/mob/living/L = target + REMOVE_TRAIT(L, TRAIT_NOGUNS, "implant") + if(target.stat != DEAD && !silent) + to_chat(target, span_boldnotice("Your mind no longer sees ranged weaponry as dishonorable. You can now bear the thought of pulling the trigger.")) + return TRUE + +/obj/item/implanter/honor + name = "implanter (honor)" + imp_type = /obj/item/implant/honor + +/obj/item/implantcase/honor + name = "implant case - 'Honor'" + desc = "A glass case containing a honorable implant for those who seek to not use guns." + imp_type = /obj/item/implant/honor diff --git a/code/modules/ninja/energy_katana.dm b/code/modules/ninja/energy_katana.dm index d397f9661760..e8c10dea3081 100644 --- a/code/modules/ninja/energy_katana.dm +++ b/code/modules/ninja/energy_katana.dm @@ -55,8 +55,25 @@ playsound(user, 'sound/weapons/blade1.ogg', 50, 1) target.emag_act(user) -/obj/item/energy_katana/pickup(mob/living/user) +/obj/item/energy_katana/pickup(mob/living/carbon/human/user) . = ..() + if(!is_ninja(user)) //stolen directly from the bloody bastard sword + if(HAS_TRAIT (user, TRAIT_SHOCKIMMUNE)) + to_chat(user, span_warning("[src] attempts to shock you.")) + user.electrocute_act(15,src) + return + if(user.gloves) + if(!user.gloves.siemens_coefficient) + to_chat(user, span_warning("[src] attempts to shock you.")) + user.electrocute_act(15,src) + return + else + to_chat(user, span_userdanger("[src] shocks you!")) + user.emote("scream") + user.electrocute_act(15,src) + user.dropItemToGround(src, TRUE) + user.Paralyze(50) + return jaunt.Grant(user, src) user.update_icons() playsound(src, 'sound/items/unsheath.ogg', 25, 1) diff --git a/code/modules/ninja/outfit.dm b/code/modules/ninja/outfit.dm index ad63f55b905e..928d7c0b15fe 100644 --- a/code/modules/ninja/outfit.dm +++ b/code/modules/ninja/outfit.dm @@ -13,7 +13,7 @@ r_pocket = /obj/item/tank/internals/emergency_oxygen internals_slot = SLOT_R_STORE belt = /obj/item/energy_katana - implants = list(/obj/item/implant/explosive) + implants = list(/obj/item/implant/explosive, /obj/item/implant/honor) /datum/outfit/ninja/post_equip(mob/living/carbon/human/H) diff --git a/yogstation.dme b/yogstation.dme index 64e9489b28fd..9a85da4ee593 100644 --- a/yogstation.dme +++ b/yogstation.dme @@ -1094,6 +1094,7 @@ #include "code\game\objects\items\implants\implant_explosive.dm" #include "code\game\objects\items\implants\implant_freedom.dm" #include "code\game\objects\items\implants\implant_greytide.dm" +#include "code\game\objects\items\implants\implant_honor.dm" #include "code\game\objects\items\implants\implant_krav_maga.dm" #include "code\game\objects\items\implants\implant_mindshield.dm" #include "code\game\objects\items\implants\implant_mindshieldtot.dm"