2d2975f783
This just adds some vars that the refactor will use. Putting this in a separate PR prevent the damage refactor PR from becoming too big (number of files changed) and hard to read and review. Introduces the resistance_flags bitflag that replaces unacidable and burn_state. Moves the armor var from item to /obj level and gives specific armor values to many objects, the armor list also gets two new armor types: fire and acid, which will be used in the refactor. the new fire and acid armor values are given to plenty of items.
57 lines
2.0 KiB
Plaintext
57 lines
2.0 KiB
Plaintext
/obj/item/weapon/book/codex_gigas
|
|
name = "Codex Gigas"
|
|
icon_state ="demonomicon"
|
|
throw_speed = 1
|
|
throw_range = 10
|
|
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
|
|
author = "Forces beyond your comprehension"
|
|
unique = 1
|
|
title = "The codex gigas"
|
|
var/inUse = 0
|
|
|
|
|
|
|
|
|
|
|
|
/obj/item/weapon/book/codex_gigas/attack_self(mob/user)
|
|
if(is_blind(user))
|
|
return
|
|
if(ismonkey(user))
|
|
user << "<span class='notice'>You skim through the book but can't comprehend any of it.</span>"
|
|
return
|
|
if(inUse)
|
|
user << "<span class='notice'>Someone else is reading it.</span>"
|
|
if(ishuman(user))
|
|
var/mob/living/carbon/human/U = user
|
|
if(U.check_acedia())
|
|
user << "<span class='notice'>None of this matters, why are you reading this? You put the [title] down.</span>"
|
|
return
|
|
inUse = 1
|
|
var/devilName = copytext(sanitize(input(user, "What infernal being do you wish to research?", "Codex Gigas", null) as text),1,MAX_MESSAGE_LEN)
|
|
var/speed = 300
|
|
var/correctness = 85
|
|
var/willpower = 98
|
|
if(U.job in list("Librarian")) // the librarian is both faster, and more accurate than normal crew members at research
|
|
speed = 45
|
|
correctness = 100
|
|
willpower = 100
|
|
if(U.job in list("Captain", "Security Officer", "Head of Security", "Detective", "Warden"))
|
|
willpower = 99
|
|
if(U.job in list("Clown")) // WHO GAVE THE CLOWN A DEMONOMICON? BAD THINGS WILL HAPPEN!
|
|
willpower = 25
|
|
correctness -= U.getBrainLoss() *0.5 //Brain damage makes researching hard.
|
|
speed += U.getBrainLoss() * 3
|
|
user.visible_message("[user] opens [title] and begins reading intently.")
|
|
if(do_after(U, speed, 0, U))
|
|
var/usedName = devilName
|
|
if(!prob(correctness))
|
|
usedName += "x"
|
|
var/datum/devilinfo/devil = devilInfo(usedName, 0)
|
|
user << browse("Information on [devilName]<br><br><br>[lawlorify[LORE][devil.ban]]<br>[lawlorify[LORE][devil.bane]]<br>[lawlorify[LORE][devil.obligation]]<br>[lawlorify[LORE][devil.banish]]", "window=book[window_size != null ? ";size=[window_size]" : ""]")
|
|
inUse = 0
|
|
sleep(10)
|
|
if(!prob(willpower))
|
|
U.influenceSin()
|
|
onclose(user, "book")
|
|
|