Files
VOREStation/code/game/objects/items/weapons/medical.dm

108 lines
2.5 KiB
Plaintext

/*
CONTAINS:
MEDICAL
*/
/obj/item/weapon/medical/examine()
set src in view(1)
if (src.amount <= 0)
del(src)
return
..()
usr << "\icon[src] \blue There [src.amount == 1 ? "is" : "are"] [src.amount] [src.name]\s left on the stack!"
/obj/item/weapon/medical/attack_hand(mob/user as mob)
if (user.r_hand == src || user.l_hand == src)
src.add_fingerprint(user)
var/obj/item/weapon/medical/split = new src.type(user)
split.amount = 1
src.amount--
if (user.hand)
user.l_hand = split
else
user.r_hand = split
split.layer = 20
split.add_fingerprint(user)
if (src.amount < 1)
del(src)
return
else
..()
/obj/item/weapon/medical/attackby(obj/item/weapon/medical/W as obj, mob/user as mob)
if (!istype(W, src.type))
return
if (W.amount == 5)
return
if (W.amount + src.amount > 5)
src.amount = (W.amount + src.amount) - 5
W.amount = 5
else
W.amount += src.amount
del(src)
/obj/item/weapon/medical/attack(mob/M as mob, mob/user as mob)
if (M.health < 0)
return
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 (user)
if (M != user)
for (var/mob/O in viewers(M, null))
O.show_message("\red [M] has been applied with [src] by [user]", 1)
else
var/t_himself = "itself"
if (user.gender == MALE)
t_himself = "himself"
else if (user.gender == FEMALE)
t_himself = "herself"
for (var/mob/O in viewers(M, null))
O.show_message("\red [M] applied [src] on [t_himself]", 1)
if (istype(M, /mob/living/carbon/human))
var/mob/living/carbon/human/H = M
var/datum/organ/external/affecting = H.organs["chest"]
if (istype(user, /mob/living/carbon/human))
var/mob/living/carbon/human/user2 = user
var/t = user2.zone_sel.selecting
if (t in list("eyes", "mouth"))
t = "head"
if (H.organs[t])
affecting = H.organs[t]
else
if (!istype(affecting, /datum/organ/external) || affecting:burn_dam <= 0)
affecting = H.organs["head"]
if (!istype(affecting, /datum/organ/external) || affecting:burn_dam <= 0)
affecting = H.organs["groin"]
if (affecting.heal_damage(src.heal_brute, src.heal_burn))
H.UpdateDamageIcon()
else
H.UpdateDamage()
else
M.bruteloss = max(0, M.bruteloss - (src.heal_brute/2))
M.fireloss = max(0, M.bruteloss - (src.heal_burn/2))
M.updatehealth()
src.amount--
if (src.amount <= 0)
del(src)