Reworks armor damage reduction + armor components + more goodies. (#11106)

Ports Baystation12/Baystation12#27254 and Baystation12/Baystation12#24787 and everything inbetween I guess.

Note that this PR makes guns and armor overall stronger. Lasers also once again do organ damage.
This commit is contained in:
Matt Atlas
2021-02-14 17:54:45 +02:00
committed by GitHub
parent 3ab59b8ff7
commit c30cd94024
138 changed files with 2187 additions and 848 deletions
+4 -2
View File
@@ -55,10 +55,12 @@
owner.eye_blind = 20
/obj/item/organ/internal/eyes/do_surge_effects()
owner.overlay_fullscreen("noise", /obj/screen/fullscreen/flash/noise)
if(owner)
owner.overlay_fullscreen("noise", /obj/screen/fullscreen/flash/noise)
/obj/item/organ/internal/eyes/clear_surge_effects()
owner.clear_fullscreen("noise")
if(owner)
owner.clear_fullscreen("noise")
/obj/item/organ/internal/eyes/robotize()
..()
+5 -2
View File
@@ -339,8 +339,9 @@
var/damage_amt = brute
var/cur_damage = brute_dam
var/sharp = (damage_flags & DAM_SHARP)
var/laser = (damage_flags & DAM_LASER)
if(BP_IS_ROBOTIC(src))
if(BP_IS_ROBOTIC(src) || laser)
damage_amt += burn
cur_damage += burn_dam
@@ -350,6 +351,8 @@
var/organ_damage_threshold = 10
if(sharp)
organ_damage_threshold *= 0.5
if(laser)
organ_damage_threshold *= 2
if(!(cur_damage + damage_amt >= max_damage) && !(damage_amt >= organ_damage_threshold))
return FALSE
@@ -769,7 +772,7 @@ Note that amputating the affected organ does in fact remove the infection from t
if (updatehud)
owner.hud_updateflag = 1022
if (update_icon())
if(update_icon())
owner.UpdateDamageIcon(1)
//Updates brute_damn and burn_damn from wound damages. Updates BLEEDING status.
+2 -2
View File
@@ -235,8 +235,8 @@
var/n_is = damage_state_text()
if (n_is != damage_state)
damage_state = n_is
return 1
return 0
return TRUE
return FALSE
// This is NOT safe for caching the organ's own icon, it's only meant to be used for the mob icon cache.
/obj/item/organ/external/proc/get_mob_cache_key()
+1 -1
View File
@@ -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)
owner.apply_damage(1, BRUTE, BP_GROIN, armor_pen = 100)
/obj/item/organ/internal/augment/protein_valve
name = "protein breakdown valve"