diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 757f036c691..dc84c1836dd 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -328,6 +328,9 @@ /atom/proc/emag_act() return +/atom/proc/fart_act(mob/living/M) + return FALSE + /atom/proc/rpd_act() return diff --git a/code/game/objects/items/weapons/storage/bible.dm b/code/game/objects/items/weapons/storage/bible.dm index eb778b6a280..db34f3ae2c8 100644 --- a/code/game/objects/items/weapons/storage/bible.dm +++ b/code/game/objects/items/weapons/storage/bible.dm @@ -14,6 +14,15 @@ user.dust() return OBLITERATION +/obj/item/storage/bible/fart_act(mob/living/M) + if(QDELETED(M) || M.stat == DEAD) + return + M.visible_message("[M] farts on \the [name]!") + M.visible_message("A mysterious force smites [M]!") + M.suiciding = TRUE + do_sparks(3, 1, M) + M.gib() + return TRUE // Don't run the fart emote /obj/item/storage/bible/booze name = "bible" diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 219ba9ca9eb..c23db2f5501 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -858,14 +858,10 @@ playsound(loc, 'sound/effects/snap.ogg', 50, 1) if("fart", "farts") - if(locate(/obj/item/storage/bible) in get_turf(src)) - to_chat(viewers(src), "[src] farts on the Bible!") - var/image/cross = image('icons/obj/storage.dmi', "bible") - var/adminbfmessage = "[bicon(cross)] Bible Fart: [key_name(src, 1)] ([ADMIN_QUE(src,"?")]) ([ADMIN_PP(src,"PP")]) ([ADMIN_VV(src,"VV")]) ([ADMIN_SM(src,"SM")]) ([admin_jump_link(src)]) (CA) (SMITE):" - for(var/client/X in GLOB.admins) - if(check_rights(R_EVENT, 0, X.mob)) - to_chat(X, adminbfmessage) - else + var/farted_on_thing = FALSE + for(var/atom/A in get_turf(src)) + farted_on_thing += A.fart_act(src) + if(!farted_on_thing) message = "[src] [pick("passes wind", "farts")]." m_type = 2 @@ -947,7 +943,7 @@ for(var/mob/M in GLOB.dead_mob_list) if(!M.client) - continue + continue if(isnewplayer(M)) continue