Falling objects now have armor penetration. (#14344)

This commit is contained in:
Matt Atlas
2022-06-23 20:46:12 +02:00
committed by GitHub
parent 25b8883215
commit dbf9920c51
2 changed files with 48 additions and 3 deletions

View File

@@ -684,7 +684,7 @@
*
* @return The /mob/living that was hit. null if no mob was hit.
*/
/atom/movable/proc/fall_collateral(levels_fallen, stopped_early = FALSE)
/atom/movable/proc/fall_collateral(levels_fallen, stopped_early = FALSE, armor_penetration = 0)
// No gravity, stop falling into spess!
var/area/area = get_area(src)
if (istype(loc, /turf/space) || (area && !area.has_gravity()))
@@ -727,8 +727,9 @@
if (ishuman(L))
var/mob/living/carbon/human/H = L
var/cranial_damage = rand(0,damage/2)
H.apply_damage(cranial_damage, BRUTE, BP_HEAD)
H.apply_damage((damage - cranial_damage), BRUTE, BP_CHEST)
H.apply_damage(cranial_damage, BRUTE, BP_HEAD, armor_pen = cranial_damage + armor_penetration)
var/new_damage = damage - cranial_damage
H.apply_damage(new_damage, BRUTE, BP_CHEST, armor_pen = new_damage + armor_penetration)
if (damage >= THROWNOBJ_KNOCKBACK_DIVISOR)
H.Weaken(rand(damage / 4, damage / 2))
@@ -754,6 +755,9 @@
if (.)
to_chat(src, SPAN_DANGER("You fell ontop of \the [.]!"))
/obj/fall_collateral(levels_fallen, stopped_early = FALSE, armor_penetration)
. = ..(levels_fallen, stopped_early, src.armor_penetration)
/**
* Helper proc for customizing which attributes should be used in fall damage
* calculations. Allows for greater control over the damage. (Drop pods, anyone?)

View File

@@ -0,0 +1,41 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# wip (For works in progress)
# tweak
# soundadd
# sounddel
# rscadd (general adding of nice things)
# rscdel (general deleting of nice things)
# imageadd
# imagedel
# maptweak
# spellcheck (typo fixes)
# experiment
# balance
# admin
# backend
# security
# refactor
#################################
# Your name.
author: MattAtlas
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
changes:
- rscadd: "Falling objects now have armor penetration, depending on damage dealt plus their own armor penetration."