mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-31 00:58:26 +01:00
Merge remote-tracking branch 'tgstation/master' into upstream-2025-11-29
# Conflicts: # _maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm # _maps/RandomRuins/SpaceRuins/garbagetruck2.dmm # _maps/map_files/CatwalkStation/CatwalkStation_2023.dmm # _maps/map_files/tramstation/tramstation.dmm # code/_onclick/hud/new_player.dm # code/datums/components/squashable.dm # code/datums/diseases/advance/symptoms/heal.dm # code/datums/diseases/chronic_illness.dm # code/datums/status_effects/buffs.dm # code/datums/status_effects/debuffs/drunk.dm # code/datums/status_effects/debuffs/stamcrit.dm # code/game/machinery/computer/crew.dm # code/game/objects/items/devices/scanners/health_analyzer.dm # code/game/objects/items/wall_mounted.dm # code/game/turfs/closed/indestructible.dm # code/modules/admin/view_variables/filterrific.dm # code/modules/antagonists/heretic/influences.dm # code/modules/cargo/orderconsole.dm # code/modules/client/preferences.dm # code/modules/events/space_vines/vine_mutations.dm # code/modules/mob/dead/new_player/new_player.dm # code/modules/mob/living/carbon/human/death.dm # code/modules/mob/living/carbon/human/species_types/jellypeople.dm # code/modules/mob/living/damage_procs.dm # code/modules/mob/living/living.dm # code/modules/mob_spawn/ghost_roles/mining_roles.dm # code/modules/mob_spawn/mob_spawn.dm # code/modules/projectiles/ammunition/energy/laser.dm # code/modules/projectiles/guns/ballistic/launchers.dm # code/modules/projectiles/guns/energy/laser.dm # code/modules/reagents/chemistry/machinery/chem_dispenser.dm # code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm # code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm # code/modules/reagents/chemistry/reagents/medicine_reagents.dm # code/modules/surgery/healing.dm # code/modules/unit_tests/designs.dm # icons/mob/inhands/items_lefthand.dmi # icons/mob/inhands/items_righthand.dmi # tgui/packages/tgui/interfaces/ChemDispenser.tsx
This commit is contained in:
@@ -73,7 +73,7 @@
|
||||
span_notice("[user] completes the surgery on [target]'s brain."),
|
||||
)
|
||||
display_pain(target, "Your brain throbs with intense pain; thinking hurts!")
|
||||
target.adjustOrganLoss(ORGAN_SLOT_BRAIN, 60)
|
||||
target.adjust_organ_loss(ORGAN_SLOT_BRAIN, 60)
|
||||
target.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_LOBOTOMY)
|
||||
else
|
||||
user.visible_message(span_warning("[user] suddenly notices that the brain [user.p_they()] [user.p_were()] working on is not there anymore."), span_warning("You suddenly notice that the brain you were working on is not there anymore."))
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
span_notice("[user] completes the surgery on [target]'s brain."),
|
||||
)
|
||||
display_pain(target, "Your brain throbs with intense pain; Thinking hurts!")
|
||||
target.adjustOrganLoss(ORGAN_SLOT_BRAIN, 60)
|
||||
target.adjust_organ_loss(ORGAN_SLOT_BRAIN, 60)
|
||||
target.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_LOBOTOMY)
|
||||
else
|
||||
user.visible_message(span_warning("[user] suddenly notices that the brain [user.p_they()] [user.p_were()] working on is not there anymore."), span_warning("You suddenly notice that the brain you were working on is not there anymore."))
|
||||
|
||||
@@ -114,7 +114,7 @@
|
||||
span_notice("[user] completes the surgery on [target]'s brain."),
|
||||
)
|
||||
display_pain(target, "Your head throbs with horrible pain!")
|
||||
target.adjustOrganLoss(ORGAN_SLOT_BRAIN, 40)
|
||||
target.adjust_organ_loss(ORGAN_SLOT_BRAIN, 40)
|
||||
else
|
||||
user.visible_message(span_warning("[user] suddenly notices that the brain [user.p_they()] [user.p_were()] working on is not there anymore."), span_warning("You suddenly notice that the brain you were working on is not there anymore."))
|
||||
return FALSE
|
||||
|
||||
@@ -63,4 +63,4 @@
|
||||
span_warning("[user] screws up, brusing [target]'s chest!"),
|
||||
span_warning("[user] screws up!"),
|
||||
)
|
||||
target.adjustBruteLoss(5)
|
||||
target.adjust_brute_loss(5)
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
for(var/datum/reagent/chem as anything in target.reagents.reagent_list)
|
||||
if(!length(bloodfilter.whitelist) || !(chem.type in bloodfilter.whitelist))
|
||||
target.reagents.remove_reagent(chem.type, clamp(round(chem.volume * 0.22, 0.2), 0.4, 10))
|
||||
target.adjustToxLoss(amount = clamp(round(target.toxloss * -0.07, 2), -2, -10), forced = TRUE) // BUBBER EDIT ADDITION - Filtration fixes toxins
|
||||
target.adjust_tox_loss(amount = clamp(round(target.toxloss * -0.07, 2), -2, -10), forced = TRUE) // BUBBER EDIT ADDITION - Filtration fixes toxins
|
||||
display_results(
|
||||
user,
|
||||
target,
|
||||
@@ -108,4 +108,4 @@
|
||||
span_warning("[user] screws up, brusing [target]'s chest!"),
|
||||
span_warning("[user] screws up!"),
|
||||
)
|
||||
target.adjustBruteLoss(5)
|
||||
target.adjust_brute_loss(5)
|
||||
|
||||
@@ -1611,6 +1611,10 @@
|
||||
return "bone"
|
||||
if (biological_state & BIO_METAL)
|
||||
return "metal"
|
||||
if (biological_state & BIO_FLESH)
|
||||
return "shreds of ligaments"
|
||||
if (biological_state & BIO_WOOD)
|
||||
return "splinters of poorly manufactured wood"
|
||||
|
||||
return "error"
|
||||
|
||||
|
||||
@@ -104,8 +104,8 @@
|
||||
var/need_mob_update = FALSE
|
||||
need_mob_update += owner.heal_overall_damage(brute = 0.5 * bodypart_coefficient, \
|
||||
burn = 0.5 * bodypart_coefficient, updating_health = FALSE, required_bodytype = BODYTYPE_PLANT)
|
||||
need_mob_update += owner.adjustToxLoss(-0.5 * bodypart_coefficient, updating_health = FALSE)
|
||||
need_mob_update += owner.adjustOxyLoss(-0.5 * bodypart_coefficient, updating_health = FALSE)
|
||||
need_mob_update += owner.adjust_tox_loss(-0.5 * bodypart_coefficient, updating_health = FALSE)
|
||||
need_mob_update += owner.adjust_oxy_loss(-0.5 * bodypart_coefficient, updating_health = FALSE)
|
||||
if(need_mob_update)
|
||||
owner.updatehealth()
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
bodypart_traits = list(TRAIT_CHUNKYFINGERS)
|
||||
disabling_threshold_percentage = 1
|
||||
bodypart_flags = BODYPART_UNHUSKABLE
|
||||
biological_state = (BIO_JOINTED)
|
||||
biological_state = (BIO_WOOD|BIO_JOINTED)
|
||||
|
||||
/obj/item/bodypart/arm/left/ghetto/Initialize(mapload, ...)
|
||||
. = ..()
|
||||
@@ -40,7 +40,7 @@
|
||||
bodypart_traits = list(TRAIT_CHUNKYFINGERS)
|
||||
disabling_threshold_percentage = 1
|
||||
bodypart_flags = BODYPART_UNHUSKABLE
|
||||
biological_state = (BIO_JOINTED)
|
||||
biological_state = (BIO_WOOD|BIO_JOINTED)
|
||||
|
||||
/obj/item/bodypart/arm/right/ghetto/Initialize(mapload, ...)
|
||||
. = ..()
|
||||
@@ -62,7 +62,7 @@
|
||||
burn_modifier = 1.5
|
||||
disabling_threshold_percentage = 1
|
||||
bodypart_flags = BODYPART_UNHUSKABLE
|
||||
biological_state = (BIO_JOINTED)
|
||||
biological_state = (BIO_WOOD|BIO_JOINTED)
|
||||
|
||||
/obj/item/bodypart/leg/left/ghetto/Initialize(mapload, ...)
|
||||
. = ..()
|
||||
@@ -84,7 +84,7 @@
|
||||
burn_modifier = 1.5
|
||||
disabling_threshold_percentage = 1
|
||||
bodypart_flags = BODYPART_UNHUSKABLE
|
||||
biological_state = (BIO_JOINTED)
|
||||
biological_state = (BIO_WOOD|BIO_JOINTED)
|
||||
|
||||
/obj/item/bodypart/leg/right/ghetto/Initialize(mapload, ...)
|
||||
. = ..()
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
display_pain(target, "The pain in your head receeds, thinking becomes a bit easier!")
|
||||
if(target.mind?.has_antag_datum(/datum/antagonist/brainwashed))
|
||||
target.mind.remove_antag_datum(/datum/antagonist/brainwashed)
|
||||
target.setOrganLoss(ORGAN_SLOT_BRAIN, target.get_organ_loss(ORGAN_SLOT_BRAIN) - 50) //we set damage in this case in order to clear the "failing" flag
|
||||
target.set_organ_loss(ORGAN_SLOT_BRAIN, target.get_organ_loss(ORGAN_SLOT_BRAIN) - 50) //we set damage in this case in order to clear the "failing" flag
|
||||
target.cure_all_traumas(TRAUMA_RESILIENCE_SURGERY)
|
||||
if(target.get_organ_loss(ORGAN_SLOT_BRAIN) > 0)
|
||||
to_chat(user, "[target]'s brain looks like it could be fixed further.")
|
||||
@@ -85,7 +85,7 @@
|
||||
span_notice("[user] completes the surgery on [target]'s brain."),
|
||||
)
|
||||
display_pain(target, "Your head throbs with horrible pain; thinking hurts!")
|
||||
target.adjustOrganLoss(ORGAN_SLOT_BRAIN, 60)
|
||||
target.adjust_organ_loss(ORGAN_SLOT_BRAIN, 60)
|
||||
target.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_LOBOTOMY)
|
||||
else
|
||||
user.visible_message(span_warning("[user] suddenly notices that the brain [user.p_they()] [user.p_were()] working on is not there anymore."), span_warning("You suddenly notice that the brain you were working on is not there anymore."))
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
)
|
||||
var/obj/item/bodypart/target_bodypart = target_human.get_bodypart(target_zone)
|
||||
target_bodypart.adjustBleedStacks(10)
|
||||
target_human.adjustBruteLoss(10)
|
||||
target_human.adjust_brute_loss(10)
|
||||
return ..()
|
||||
|
||||
/datum/surgery_step/incise_heart/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
@@ -97,8 +97,8 @@
|
||||
)
|
||||
var/obj/item/bodypart/target_bodypart = target_human.get_bodypart(target_zone)
|
||||
target_bodypart.adjustBleedStacks(10)
|
||||
target_human.adjustOrganLoss(ORGAN_SLOT_HEART, 10)
|
||||
target_human.adjustBruteLoss(10)
|
||||
target_human.adjust_organ_loss(ORGAN_SLOT_HEART, 10)
|
||||
target_human.adjust_brute_loss(10)
|
||||
|
||||
//grafts a coronary bypass onto the individual's heart, success chance is 90% base again
|
||||
/datum/surgery_step/coronary_bypass
|
||||
@@ -135,7 +135,7 @@
|
||||
display_pain(target, "The pain in your chest is unbearable! You can barely take it anymore!")
|
||||
|
||||
/datum/surgery_step/coronary_bypass/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
|
||||
target.setOrganLoss(ORGAN_SLOT_HEART, 60)
|
||||
target.set_organ_loss(ORGAN_SLOT_HEART, 60)
|
||||
var/obj/item/organ/heart/target_heart = target.get_organ_slot(ORGAN_SLOT_HEART)
|
||||
if(target_heart) //slightly worrying if we lost our heart mid-operation, but that's life
|
||||
target_heart.operated = TRUE
|
||||
@@ -162,7 +162,7 @@
|
||||
span_warning("[user] screws up, causing blood to spurt out of [target_human]'s chest profusely!"),
|
||||
)
|
||||
display_pain(target, "Your chest burns; you feel like you're going insane!")
|
||||
target_human.adjustOrganLoss(ORGAN_SLOT_HEART, 20)
|
||||
target_human.adjust_organ_loss(ORGAN_SLOT_HEART, 20)
|
||||
var/obj/item/bodypart/target_bodypart = target_human.get_bodypart(target_zone)
|
||||
target_bodypart.adjustBleedStacks(30)
|
||||
return FALSE
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
span_warning("[user] accidentally stabs [target] right in the brain!"),
|
||||
)
|
||||
display_pain(target, "You feel a visceral stabbing pain right through your head, into your brain!")
|
||||
target.adjustOrganLoss(ORGAN_SLOT_BRAIN, 70)
|
||||
target.adjust_organ_loss(ORGAN_SLOT_BRAIN, 70)
|
||||
else
|
||||
display_results(
|
||||
user,
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
span_warning("[user] accidentally stabs [target] right in the brain!"),
|
||||
)
|
||||
display_pain(target, "You feel a visceral stabbing pain right through your head, into your brain!")
|
||||
target.adjustOrganLoss(ORGAN_SLOT_BRAIN, 70)
|
||||
target.adjust_organ_loss(ORGAN_SLOT_BRAIN, 70)
|
||||
else
|
||||
display_results(
|
||||
user,
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
/datum/surgery_step/gastrectomy/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
|
||||
var/mob/living/carbon/human/target_human = target
|
||||
var/obj/item/organ/stomach/target_stomach = target.get_organ_slot(ORGAN_SLOT_STOMACH)
|
||||
target_human.setOrganLoss(ORGAN_SLOT_STOMACH, 20) // Stomachs have a threshold for being able to even digest food, so I might tweak this number
|
||||
target_human.set_organ_loss(ORGAN_SLOT_STOMACH, 20) // Stomachs have a threshold for being able to even digest food, so I might tweak this number
|
||||
if(target_stomach)
|
||||
target_stomach.operated = TRUE
|
||||
if(target_stomach.organ_flags & ORGAN_EMP) //If our organ is failing due to an EMP, fix that
|
||||
@@ -88,7 +88,7 @@
|
||||
|
||||
/datum/surgery_step/gastrectomy/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery)
|
||||
var/mob/living/carbon/human/target_human = target
|
||||
target_human.adjustOrganLoss(ORGAN_SLOT_STOMACH, 15)
|
||||
target_human.adjust_organ_loss(ORGAN_SLOT_STOMACH, 15)
|
||||
display_results(
|
||||
user,
|
||||
target,
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
/datum/surgery_step/heal/initiate(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, try_to_fail = FALSE)
|
||||
if(!..())
|
||||
return
|
||||
while((brutehealing && target.getBruteLoss()) || (burnhealing && target.getFireLoss()))
|
||||
while((brutehealing && target.get_brute_loss()) || (burnhealing && target.get_fire_loss()))
|
||||
if(!..())
|
||||
break
|
||||
|
||||
@@ -90,20 +90,20 @@
|
||||
feedback_value = null // BUBBER EDIT ADDITION
|
||||
if(target.stat == DEAD) //dead patients get way less additional heal from the damage they have.
|
||||
// BUBBER EDIT CHANGE BEGIN - Husks get reduced bonus, but dead patients are full speed
|
||||
//brute_healed += round((target.getBruteLoss() * (brute_multiplier * 0.2)),0.1)
|
||||
//burn_healed += round((target.getFireLoss() * (burn_multiplier * 0.2)),0.1)
|
||||
//brute_healed += round((target.get_brute_loss() * (brute_multiplier * 0.2)),0.1)
|
||||
//burn_healed += round((target.get_fire_loss() * (burn_multiplier * 0.2)),0.1)
|
||||
dead_patient = TRUE
|
||||
if(HAS_TRAIT(target, TRAIT_HUSK))
|
||||
brute_healed += round((target.getBruteLoss() * (brute_multiplier * 0.7)),0.1)
|
||||
burn_healed += round((target.getFireLoss() * (burn_multiplier * 0.7)),0.1)
|
||||
brute_healed += round((target.get_brute_loss() * (brute_multiplier * 0.7)),0.1)
|
||||
burn_healed += round((target.get_fire_loss() * (burn_multiplier * 0.7)),0.1)
|
||||
status_msg += "[target.p_are()] husked"
|
||||
else
|
||||
brute_healed += round((target.getBruteLoss() * brute_multiplier),0.1)
|
||||
burn_healed += round((target.getFireLoss() * burn_multiplier),0.1)
|
||||
brute_healed += round((target.get_brute_loss() * brute_multiplier),0.1)
|
||||
burn_healed += round((target.get_fire_loss() * burn_multiplier),0.1)
|
||||
// BUBBER EDIT CHANGE END
|
||||
else
|
||||
brute_healed += round((target.getBruteLoss() * brute_multiplier),0.1)
|
||||
burn_healed += round((target.getFireLoss() * burn_multiplier),0.1)
|
||||
brute_healed += round((target.get_brute_loss() * brute_multiplier),0.1)
|
||||
burn_healed += round((target.get_fire_loss() * burn_multiplier),0.1)
|
||||
dead_patient = FALSE
|
||||
if(!get_location_accessible(target, target_zone))
|
||||
brute_healed *= 0.55
|
||||
@@ -150,8 +150,8 @@
|
||||
)
|
||||
var/brute_dealt = brutehealing * 0.8
|
||||
var/burn_dealt = burnhealing * 0.8
|
||||
brute_dealt += round((target.getBruteLoss() * (brute_multiplier * 0.5)),0.1)
|
||||
burn_dealt += round((target.getFireLoss() * (burn_multiplier * 0.5)),0.1)
|
||||
brute_dealt += round((target.get_brute_loss() * (brute_multiplier * 0.5)),0.1)
|
||||
burn_dealt += round((target.get_fire_loss() * (burn_multiplier * 0.5)),0.1)
|
||||
target.take_bodypart_damage(brute_dealt, burn_dealt, wound_bonus=CANT_WOUND)
|
||||
return FALSE
|
||||
|
||||
@@ -184,11 +184,11 @@
|
||||
if(!brute_healed)
|
||||
return
|
||||
|
||||
var/estimated_remaining_steps = target.getBruteLoss() / brute_healed
|
||||
var/estimated_remaining_steps = target.get_brute_loss() / brute_healed
|
||||
var/progress_text
|
||||
|
||||
if(locate(/obj/item/healthanalyzer) in user.held_items)
|
||||
progress_text = ". Remaining brute: <font color='#ff3333'>[target.getBruteLoss()]</font>"
|
||||
progress_text = ". Remaining brute: <font color='#ff3333'>[target.get_brute_loss()]</font>"
|
||||
else
|
||||
switch(estimated_remaining_steps)
|
||||
if(-INFINITY to 1)
|
||||
@@ -249,11 +249,11 @@
|
||||
/datum/surgery_step/heal/burn/get_progress(mob/user, mob/living/carbon/target, brute_healed, burn_healed)
|
||||
if(!burn_healed)
|
||||
return
|
||||
var/estimated_remaining_steps = target.getFireLoss() / burn_healed
|
||||
var/estimated_remaining_steps = target.get_fire_loss() / burn_healed
|
||||
var/progress_text
|
||||
|
||||
if(locate(/obj/item/healthanalyzer) in user.held_items)
|
||||
progress_text = ". Remaining burn: <font color='#ff9933'>[target.getFireLoss()]</font>"
|
||||
progress_text = ". Remaining burn: <font color='#ff9933'>[target.get_fire_loss()]</font>"
|
||||
else
|
||||
switch(estimated_remaining_steps)
|
||||
if(-INFINITY to 1)
|
||||
@@ -314,17 +314,17 @@
|
||||
/datum/surgery_step/heal/combo/get_progress(mob/user, mob/living/carbon/target, brute_healed, burn_healed)
|
||||
var/estimated_remaining_steps = 0
|
||||
if(brute_healed > 0)
|
||||
estimated_remaining_steps = max(0, (target.getBruteLoss() / brute_healed))
|
||||
estimated_remaining_steps = max(0, (target.get_brute_loss() / brute_healed))
|
||||
if(burn_healed > 0)
|
||||
estimated_remaining_steps = max(estimated_remaining_steps, (target.getFireLoss() / burn_healed)) // whichever is higher between brute or burn steps
|
||||
estimated_remaining_steps = max(estimated_remaining_steps, (target.get_fire_loss() / burn_healed)) // whichever is higher between brute or burn steps
|
||||
|
||||
var/progress_text
|
||||
|
||||
if(locate(/obj/item/healthanalyzer) in user.held_items)
|
||||
if(target.getBruteLoss())
|
||||
progress_text = ". Remaining brute: <font color='#ff3333'>[target.getBruteLoss()]</font>"
|
||||
if(target.getFireLoss())
|
||||
progress_text += ". Remaining burn: <font color='#ff9933'>[target.getFireLoss()]</font>"
|
||||
if(target.get_brute_loss())
|
||||
progress_text = ". Remaining brute: <font color='#ff3333'>[target.get_brute_loss()]</font>"
|
||||
if(target.get_fire_loss())
|
||||
progress_text += ". Remaining burn: <font color='#ff9933'>[target.get_fire_loss()]</font>"
|
||||
else
|
||||
switch(estimated_remaining_steps)
|
||||
if(-INFINITY to 1)
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
/datum/surgery_step/hepatectomy/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
|
||||
var/mob/living/carbon/human/human_target = target
|
||||
var/obj/item/organ/liver/target_liver = target.get_organ_slot(ORGAN_SLOT_LIVER)
|
||||
human_target.setOrganLoss(ORGAN_SLOT_LIVER, 10) //not bad, not great
|
||||
human_target.set_organ_loss(ORGAN_SLOT_LIVER, 10) //not bad, not great
|
||||
if(target_liver)
|
||||
target_liver.operated = TRUE
|
||||
if(target_liver.organ_flags & ORGAN_EMP) //If our organ is failing due to an EMP, fix that
|
||||
@@ -87,7 +87,7 @@
|
||||
|
||||
/datum/surgery_step/hepatectomy/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery)
|
||||
var/mob/living/carbon/human/human_target = target
|
||||
human_target.adjustOrganLoss(ORGAN_SLOT_LIVER, 15)
|
||||
human_target.adjust_organ_loss(ORGAN_SLOT_LIVER, 15)
|
||||
display_results(
|
||||
user,
|
||||
target,
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
if(ishuman(target))
|
||||
var/mob/living/carbon/human/human_target = target
|
||||
var/obj/item/organ/lungs/target_lungs = human_target.get_organ_slot(ORGAN_SLOT_LUNGS)
|
||||
human_target.setOrganLoss(ORGAN_SLOT_LUNGS, 60)
|
||||
human_target.set_organ_loss(ORGAN_SLOT_LUNGS, 60)
|
||||
if(target_lungs)
|
||||
target_lungs.operated = TRUE
|
||||
if(target_lungs.organ_flags & ORGAN_EMP) //If our organ is failing due to an EMP, fix that
|
||||
@@ -95,5 +95,5 @@
|
||||
)
|
||||
display_pain(target, "You feel a sharp stab in your chest; the wind is knocked out of you and it hurts to catch your breath!")
|
||||
human_target.losebreath += 4
|
||||
human_target.adjustOrganLoss(ORGAN_SLOT_LUNGS, 10)
|
||||
human_target.adjust_organ_loss(ORGAN_SLOT_LUNGS, 10)
|
||||
return FALSE
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
if(organ_flags & ORGAN_FAILING)
|
||||
// forced to ensure people don't use it to gain tox as slime person
|
||||
owner.adjustToxLoss(2 * seconds_per_tick, forced = TRUE)
|
||||
owner.adjust_tox_loss(2 * seconds_per_tick, forced = TRUE)
|
||||
else if(inflamation_stage)
|
||||
inflamation(seconds_per_tick)
|
||||
else if(SPT_PROB(APPENDICITIS_PROB, seconds_per_tick) && !HAS_TRAIT(owner, TRAIT_TEMPORARY_BODY))
|
||||
@@ -68,13 +68,13 @@
|
||||
if(2)
|
||||
if(SPT_PROB(1.5, seconds_per_tick))
|
||||
to_chat(organ_owner, span_warning("You feel a stabbing pain in your abdomen!"))
|
||||
organ_owner.adjustOrganLoss(ORGAN_SLOT_APPENDIX, 5)
|
||||
organ_owner.adjust_organ_loss(ORGAN_SLOT_APPENDIX, 5)
|
||||
organ_owner.Stun(rand(40, 60))
|
||||
organ_owner.adjustToxLoss(1, forced = TRUE)
|
||||
organ_owner.adjust_tox_loss(1, forced = TRUE)
|
||||
if(3)
|
||||
if(SPT_PROB(0.5, seconds_per_tick))
|
||||
organ_owner.vomit(VOMIT_CATEGORY_DEFAULT, lost_nutrition = 95)
|
||||
organ_owner.adjustOrganLoss(ORGAN_SLOT_APPENDIX, 15)
|
||||
organ_owner.adjust_organ_loss(ORGAN_SLOT_APPENDIX, 15)
|
||||
|
||||
/obj/item/organ/appendix/feel_for_damage(self_aware)
|
||||
var/effective_stage = floor(inflamation_stage + (damage / maxHealth))
|
||||
|
||||
@@ -244,7 +244,7 @@
|
||||
to_chat(owner, span_userdanger("You feel an explosion erupt inside your [parse_zone(zone)] as your implant breaks!"))
|
||||
owner.adjust_fire_stacks(20)
|
||||
owner.ignite_mob()
|
||||
owner.adjustFireLoss(25)
|
||||
owner.adjust_fire_loss(25)
|
||||
organ_flags |= ORGAN_FAILING
|
||||
|
||||
/obj/item/organ/cyberimp/arm/toolkit/gun/laser
|
||||
|
||||
@@ -90,19 +90,19 @@
|
||||
/// boolean that stands for if PHYSICAL damage being patched
|
||||
var/body_damage_patched = FALSE
|
||||
var/need_mob_update = FALSE
|
||||
if(owner.getOxyLoss())
|
||||
need_mob_update += owner.adjustOxyLoss(-5, updating_health = FALSE)
|
||||
if(owner.get_oxy_loss())
|
||||
need_mob_update += owner.adjust_oxy_loss(-5, updating_health = FALSE)
|
||||
revive_cost += 5
|
||||
if(owner.getBruteLoss())
|
||||
need_mob_update += owner.adjustBruteLoss(-2, updating_health = FALSE)
|
||||
if(owner.get_brute_loss())
|
||||
need_mob_update += owner.adjust_brute_loss(-2, updating_health = FALSE)
|
||||
revive_cost += 40
|
||||
body_damage_patched = TRUE
|
||||
if(owner.getFireLoss())
|
||||
need_mob_update += owner.adjustFireLoss(-2, updating_health = FALSE)
|
||||
if(owner.get_fire_loss())
|
||||
need_mob_update += owner.adjust_fire_loss(-2, updating_health = FALSE)
|
||||
revive_cost += 40
|
||||
body_damage_patched = TRUE
|
||||
if(owner.getToxLoss())
|
||||
need_mob_update += owner.adjustToxLoss(-1, updating_health = FALSE)
|
||||
if(owner.get_tox_loss())
|
||||
need_mob_update += owner.adjust_tox_loss(-1, updating_health = FALSE)
|
||||
revive_cost += 40
|
||||
if(need_mob_update)
|
||||
owner.updatehealth()
|
||||
|
||||
@@ -202,8 +202,8 @@
|
||||
owner.SetKnockdown(0)
|
||||
owner.SetImmobilized(0)
|
||||
owner.SetParalyzed(0)
|
||||
owner.setStaminaLoss(0)
|
||||
addtimer(CALLBACK(owner, TYPE_PROC_REF(/mob/living, setStaminaLoss), 0), stun_resistance_time)
|
||||
owner.set_stamina_loss(0)
|
||||
addtimer(CALLBACK(owner, TYPE_PROC_REF(/mob/living, set_stamina_loss), 0), stun_resistance_time)
|
||||
|
||||
var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread
|
||||
sparks.set_up(5, 1, src)
|
||||
|
||||
@@ -191,11 +191,10 @@
|
||||
desc = "A basic cybernetic organ designed to mimic the operation of ears."
|
||||
damage_multiplier = 2.4
|
||||
bodypart_overlay = /datum/bodypart_overlay/mutant/cat_ears/cybernetic
|
||||
sprite_accessory_override = /datum/sprite_accessory/ears/cat
|
||||
sprite_accessory_override = /datum/sprite_accessory/ears/cat/cybernetic
|
||||
organ_flags = ORGAN_ROBOTIC
|
||||
failing_desc = "seems to be broken."
|
||||
|
||||
|
||||
/obj/item/organ/ears/cat/cybernetic/upgraded
|
||||
name = "cybernetic cat ears"
|
||||
icon_state = "ears-c-cat-u"
|
||||
@@ -215,6 +214,7 @@
|
||||
desc = "Allows the user to more easily hear whispers. The user becomes extremely vulnerable to loud noises, however."
|
||||
damage_multiplier = 3 // 4 would be excessive
|
||||
organ_traits = list(TRAIT_GOOD_HEARING)
|
||||
bodypart_overlay = /datum/bodypart_overlay/mutant/cat_ears/cybernetic/green
|
||||
|
||||
/obj/item/organ/ears/cat/cybernetic/xray
|
||||
name = "wall-penetrating cybernetic cat ears"
|
||||
@@ -222,10 +222,36 @@
|
||||
desc = "Through the power of modern feline engineering, allows the user to hear speech through walls. The user becomes extremely vulnerable to loud noises, however."
|
||||
damage_multiplier = 3 // As above, 4 would be excessive
|
||||
organ_traits = list(TRAIT_XRAY_HEARING)
|
||||
bodypart_overlay = /datum/bodypart_overlay/mutant/cat_ears/cybernetic/blue
|
||||
|
||||
/datum/bodypart_overlay/mutant/cat_ears/cybernetic
|
||||
color_source = null
|
||||
dyable = FALSE
|
||||
/// Color of the inner ear
|
||||
var/inner_color = "#F0004A"
|
||||
|
||||
/datum/bodypart_overlay/mutant/cat_ears/cybernetic/get_image(image_layer, obj/item/bodypart/limb)
|
||||
if (image_layer != bitflag_to_layer(inner_layer))
|
||||
return ..()
|
||||
var/mutable_appearance/ear_holder = ..()
|
||||
var/mutable_appearance/inner = ear_holder.overlays[2]
|
||||
inner.color = inner_color
|
||||
return ear_holder
|
||||
|
||||
/datum/bodypart_overlay/mutant/cat_ears/cybernetic/get_overlay(layer, obj/item/bodypart/limb)
|
||||
if (layer != inner_layer)
|
||||
return ..()
|
||||
var/list/all_images = ..()
|
||||
var/mutable_appearance/ear_holder = all_images[1]
|
||||
var/mutable_appearance/inner = ear_holder.overlays[2]
|
||||
all_images += emissive_appearance(inner.icon, inner.icon_state, limb, layer = inner.layer, alpha = inner.alpha * 0.75)
|
||||
return all_images
|
||||
|
||||
/datum/bodypart_overlay/mutant/cat_ears/cybernetic/green
|
||||
inner_color = "#0079EA"
|
||||
|
||||
/datum/bodypart_overlay/mutant/cat_ears/cybernetic/blue
|
||||
inner_color = "#00D844"
|
||||
|
||||
/obj/item/organ/ears/ghost
|
||||
name = "ghost ears"
|
||||
|
||||
@@ -1224,7 +1224,7 @@
|
||||
return span_danger("[owner.p_Their()] eyes [penlight_message].")
|
||||
|
||||
/obj/item/organ/eyes/night_vision/maintenance_adapted/on_life(seconds_per_tick, times_fired)
|
||||
if(!owner.is_blind() && isturf(owner.loc) && owner.has_light_nearby(light_amount=0.5)) //we allow a little more than usual so we can produce light from the adapted eyes
|
||||
if(owner.get_eye_protection() <= FLASH_PROTECTION_SENSITIVE && !owner.is_blind() && isturf(owner.loc) && owner.has_light_nearby(light_amount=0.5)) //we allow a little more than usual so we can produce light from the adapted eyes
|
||||
to_chat(owner, span_danger("Your eyes! They burn in the light!"))
|
||||
apply_organ_damage(10) //blind quickly
|
||||
playsound(owner, 'sound/machines/grill/grillsizzle.ogg', 50)
|
||||
|
||||
@@ -247,11 +247,14 @@
|
||||
if(stabilization_available && owner.health <= owner.crit_threshold)
|
||||
stabilize_heart()
|
||||
|
||||
if(bleed_prevention && ishuman(owner) && owner.blood_volume < BLOOD_VOLUME_NORMAL)
|
||||
// Wound healing is intentionally tied to blood volume.
|
||||
if(bleed_prevention && ishuman(owner) && owner.get_blood_volume() < BLOOD_VOLUME_NORMAL)
|
||||
var/mob/living/carbon/human/wounded_owner = owner
|
||||
wounded_owner.blood_volume += 2 * seconds_per_tick
|
||||
|
||||
wounded_owner.adjust_blood_volume(2 * seconds_per_tick)
|
||||
|
||||
if(toxification_probability && prob(toxification_probability))
|
||||
wounded_owner.adjustToxLoss(1 * seconds_per_tick, updating_health = FALSE)
|
||||
wounded_owner.adjust_tox_loss(1 * seconds_per_tick, updating_health = FALSE)
|
||||
|
||||
var/datum/wound/bloodiest_wound
|
||||
|
||||
|
||||
@@ -98,8 +98,7 @@
|
||||
if(!core)
|
||||
return
|
||||
|
||||
if(owner.blood_volume <= BLOOD_VOLUME_NORMAL)
|
||||
owner.blood_volume += 5 * seconds_per_tick
|
||||
owner.adjust_blood_volume(5 * seconds_per_tick, maximum = BLOOD_VOLUME_NORMAL)
|
||||
|
||||
if(owner.health <= owner.crit_threshold)
|
||||
activate_survival(owner)
|
||||
@@ -189,8 +188,8 @@
|
||||
|
||||
if(owner.health <= owner.crit_threshold)
|
||||
owner.heal_overall_damage(5, 5)
|
||||
owner.adjustOxyLoss(-5)
|
||||
owner.adjustToxLoss(-5)
|
||||
owner.adjust_oxy_loss(-5)
|
||||
owner.adjust_tox_loss(-5)
|
||||
|
||||
/datum/status_effect/voltaic_overdrive/on_apply()
|
||||
. = ..()
|
||||
|
||||
@@ -165,17 +165,17 @@
|
||||
switch(failure_time)
|
||||
//After 60 seconds we begin to feel the effects
|
||||
if(1 * LIVER_FAILURE_STAGE_SECONDS to 2 * LIVER_FAILURE_STAGE_SECONDS - 1)
|
||||
owner.adjustToxLoss(0.2 * seconds_per_tick,forced = TRUE)
|
||||
owner.adjust_tox_loss(0.2 * seconds_per_tick,forced = TRUE)
|
||||
owner.adjust_disgust(0.1 * seconds_per_tick)
|
||||
|
||||
if(2 * LIVER_FAILURE_STAGE_SECONDS to 3 * LIVER_FAILURE_STAGE_SECONDS - 1)
|
||||
owner.adjustToxLoss(0.4 * seconds_per_tick,forced = TRUE)
|
||||
owner.adjust_tox_loss(0.4 * seconds_per_tick,forced = TRUE)
|
||||
owner.adjust_drowsiness(0.5 SECONDS * seconds_per_tick)
|
||||
owner.adjust_disgust(0.3 * seconds_per_tick)
|
||||
|
||||
if(3 * LIVER_FAILURE_STAGE_SECONDS to 4 * LIVER_FAILURE_STAGE_SECONDS - 1)
|
||||
owner.adjustToxLoss(0.6 * seconds_per_tick,forced = TRUE)
|
||||
owner.adjustOrganLoss(pick(ORGAN_SLOT_HEART,ORGAN_SLOT_LUNGS,ORGAN_SLOT_STOMACH,ORGAN_SLOT_EYES,ORGAN_SLOT_EARS),0.2 * seconds_per_tick)
|
||||
owner.adjust_tox_loss(0.6 * seconds_per_tick,forced = TRUE)
|
||||
owner.adjust_organ_loss(pick(ORGAN_SLOT_HEART,ORGAN_SLOT_LUNGS,ORGAN_SLOT_STOMACH,ORGAN_SLOT_EYES,ORGAN_SLOT_EARS),0.2 * seconds_per_tick)
|
||||
owner.adjust_drowsiness(1 SECONDS * seconds_per_tick)
|
||||
owner.adjust_disgust(0.6 * seconds_per_tick)
|
||||
|
||||
@@ -183,8 +183,8 @@
|
||||
owner.emote("drool")
|
||||
|
||||
if(4 * LIVER_FAILURE_STAGE_SECONDS to INFINITY)
|
||||
owner.adjustToxLoss(0.8 * seconds_per_tick,forced = TRUE)
|
||||
owner.adjustOrganLoss(pick(ORGAN_SLOT_HEART,ORGAN_SLOT_LUNGS,ORGAN_SLOT_STOMACH,ORGAN_SLOT_EYES,ORGAN_SLOT_EARS),0.5 * seconds_per_tick)
|
||||
owner.adjust_tox_loss(0.8 * seconds_per_tick,forced = TRUE)
|
||||
owner.adjust_organ_loss(pick(ORGAN_SLOT_HEART,ORGAN_SLOT_LUNGS,ORGAN_SLOT_STOMACH,ORGAN_SLOT_EYES,ORGAN_SLOT_EARS),0.5 * seconds_per_tick)
|
||||
owner.adjust_drowsiness(1.6 SECONDS * seconds_per_tick)
|
||||
owner.adjust_disgust(1.2 * seconds_per_tick)
|
||||
|
||||
@@ -247,7 +247,7 @@
|
||||
if(. & EMP_PROTECT_SELF)
|
||||
return
|
||||
if(!COOLDOWN_FINISHED(src, severe_cooldown)) //So we cant just spam emp to kill people.
|
||||
owner.adjustToxLoss(10)
|
||||
owner.adjust_tox_loss(10)
|
||||
COOLDOWN_START(src, severe_cooldown, 10 SECONDS)
|
||||
if(prob(emp_vulnerability/severity)) //Chance of permanent effects
|
||||
organ_flags |= ORGAN_EMP //Starts organ faliure - gonna need replacing soon.
|
||||
@@ -302,7 +302,7 @@
|
||||
if(!(organ_owner.mob_biotypes & MOB_PLANT))
|
||||
return
|
||||
if(chem.type == /datum/reagent/toxin/plantbgone)
|
||||
organ_owner.adjustToxLoss(3 * REM * seconds_per_tick)
|
||||
organ_owner.adjust_tox_loss(3 * REM * seconds_per_tick)
|
||||
|
||||
/obj/item/organ/liver/snail
|
||||
name = "snail liver"
|
||||
@@ -328,7 +328,7 @@
|
||||
return
|
||||
if(istype(chem, /datum/reagent/consumable/salt))
|
||||
playsound(organ_owner, SFX_SEAR, 30, TRUE)
|
||||
organ_owner.adjustFireLoss(2 * REM * seconds_per_tick)
|
||||
organ_owner.adjust_fire_loss(2 * REM * seconds_per_tick)
|
||||
organ_owner.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM * seconds_per_tick)
|
||||
return COMSIG_MOB_STOP_REAGENT_TICK
|
||||
|
||||
@@ -357,8 +357,7 @@
|
||||
/obj/item/organ/liver/bloody/on_life(seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
|
||||
if(owner.blood_volume < BLOOD_VOLUME_NORMAL)
|
||||
owner.blood_volume += 4 * seconds_per_tick
|
||||
owner.adjust_blood_volume(4 * seconds_per_tick, maximum = BLOOD_VOLUME_NORMAL)
|
||||
|
||||
/// Convert all non-alcoholic drinks into alcohol
|
||||
/obj/item/organ/liver/distillery
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
if((. & COMSIG_MOB_STOP_REAGENT_TICK) || (organ_flags & ORGAN_FAILING))
|
||||
return
|
||||
if(istype(chem, /datum/reagent/toxin/bonehurtingjuice))
|
||||
organ_owner.adjustStaminaLoss(7.5 * REM * seconds_per_tick, updating_stamina = FALSE)
|
||||
organ_owner.adjustBruteLoss(0.5 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
organ_owner.adjust_stamina_loss(7.5 * REM * seconds_per_tick, updating_stamina = FALSE)
|
||||
organ_owner.adjust_brute_loss(0.5 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
if(SPT_PROB(10, seconds_per_tick))
|
||||
switch(rand(1, 3))
|
||||
if(1)
|
||||
|
||||
@@ -263,7 +263,7 @@
|
||||
breathe_gas_volume(breath, /datum/gas/oxygen, /datum/gas/carbon_dioxide)
|
||||
// Heal mob if not in crit.
|
||||
if(breather.health >= breather.crit_threshold && breather.oxyloss)
|
||||
breather.adjustOxyLoss(-5)
|
||||
breather.adjust_oxy_loss(-5)
|
||||
|
||||
/// Maximum Oxygen effects. "Too much O2!"
|
||||
/obj/item/organ/lungs/proc/too_much_oxygen(mob/living/carbon/breather, datum/gas_mixture/breath, o2_pp, old_o2_pp)
|
||||
@@ -310,7 +310,7 @@
|
||||
breathe_gas_volume(breath, /datum/gas/nitrogen, /datum/gas/carbon_dioxide)
|
||||
// Heal mob if not in crit.
|
||||
if(breather.health >= breather.crit_threshold && breather.oxyloss)
|
||||
breather.adjustOxyLoss(-5)
|
||||
breather.adjust_oxy_loss(-5)
|
||||
|
||||
/// Maximum CO2 effects. "Too much CO2!"
|
||||
/obj/item/organ/lungs/proc/too_much_co2(mob/living/carbon/breather, datum/gas_mixture/breath, co2_pp, old_co2_pp)
|
||||
@@ -364,7 +364,7 @@
|
||||
breathe_gas_volume(breath, /datum/gas/plasma, /datum/gas/carbon_dioxide)
|
||||
// Heal mob if not in crit.
|
||||
if(breather.health >= breather.crit_threshold && breather.oxyloss)
|
||||
breather.adjustOxyLoss(-5)
|
||||
breather.adjust_oxy_loss(-5)
|
||||
|
||||
/// Maximum Plasma effects. "Too much Plasma!"
|
||||
/obj/item/organ/lungs/proc/too_much_plasma(mob/living/carbon/breather, datum/gas_mixture/breath, plasma_pp, old_plasma_pp)
|
||||
@@ -390,7 +390,7 @@
|
||||
if(bz_pp > BZ_trip_balls_min)
|
||||
breather.reagents.add_reagent(/datum/reagent/bz_metabolites, clamp(bz_pp, 1, 5))
|
||||
if(bz_pp > BZ_brain_damage_min && prob(33))
|
||||
breather.adjustOrganLoss(ORGAN_SLOT_BRAIN, 3, 150, ORGAN_ORGANIC)
|
||||
breather.adjust_organ_loss(ORGAN_SLOT_BRAIN, 3, 150, ORGAN_ORGANIC)
|
||||
|
||||
/// Breathing in refridgerator coolent, shit's caustic
|
||||
/obj/item/organ/lungs/proc/too_much_freon(mob/living/carbon/breather, datum/gas_mixture/breath, freon_pp, old_freon_pp)
|
||||
@@ -402,12 +402,12 @@
|
||||
to_chat(breather, span_alert("Your mouth feels like it's burning!"))
|
||||
if (freon_pp > 40)
|
||||
breather.emote("gasp")
|
||||
breather.adjustFireLoss(15)
|
||||
breather.adjust_fire_loss(15)
|
||||
if (prob(freon_pp / 2))
|
||||
to_chat(breather, span_alert("Your throat closes up!"))
|
||||
breather.set_silence_if_lower(6 SECONDS)
|
||||
else
|
||||
breather.adjustFireLoss(freon_pp / 4)
|
||||
breather.adjust_fire_loss(freon_pp / 4)
|
||||
|
||||
/// Breathing in halon, convert it to a reagent
|
||||
/obj/item/organ/lungs/proc/too_much_halon(mob/living/carbon/breather, datum/gas_mixture/breath, halon_pp, old_halon_pp)
|
||||
@@ -415,7 +415,7 @@
|
||||
breathe_gas_volume(breath, /datum/gas/halon)
|
||||
// Metabolize to reagent.
|
||||
if(halon_pp > gas_stimulation_min)
|
||||
breather.adjustOxyLoss(5)
|
||||
breather.adjust_oxy_loss(5)
|
||||
breather.reagents.add_reagent(/datum/reagent/halon, max(0, 1 - breather.reagents.get_reagent_amount(/datum/reagent/halon)))
|
||||
|
||||
/// Sleeping gas with healing properties.
|
||||
@@ -557,7 +557,7 @@
|
||||
// Random chance to inflict side effects increases with pressure.
|
||||
if((prob(nitrium_pp) && (nitrium_pp > 15)))
|
||||
// Nitrium side-effect.
|
||||
breather.adjustOrganLoss(ORGAN_SLOT_LUNGS, nitrium_pp * 0.1)
|
||||
breather.adjust_organ_loss(ORGAN_SLOT_LUNGS, nitrium_pp * 0.1)
|
||||
to_chat(breather, span_notice("You feel a burning sensation in your chest"))
|
||||
// Metabolize to reagents.
|
||||
if (nitrium_pp > 5)
|
||||
@@ -574,7 +574,7 @@
|
||||
// Tritium side-effects.
|
||||
if(gas_breathed > moles_visible)
|
||||
var/ratio = gas_breathed * 15
|
||||
breather.adjustToxLoss(clamp(ratio, MIN_TOXIC_GAS_DAMAGE, MAX_TOXIC_GAS_DAMAGE))
|
||||
breather.adjust_tox_loss(clamp(ratio, MIN_TOXIC_GAS_DAMAGE, MAX_TOXIC_GAS_DAMAGE))
|
||||
// If you're breathing in half an atmosphere of radioactive gas, you fucked up.
|
||||
if((trit_pp > tritium_irradiation_moles_min) && SSradiation.can_irradiate_basic(breather))
|
||||
var/lerp_scale = min(tritium_irradiation_moles_max, trit_pp - tritium_irradiation_moles_min) / (tritium_irradiation_moles_max - tritium_irradiation_moles_min)
|
||||
@@ -631,7 +631,7 @@
|
||||
breather.failed_last_breath = FALSE
|
||||
// Vacuum-adapted lungs regenerate oxyloss even when breathing nothing.
|
||||
if(breather.health >= breather.crit_threshold && breather.oxyloss)
|
||||
breather.adjustOxyLoss(-5)
|
||||
breather.adjust_oxy_loss(-5)
|
||||
else
|
||||
// Can't breathe!
|
||||
breather.failed_last_breath = TRUE
|
||||
@@ -913,7 +913,7 @@
|
||||
. = ..()
|
||||
if (breath?.gases[/datum/gas/plasma])
|
||||
var/plasma_pp = breath.get_breath_partial_pressure(breath.gases[/datum/gas/plasma][MOLES])
|
||||
breather_slime.blood_volume += (0.2 * plasma_pp) // 10/s when breathing literally nothing but plasma, which will suffocate you.
|
||||
breather_slime.adjust_blood_volume(0.2 * plasma_pp) // 10/s when breathing literally nothing but plasma, which will suffocate you.
|
||||
|
||||
/obj/item/organ/lungs/smoker_lungs
|
||||
name = "smoker lungs"
|
||||
|
||||
@@ -134,7 +134,7 @@
|
||||
if(bodypart_to_attach.check_for_frankenstein(target))
|
||||
bodypart_to_attach.bodypart_flags |= BODYPART_IMPLANTED
|
||||
if(organ_rejection_dam)
|
||||
target.adjustToxLoss(organ_rejection_dam)
|
||||
target.adjust_tox_loss(organ_rejection_dam)
|
||||
display_results(
|
||||
user, target,
|
||||
span_notice("You succeed in replacing [target]'s [target.parse_zone_with_bodypart(target_zone)]."),
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
span_notice("[user] send a powerful shock to [target]'s brain with [tool]..."),
|
||||
)
|
||||
target.grab_ghost()
|
||||
target.adjustOxyLoss(-50)
|
||||
target.adjust_oxy_loss(-50)
|
||||
if(iscarbon(target))
|
||||
var/mob/living/carbon/carbon_target = target
|
||||
carbon_target.set_heartattack(FALSE)
|
||||
@@ -160,8 +160,8 @@
|
||||
|
||||
/datum/surgery_step/revive/carbon/on_revived(mob/surgeon, mob/living/patient)
|
||||
. = ..()
|
||||
patient.adjustOrganLoss(ORGAN_SLOT_BRAIN, 50, 199) // MAD SCIENCE
|
||||
patient.adjust_organ_loss(ORGAN_SLOT_BRAIN, 50, 199) // MAD SCIENCE
|
||||
|
||||
/datum/surgery_step/revive/carbon/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
. = ..()
|
||||
target.adjustOrganLoss(ORGAN_SLOT_BRAIN, 15, 180)
|
||||
target.adjust_organ_loss(ORGAN_SLOT_BRAIN, 15, 180)
|
||||
|
||||
@@ -71,5 +71,5 @@
|
||||
span_warning("[user] screws up, brusing [target_human]'s chest!"),
|
||||
span_warning("[user] screws up!"),
|
||||
)
|
||||
target_human.adjustOrganLoss(ORGAN_SLOT_STOMACH, 5)
|
||||
target_human.adjustBruteLoss(5)
|
||||
target_human.adjust_organ_loss(ORGAN_SLOT_STOMACH, 5)
|
||||
target_human.adjust_brute_loss(5)
|
||||
|
||||
@@ -747,6 +747,7 @@
|
||||
desc = "A twisted blade for twisted purpose. Rip sinew and bone until your work is done."
|
||||
icon_state = "cruelsaw"
|
||||
inhand_icon_state = "cruelsaw"
|
||||
icon_angle = 0
|
||||
hitsound = 'sound/items/weapons/bladeslice.ogg'
|
||||
surgical_tray_overlay = "saw_cruel"
|
||||
item_flags = SURGICAL_TOOL | CRUEL_IMPLEMENT
|
||||
|
||||
Reference in New Issue
Block a user