/obj/item/storage/bible name = "bible" desc = "Apply to head repeatedly." lefthand_file = 'icons/mob/inhands/religion_lefthand.dmi' righthand_file = 'icons/mob/inhands/religion_righthand.dmi' icon_state ="bible" throw_speed = 1 throw_range = 5 resistance_flags = FIRE_PROOF drop_sound = 'sound/items/handling/book_drop.ogg' pickup_sound = 'sound/items/handling/book_pickup.ogg' var/mob/affecting = null var/deity_name = "Christ" /// Is the sprite of this bible customisable var/customisable = FALSE /// Associative list of accociative lists of bible variants, used for the radial menu var/static/list/bible_variants = list( "Bible" = list("state" = "bible", "inhand" = "bible"), "Koran" = list("state" = "koran", "inhand" = "koran"), "Scrapbook" = list("state" = "scrapbook", "inhand" = "scrapbook"), "Creeper" = list("state" = "creeper", "inhand" = "generic_bible"), "White Bible" = list("state" = "white", "inhand" = "generic_bible"), "Holy Light" = list("state" = "holylight", "inhand" = "generic_bible"), "PlainRed" = list("state" = "athiest", "inhand" = "generic_bible"), "Tome" = list("state" = "tome", "inhand" = "generic_bible"), "The King in Yellow" = list("state" = "kingyellow", "inhand" = "kingyellow"), "Ithaqua" = list("state" = "ithaqua", "inhand" = "ithaqua"), "Scientology" = list("state" = "scientology", "inhand" = "scientology"), "the bible melts" = list("state" = "melted", "inhand" = "melted"), "Necronomicon" = list("state" = "necronomicon", "inhand" = "necronomicon"), "Greentext" = list("state" = "greentext", "inhand" = "greentext"), "Honkmother" = list("state" = "honk", "inhand" = "honk"), "Silentfather" = list("state" = "mime", "inhand" = "mime"), "Clockwork" = list("state" = "clock_bible", "inhand" = "clock_bible"), "Nanotrasen" = list("state" = "nanotrasen", "inhand" = "nanotrasen") ) /obj/item/storage/bible/suicide_act(mob/user) user.visible_message("[user] stares into [name] and attempts to transcend understanding of the universe!") 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 desc = "To be applied to the head repeatedly." /obj/item/storage/bible/booze/populate_contents() new /obj/item/reagent_containers/drinks/bottle/beer(src) new /obj/item/reagent_containers/drinks/bottle/beer(src) new /obj/item/stack/spacecash(src) new /obj/item/stack/spacecash(src) new /obj/item/stack/spacecash(src) //BS12 EDIT // All cult functionality moved to Null Rod /obj/item/storage/bible/proc/bless(mob/living/carbon/M) if(ishuman(M)) var/mob/living/carbon/human/H = M H.heal_overall_damage(10, 10) return /obj/item/storage/bible/attack__legacy__attackchain(mob/living/M, mob/living/user) add_attack_logs(user, M, "Hit with [src]") if(!(ishuman(user) || SSticker) && SSticker.mode.name != "monkey") to_chat(user, "You don't have the dexterity to do this!") return if(!HAS_MIND_TRAIT(user, TRAIT_HOLY)) to_chat(user, "The book sizzles in your hands.") user.take_organ_damage(0, 10) return if(HAS_TRAIT(user, TRAIT_CLUMSY) && prob(50)) to_chat(user, "[src] slips out of your hand and hits your head.") user.take_organ_damage(10) user.Paralyse(40 SECONDS) return if(M.stat != DEAD && ishuman(M)) var/mob/living/carbon/human/H = M if(prob(60)) bless(H) H.visible_message("[user] heals [H == user ? "[user.p_themselves()]" : "[H]"] with the power of [deity_name]!", "May the power of [deity_name] compel you to be healed!") playsound(loc, "punch", 25, TRUE, -1) else M.adjustBrainLoss(10) to_chat(M, "You feel dumber.") H.visible_message("[user] beats [H == user ? "[user.p_themselves()]" : "[H]"] over the head with [src]!") playsound(src.loc, "punch", 25, TRUE, -1) else M.visible_message("[user] smacks [M]'s lifeless corpse with [src].") playsound(src.loc, "punch", 25, TRUE, -1) /obj/item/storage/bible/afterattack__legacy__attackchain(atom/target, mob/user, proximity, params) if(!proximity) return if(isfloorturf(target)) to_chat(user, "You hit the floor with the bible.") if(HAS_MIND_TRAIT(user, TRAIT_HOLY)) for(var/obj/O in target) O.cult_reveal() if(istype(target, /obj/machinery/door/airlock)) to_chat(user, "You hit the airlock with the bible.") if(HAS_MIND_TRAIT(user, TRAIT_HOLY)) var/obj/airlock = target airlock.cult_reveal() if(HAS_MIND_TRAIT(user, TRAIT_HOLY) && target.reagents) if(target.reagents.has_reagent("water")) //blesses all the water in the holder to_chat(user, "You bless [target].") var/water2holy = target.reagents.get_reagent_amount("water") target.reagents.del_reagent("water") target.reagents.add_reagent("holywater", water2holy) if(target.reagents.has_reagent("unholywater")) //yeah yeah, copy pasted code - sue me to_chat(user, "You purify [target].") var/unholy2clean = target.reagents.get_reagent_amount("unholywater") target.reagents.del_reagent("unholywater") target.reagents.add_reagent("holywater", unholy2clean) /obj/item/storage/bible/attack_self__legacy__attackchain(mob/user) . = ..() if(!customisable || !HAS_MIND_TRAIT(user, TRAIT_HOLY)) return var/list/skins = list() for(var/I in bible_variants) var/icons = bible_variants[I] // Get the accociated list var/image/bible_image = image('icons/obj/storage.dmi', icon_state = icons["state"]) skins[I] = bible_image var/choice = show_radial_menu(user, src, skins, null, 40, CALLBACK(src, PROC_REF(radial_check), user), TRUE) if(!choice || !radial_check(user)) return var/choice_icons = bible_variants[choice] icon_state = choice_icons["state"] item_state = choice_icons["inhand"] customisable = FALSE // Carpet symbol icons are currently broken, so commented out until it's fixed /*var/carpet_dir switch(choice) if("Bible") carpet_dir = 2 if("Koran") carpet_dir = 4 if("Scientology") carpet_dir = 8 if(carpet_dir) for(var/area/station/service/chapel/main/A in world) for(var/turf/T in A.contents) if(T.icon_state == "carpetsymbol") T.dir = carpet_dir*/ SSblackbox.record_feedback("text", "religion_book", 1, "[choice]", 1) if(SSticker) SSticker.Bible_name = name SSticker.Bible_icon_state = icon_state SSticker.Bible_item_state = item_state /obj/item/storage/bible/proc/radial_check(mob/user) if(!HAS_MIND_TRAIT(user, TRAIT_HOLY) || !ishuman(user)) return FALSE var/mob/living/carbon/human/H = user if(!src || !H.is_in_hands(src) || H.incapacitated()) return FALSE return TRUE /obj/item/storage/bible/syndi name = "suspicious bible" desc = "For treading the line between cultist, contraband, and a hostile corporation." icon_state = "syndi"