diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 0f3e5536624..8c06feee04a 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -35,12 +35,52 @@ icon_state = "nullrod" item_state = "nullrod" flags = FPRINT | ONBELT | TABLEPASS - force = 15 + force = 10 throw_speed = 1 throw_range = 4 throwforce = 10 w_class = 1 +/obj/item/weapon/nullrod/attack(mob/M as mob, mob/living/user as mob) + + M.attack_log += text("\[[time_stamp()]\] Has been attacked with [src.name] by [user.name] ([user.ckey])") + user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to attack [M.name] ([M.ckey])") + + log_admin("ATTACK: [user] ([user.ckey]) attacked [M] ([M.ckey]) with [src].") + message_admins("ATTACK: [user] ([user.ckey]) attacked [M] ([M.ckey]) with [src].") + log_attack("[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") + + if (!(istype(user, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey") + user << "\red You don't have the dexterity to do this!" + return + + if ((user.mutations & CLUMSY) && prob(50)) + user << "\red The rod slips out of your hand and hits your head." + user.take_organ_damage(10) + user.Paralyse(20) + return + + if (M.stat !=2) + if((M.mind in ticker.mode.cult) && prob(33)) + M << "\red The power of [src] clears your mind of the cult's influence!" + user << "\red You wave [src] over [M]'s head and see their eyes become clear, their mind returning to normal." + ticker.mode.remove_cultist(M.mind) + for(var/mob/O in viewers(M, null)) + O.show_message(text("\red [] waves [] over []'s head.", user, src, M), 1) + else if(prob(10)) + user << "\red The rod slips in your hand." + ..() + else + user << "\red The rod appears to do nothing." + for(var/mob/O in viewers(M, null)) + O.show_message(text("\red [] waves [] over []'s head.", user, src, M), 1) + return + +/obj/item/weapon/nullrod/afterattack(atom/A, mob/user as mob) + if (istype(A, /turf/simulated/floor)) + user << "\blue You hit the floor with the [src]." + call(/obj/effect/rune/proc/revealrunes)(src) + /*/obj/item/weapon/sord name = "\improper SORD" desc = "This thing is so unspeakably shitty you are having a hard time even holding it." diff --git a/code/game/magic/cultist/ritual.dm b/code/game/magic/cultist/ritual.dm index 24e66288dcd..c8924d62c7d 100644 --- a/code/game/magic/cultist/ritual.dm +++ b/code/game/magic/cultist/ritual.dm @@ -126,9 +126,8 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology", user << "You retrace your steps, carefully undoing the lines of the rune." del(src) return - else if(istype(I, /obj/item/weapon/storage/bible) && usr.mind && (usr.mind.assigned_role == "Chaplain")) - var/obj/item/weapon/storage/bible/bible = I - user << "\blue You banish the vile magic with the blessing of [bible.deity_name]!" + else if(istype(I, /obj/item/weapon/nullrod)) + user << "\blue You disrupt the vile magic with the deadening field of the null rod!" del(src) return return @@ -502,7 +501,7 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology", if(prob(C*5-105-(runedec-ticker.mode.cult.len)*5)) //including the useless rune at the secret room, shouldn't count against the limit - Urist usr.emote("scream") user << "\red A tear momentarily appears in reality. Before it closes, you catch a glimpse of that which lies beyond. That proves to be too much for your mind." - usr.gib(1) + usr.gib() return if("No") return diff --git a/code/game/objects/storage/bible.dm b/code/game/objects/storage/bible.dm index 38a22b00774..63a6edb8bd7 100644 --- a/code/game/objects/storage/bible.dm +++ b/code/game/objects/storage/bible.dm @@ -16,6 +16,7 @@ new /obj/item/weapon/reagent_containers/pill/antitox/tajaran(src) new /obj/item/clothing/suit/monk(src) +/* // All cult functionality moved to Null Rod /obj/item/weapon/storage/bible/proc/bless(mob/living/carbon/M as mob) if(ishuman(M)) var/mob/living/carbon/human/H = M @@ -83,12 +84,12 @@ O.show_message(text("\red [] smacks []'s lifeless corpse with [].", user, M, src), 1) playsound(src.loc, "punch", 25, 1, -1) return - +*/ /obj/item/weapon/storage/bible/afterattack(atom/A, mob/user as mob) - if (istype(A, /turf/simulated/floor)) - user << "\blue You hit the floor with the bible." - if(user.mind && (user.mind.assigned_role == "Chaplain")) - call(/obj/effect/rune/proc/revealrunes)(src) +// if (istype(A, /turf/simulated/floor)) +// user << "\blue You hit the floor with the bible." +// if(user.mind && (user.mind.assigned_role == "Chaplain")) +// call(/obj/effect/rune/proc/revealrunes)(src) if(user.mind && (user.mind.assigned_role == "Chaplain")) if(A.reagents && A.reagents.has_reagent("water")) //blesses all the water in the holder user << "\blue You bless [A]." diff --git a/maps/tgstation.2.0.8.dmm b/maps/tgstation.2.0.8.dmm index c63cee784f8..064e2442c39 100755 --- a/maps/tgstation.2.0.8.dmm +++ b/maps/tgstation.2.0.8.dmm @@ -1956,7 +1956,7 @@ "aLF" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/chapel/office) "aLG" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 1},/obj/structure/table/woodentable,/obj/structure/disposalpipe/segment,/obj/machinery/light/lamp/green{pixel_x = 1; pixel_y = 5},/obj/effect/deskclutter,/turf/simulated/floor{dir = 8; icon_state = "carpetside"},/area/chapel/office) "aLH" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/briefcase,/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/chapel/office) -"aLI" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater,/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/chapel/office) +"aLI" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater,/obj/item/weapon/nullrod,/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/chapel/office) "aLJ" = (/turf/simulated/floor{dir = 4; icon_state = "carpetside"},/area/chapel/office) "aLK" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "escape"},/area/hallway/secondary/exit) "aLL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/hallway/secondary/exit)