mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 03:57:13 +01:00
Merge branch 'master' of github.com:Baystation12/Baystation12
This commit is contained in:
@@ -119,8 +119,8 @@ MASS SPECTROMETER
|
||||
var/mob/living/carbon/human/H = M
|
||||
for(var/name in H.organs)
|
||||
var/datum/organ/external/e = H.organs[name]
|
||||
if(e.broken)
|
||||
user.show_message(text("\red Bone fractures detected. Advanced scanner required for location."), 1)
|
||||
if(e.status & BROKEN)
|
||||
user.show_message("\red Bone fractures detected. Advanced scanner required for location.", 1)
|
||||
break
|
||||
if(ishuman(M))
|
||||
if(M:vessel)
|
||||
|
||||
@@ -398,7 +398,7 @@
|
||||
return
|
||||
|
||||
var/datum/organ/external/head = H.organs["head"]
|
||||
if(head.destroyed)
|
||||
if(head.status & DESTROYED)
|
||||
user << "\blue Put it where? There's no head."
|
||||
|
||||
//since these people will be dead M != usr
|
||||
|
||||
@@ -97,13 +97,13 @@
|
||||
if (user.hand)
|
||||
if(ishuman(user))
|
||||
var/datum/organ/external/temp = user:organs["l_hand"]
|
||||
if(temp.destroyed)
|
||||
if(temp.status & DESTROYED)
|
||||
user << "\blue Yo- wait a minute."
|
||||
return
|
||||
else
|
||||
if(ishuman(user))
|
||||
var/datum/organ/external/temp = user:organs["r_hand"]
|
||||
if(temp.destroyed)
|
||||
if(temp.status & DESTROYED)
|
||||
user << "\blue Yo- wait a minute."
|
||||
|
||||
if (istype(src.loc, /obj/item/weapon/storage))
|
||||
@@ -136,7 +136,7 @@
|
||||
if (user.hand)
|
||||
if(ishuman(user))
|
||||
var/datum/organ/external/temp = user:organs["l_hand"]
|
||||
if(!temp.destroyed)
|
||||
if(!(temp.status & DESTROYED))
|
||||
user.l_hand = src
|
||||
else
|
||||
user << "\blue You pick \the [src] up with your ha- wait a minute."
|
||||
@@ -148,7 +148,7 @@
|
||||
else
|
||||
if(ishuman(user))
|
||||
var/datum/organ/external/temp = user:organs["r_hand"]
|
||||
if(!temp.destroyed)
|
||||
if(!(temp.status & DESTROYED))
|
||||
user.r_hand = src
|
||||
else
|
||||
user << "\blue You pick \the [src] up with your ha- wait a minute."
|
||||
@@ -176,13 +176,13 @@
|
||||
if (user.hand)
|
||||
if(ismonkey(user))
|
||||
var/datum/organ/external/temp = user:organs["l_hand"]
|
||||
if(temp.destroyed)
|
||||
if(temp.status & DESTROYED)
|
||||
user << "\blue Yo- wait a minute."
|
||||
return
|
||||
else
|
||||
if(ismonkey(user))
|
||||
var/datum/organ/external/temp = user:organs["r_hand"]
|
||||
if(temp.destroyed)
|
||||
if(temp.status & DESTROYED)
|
||||
user << "\blue Yo- wait a minute."
|
||||
|
||||
if (istype(src.loc, /obj/item/weapon/storage))
|
||||
|
||||
@@ -26,20 +26,22 @@
|
||||
if (M != user)
|
||||
user.visible_message("\red \The [user] tries to implant \the [M] with \the [src]!","\red You try to implant \the [M] with \the [src]!")
|
||||
else
|
||||
user.visible_message("\red \The [user] tries to implant [user.get_gender_form("itself")] with \the [src]!","\red You try to implant yourself with \the [src]!")
|
||||
user.visible_message("\red \The [user] tries to implant [user.get_visible_gender() == MALE ? "himself" : user.get_visible_gender() == FEMALE ? "herself" : "themselves"] with \the [src]!","\red You try to implant yourself with \the [src]!")
|
||||
if(!do_mob(user, M,60))
|
||||
return
|
||||
if(hasorgans(M))
|
||||
var/datum/organ/external/target = M:get_organ(check_zone(user.zone_sel.selecting))
|
||||
if(target.destroyed)
|
||||
if(target.status & DESTROYED)
|
||||
user << "What [target.display_name]?"
|
||||
return
|
||||
if(!target.implant)
|
||||
target.implant = list()
|
||||
target.implant += imp
|
||||
imp.loc = target
|
||||
if (M != user)
|
||||
user.visible_message("\red \The [user] implants \the [M]'s [target.display_name] with \the [src]!","\red You implant \the [M]'s [target.display_name] with \the [src]!")
|
||||
else
|
||||
user.visible_message("\red \The [user] implants [user.get_gender_form("its")] own [target.display_name] with \the [src]!","\red You implant your [target.display_name] with \the [src]!")
|
||||
user.visible_message("\red \The [user] implants [user.get_visible_gender() == MALE ? "his" : user.get_visible_gender() == FEMALE ? "her" : "their"] own [target.display_name] with \the [src]!","\red You implant your [target.display_name] with \the [src]!")
|
||||
M.attack_log += text("\[[time_stamp()]\] <font color='orange'> Implanted with [src] ([imp]) by [user] ([user.ckey])</font>")
|
||||
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src] ([imp]) to implant [M] ([M.ckey])</font>")
|
||||
log_admin("ATTACK: [user] ([user.ckey]) implanted [M] ([M.ckey]) with [src].")
|
||||
|
||||
@@ -8,8 +8,22 @@ MEDICAL
|
||||
|
||||
/obj/item/stack/medical/attack(mob/living/carbon/M as mob, mob/user as mob)
|
||||
if (M.stat == 2)
|
||||
user << "\red \The [M] is dead, you cannot help [M.get_gender_form("it")]!"
|
||||
var/t_him = "it"
|
||||
if (M.gender == MALE)
|
||||
t_him = "him"
|
||||
else if (M.gender == FEMALE)
|
||||
t_him = "her"
|
||||
user << "\red \The [M] is dead, you cannot help [t_him]!"
|
||||
return
|
||||
if (M.health < 50)
|
||||
var/t_him = "it"
|
||||
if (M.gender == MALE)
|
||||
t_him = "him"
|
||||
else if (M.gender == FEMALE)
|
||||
t_him = "her"
|
||||
user << "\red \The [M] is wounded badly, this item cannot help [t_him]!"
|
||||
return
|
||||
|
||||
|
||||
if (!istype(M))
|
||||
user << "\red \The [src] cannot be applied to \the [M]!"
|
||||
@@ -21,113 +35,64 @@ MEDICAL
|
||||
user << "\red You don't have the dexterity to do this!"
|
||||
return 1
|
||||
|
||||
|
||||
|
||||
var/stoppedblood = 0
|
||||
if(hasorgans(M))
|
||||
var/datum/organ/external/affecting = M:get_organ("chest")
|
||||
if (istype(M, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/datum/organ/external/affecting = H.get_organ("chest")
|
||||
|
||||
if(istype(user, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/user2 = user
|
||||
affecting = M:get_organ(check_zone(user2.zone_sel.selecting))
|
||||
affecting = H.get_organ(check_zone(user2.zone_sel.selecting))
|
||||
else
|
||||
if(!istype(affecting, /datum/organ/external) || affecting:burn_dam <= 0)
|
||||
affecting = M:get_organ("head")
|
||||
if(affecting.destroyed && !affecting.gauzed)
|
||||
user.visible_message("\red \The [user] does [user.get_gender_form("its")] best to stem \the [M]'s bleeding from [M.get_gender_form("its")] stump.", "\red You do your best to stop the bleeding from \the [M]'s stump.", "\red You hear something like gauze being ripped.")
|
||||
affecting.gauzed = 1
|
||||
if(!istype(affecting, /datum/organ/external))
|
||||
affecting = H.get_organ("head")
|
||||
|
||||
if (affecting.heal_damage(src.heal_brute, src.heal_burn))
|
||||
H.UpdateDamageIcon()
|
||||
if (user)
|
||||
if (M != user)
|
||||
user.visible_message("\red \The [H]'s [affecting.display_name] has been bandaged with \a [src] by \the [user].",\
|
||||
"\red You bandage \the [H]'s [affecting.display_name] with \the [src].",\
|
||||
"You hear gauze being ripped.")
|
||||
else
|
||||
var/t_his = "its"
|
||||
if (user.gender == MALE)
|
||||
t_his = "his"
|
||||
else if (user.gender == FEMALE)
|
||||
t_his = "her"
|
||||
user.visible_message("\red \The [user] bandages [t_his] [affecting.display_name] with \a [src].",\
|
||||
"\red You bandage your [affecting.display_name] with \the [src].",\
|
||||
"You hear gauze being ripped.")
|
||||
use(1)
|
||||
return
|
||||
else
|
||||
user << "Nothing to patch up!"
|
||||
|
||||
if(affecting.robot)
|
||||
user << "Medical equipment for a robot arm? Better get a welder..."
|
||||
return
|
||||
|
||||
for(var/datum/organ/wound/W in affecting.wounds)
|
||||
if(W.bleeding || !W.is_healing)
|
||||
if(heal_brute && W.wound_type == 2)
|
||||
continue
|
||||
if(heal_burn && W.wound_type < 2)
|
||||
continue
|
||||
if(W.wound_size > 3 && (W.bleeding || !W.is_healing))
|
||||
if(stoppedblood)
|
||||
stoppedblood += 1
|
||||
break
|
||||
W.bleeding = 0
|
||||
W.is_healing = 1
|
||||
stoppedblood = 1
|
||||
else if(W.wound_size <= 3)
|
||||
if(stoppedblood)
|
||||
stoppedblood += 1
|
||||
break
|
||||
W.stopbleeding()
|
||||
stoppedblood = 1
|
||||
|
||||
if (user && stoppedblood)
|
||||
if (M != user)
|
||||
user.visible_message("\red \The [user] [heal_burn? "salves" : "bandages"] [stoppedblood - 1 ? "some of" : "the last of"] \the [M]'s cuts with \the [src].", "\red You [heal_burn? "salve" : "bandage up"] [stoppedblood - 1 ? "some of" : "the last of"] \the [M]'s [heal_burn? "burns" : "wounds"].", "\red You hear something like gauze being ripped.")
|
||||
else
|
||||
user.visible_message("\red \The [user] [heal_burn? "salves" : "bandages"] [stoppedblood - 1 ? "some of" : "the last of"] [user.get_gender_form("its")] own cuts with \the [src].", "\red You [heal_burn? "salve" : "bandage up"] [stoppedblood - 1 ? "some of" : "the last of"] your [heal_burn? "burns" : "wounds"].", "\red You hear something like gauze being ripped.")
|
||||
else if(user)
|
||||
user << "\red Nothing to patch up!"
|
||||
return
|
||||
M.updatehealth()
|
||||
else
|
||||
M.heal_organ_damage((src.heal_brute/2), (src.heal_burn/2))
|
||||
|
||||
use(1)
|
||||
|
||||
// if (M.health < 50 && !stoppedblood)
|
||||
// var/t_him = "it"
|
||||
// if (M.gender == MALE)
|
||||
// t_him = "him"
|
||||
// else if (M.gender == FEMALE)
|
||||
// t_him = "her"
|
||||
// user << "\red \The [M] is wounded badly, this item cannot help [t_him]!"
|
||||
// return
|
||||
|
||||
// if (user)
|
||||
// if (M != user)
|
||||
// user.visible_message( \
|
||||
// "\blue [M] has been applied with [src] by [user].", \
|
||||
// "\blue You apply \the [src] to [M]." \
|
||||
// )
|
||||
// else
|
||||
// var/t_himself = "itself"
|
||||
// if (user.gender == MALE)
|
||||
// t_himself = "himself"
|
||||
// else if (user.gender == FEMALE)
|
||||
// t_himself = "herself"
|
||||
|
||||
// user.visible_message( \
|
||||
// "\blue [M] applied [src] on [t_himself].", \
|
||||
// "\blue You apply \the [src] on yourself." \
|
||||
// )
|
||||
|
||||
// if (istype(M, /mob/living/carbon/human))
|
||||
// var/mob/living/carbon/human/H = M
|
||||
// var/datum/organ/external/affecting = H.get_organ("chest")
|
||||
|
||||
// if(istype(user, /mob/living/carbon/human))
|
||||
// var/mob/living/carbon/human/user2 = user
|
||||
// affecting = H.get_organ(check_zone(user2.zone_sel.selecting))
|
||||
// else
|
||||
// if(!istype(affecting, /datum/organ/external) || affecting:burn_dam <= 0)
|
||||
// affecting = H.get_organ("head")
|
||||
//
|
||||
// if (affecting.heal_damage(src.heal_brute, src.heal_burn))
|
||||
// H.UpdateDamageIcon()
|
||||
// M.updatehealth()
|
||||
|
||||
|
||||
|
||||
use(1)
|
||||
|
||||
/obj/item/stack/medical/advanced/attack(mob/living/carbon/M as mob, mob/user as mob)
|
||||
if (M.stat == 2)
|
||||
user << "\red \The [M] is dead, you cannot help [M.get_gender_form("it")]!"
|
||||
var/t_him = "it"
|
||||
if (M.gender == MALE)
|
||||
t_him = "him"
|
||||
else if (M.gender == FEMALE)
|
||||
t_him = "her"
|
||||
user << "\red \The [M] is dead, you cannot help [t_him]!"
|
||||
return
|
||||
if (M.health < 0)
|
||||
var/t_him = "it"
|
||||
if (M.gender == MALE)
|
||||
t_him = "him"
|
||||
else if (M.gender == FEMALE)
|
||||
t_him = "her"
|
||||
user << "\red \The [M] is wounded badly, this item cannot help [t_him]!"
|
||||
return
|
||||
|
||||
|
||||
if (!istype(M))
|
||||
user << "\red \The [src] cannot be applied to \the [M]!"
|
||||
user << "\red \The [src] cannot be applied to [M]!"
|
||||
return 1
|
||||
|
||||
if ( ! (istype(user, /mob/living/carbon/human) || \
|
||||
@@ -136,50 +101,37 @@ MEDICAL
|
||||
user << "\red You don't have the dexterity to do this!"
|
||||
return 1
|
||||
|
||||
var/stoppedblood = 0
|
||||
if(hasorgans(M))
|
||||
var/datum/organ/external/affecting = M:get_organ("chest")
|
||||
if (istype(M, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/datum/organ/external/affecting = H.get_organ("chest")
|
||||
|
||||
if(istype(user, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/user2 = user
|
||||
affecting = M:get_organ(check_zone(user2.zone_sel.selecting))
|
||||
affecting = H.get_organ(check_zone(user2.zone_sel.selecting))
|
||||
else
|
||||
if(!istype(affecting, /datum/organ/external) || affecting:burn_dam <= 0)
|
||||
affecting = M:get_organ("head")
|
||||
if(affecting.destroyed && !affecting.gauzed)
|
||||
M.visible_message("\red \The [user] does their best to stem \the [M]'s bleeding from [M.get_gender_form("its")] stump.", "\red You do your best to stop the bleeding from \the [M]'s stump.", "\red You hear something like gauze being ripped.")
|
||||
affecting.gauzed = 1
|
||||
affecting = H.get_organ("head")
|
||||
|
||||
if (affecting.heal_damage(src.heal_brute, src.heal_burn))
|
||||
H.UpdateDamageIcon()
|
||||
if (user)
|
||||
if (M != user)
|
||||
user.visible_message("\red \The [H]'s [affecting.display_name] has been bandaged with \a [src] by \the [user].",\
|
||||
"\red You bandage \the [H]'s [affecting.display_name] with \the [src].",\
|
||||
"You hear gauze being ripped.")
|
||||
else
|
||||
var/t_his = "its"
|
||||
if (user.gender == MALE)
|
||||
t_his = "his"
|
||||
else if (user.gender == FEMALE)
|
||||
t_his = "her"
|
||||
user.visible_message("\red \The [user] bandages [t_his] [affecting.display_name] with \a [src].",\
|
||||
"\red You bandage your [affecting.display_name] with \the [src].",\
|
||||
"You hear gauze being ripped.")
|
||||
use(1)
|
||||
return
|
||||
if(affecting.robot)
|
||||
user << "Medical equipment for a robot arm? Better get a welder..."
|
||||
return
|
||||
|
||||
for(var/datum/organ/wound/W in affecting.wounds)
|
||||
if(W.bleeding || !W.healing_state)
|
||||
if(heal_brute && W.wound_type == 2)
|
||||
continue
|
||||
if(heal_burn && W.wound_type < 2)
|
||||
continue
|
||||
if(stoppedblood)
|
||||
stoppedblood++
|
||||
break
|
||||
W.stopbleeding()
|
||||
stoppedblood = 1
|
||||
|
||||
if (user && stoppedblood)
|
||||
if (M != user)
|
||||
user.visible_message("\red \The [user] [heal_burn? "salves" : "bandages"] [stoppedblood - 1 ? "some of" : "the last of"] \the [M]'s cuts with \the [src].",\
|
||||
"\red You [heal_burn? "salve" : "bandage up"] [stoppedblood - 1 ? "some of" : "the last of"] \the [M]'s [heal_burn? "burns" : "wounds"].",\
|
||||
"\red You hear something like gauze being ripped.")
|
||||
else
|
||||
user.visible_message("\red \The [user] [heal_burn? "salves" : "bandages"] [stoppedblood - 1 ? "some of" : "the last of"] [user.get_gender_form("its")] own cuts with \the [src].",\
|
||||
"\red You [heal_burn? "salve" : "bandage up"] [stoppedblood - 1 ? "some of" : "the last of"] your [heal_burn? "burns" : "wounds"].",\
|
||||
"\red You hear something like gauze being ripped.")
|
||||
else if(user)
|
||||
user << "\red Nothing to patch up!"
|
||||
return
|
||||
M.updatehealth()
|
||||
else
|
||||
M.heal_organ_damage((src.heal_brute/2), (src.heal_burn/2))
|
||||
|
||||
use(1)
|
||||
use(1)
|
||||
@@ -23,9 +23,9 @@
|
||||
return ..()
|
||||
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/datum/organ/external/S = H.organs[user.zone_sel.selecting]
|
||||
if(S.destroyed)
|
||||
if(!S.attachable)
|
||||
var/datum/organ/external/S = H.organs[limbloc]
|
||||
if(S.status & DESTROYED)
|
||||
if(!(S.status & ATTACHABLE))
|
||||
user << "\red The wound is not ready for a replacement!"
|
||||
return 0
|
||||
if(M != user)
|
||||
@@ -51,15 +51,10 @@
|
||||
user << "\red You mess up!"
|
||||
S.take_damage(15)
|
||||
|
||||
S.broken = 0
|
||||
S.attachable = 0
|
||||
S.destroyed = 0
|
||||
S.robot = 1
|
||||
var/datum/organ/external/T = H.organs["[limbloc]"]
|
||||
T.attachable = 0
|
||||
T.destroyed = 0
|
||||
T.broken = 0
|
||||
T.robot = 1
|
||||
S.status &= ~BROKEN
|
||||
S.status &= ~ATTACHABLE
|
||||
S.status &= ~DESTROYED
|
||||
S.status |= ROBOT
|
||||
M.update_body()
|
||||
M.updatehealth()
|
||||
M.UpdateDamageIcon()
|
||||
|
||||
@@ -24,11 +24,11 @@ CIRCULAR SAW
|
||||
if(((user.zone_sel.selecting == "l_arm") || (user.zone_sel.selecting == "r_arm") || (user.zone_sel.selecting == "l_leg") || (user.zone_sel.selecting == "r_leg")) & (istype(M, /mob/living/carbon/human)))
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/datum/organ/external/S = H.organs[user.zone_sel.selecting]
|
||||
if(S.destroyed)
|
||||
if(S.bleeding)
|
||||
if(S.status & DESTROYED)
|
||||
if(S.status & BLEEDING)
|
||||
user << "\red There's too much blood here!"
|
||||
return 0
|
||||
if(!S.cutaway)
|
||||
if(!(S.status & CUT_AWAY))
|
||||
user << "\red The flesh hasn't been cleanly cut!"
|
||||
return 0
|
||||
if(M != user)
|
||||
@@ -245,17 +245,17 @@ CIRCULAR SAW
|
||||
if(!S || !istype(S))
|
||||
return 0
|
||||
|
||||
if(S.destroyed)
|
||||
if(S.status & DESTROYED)
|
||||
return ..()
|
||||
|
||||
if(S.robot)
|
||||
if(S.status & ROBOT)
|
||||
user << "Medical equipment for a robot arm? How would that do any good..."
|
||||
return
|
||||
|
||||
if(!S.open)
|
||||
user << "\red There is skin in the way!"
|
||||
return 0
|
||||
if(S.bleeding)
|
||||
if(S.status & BLEEDING)
|
||||
user << "\red [H] is profusely bleeding in \his [S.display_name]!"
|
||||
return 0
|
||||
|
||||
@@ -303,11 +303,11 @@ CIRCULAR SAW
|
||||
if(((user.zone_sel.selecting == "l_arm") || (user.zone_sel.selecting == "r_arm") || (user.zone_sel.selecting == "l_leg") || (user.zone_sel.selecting == "r_leg")) & (istype(M, /mob/living/carbon/human)))
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/datum/organ/external/S = H.organs[user.zone_sel.selecting]
|
||||
if(S.destroyed)
|
||||
if(!S.bleeding)
|
||||
if(S.status & DESTROYED)
|
||||
if(!(S.status & BLEEDING))
|
||||
user << "\red There is nothing bleeding here!"
|
||||
return 0
|
||||
if(!S.cutaway)
|
||||
if(!(S.status & CUT_AWAY))
|
||||
user << "\red The flesh hasn't been cleanly cut!"
|
||||
return 0
|
||||
if(M != user)
|
||||
@@ -333,7 +333,7 @@ CIRCULAR SAW
|
||||
user << "\red You mess up!"
|
||||
S.take_damage(15)
|
||||
|
||||
S.bleeding = 0
|
||||
S.status &= ~BLEEDING
|
||||
M.updatehealth()
|
||||
M.UpdateDamageIcon()
|
||||
|
||||
@@ -559,10 +559,10 @@ CIRCULAR SAW
|
||||
if(!S || !istype(S))
|
||||
return 0
|
||||
|
||||
if(S.destroyed)
|
||||
if(S.status & DESTROYED)
|
||||
return ..()
|
||||
|
||||
if(S.robot)
|
||||
if(S.status & ROBOT)
|
||||
user << "Medical equipment for a robot arm? How would that do any good?"
|
||||
return
|
||||
|
||||
@@ -570,7 +570,7 @@ CIRCULAR SAW
|
||||
user << "\red There is skin in the way!"
|
||||
return 0
|
||||
|
||||
if(!S.bleeding)
|
||||
if(!(S.status & BLEEDING))
|
||||
if(S.implant)
|
||||
if(H != user)
|
||||
H.visible_message( \
|
||||
@@ -581,17 +581,18 @@ CIRCULAR SAW
|
||||
"\red [user] attempts to remove the implant in \his [S.display_name] with \the [src]!", \
|
||||
"\red You attempt to remove the implant in your [S.display_name] with \the [src]!")
|
||||
|
||||
if(do_mob(user, H, 50))
|
||||
if(prob(50))
|
||||
if(H != user)
|
||||
H.visible_message( \
|
||||
"\red [user] successfully removes the implant in [H]'s [S.display_name] with \the [src]!", \
|
||||
"\red [user] successfully removes the implant in your [S.display_name] with \the [src]!")
|
||||
else
|
||||
H.visible_message( \
|
||||
"\red [user] successfully removes the implant in \his [S.display_name] with \the [src]!", \
|
||||
"\red You successfully remove the implant in your [S.display_name] with \the [src]!")
|
||||
for(var/obj/item/weapon/implant/implant in S.implant)
|
||||
do
|
||||
if(do_mob(user, H, 50))
|
||||
if(prob(50))
|
||||
if(H != user)
|
||||
H.visible_message( \
|
||||
"\red [user] successfully removes the implant in [H]'s [S.display_name] with \a [src]!", \
|
||||
"\red [user] successfully removes the implant in your [S.display_name] with \the [src]!")
|
||||
else
|
||||
H.visible_message( \
|
||||
"\red [user] successfully removes the implant in \his [S.display_name] with \a [src]!", \
|
||||
"\red You successfully remove the implant in your [S.display_name] with \the [src]!")
|
||||
var/obj/item/weapon/implant/implant = pick(S.implant)
|
||||
implant.loc = (get_turf(H))
|
||||
implant.implanted = 0
|
||||
S.implant.Remove(implant)
|
||||
@@ -599,15 +600,15 @@ CIRCULAR SAW
|
||||
if(istype(implant, /obj/item/weapon/implant/explosive) || istype(implant, /obj/item/weapon/implant/uplink) || istype(implant, /obj/item/weapon/implant/dexplosive) || istype(implant, /obj/item/weapon/implant/explosive) || istype(implant, /obj/item/weapon/implant/compressed))
|
||||
usr << "The implant disintegrates into nothing..."
|
||||
del(implant)
|
||||
else
|
||||
if(H != user)
|
||||
H.visible_message( \
|
||||
"\red [user] fails to removes the implant!", \
|
||||
"\red [user] fails to removes the implant!")
|
||||
if(!S.implant.len)
|
||||
del S.implant
|
||||
else
|
||||
H.visible_message( \
|
||||
"\red [user] fails to removes the implant!", \
|
||||
"\red You fail to removes the implant!")
|
||||
"\red [user] fails to remove the implant!", \
|
||||
"\red You fail to remove the implant!")
|
||||
else
|
||||
break
|
||||
while (S.implant && S.implant.len)
|
||||
|
||||
return 1
|
||||
else
|
||||
@@ -637,7 +638,7 @@ CIRCULAR SAW
|
||||
user << "\red You mess up!"
|
||||
S.take_damage(15)
|
||||
|
||||
S.bleeding = 0
|
||||
S.status &= ~BLEEDING
|
||||
|
||||
H.updatehealth()
|
||||
H.UpdateDamageIcon()
|
||||
@@ -813,7 +814,7 @@ CIRCULAR SAW
|
||||
if(!S.open)
|
||||
usr << "<b>You have to cut the limb open first!</b>"
|
||||
return
|
||||
if(S.robot)
|
||||
if(S.status & ROBOT)
|
||||
user << "Medical equipment for a robot arm? How would that do any good?"
|
||||
return
|
||||
for(var/mob/O in viewers(M))
|
||||
@@ -837,11 +838,11 @@ CIRCULAR SAW
|
||||
if(((user.zone_sel.selecting == "l_arm") || (user.zone_sel.selecting == "r_arm") || (user.zone_sel.selecting == "l_leg") || (user.zone_sel.selecting == "r_leg")) & (istype(M, /mob/living/carbon/human)))
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/datum/organ/external/S = H.organs[user.zone_sel.selecting]
|
||||
if(S.destroyed)
|
||||
if(S.bleeding)
|
||||
if(S.status & DESTROYED)
|
||||
if(S.status & BLEEDING)
|
||||
user << "\red There's too much blood here!"
|
||||
return 0
|
||||
if(!S.cutaway)
|
||||
if(!(S.status & CUT_AWAY))
|
||||
user << "\red The flesh hasn't been cleanly cut!"
|
||||
return 0
|
||||
if(S.open != 3)
|
||||
@@ -872,7 +873,7 @@ CIRCULAR SAW
|
||||
|
||||
S.open = 0
|
||||
S.stage = 0
|
||||
S.attachable = 1
|
||||
S.status |= ATTACHABLE
|
||||
M.updatehealth()
|
||||
M.UpdateDamageIcon()
|
||||
|
||||
@@ -1028,10 +1029,10 @@ CIRCULAR SAW
|
||||
if(!S || !istype(S))
|
||||
return 0
|
||||
|
||||
if(S.destroyed)
|
||||
if(S.status & DESTROYED)
|
||||
user << "What [S.display_name]?"
|
||||
|
||||
if(S.robot)
|
||||
if(S.status & ROBOT)
|
||||
user << "Medical equipment for a robot arm? How would that do any good..."
|
||||
return
|
||||
if(!S.open)
|
||||
@@ -1096,7 +1097,7 @@ CIRCULAR SAW
|
||||
if(((user.zone_sel.selecting == "l_arm") || (user.zone_sel.selecting == "r_arm") || (user.zone_sel.selecting == "l_leg") || (user.zone_sel.selecting == "r_leg")) & (istype(M, /mob/living/carbon/human)))
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/datum/organ/external/S = H.organs[user.zone_sel.selecting]
|
||||
if(S.destroyed)
|
||||
if(S.status & DESTROYED)
|
||||
if(M != user)
|
||||
M.visible_message( \
|
||||
"\red [user] is beginning to cut away at the flesh where [H]'s [S.display_name] used to be with [src].", \
|
||||
@@ -1116,8 +1117,7 @@ CIRCULAR SAW
|
||||
"\red [user] finishes cutting where \his [S.display_name] used to be with [src]!", \
|
||||
"\red You finish cutting where your [S.display_name] used to be with [src]!")
|
||||
|
||||
S.cutaway = 1
|
||||
S.bleeding = 1
|
||||
S.status |= BLEEDING|CUT_AWAY
|
||||
M.updatehealth()
|
||||
M.UpdateDamageIcon()
|
||||
else
|
||||
@@ -1190,7 +1190,7 @@ CIRCULAR SAW
|
||||
|
||||
if(istype(H) && H.organs["head"])
|
||||
var/datum/organ/external/affecting = H.organs["head"]
|
||||
if(affecting.destroyed)
|
||||
if(affecting.status & DESTROYED)
|
||||
return ..()
|
||||
|
||||
if(istype(H) && ( \
|
||||
@@ -1242,7 +1242,7 @@ CIRCULAR SAW
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
var/datum/organ/external/affecting = M:get_organ("head")
|
||||
affecting.take_damage(7)
|
||||
affecting.open = 1
|
||||
affecting.status |= OPEN
|
||||
else
|
||||
M.take_organ_damage(7)
|
||||
|
||||
@@ -1420,10 +1420,10 @@ CIRCULAR SAW
|
||||
if(!S || !istype(S))
|
||||
return 0
|
||||
|
||||
if(S.destroyed)
|
||||
if(S.status & DESTROYED)
|
||||
return ..()
|
||||
|
||||
if(S.robot)
|
||||
if(S.status & ROBOT)
|
||||
user << "Medical equipment for a robot arm? How would that do any good..."
|
||||
return
|
||||
|
||||
@@ -1454,8 +1454,7 @@ CIRCULAR SAW
|
||||
user << "\red You mess up!"
|
||||
S.take_damage(15)
|
||||
|
||||
S.open = 1
|
||||
S.bleeding = 1
|
||||
S.status |= OPEN|BLEEDING
|
||||
if(S.display_name == "chest")
|
||||
H:embryo_op_stage = 1.0
|
||||
if(S.display_name == "groin")
|
||||
@@ -1467,14 +1466,13 @@ CIRCULAR SAW
|
||||
var/msg
|
||||
if(a == 1)
|
||||
msg = "\red [user]'s move slices open [H]'s wound, causing massive bleeding"
|
||||
S.brute_dam += 35
|
||||
S.createwound(rand(1,3))
|
||||
S.take_damage(35, 0, 1, "Malpractice")
|
||||
else if(a == 2)
|
||||
msg = "\red [user]'s move slices open [H]'s wound, and causes \him to accidentally stab himself"
|
||||
S.brute_dam += 35
|
||||
S.take_damage(35, 0, 1, "Malpractice")
|
||||
var/datum/organ/external/userorgan = user:organs["chest"]
|
||||
if(userorgan)
|
||||
userorgan.brute_dam += 35
|
||||
userorgan.take_damage(35, 0, 1, "Malpractice")
|
||||
else
|
||||
user.take_organ_damage(35)
|
||||
else if(a == 3)
|
||||
@@ -1524,7 +1522,7 @@ CIRCULAR SAW
|
||||
if(!hasorgans(M))
|
||||
return ..()
|
||||
var/datum/organ/external/S = M:organs["head"]
|
||||
if(S.destroyed)
|
||||
if(S.status & DESTROYED)
|
||||
return
|
||||
for(var/mob/O in viewers(M, null))
|
||||
O.show_message(text("\red [M] gets \his [S.display_name] sawed at with [src] by [user].... It looks like [user] is trying to cut it off!"), 1)
|
||||
@@ -1534,7 +1532,7 @@ CIRCULAR SAW
|
||||
return
|
||||
for(var/mob/O in viewers(M, null))
|
||||
O.show_message(text("\red [M] gets \his [S.display_name] sawed off with [src] by [user]."), 1)
|
||||
S.destroyed = 1
|
||||
S.status |= DESTROYED
|
||||
S.droplimb()
|
||||
M:update_body()
|
||||
if(1.0)
|
||||
@@ -1624,10 +1622,10 @@ CIRCULAR SAW
|
||||
else if(user.zone_sel.selecting != "chest" && hasorgans(M))
|
||||
var/mob/living/carbon/H = M
|
||||
var/datum/organ/external/S = H:organs[user.zone_sel.selecting]
|
||||
if(S.destroyed)
|
||||
if(S.status & DESTROYED)
|
||||
return
|
||||
|
||||
if(S.robot)
|
||||
if(S.status & ROBOT)
|
||||
var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
|
||||
spark_system.set_up(5, 0, M)
|
||||
spark_system.attach(M)
|
||||
@@ -1688,32 +1686,32 @@ CIRCULAR SAW
|
||||
var/datum/organ/external/temp = M.organs[zone]
|
||||
var/msg
|
||||
|
||||
if(temp.destroyed)
|
||||
if(temp.status & DESTROYED)
|
||||
return ..()
|
||||
|
||||
// quickly convert embryo removal to bone surgery
|
||||
if(zone == "chest" && M.embryo_op_stage == 3)
|
||||
M.embryo_op_stage = 0
|
||||
temp.open = 2
|
||||
temp.bleeding = 0
|
||||
temp.status &= ~BLEEDING
|
||||
|
||||
// quickly convert appendectomy to bone surgery
|
||||
if(zone == "groin" && M.appendix_op_stage == 3)
|
||||
M.appendix_op_stage = 0
|
||||
temp.open = 2
|
||||
temp.bleeding = 0
|
||||
temp.status &= ~BLEEDING
|
||||
|
||||
msg = get_message(1,M,user,temp)
|
||||
for(var/mob/O in viewers(M,null))
|
||||
O.show_message("\red [msg]",1)
|
||||
if(do_mob(user,M,time))
|
||||
if(temp.open == 2 && !temp.bleeding)
|
||||
if(temp.wound in wound)
|
||||
if(temp.open == 2 && !(temp.status & BLEEDING))
|
||||
if(temp.broken_description in wound)
|
||||
if(temp.stage in stage)
|
||||
temp.stage += 1
|
||||
|
||||
if(IsFinalStage(temp.stage))
|
||||
temp.broken = 0
|
||||
temp.status &= ~BROKEN
|
||||
temp.stage = 0
|
||||
temp.perma_injury = 0
|
||||
temp.brute_dam = temp.min_broken_damage -1
|
||||
@@ -1811,16 +1809,16 @@ CIRCULAR SAW
|
||||
var/mob/living/carbon/human/H = M
|
||||
for(var/name in H.organs)
|
||||
var/datum/organ/external/e = H.organs[name]
|
||||
if(e.destroyed) // this is nanites, not space magic
|
||||
if(e.status & DESTROYED) // this is nanites, not space magic
|
||||
continue
|
||||
e.brute_dam = 0.0
|
||||
e.burn_dam = 0.0
|
||||
e.bandaged = 0.0
|
||||
e.status &= ~BANDAGED
|
||||
e.max_damage = initial(e.max_damage)
|
||||
e.bleeding = 0
|
||||
e.status &= ~BLEEDING
|
||||
e.open = 0
|
||||
e.broken = 0
|
||||
e.destroyed = 0
|
||||
e.status &= ~BROKEN
|
||||
e.status &= ~DESTROYED
|
||||
e.perma_injury = 0
|
||||
e.update_icon()
|
||||
H.update_body()
|
||||
|
||||
@@ -28,7 +28,7 @@ TILES
|
||||
/obj/item/weapon/wire/attack(mob/M as mob, mob/user as mob)
|
||||
if(hasorgans(M))
|
||||
var/datum/organ/external/S = M:organs[user.zone_sel.selecting]
|
||||
if(!S.robot || user.a_intent != "help")
|
||||
if(!(S.status & ROBOT) || user.a_intent != "help")
|
||||
return ..()
|
||||
if(S.brute_dam)
|
||||
S.heal_damage(0,15,0,1)
|
||||
|
||||
@@ -327,7 +327,7 @@ WELDINGTOOOL
|
||||
/obj/item/weapon/weldingtool/attack(mob/M as mob, mob/user as mob)
|
||||
if(hasorgans(M))
|
||||
var/datum/organ/external/S = M:organs[user.zone_sel.selecting]
|
||||
if(!S.robot || user.a_intent != "help")
|
||||
if(!(S.status & ROBOT) || user.a_intent != "help")
|
||||
return ..()
|
||||
if(S.brute_dam)
|
||||
S.heal_damage(15,0,0,1)
|
||||
@@ -404,4 +404,4 @@ WELDINGTOOOL
|
||||
M.update_clothing()
|
||||
return
|
||||
else
|
||||
..()
|
||||
..()
|
||||
|
||||
@@ -264,7 +264,7 @@ SHARDS
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(!((H.shoes) || (H.wear_suit && H.wear_suit.body_parts_covered & FEET)))
|
||||
var/datum/organ/external/affecting = H.get_organ(pick("l_foot", "r_foot"))
|
||||
if(affecting.robot)
|
||||
if(affecting.status & ROBOT)
|
||||
return
|
||||
H.Weaken(3)
|
||||
affecting.take_damage(5, 0)
|
||||
|
||||
@@ -170,12 +170,12 @@ TABLE AND RACK OBJECT INTERATIONS
|
||||
"\red You hear the nauseating crunch of bone and gristle on solid metal and the squeal of said metal deforming.")
|
||||
dented++
|
||||
else if(prob(50))
|
||||
G.assailant.visible_message("\red [G.assailant] smashes \the [H]'s head on \the [src], [H.get_gender_form("its")] bone and cartilage making a loud crunch!",\
|
||||
"\red You smash \the [H]'s head on \the [src], [H.get_gender_form("its")] bone and cartilage making a loud crunch!",\
|
||||
G.assailant.visible_message("\red [G.assailant] smashes \the [H]'s head on \the [src], [H.get_visible_gender() == MALE ? "his" : H.get_visible_gender() == FEMALE ? "her" : "their"] bone and cartilage making a loud crunch!",\
|
||||
"\red You smash \the [H]'s head on \the [src], [H.get_visible_gender() == MALE ? "his" : H.get_visible_gender() == FEMALE ? "her" : "their"] bone and cartilage making a loud crunch!",\
|
||||
"\red You hear the nauseating crunch of bone and gristle on solid metal, the noise echoing through the room.")
|
||||
else
|
||||
G.assailant.visible_message("\red [G.assailant] smashes \the [H]'s head on \the [src], [H.get_gender_form("its")] nose smashed and face bloodied!",\
|
||||
"\red You smash \the [H]'s head on \the [src], [H.get_gender_form("its")] nose smashed and face bloodied!",\
|
||||
G.assailant.visible_message("\red [G.assailant] smashes \the [H]'s head on \the [src], [H.get_visible_gender() == MALE ? "his" : H.get_visible_gender() == FEMALE ? "her" : "their"] nose smashed and face bloodied!",\
|
||||
"\red You smash \the [H]'s head on \the [src], [H.get_visible_gender() == MALE ? "his" : H.get_visible_gender() == FEMALE ? "her" : "their"] nose smashed and face bloodied!",\
|
||||
"\red You hear the nauseating crunch of bone and gristle on solid metal and the gurgling gasp of someone who is trying to breathe through their own blood.")
|
||||
else
|
||||
affecting.take_damage(rand(5,10), 0)
|
||||
|
||||
@@ -375,7 +375,7 @@ A list of items and costs is stored under the datum of every game mode, alongsid
|
||||
var/obj/item/weapon/implant/uplink/U = src.loc
|
||||
var/mob/living/A = U.imp_in
|
||||
var/datum/organ/external/head = A:organs["head"]
|
||||
head.destroyed = 1
|
||||
head.status |= DESTROYED
|
||||
spawn(2)
|
||||
head.droplimb()
|
||||
del(src.master)
|
||||
|
||||
@@ -130,12 +130,14 @@
|
||||
if("feet")
|
||||
if(!H.shoes)
|
||||
affecting = H.get_organ(pick("l_leg", "r_leg"))
|
||||
if(!affecting.robot) H.Weaken(3)
|
||||
if(!(affecting.status & ROBOT))
|
||||
H.Weaken(3)
|
||||
if("l_hand", "r_hand")
|
||||
if(!H.gloves)
|
||||
affecting = H.get_organ(type)
|
||||
if(!affecting.robot) H.Stun(3)
|
||||
if(affecting && !affecting.robot)
|
||||
if(!(affecting.status & ROBOT))
|
||||
H.Stun(3)
|
||||
if(affecting && !(affecting.status & ROBOT))
|
||||
affecting.take_damage(1, 0)
|
||||
H.UpdateDamageIcon()
|
||||
H.updatehealth()
|
||||
|
||||
Reference in New Issue
Block a user