mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-12 00:20:42 +01:00
Ports the radiation subsystem and cleans up damage flags. (#15715)
This commit is contained in:
@@ -51,7 +51,7 @@
|
||||
pulse_mod++
|
||||
|
||||
var/oxy = owner.get_blood_oxygenation()
|
||||
if(oxy < BLOOD_VOLUME_OKAY) //brain wants us to get MOAR OXY
|
||||
if(oxy < BLOOD_VOLUME_OKAY) //brain wants us to get moar oxygen
|
||||
pulse_mod++
|
||||
if(oxy < BLOOD_VOLUME_BAD) //MOAR
|
||||
pulse_mod++
|
||||
|
||||
@@ -297,24 +297,24 @@
|
||||
|
||||
if(breath.temperature >= owner.species.heat_level_1)
|
||||
if(breath.temperature < owner.species.heat_level_2)
|
||||
owner.apply_damage(HEAT_GAS_DAMAGE_LEVEL_1, BURN, BP_HEAD, used_weapon = "Excessive Heat")
|
||||
owner.apply_damage(HEAT_GAS_DAMAGE_LEVEL_1, DAMAGE_BURN, BP_HEAD, used_weapon = "Excessive Heat")
|
||||
owner.fire_alert = max(owner.fire_alert, 2)
|
||||
else if(breath.temperature < species.heat_level_3)
|
||||
owner.apply_damage(HEAT_GAS_DAMAGE_LEVEL_2, BURN, BP_HEAD, used_weapon = "Excessive Heat")
|
||||
owner.apply_damage(HEAT_GAS_DAMAGE_LEVEL_2, DAMAGE_BURN, BP_HEAD, used_weapon = "Excessive Heat")
|
||||
owner.fire_alert = max(owner.fire_alert, 2)
|
||||
else
|
||||
owner.apply_damage(HEAT_GAS_DAMAGE_LEVEL_3, BURN, BP_HEAD, used_weapon = "Excessive Heat")
|
||||
owner.apply_damage(HEAT_GAS_DAMAGE_LEVEL_3, DAMAGE_BURN, BP_HEAD, used_weapon = "Excessive Heat")
|
||||
owner.fire_alert = max(owner.fire_alert, 2)
|
||||
|
||||
else if(breath.temperature <= owner.species.cold_level_1)
|
||||
if(breath.temperature > species.cold_level_2)
|
||||
owner.apply_damage(COLD_GAS_DAMAGE_LEVEL_1, BURN, BP_HEAD, used_weapon = "Excessive Cold")
|
||||
owner.apply_damage(COLD_GAS_DAMAGE_LEVEL_1, DAMAGE_BURN, BP_HEAD, used_weapon = "Excessive Cold")
|
||||
owner.fire_alert = max(owner.fire_alert, 1)
|
||||
else if(breath.temperature > species.cold_level_3)
|
||||
owner.apply_damage(COLD_GAS_DAMAGE_LEVEL_2, BURN, BP_HEAD, used_weapon = "Excessive Cold")
|
||||
owner.apply_damage(COLD_GAS_DAMAGE_LEVEL_2, DAMAGE_BURN, BP_HEAD, used_weapon = "Excessive Cold")
|
||||
owner.fire_alert = max(owner.fire_alert, 1)
|
||||
else
|
||||
owner.apply_damage(COLD_GAS_DAMAGE_LEVEL_3, BURN, BP_HEAD, used_weapon = "Excessive Cold")
|
||||
owner.apply_damage(COLD_GAS_DAMAGE_LEVEL_3, DAMAGE_BURN, BP_HEAD, used_weapon = "Excessive Cold")
|
||||
owner.fire_alert = max(owner.fire_alert, 1)
|
||||
|
||||
//breathing in hot/cold air also heats/cools you a bit
|
||||
|
||||
@@ -281,9 +281,9 @@
|
||||
brute *= brute_mod
|
||||
burn *= burn_mod
|
||||
|
||||
var/laser = (damage_flags & DAM_LASER)
|
||||
var/sharp = (damage_flags & DAM_SHARP)
|
||||
var/edge = (damage_flags & DAM_EDGE)
|
||||
var/laser = (damage_flags & DAMAGE_FLAG_LASER)
|
||||
var/sharp = (damage_flags & DAMAGE_FLAG_SHARP)
|
||||
var/edge = (damage_flags & DAMAGE_FLAG_EDGE)
|
||||
var/blunt = !!(brute && !sharp && !edge)
|
||||
|
||||
if(status & ORGAN_BROKEN && prob(40) && brute)
|
||||
@@ -329,7 +329,7 @@
|
||||
if(laser)
|
||||
createwound(LASER, burn)
|
||||
else
|
||||
createwound(BURN, burn)
|
||||
createwound(DAMAGE_BURN, burn)
|
||||
|
||||
add_pain(0.6 * burn + 0.4 * brute)
|
||||
|
||||
@@ -352,8 +352,8 @@
|
||||
|
||||
var/damage_amt = brute
|
||||
var/cur_damage = brute_dam
|
||||
var/sharp = (damage_flags & DAM_SHARP)
|
||||
var/laser = (damage_flags & DAM_LASER)
|
||||
var/sharp = (damage_flags & DAMAGE_FLAG_SHARP)
|
||||
var/laser = (damage_flags & DAMAGE_FLAG_LASER)
|
||||
|
||||
if(BP_IS_ROBOTIC(src) || laser)
|
||||
damage_amt += burn
|
||||
@@ -411,17 +411,17 @@
|
||||
dam_flags = W.damage_flags()
|
||||
if(isprojectile(W))
|
||||
var/obj/item/projectile/P = W
|
||||
if(dam_flags & DAM_BULLET)
|
||||
if(dam_flags & DAMAGE_FLAG_BULLET)
|
||||
blunt_eligible = TRUE
|
||||
maim_bonus += P.maim_rate
|
||||
if(W.w_class >= w_class && (dam_flags & DAM_EDGE))
|
||||
if(W.w_class >= w_class && (dam_flags & DAMAGE_FLAG_EDGE))
|
||||
edge_eligible = TRUE
|
||||
|
||||
if(!blunt_eligible && edge_eligible && (brute >= max_damage / (DROPLIMB_THRESHOLD_EDGE + maim_bonus)))
|
||||
droplimb(0, DROPLIMB_EDGE)
|
||||
else if(burn >= max_damage / ((dam_flags & DAM_LASER ? DROPLIMB_THRESHOLD_DESTROY_PROJECTILE : DROPLIMB_THRESHOLD_DESTROY) + maim_bonus))
|
||||
else if(burn >= max_damage / ((dam_flags & DAMAGE_FLAG_LASER ? DROPLIMB_THRESHOLD_DESTROY_PROJECTILE : DROPLIMB_THRESHOLD_DESTROY) + maim_bonus))
|
||||
droplimb(0, DROPLIMB_BURN)
|
||||
else if(blunt_eligible && brute >= max_damage / ((dam_flags & DAM_BULLET ? DROPLIMB_THRESHOLD_DESTROY_PROJECTILE : DROPLIMB_THRESHOLD_DESTROY) + maim_bonus))
|
||||
else if(blunt_eligible && brute >= max_damage / ((dam_flags & DAMAGE_FLAG_BULLET ? DROPLIMB_THRESHOLD_DESTROY_PROJECTILE : DROPLIMB_THRESHOLD_DESTROY) + maim_bonus))
|
||||
droplimb(0, DROPLIMB_BLUNT)
|
||||
else if(brute >= max_damage / (DROPLIMB_THRESHOLD_TEAROFF + maim_bonus))
|
||||
droplimb(0, DROPLIMB_EDGE)
|
||||
@@ -436,7 +436,7 @@
|
||||
break
|
||||
|
||||
// heal brute damage
|
||||
if(W.damage_type == BURN)
|
||||
if(W.damage_type == DAMAGE_BURN)
|
||||
burn = W.heal_damage(burn)
|
||||
else
|
||||
brute = W.heal_damage(brute)
|
||||
@@ -489,7 +489,7 @@ This function completely restores a damaged organ to perfect condition.
|
||||
var/local_damage = brute_dam + burn_dam + damage
|
||||
|
||||
if(damage > (min_broken_damage / 2) && local_damage > min_broken_damage && !(status & ORGAN_ROBOT))
|
||||
if(!(type in list(BURN, LASER)))
|
||||
if(!(type in list(DAMAGE_BURN, LASER)))
|
||||
if(prob(damage) && sever_artery())
|
||||
owner.custom_pain("You feel something rip in your [name]!", 25)
|
||||
|
||||
@@ -501,10 +501,10 @@ This function completely restores a damaged organ to perfect condition.
|
||||
tendon.damage(new_brute)
|
||||
|
||||
//Burn damage can cause fluid loss due to blistering and cook-off
|
||||
if((type in list(BURN, LASER)) && (damage > 5 || damage + burn_dam >= 15) && !BP_IS_ROBOTIC(src))
|
||||
if((type in list(DAMAGE_BURN, LASER)) && (damage > 5 || damage + burn_dam >= 15) && !BP_IS_ROBOTIC(src))
|
||||
var/fluid_loss_severity
|
||||
switch(type)
|
||||
if(BURN)
|
||||
if(DAMAGE_BURN)
|
||||
fluid_loss_severity = FLUIDLOSS_WIDE_BURN
|
||||
if(LASER)
|
||||
fluid_loss_severity = FLUIDLOSS_CONC_BURN
|
||||
@@ -832,7 +832,7 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
|
||||
//update damage counts
|
||||
for(var/datum/wound/W in wounds)
|
||||
if(W.damage_type == BURN)
|
||||
if(W.damage_type == DAMAGE_BURN)
|
||||
burn_dam += W.damage
|
||||
else
|
||||
brute_dam += W.damage
|
||||
@@ -1336,7 +1336,7 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
wound_descriptors["an incision"] = 1
|
||||
for(var/datum/wound/W in wounds)
|
||||
var/this_wound_desc = W.desc
|
||||
if(W.damage_type == BURN && W.salved) this_wound_desc = "salved [this_wound_desc]"
|
||||
if(W.damage_type == DAMAGE_BURN && W.salved) this_wound_desc = "salved [this_wound_desc]"
|
||||
if(W.bleeding()) this_wound_desc = "bleeding [this_wound_desc]"
|
||||
if(W.bandaged == 1)
|
||||
this_wound_desc = "bandaged [this_wound_desc]"
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
parent_organ = BP_GROIN
|
||||
|
||||
/obj/item/organ/internal/augment/calf_override/proc/do_run_act()
|
||||
owner.apply_damage(1, BRUTE, BP_GROIN, armor_pen = 100)
|
||||
owner.apply_damage(1, DAMAGE_BRUTE, BP_GROIN, armor_pen = 100)
|
||||
|
||||
/obj/item/organ/internal/augment/protein_valve
|
||||
name = "protein breakdown valve"
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
var/list/stages
|
||||
// maximum stage at which bleeding should still happen. Beyond this stage bleeding is prevented.
|
||||
var/max_bleeding_stage = 0
|
||||
// one of CUT, BRUISE, PIERCE , BURN
|
||||
// one of CUT, BRUISE, PIERCE, BURN
|
||||
var/damage_type = CUT
|
||||
// whether this wound needs a bandage/salve to heal at all
|
||||
// the maximum amount of damage that this wound can have and still autoheal
|
||||
@@ -92,7 +92,7 @@
|
||||
switch(damage_type)
|
||||
if(BRUISE, CUT, PIERCE)
|
||||
return bandaged
|
||||
if(BURN)
|
||||
if(DAMAGE_BURN)
|
||||
return salved
|
||||
|
||||
// Checks whether other other can be merged into src.
|
||||
@@ -133,7 +133,7 @@
|
||||
switch (damage_type)
|
||||
if (BRUISE)
|
||||
return prob(dam_coef*5)
|
||||
if (BURN)
|
||||
if (DAMAGE_BURN)
|
||||
return prob(dam_coef*10)
|
||||
if (CUT)
|
||||
return prob(dam_coef*20)
|
||||
@@ -245,7 +245,7 @@
|
||||
|
||||
if(BRUISE)
|
||||
return /datum/wound/bruise
|
||||
if(BURN, LASER)
|
||||
if(DAMAGE_BURN, LASER)
|
||||
switch(damage)
|
||||
if(50 to INFINITY)
|
||||
return /datum/wound/burn/carbonised
|
||||
@@ -334,7 +334,7 @@ datum/wound/puncture/massive
|
||||
/** BURNS **/
|
||||
|
||||
/datum/wound/burn
|
||||
damage_type = BURN
|
||||
damage_type = DAMAGE_BURN
|
||||
max_bleeding_stage = 0
|
||||
|
||||
/datum/wound/burn/bleeding()
|
||||
@@ -373,7 +373,7 @@ datum/wound/puncture/massive
|
||||
"scarred stump" = 0
|
||||
)
|
||||
if(DROPLIMB_BURN)
|
||||
damage_type = BURN
|
||||
damage_type = DAMAGE_BURN
|
||||
stages = list(
|
||||
"ripped charred stump" = damage_amt*1.3,
|
||||
"charred stump" = damage_amt,
|
||||
|
||||
Reference in New Issue
Block a user