mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-01-23 15:33:34 +00:00
108 lines
2.5 KiB
Plaintext
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)
|