mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-24 17:11:22 +00:00
Ports the radiation subsystem and cleans up damage flags. (#15715)
This commit is contained in:
@@ -31,7 +31,7 @@
|
||||
/datum/component/armor/proc/apply_damage_modifications(damage, damage_type, damage_flags, mob/living/victim, armor_pen, silent = FALSE)
|
||||
if(armor_flags & ARMOR_TYPE_EXOSUIT)
|
||||
if(prob(get_blocked(damage_type, damage_flags, armor_pen) * 100)) //extra removal of sharp and edge on account of us being big robots
|
||||
damage_flags &= ~(DAM_SHARP | DAM_EDGE)
|
||||
damage_flags &= ~(DAMAGE_FLAG_SHARP | DAMAGE_FLAG_EDGE)
|
||||
|
||||
if(damage <= 0)
|
||||
return args.Copy()
|
||||
@@ -43,10 +43,10 @@
|
||||
// Blocking values that mean the damage was under armor, so all dangerous flags are removed (edge/sharp)
|
||||
var/armor_border_blocking = 1 - (under_armor_mult * 1/armor_range_mult)
|
||||
if(blocked >= armor_border_blocking)
|
||||
if(damage_flags & DAM_LASER)
|
||||
if(damage_flags & DAMAGE_FLAG_LASER)
|
||||
damage *= FLUIDLOSS_CONC_BURN/FLUIDLOSS_WIDE_BURN
|
||||
damage_flags &= ~(DAM_SHARP | DAM_EDGE | DAM_LASER)
|
||||
if(damage_type == IRRADIATE)
|
||||
damage_flags &= ~(DAMAGE_FLAG_SHARP | DAMAGE_FLAG_EDGE | DAMAGE_FLAG_LASER)
|
||||
if(damage_type == DAMAGE_RADIATION)
|
||||
damage = max(0, damage - 100 * blocked)
|
||||
silent = TRUE
|
||||
damage *= 1 - blocked
|
||||
@@ -88,24 +88,24 @@
|
||||
/proc/get_armor_key(damage_type, damage_flags)
|
||||
var/key
|
||||
switch(damage_type)
|
||||
if(BRUTE)
|
||||
if(damage_flags & DAM_BULLET)
|
||||
if(DAMAGE_BRUTE)
|
||||
if(damage_flags & DAMAGE_FLAG_BULLET)
|
||||
key = "bullet"
|
||||
else if(damage_flags & DAM_EXPLODE)
|
||||
else if(damage_flags & DAMAGE_FLAG_EXPLODE)
|
||||
key = "bomb"
|
||||
else
|
||||
key = "melee"
|
||||
if(BURN)
|
||||
if(damage_flags & DAM_LASER)
|
||||
if(DAMAGE_BURN)
|
||||
if(damage_flags & DAMAGE_FLAG_LASER)
|
||||
key = "laser"
|
||||
else if(damage_flags & DAM_EXPLODE)
|
||||
else if(damage_flags & DAMAGE_FLAG_EXPLODE)
|
||||
key = "bomb"
|
||||
else
|
||||
key = "energy"
|
||||
if(TOX)
|
||||
if(damage_flags & DAM_BIO)
|
||||
if (DAMAGE_TOXIN)
|
||||
if(damage_flags & DAMAGE_FLAG_BIO)
|
||||
key = "bio" // Otherwise just not blocked by default.
|
||||
if(IRRADIATE)
|
||||
if (DAMAGE_RADIATION)
|
||||
key = "rad"
|
||||
return key
|
||||
|
||||
|
||||
Reference in New Issue
Block a user