diff --git a/code/defines/obj/storage.dm b/code/defines/obj/storage.dm
index d59dc9bd9d9..9608ee8494d 100644
--- a/code/defines/obj/storage.dm
+++ b/code/defines/obj/storage.dm
@@ -167,6 +167,10 @@
flags = FPRINT | TABLEPASS
var/mob/affecting = null
+/obj/item/weapon/storage/bible/booze
+ name = "bible"
+ icon_state ="bible"
+
/obj/item/weapon/storage/mousetraps
name = "Pest-B-Gon Mousetraps"
desc = "WARNING: Keep out of reach of children."
diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm
index 553f4b5adb6..2cdef01b336 100644
--- a/code/defines/obj/weapon.dm
+++ b/code/defines/obj/weapon.dm
@@ -596,6 +596,7 @@
/obj/item/weapon/gun/energy/laser_gun/captain
icon_state = "caplaser"
+ desc = "This is an antique laser gun. All craftsmanship is of the highest quality. It is decorated with assistant leather and chrome. The object menaces with spikes of energy. On the item is an image of Space Station 13. The station is exploding."
force = 10
/obj/item/weapon/gun/revolver
diff --git a/code/game/jobs/jobprocs.dm b/code/game/jobs/jobprocs.dm
index 13c54b20f59..4c986c17f66 100644
--- a/code/game/jobs/jobprocs.dm
+++ b/code/game/jobs/jobprocs.dm
@@ -265,7 +265,7 @@
switch(rank)
if ("Chaplain")
- src.equip_if_possible(new /obj/item/weapon/storage/bible(src), slot_l_hand)
+ src.equip_if_possible(new /obj/item/weapon/storage/bible/booze(src), slot_l_hand)
src.equip_if_possible(new /obj/item/device/pda/chaplain(src), slot_belt)
src.equip_if_possible(new /obj/item/clothing/under/rank/chaplain(src), slot_w_uniform)
src.equip_if_possible(new /obj/item/clothing/shoes/black(src), slot_shoes)
diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm
index 9b49611fafd..a8961d5014d 100644
--- a/code/game/machinery/computer/communications.dm
+++ b/code/game/machinery/computer/communications.dm
@@ -394,11 +394,9 @@
if(ticker.mode.name == "revolution" || ticker.mode.name == "AI malfunction" || ticker.mode.name == "confliction")
user << "Centcom will not allow the shuttle to be called."
return
- /*
if(ticker.mode.name == "nuclear emergency" && world.time < 6000)
user << "Centcom will not allow the shuttle to be called."
return
- */
emergency_shuttle.incall()
world << "\blue Alert: The emergency shuttle has been called. It will arrive in [round(emergency_shuttle.timeleft()/60)] minutes."
diff --git a/code/game/magic/library.dm b/code/game/magic/library.dm
index 9b17b9c9613..0fd6fb02854 100644
--- a/code/game/magic/library.dm
+++ b/code/game/magic/library.dm
@@ -360,6 +360,8 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f
anchored = 1
density = 1
var
+ emagged = 0
+ arcanecheckout = 0
screenstate = 0 // 0 - Main Menu, 1 - Inventory, 2 - Checked Out, 3 - Check Out a Book
buffer_book
buffer_mob
@@ -380,6 +382,15 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f
dat += "3. Check out a Book
"
dat += "4. Connect to External Archive
"
dat += "5. Upload New Title to Archive
"
+ dat += "6. Print a Bible
"
+ if(src.emagged)
+ dat += "7. Access the Forbidden Lore Vault
"
+ if(src.arcanecheckout)
+ new /obj/item/weapon/tome(src.loc)
+ user << "Your sanity barely endures the seconds spent in the vault's browsing window. The only thing to remind you of this when you stop browsing is a dusty old tome sitting on the desk. You don't really remember printing it."
+ for (var/mob/V in hearers(src))
+ V.show_message("[usr] stares at the blank screen for a few moments, his expression frozen in fear. When he finally awakens from it, he looks a lot older.", 2)
+ src.arcanecheckout = 0
if(1)
// Inventory
dat += "
"
+ dat += "Yes.
"
+ dat += "No.
"
//dat += "Close
"
user << browse(dat, "window=library")
onclose(user, "library")
/obj/machinery/librarycomp/attackby(obj/item/weapon/W as obj, mob/user as mob)
+ if (src.density && istype(W, /obj/item/weapon/card/emag))
+ src.emagged = 1
if(istype(W, /obj/item/weapon/barcodescanner))
var/obj/item/weapon/barcodescanner/scanner = W
scanner.computer = src
@@ -488,6 +506,13 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f
screenstate = 4
if("5")
screenstate = 5
+ if("6")
+ new /obj/item/weapon/storage/bible(src.loc)
+ if("7")
+ screenstate = 7
+ if(href_list["arccheckout"])
+ src.arcanecheckout = 1
+ src.screenstate = 0
if(href_list["increasetime"])
checkoutperiod += 1
if(href_list["decreasetime"])
diff --git a/code/game/objects/storage/bible.dm b/code/game/objects/storage/bible.dm
index 9cae8c7a8c0..d18f52acbea 100644
--- a/code/game/objects/storage/bible.dm
+++ b/code/game/objects/storage/bible.dm
@@ -1,4 +1,4 @@
-/obj/item/weapon/storage/bible/New()
+/obj/item/weapon/storage/bible/booze/New()
..()
new /obj/item/weapon/reagent_containers/food/drinks/beer(src)
new /obj/item/weapon/reagent_containers/food/drinks/beer(src)
diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm
index b3da15a9096..0e42cbd39d9 100644
--- a/code/modules/mob/living/carbon/human/emote.dm
+++ b/code/modules/mob/living/carbon/human/emote.dm
@@ -15,6 +15,11 @@
var/message
switch(act)
+ if ("airguitar")
+ if (!src.restrained())
+ message = "[src] is strumming the air and headbanging like a safari chimp."
+ m_type = 1
+
if ("blink")
message = "[src] blinks."
m_type = 1