mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-01-11 01:51:51 +00:00
Note for coders: in order to help with seaching of health-related bugs I have moved many procs from /mob/ under /mob/living/. Also, done some clean up and rearranging. Results: -admin rejuvenating now works again; -people screams if getting creamated while still alive; -diseases actually loose your health; -monkeys wearing masks receive protection from acids as humans did; -and other minor fixes and improvements. Bugfix for imbuing a talisman. RD now spawns with only 2 pens instead of 3. Audible emotions can be heard by people outside of locker/other container. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1446 316c924e-a436-60f5-8080-3fe189b3f50e
105 lines
3.3 KiB
Plaintext
105 lines
3.3 KiB
Plaintext
/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)
|
|
new /obj/item/weapon/spacecash(src)
|
|
new /obj/item/weapon/spacecash(src)
|
|
new /obj/item/weapon/spacecash(src)
|
|
|
|
/obj/item/weapon/storage/bible/proc/bless(mob/living/carbon/M as mob)
|
|
var/mob/living/carbon/human/H = M
|
|
var/heal_amt = 10
|
|
for(var/A in H.organs)
|
|
var/datum/organ/external/affecting = null
|
|
if(!H.organs[A]) continue
|
|
affecting = H.organs[A]
|
|
if(!istype(affecting, /datum/organ/external)) continue
|
|
if(affecting.heal_damage(heal_amt, heal_amt))
|
|
H.UpdateDamageIcon()
|
|
else
|
|
H.UpdateDamage()
|
|
return
|
|
|
|
/obj/item/weapon/storage/bible/attack(mob/M as mob, mob/living/user as mob)
|
|
|
|
var/chaplain = 0
|
|
if(user.mind && (user.mind.assigned_role == "Chaplain"))
|
|
chaplain = 1
|
|
|
|
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(!chaplain)
|
|
user << "\red The book sizzles in your hands."
|
|
user.take_organ_damage(0,10)
|
|
return
|
|
|
|
if ((user.mutations & 16) && prob(50))
|
|
user << "\red The [src] slips out of your hand and hits your head."
|
|
user.take_organ_damage(10)
|
|
user.paralysis += 20
|
|
return
|
|
|
|
// if(..() == BLOCKED)
|
|
// return
|
|
|
|
if (M.stat !=2)
|
|
if (prob(10))
|
|
if(M.mind in ticker.mode.cult)
|
|
if (ticker.mode.name == "cult")
|
|
ticker.mode:remove_cultist(M.mind)
|
|
else
|
|
ticker.mode.cult -= M.mind
|
|
if ((istype(M, /mob/living/carbon/human) && prob(60)))
|
|
bless(M)
|
|
for(var/mob/O in viewers(M, null))
|
|
O.show_message(text("\red <B>[] heals [] with the power of [src.deity_name]!</B>", user, M), 1)
|
|
M << "\red May the power of [src.deity_name] compel you to be healed!"
|
|
playsound(src.loc, "punch", 25, 1, -1)
|
|
else
|
|
if(ishuman(M) && !istype(M:head, /obj/item/clothing/head/helmet))
|
|
M.brainloss += 10
|
|
M << "\red You feel dumber."
|
|
for(var/mob/O in viewers(M, null))
|
|
O.show_message(text("\red <B>[] beats [] over the head with []!</B>", user, M, src), 1)
|
|
playsound(src.loc, "punch", 25, 1, -1)
|
|
else if(M.stat == 2)
|
|
for(var/mob/O in viewers(M, null))
|
|
O.show_message(text("\red <B>[] smacks []'s lifeless corpse with [].</B>", 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/rune/proc/revealrunes)(src)
|
|
|
|
/obj/item/weapon/storage/bible/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
|
//..()
|
|
if (istype(W, /obj/item/weapon/storage/bible))
|
|
return
|
|
if (src.contents.len >= 7)
|
|
return
|
|
if (W.w_class > 3)
|
|
return
|
|
var/t
|
|
for(var/obj/item/weapon/O in src)
|
|
t += O.w_class
|
|
//Foreach goto(46)
|
|
t += W.w_class
|
|
if (t > 5)
|
|
|
|
user << "You cannot fit the item inside. (Remove larger classed items)"
|
|
return
|
|
playsound(src.loc, "rustle", 50, 1, -5)
|
|
user.u_equip(W)
|
|
W.loc = src
|
|
if ((user.client && user.s_active != src))
|
|
user.client.screen -= W
|
|
src.orient2hud(user)
|
|
W.dropped(user)
|
|
add_fingerprint(user)
|
|
return
|
|
|