mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 18:22:39 +00:00
Fixes human internal organs list
This commit is contained in:
@@ -118,7 +118,7 @@ obj/var/contaminated = 0
|
|||||||
/mob/living/carbon/human/proc/burn_eyes()
|
/mob/living/carbon/human/proc/burn_eyes()
|
||||||
//The proc that handles eye burning.
|
//The proc that handles eye burning.
|
||||||
if(prob(20)) src << "\red Your eyes burn!"
|
if(prob(20)) src << "\red Your eyes burn!"
|
||||||
var/datum/organ/internal/eyes/E = internal_organs["eyes"]
|
var/datum/organ/internal/eyes/E = internal_organs_by_name["eyes"]
|
||||||
E.damage += 2.5
|
E.damage += 2.5
|
||||||
eye_blurry = min(eye_blurry+1.5,50)
|
eye_blurry = min(eye_blurry+1.5,50)
|
||||||
if (prob(max(0,E.damage - 15) + 1) &&!eye_blind)
|
if (prob(max(0,E.damage - 15) + 1) &&!eye_blind)
|
||||||
|
|||||||
@@ -332,8 +332,7 @@
|
|||||||
else
|
else
|
||||||
dat += "<td>[e.display_name]</td><td>-</td><td>-</td><td>Not Found</td>"
|
dat += "<td>[e.display_name]</td><td>-</td><td>-</td><td>Not Found</td>"
|
||||||
dat += "</tr>"
|
dat += "</tr>"
|
||||||
for(var/organ_name in occupant.internal_organs)
|
for(var/datum/organ/internal/i in occupant.internal_organs)
|
||||||
var/datum/organ/internal/i = occupant.internal_organs[organ_name]
|
|
||||||
var/mech = ""
|
var/mech = ""
|
||||||
if(i.robotic == 1)
|
if(i.robotic == 1)
|
||||||
mech = "Assisted:"
|
mech = "Assisted:"
|
||||||
|
|||||||
@@ -81,7 +81,7 @@
|
|||||||
O.Weaken(strength)
|
O.Weaken(strength)
|
||||||
if (istype(O, /mob/living/carbon/human))
|
if (istype(O, /mob/living/carbon/human))
|
||||||
var/mob/living/carbon/human/H = O
|
var/mob/living/carbon/human/H = O
|
||||||
var/datum/organ/internal/eyes/E = H.internal_organs["eyes"]
|
var/datum/organ/internal/eyes/E = H.internal_organs_by_name["eyes"]
|
||||||
if ((E.damage > E.min_bruised_damage && prob(E.damage + 50)))
|
if ((E.damage > E.min_bruised_damage && prob(E.damage + 50)))
|
||||||
flick("e_flash", O:flash)
|
flick("e_flash", O:flash)
|
||||||
E.damage += rand(1, 5)
|
E.damage += rand(1, 5)
|
||||||
|
|||||||
@@ -539,7 +539,7 @@
|
|||||||
"\red You stab yourself in the eyes with [src]!" \
|
"\red You stab yourself in the eyes with [src]!" \
|
||||||
)
|
)
|
||||||
if(istype(M, /mob/living/carbon/human))
|
if(istype(M, /mob/living/carbon/human))
|
||||||
var/datum/organ/internal/eyes/eyes = H.internal_organs["eyes"]
|
var/datum/organ/internal/eyes/eyes = H.internal_organs_by_name["eyes"]
|
||||||
eyes.damage += rand(3,4)
|
eyes.damage += rand(3,4)
|
||||||
if(eyes.damage >= eyes.min_bruised_damage)
|
if(eyes.damage >= eyes.min_bruised_damage)
|
||||||
if(M.stat != 2)
|
if(M.stat != 2)
|
||||||
|
|||||||
@@ -83,7 +83,7 @@
|
|||||||
//This really should be in mob not every check
|
//This really should be in mob not every check
|
||||||
if(ishuman(M))
|
if(ishuman(M))
|
||||||
var/mob/living/carbon/human/H = M
|
var/mob/living/carbon/human/H = M
|
||||||
var/datum/organ/internal/eyes/E = H.internal_organs["eyes"]
|
var/datum/organ/internal/eyes/E = H.internal_organs_by_name["eyes"]
|
||||||
if (E.damage >= E.min_bruised_damage)
|
if (E.damage >= E.min_bruised_damage)
|
||||||
M << "\red Your eyes start to burn badly!"
|
M << "\red Your eyes start to burn badly!"
|
||||||
if(!banglet && !(istype(src , /obj/item/weapon/grenade/flashbang/clusterbang)))
|
if(!banglet && !(istype(src , /obj/item/weapon/grenade/flashbang/clusterbang)))
|
||||||
|
|||||||
@@ -356,7 +356,7 @@
|
|||||||
var/safety = user:eyecheck()
|
var/safety = user:eyecheck()
|
||||||
if(istype(user, /mob/living/carbon/human))
|
if(istype(user, /mob/living/carbon/human))
|
||||||
var/mob/living/carbon/human/H = user
|
var/mob/living/carbon/human/H = user
|
||||||
var/datum/organ/internal/eyes/E = H.internal_organs["eyes"]
|
var/datum/organ/internal/eyes/E = H.internal_organs_by_name["eyes"]
|
||||||
if(H.species.flags & IS_SYNTHETIC)
|
if(H.species.flags & IS_SYNTHETIC)
|
||||||
return
|
return
|
||||||
switch(safety)
|
switch(safety)
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ datum/event/organ_failure/announce()
|
|||||||
datum/event/organ_failure/start()
|
datum/event/organ_failure/start()
|
||||||
var/list/candidates = list() //list of candidate keys
|
var/list/candidates = list() //list of candidate keys
|
||||||
for(var/mob/living/carbon/human/G in player_list)
|
for(var/mob/living/carbon/human/G in player_list)
|
||||||
if(G.mind && G.mind.current && G.mind.current.stat != DEAD && G.health > 70)
|
if(G.mind && G.mind.current && G.mind.current.stat != DEAD && G.health > 70 && G.internal_organs)
|
||||||
candidates += G
|
candidates += G
|
||||||
if(!candidates.len) return
|
if(!candidates.len) return
|
||||||
candidates = shuffle(candidates)//Incorporating Donkie's list shuffle
|
candidates = shuffle(candidates)//Incorporating Donkie's list shuffle
|
||||||
@@ -24,8 +24,7 @@ datum/event/organ_failure/start()
|
|||||||
var/acute = prob(15)
|
var/acute = prob(15)
|
||||||
if (prob(75))
|
if (prob(75))
|
||||||
//internal organ infection
|
//internal organ infection
|
||||||
var/O = pick(C.internal_organs)
|
var/datum/organ/internal/I = pick(C.internal_organs)
|
||||||
var/datum/organ/internal/I = C.internal_organs[O]
|
|
||||||
|
|
||||||
if (acute)
|
if (acute)
|
||||||
I.germ_level = max(INFECTION_LEVEL_TWO, I.germ_level)
|
I.germ_level = max(INFECTION_LEVEL_TWO, I.germ_level)
|
||||||
|
|||||||
@@ -1086,8 +1086,7 @@
|
|||||||
H.brainmob.mind.transfer_to(src)
|
H.brainmob.mind.transfer_to(src)
|
||||||
del(H)
|
del(H)
|
||||||
|
|
||||||
for(var/E in internal_organs)
|
for(var/datum/organ/internal/I in internal_organs)
|
||||||
var/datum/organ/internal/I = internal_organs[E]
|
|
||||||
I.damage = 0
|
I.damage = 0
|
||||||
|
|
||||||
for (var/datum/disease/virus in viruses)
|
for (var/datum/disease/virus in viruses)
|
||||||
@@ -1099,11 +1098,11 @@
|
|||||||
..()
|
..()
|
||||||
|
|
||||||
/mob/living/carbon/human/proc/is_lung_ruptured()
|
/mob/living/carbon/human/proc/is_lung_ruptured()
|
||||||
var/datum/organ/internal/lungs/L = internal_organs["lungs"]
|
var/datum/organ/internal/lungs/L = internal_organs_by_name["lungs"]
|
||||||
return L.is_bruised()
|
return L.is_bruised()
|
||||||
|
|
||||||
/mob/living/carbon/human/proc/rupture_lung()
|
/mob/living/carbon/human/proc/rupture_lung()
|
||||||
var/datum/organ/internal/lungs/L = internal_organs["lungs"]
|
var/datum/organ/internal/lungs/L = internal_organs_by_name["lungs"]
|
||||||
|
|
||||||
if(!L.is_bruised())
|
if(!L.is_bruised())
|
||||||
src.custom_pain("You feel a stabbing pain in your chest!", 1)
|
src.custom_pain("You feel a stabbing pain in your chest!", 1)
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
/mob/living/carbon/human/getBrainLoss()
|
/mob/living/carbon/human/getBrainLoss()
|
||||||
var/res = brainloss
|
var/res = brainloss
|
||||||
var/datum/organ/internal/brain/sponge = internal_organs["brain"]
|
var/datum/organ/internal/brain/sponge = internal_organs_by_name["brain"]
|
||||||
if (sponge.is_bruised())
|
if (sponge.is_bruised())
|
||||||
res += 20
|
res += 20
|
||||||
if (sponge.is_broken())
|
if (sponge.is_broken())
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ var/const/BLOOD_VOLUME_SURVIVE = 122
|
|||||||
|
|
||||||
// Damaged heart virtually reduces the blood volume, as the blood isn't
|
// Damaged heart virtually reduces the blood volume, as the blood isn't
|
||||||
// being pumped properly anymore.
|
// being pumped properly anymore.
|
||||||
var/datum/organ/internal/heart/heart = internal_organs["heart"]
|
var/datum/organ/internal/heart/heart = internal_organs_by_name["heart"]
|
||||||
|
|
||||||
if(heart.damage > 1 && heart.damage < heart.min_bruised_damage)
|
if(heart.damage > 1 && heart.damage < heart.min_bruised_damage)
|
||||||
blood_volume *= 0.8
|
blood_volume *= 0.8
|
||||||
|
|||||||
@@ -98,7 +98,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
// High brute damage or sharp objects may damage internal organs
|
// High brute damage or sharp objects may damage internal organs
|
||||||
if(internal_organs != null) if( (sharp && brute >= 5) || brute >= 10) if(prob(5))
|
if(internal_organs && ( (sharp && brute >= 5) || brute >= 10) && prob(5))
|
||||||
// Damage an internal organ
|
// Damage an internal organ
|
||||||
var/datum/organ/internal/I = pick(internal_organs)
|
var/datum/organ/internal/I = pick(internal_organs)
|
||||||
I.take_damage(brute / 2)
|
I.take_damage(brute / 2)
|
||||||
|
|||||||
@@ -27,8 +27,8 @@
|
|||||||
var/datum/organ/external/E = H.organs_by_name[src.parent_organ]
|
var/datum/organ/external/E = H.organs_by_name[src.parent_organ]
|
||||||
if(E.internal_organs == null)
|
if(E.internal_organs == null)
|
||||||
E.internal_organs = list()
|
E.internal_organs = list()
|
||||||
E.internal_organs += src
|
E.internal_organs |= src
|
||||||
H.internal_organs[src.name] = src
|
H.internal_organs |= src
|
||||||
src.owner = H
|
src.owner = H
|
||||||
|
|
||||||
/datum/organ/internal/process()
|
/datum/organ/internal/process()
|
||||||
|
|||||||
@@ -102,8 +102,7 @@ mob/living/carbon/human/proc/handle_pain()
|
|||||||
pain(damaged_organ.display_name, maxdam, 0)
|
pain(damaged_organ.display_name, maxdam, 0)
|
||||||
|
|
||||||
// Damage to internal organs hurts a lot.
|
// Damage to internal organs hurts a lot.
|
||||||
for(var/organ_name in internal_organs)
|
for(var/datum/organ/internal/I in internal_organs)
|
||||||
var/datum/organ/internal/I = internal_organs[organ_name]
|
|
||||||
if(I.damage > 2) if(prob(2))
|
if(I.damage > 2) if(prob(2))
|
||||||
var/datum/organ/external/parent = get_organ(I.parent_organ)
|
var/datum/organ/external/parent = get_organ(I.parent_organ)
|
||||||
src.custom_pain("You feel a sharp pain in your [parent.display_name]", 1)
|
src.custom_pain("You feel a sharp pain in your [parent.display_name]", 1)
|
||||||
|
|||||||
@@ -1312,7 +1312,7 @@ datum
|
|||||||
M.eye_blind = max(M.eye_blind-5 , 0)
|
M.eye_blind = max(M.eye_blind-5 , 0)
|
||||||
if(ishuman(M))
|
if(ishuman(M))
|
||||||
var/mob/living/carbon/human/H = M
|
var/mob/living/carbon/human/H = M
|
||||||
var/datum/organ/internal/eyes/E = H.internal_organs["eyes"]
|
var/datum/organ/internal/eyes/E = H.internal_organs_by_name["eyes"]
|
||||||
if(istype(E))
|
if(istype(E))
|
||||||
if(E.damage > 0)
|
if(E.damage > 0)
|
||||||
E.damage -= 1
|
E.damage -= 1
|
||||||
@@ -1332,8 +1332,9 @@ datum
|
|||||||
if(!M) M = holder.my_atom
|
if(!M) M = holder.my_atom
|
||||||
if(ishuman(M))
|
if(ishuman(M))
|
||||||
var/mob/living/carbon/human/H = M
|
var/mob/living/carbon/human/H = M
|
||||||
var/datum/organ/external/chest/C = H.get_organ("chest")
|
|
||||||
for(var/datum/organ/internal/I in C.internal_organs)
|
//Peridaxon is hard enough to get, it's probably fair to make this all internal organs
|
||||||
|
for(var/datum/organ/internal/I in H.internal_organs)
|
||||||
if(I.damage > 0)
|
if(I.damage > 0)
|
||||||
I.damage -= 0.20
|
I.damage -= 0.20
|
||||||
..()
|
..()
|
||||||
@@ -3036,7 +3037,7 @@ datum
|
|||||||
M:drowsyness = max(M:drowsyness, 30)
|
M:drowsyness = max(M:drowsyness, 30)
|
||||||
if(ishuman(M))
|
if(ishuman(M))
|
||||||
var/mob/living/carbon/human/H = M
|
var/mob/living/carbon/human/H = M
|
||||||
var/datum/organ/internal/liver/L = H.internal_organs["liver"]
|
var/datum/organ/internal/liver/L = H.internal_organs_by_name["liver"]
|
||||||
if (istype(L))
|
if (istype(L))
|
||||||
L.take_damage(0.1, 1)
|
L.take_damage(0.1, 1)
|
||||||
H.adjustToxLoss(0.1)
|
H.adjustToxLoss(0.1)
|
||||||
@@ -3273,13 +3274,13 @@ datum
|
|||||||
if(prob(30)) M.adjustToxLoss(2)
|
if(prob(30)) M.adjustToxLoss(2)
|
||||||
if(prob(5)) if(ishuman(M))
|
if(prob(5)) if(ishuman(M))
|
||||||
var/mob/living/carbon/human/H = M
|
var/mob/living/carbon/human/H = M
|
||||||
var/datum/organ/internal/heart/L = H.internal_organs["heart"]
|
var/datum/organ/internal/heart/L = H.internal_organs_by_name["heart"]
|
||||||
if (istype(L))
|
if (istype(L))
|
||||||
L.take_damage(5, 0)
|
L.take_damage(5, 0)
|
||||||
if (300 to INFINITY)
|
if (300 to INFINITY)
|
||||||
if(ishuman(M))
|
if(ishuman(M))
|
||||||
var/mob/living/carbon/human/H = M
|
var/mob/living/carbon/human/H = M
|
||||||
var/datum/organ/internal/heart/L = H.internal_organs["heart"]
|
var/datum/organ/internal/heart/L = H.internal_organs_by_name["heart"]
|
||||||
if (istype(L))
|
if (istype(L))
|
||||||
L.take_damage(100, 0)
|
L.take_damage(100, 0)
|
||||||
holder.remove_reagent(src.id, FOOD_METABOLISM)
|
holder.remove_reagent(src.id, FOOD_METABOLISM)
|
||||||
|
|||||||
@@ -107,6 +107,7 @@
|
|||||||
B.transfer_identity(target)
|
B.transfer_identity(target)
|
||||||
|
|
||||||
target.internal_organs -= B
|
target.internal_organs -= B
|
||||||
|
target.internal_organs_by_name -= "brain"
|
||||||
|
|
||||||
target:brain_op_stage = 4.0
|
target:brain_op_stage = 4.0
|
||||||
target.death()//You want them to die after the brain was transferred, so not to trigger client death() twice.
|
target.death()//You want them to die after the brain was transferred, so not to trigger client death() twice.
|
||||||
@@ -173,7 +174,7 @@
|
|||||||
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||||
user.visible_message("\blue [user] mends hematoma in [target]'s brain with \the [tool].", \
|
user.visible_message("\blue [user] mends hematoma in [target]'s brain with \the [tool].", \
|
||||||
"\blue You mend hematoma in [target]'s brain with \the [tool].")
|
"\blue You mend hematoma in [target]'s brain with \the [tool].")
|
||||||
var/datum/organ/internal/brain/sponge = target.internal_organs["brain"]
|
var/datum/organ/internal/brain/sponge = target.internal_organs_by_name["brain"]
|
||||||
if (sponge)
|
if (sponge)
|
||||||
sponge.damage = 0
|
sponge.damage = 0
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
target.blinded += 1.5
|
target.blinded += 1.5
|
||||||
|
|
||||||
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||||
var/datum/organ/internal/eyes/eyes = target.internal_organs["eyes"]
|
var/datum/organ/internal/eyes/eyes = target.internal_organs_by_name["eyes"]
|
||||||
var/datum/organ/external/affected = target.get_organ(target_zone)
|
var/datum/organ/external/affected = target.get_organ(target_zone)
|
||||||
user.visible_message("\red [user]'s hand slips, slicing [target]'s eyes wth \the [tool]!" , \
|
user.visible_message("\red [user]'s hand slips, slicing [target]'s eyes wth \the [tool]!" , \
|
||||||
"\red Your hand slips, slicing [target]'s eyes wth \the [tool]!" )
|
"\red Your hand slips, slicing [target]'s eyes wth \the [tool]!" )
|
||||||
@@ -69,7 +69,7 @@
|
|||||||
target.op_stage.eyes = 2
|
target.op_stage.eyes = 2
|
||||||
|
|
||||||
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||||
var/datum/organ/internal/eyes/eyes = target.internal_organs["eyes"]
|
var/datum/organ/internal/eyes/eyes = target.internal_organs_by_name["eyes"]
|
||||||
var/datum/organ/external/affected = target.get_organ(target_zone)
|
var/datum/organ/external/affected = target.get_organ(target_zone)
|
||||||
user.visible_message("\red [user]'s hand slips, damaging [target]'s eyes with \the [tool]!", \
|
user.visible_message("\red [user]'s hand slips, damaging [target]'s eyes with \the [tool]!", \
|
||||||
"\red Your hand slips, damaging [target]'s eyes with \the [tool]!")
|
"\red Your hand slips, damaging [target]'s eyes with \the [tool]!")
|
||||||
@@ -100,7 +100,7 @@
|
|||||||
target.op_stage.eyes = 3
|
target.op_stage.eyes = 3
|
||||||
|
|
||||||
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||||
var/datum/organ/internal/eyes/eyes = target.internal_organs["eyes"]
|
var/datum/organ/internal/eyes/eyes = target.internal_organs_by_name["eyes"]
|
||||||
var/datum/organ/external/affected = target.get_organ(target_zone)
|
var/datum/organ/external/affected = target.get_organ(target_zone)
|
||||||
user.visible_message("\red [user]'s hand slips, stabbing \the [tool] into [target]'s eye!", \
|
user.visible_message("\red [user]'s hand slips, stabbing \the [tool] into [target]'s eye!", \
|
||||||
"\red Your hand slips, stabbing \the [tool] into [target]'s eye!")
|
"\red Your hand slips, stabbing \the [tool] into [target]'s eye!")
|
||||||
@@ -126,7 +126,7 @@
|
|||||||
"You are beginning to cauterize the incision around [target]'s eyes with \the [tool].")
|
"You are beginning to cauterize the incision around [target]'s eyes with \the [tool].")
|
||||||
|
|
||||||
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||||
var/datum/organ/internal/eyes/eyes = target.internal_organs["eyes"]
|
var/datum/organ/internal/eyes/eyes = target.internal_organs_by_name["eyes"]
|
||||||
user.visible_message("\blue [user] cauterizes the incision around [target]'s eyes with \the [tool].", \
|
user.visible_message("\blue [user] cauterizes the incision around [target]'s eyes with \the [tool].", \
|
||||||
"\blue You cauterize the incision around [target]'s eyes with \the [tool].")
|
"\blue You cauterize the incision around [target]'s eyes with \the [tool].")
|
||||||
if (target.op_stage.eyes == 3)
|
if (target.op_stage.eyes == 3)
|
||||||
@@ -136,7 +136,7 @@
|
|||||||
target.op_stage.eyes = 0
|
target.op_stage.eyes = 0
|
||||||
|
|
||||||
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||||
var/datum/organ/internal/eyes/eyes = target.internal_organs["eyes"]
|
var/datum/organ/internal/eyes/eyes = target.internal_organs_by_name["eyes"]
|
||||||
var/datum/organ/external/affected = target.get_organ(target_zone)
|
var/datum/organ/external/affected = target.get_organ(target_zone)
|
||||||
user.visible_message("\red [user]'s hand slips, searing [target]'s eyes with \the [tool]!", \
|
user.visible_message("\red [user]'s hand slips, searing [target]'s eyes with \the [tool]!", \
|
||||||
"\red Your hand slips, searing [target]'s eyes with \the [tool]!")
|
"\red Your hand slips, searing [target]'s eyes with \the [tool]!")
|
||||||
|
|||||||
@@ -202,9 +202,10 @@
|
|||||||
|
|
||||||
var/is_chest_organ_damaged = 0
|
var/is_chest_organ_damaged = 0
|
||||||
var/datum/organ/external/chest/chest = target.get_organ("chest")
|
var/datum/organ/external/chest/chest = target.get_organ("chest")
|
||||||
for(var/datum/organ/internal/I in chest.internal_organs) if(I.damage > 0)
|
for(var/datum/organ/internal/I in chest.internal_organs)
|
||||||
is_chest_organ_damaged = 1
|
if(I.damage > 0)
|
||||||
break
|
is_chest_organ_damaged = 1
|
||||||
|
break
|
||||||
return ..() && is_chest_organ_damaged && target.op_stage.ribcage == 2
|
return ..() && is_chest_organ_damaged && target.op_stage.ribcage == 2
|
||||||
|
|
||||||
begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||||
@@ -285,7 +286,7 @@
|
|||||||
return 0
|
return 0
|
||||||
|
|
||||||
var/is_chest_organ_damaged = 0
|
var/is_chest_organ_damaged = 0
|
||||||
var/datum/organ/internal/heart/heart = target.internal_organs["heart"]
|
var/datum/organ/internal/heart/heart = target.internal_organs_by_name["heart"]
|
||||||
var/datum/organ/external/chest/chest = target.get_organ("chest")
|
var/datum/organ/external/chest/chest = target.get_organ("chest")
|
||||||
for(var/datum/organ/internal/I in chest.internal_organs) if(I.damage > 0)
|
for(var/datum/organ/internal/I in chest.internal_organs) if(I.damage > 0)
|
||||||
is_chest_organ_damaged = 1
|
is_chest_organ_damaged = 1
|
||||||
@@ -293,7 +294,7 @@
|
|||||||
return ..() && is_chest_organ_damaged && heart.robotic == 2 && target.op_stage.ribcage == 2
|
return ..() && is_chest_organ_damaged && heart.robotic == 2 && target.op_stage.ribcage == 2
|
||||||
|
|
||||||
begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||||
var/datum/organ/internal/heart/heart = target.internal_organs["heart"]
|
var/datum/organ/internal/heart/heart = target.internal_organs_by_name["heart"]
|
||||||
|
|
||||||
if(heart.damage > 0)
|
if(heart.damage > 0)
|
||||||
user.visible_message("[user] starts mending the mechanisms on [target]'s heart with \the [tool].", \
|
user.visible_message("[user] starts mending the mechanisms on [target]'s heart with \the [tool].", \
|
||||||
@@ -302,14 +303,14 @@
|
|||||||
..()
|
..()
|
||||||
|
|
||||||
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||||
var/datum/organ/internal/heart/heart = target.internal_organs["heart"]
|
var/datum/organ/internal/heart/heart = target.internal_organs_by_name["heart"]
|
||||||
if(heart.damage > 0)
|
if(heart.damage > 0)
|
||||||
user.visible_message("\blue [user] repairs [target]'s heart with \the [tool].", \
|
user.visible_message("\blue [user] repairs [target]'s heart with \the [tool].", \
|
||||||
"\blue You repair [target]'s heart with \the [tool]." )
|
"\blue You repair [target]'s heart with \the [tool]." )
|
||||||
heart.damage = 0
|
heart.damage = 0
|
||||||
|
|
||||||
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||||
var/datum/organ/internal/heart/heart = target.internal_organs["heart"]
|
var/datum/organ/internal/heart/heart = target.internal_organs_by_name["heart"]
|
||||||
user.visible_message("\red [user]'s hand slips, smearing [tool] in the incision in [target]'s heart, gumming it up!!" , \
|
user.visible_message("\red [user]'s hand slips, smearing [tool] in the incision in [target]'s heart, gumming it up!!" , \
|
||||||
"\red Your hand slips, smearing [tool] in the incision in [target]'s heart, gumming it up!")
|
"\red Your hand slips, smearing [tool] in the incision in [target]'s heart, gumming it up!")
|
||||||
heart.take_damage(5, 0)
|
heart.take_damage(5, 0)
|
||||||
|
|||||||
@@ -202,7 +202,7 @@
|
|||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
if(istype(mob, /mob/living/carbon/human))
|
if(istype(mob, /mob/living/carbon/human))
|
||||||
var/mob/living/carbon/human/H = mob
|
var/mob/living/carbon/human/H = mob
|
||||||
var/datum/organ/internal/brain/B = H.internal_organs["brain"]
|
var/datum/organ/internal/brain/B = H.internal_organs_by_name["brain"]
|
||||||
if (B.damage < B.min_broken_damage)
|
if (B.damage < B.min_broken_damage)
|
||||||
B.take_damage(5)
|
B.take_damage(5)
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user