mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2025-12-28 11:11:52 +00:00
179 lines
5.3 KiB
Plaintext
179 lines
5.3 KiB
Plaintext
/*
|
|
CONTAINS:
|
|
SCALPEL
|
|
CIRCULAR SAW
|
|
|
|
*/
|
|
|
|
/obj/item/weapon/scalpel/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
|
|
if(!istype(M, /mob))
|
|
return
|
|
|
|
if((usr.mutations & 16) && prob(50))
|
|
M << "\red You stab yourself in the eye."
|
|
M.sdisabilities |= 1
|
|
M.weakened += 4
|
|
M.bruteloss += 10
|
|
|
|
src.add_fingerprint(user)
|
|
|
|
if(!(locate(/obj/machinery/optable, M.loc) && M.resting))
|
|
return ..()
|
|
|
|
if(user.zone_sel.selecting == "head")
|
|
|
|
var/mob/living/carbon/human/H = M
|
|
if(istype(M, /mob/living/carbon/human) && ((H.head && H.head.flags & HEADCOVERSEYES) || (H.wear_mask && H.wear_mask.flags & MASKCOVERSEYES) || (H.glasses && H.glasses.flags & GLASSESCOVERSEYES)))
|
|
// you can't stab someone in the eyes wearing a mask!
|
|
user << "\blue You're going to need to remove that mask/helmet/glasses first."
|
|
return
|
|
|
|
switch(M:brain_op_stage)
|
|
if(0.0)
|
|
for(var/mob/O in viewers(M, null))
|
|
if(O == (user || M))
|
|
continue
|
|
if(M == user)
|
|
O.show_message(text("\red [user] begins to cut open his skull with [src]!"), 1)
|
|
else
|
|
O.show_message(text("\red [M] is beginning to have his head cut open with [src] by [user]."), 1)
|
|
|
|
if(M != user)
|
|
M << "\red [user] begins to cut open your head with [src]!"
|
|
user << "\red You cut [M]'s head open with [src]!"
|
|
else
|
|
user << "\red You begin to cut open your head with [src]!"
|
|
if(prob(25))
|
|
user << "\red You mess up!"
|
|
M.bruteloss += 15
|
|
|
|
if(istype(M, /mob/living/carbon/human))
|
|
var/datum/organ/external/affecting = M.organs["head"]
|
|
affecting.take_damage(7)
|
|
else
|
|
M.bruteloss += 7
|
|
|
|
M.updatehealth()
|
|
M:brain_op_stage = 1.0
|
|
if(2.0)
|
|
for(var/mob/O in viewers(M, null))
|
|
if(O == (user || M))
|
|
continue
|
|
if(M == user)
|
|
O.show_message(text("\red [user] begin to delicately remove the connections to his brain with [src]!"), 1)
|
|
else
|
|
O.show_message(text("\red [M] is having his connections to the brain delicately severed with [src] by [user]."), 1)
|
|
|
|
if(M != user)
|
|
M << "\red [user] begins to cut open your head with [src]!"
|
|
user << "\red You cut [M]'s head open with [src]!"
|
|
else
|
|
user << "\red You begin to delicately remove the connections to the brain with [src]!"
|
|
if(prob(25))
|
|
user << "\red You nick an artery!"
|
|
M.bruteloss += 75
|
|
|
|
if(istype(M, /mob/living/carbon/human))
|
|
var/datum/organ/external/affecting = M.organs["head"]
|
|
affecting.take_damage(7)
|
|
else
|
|
M.bruteloss += 7
|
|
|
|
M.updatehealth()
|
|
M:brain_op_stage = 3.0
|
|
else
|
|
..()
|
|
return
|
|
|
|
else if((!(user.zone_sel.selecting == "head")) || (!(user.zone_sel.selecting == "groin")) || (!(istype(M, /mob/living/carbon/human))))
|
|
return ..()
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// CIRCULAR SAW
|
|
|
|
/obj/item/weapon/circular_saw/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
|
|
if(!istype(M, /mob))
|
|
return
|
|
|
|
if((usr.mutations & 16) && prob(50))
|
|
M << "\red You cut out your eyes."
|
|
M.sdisabilities |= 1
|
|
M.weakened += 4
|
|
M.bruteloss += 10
|
|
|
|
src.add_fingerprint(user)
|
|
|
|
if(!(locate(/obj/machinery/optable, M.loc) && M.resting))
|
|
return ..()
|
|
|
|
if(user.zone_sel.selecting == "head")
|
|
|
|
var/mob/living/carbon/human/H = M
|
|
if(istype(M, /mob/living/carbon/human) && ((H.head && H.head.flags & HEADCOVERSEYES) || (H.wear_mask && H.wear_mask.flags & MASKCOVERSEYES) || (H.glasses && H.glasses.flags & GLASSESCOVERSEYES)))
|
|
// you can't stab someone in the eyes wearing a mask!
|
|
user << "\blue You're going to need to remove that mask/helmet/glasses first."
|
|
return
|
|
|
|
switch(M:brain_op_stage)
|
|
if(1.0)
|
|
for(var/mob/O in viewers(M, null))
|
|
if(O == (user || M))
|
|
continue
|
|
if(M == user)
|
|
O.show_message(text("\red [user] saws open his skull with [src]!"), 1)
|
|
else
|
|
O.show_message(text("\red [M] has his skull sawed open with [src] by [user]."), 1)
|
|
|
|
if(M != user)
|
|
M << "\red [user] begins to saw open your head with [src]!"
|
|
user << "\red You saw [M]'s head open with [src]!"
|
|
else
|
|
user << "\red You begin to saw open your head with [src]!"
|
|
if(prob(25))
|
|
user << "\red You mess up!"
|
|
M.bruteloss += 40
|
|
|
|
if(istype(M, /mob/living/carbon/human))
|
|
var/datum/organ/external/affecting = M.organs["head"]
|
|
affecting.take_damage(7)
|
|
else
|
|
M.bruteloss += 7
|
|
|
|
M.updatehealth()
|
|
M:brain_op_stage = 2.0
|
|
|
|
if(3.0)
|
|
for(var/mob/O in viewers(M, null))
|
|
if(O == (user || M))
|
|
continue
|
|
if(M == user)
|
|
O.show_message(text("\red [user] severs his brain's connection to the spine with [src]!"), 1)
|
|
else
|
|
O.show_message(text("\red [M] has his spine's connection to the brain severed with [src] by [user]."), 1)
|
|
|
|
if(M != user)
|
|
M << "\red [user] severs your brain's connection to the spine with [src]!"
|
|
user << "\red You sever [M]'s brain's connection to the spine with [src]!"
|
|
else
|
|
user << "\red You sever your brain's connection to the spine with [src]!"
|
|
|
|
M:brain_op_stage = 4.0
|
|
M.death()
|
|
|
|
var/obj/item/brain/B = new /obj/item/brain(M.loc)
|
|
B.owner = M
|
|
else
|
|
..()
|
|
return
|
|
|
|
|
|
else if((!(user.zone_sel.selecting == "head")) || (!(user.zone_sel.selecting == "groin")) || (!(istype(M, /mob/living/carbon/human))))
|
|
return ..()
|
|
|
|
return |