Backports the new zombification mechanics from the Konyang zombie event. (#18710)

* Reorder parasites

* sounds

* organ defines, dmdocs

* maiming stuff

* undead changes, abilities

* hylemnomil, undead sprites

* antibodies

* antibody extractor code

* icons

* antibody fixes

* antibodies vial, rock break sfx

* You're all going to die down here.

* hylemnomilz eta vial and attributions

* zombified organs can't be removed

* hylemnomil zeta edits

* fixes

* lmao

* easier check

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
This commit is contained in:
Matt Atlas
2024-03-24 14:04:52 +00:00
committed by GitHub
co-authored by Matt Atlas
parent ee81fc9b24
commit 82beece3db
37 changed files with 1423 additions and 618 deletions
+7 -6
View File
@@ -502,8 +502,9 @@
var/edge_eligible = FALSE
var/blunt_eligible = FALSE
var/maim_bonus = 0
var/dam_flags = 0
/// Certain limbs like zombie limbs have an integrated maiming bonus that make them easier to delimb. Add that.
var/maim_bonus_to_add = src.maim_bonus
if(isitem(used_weapon))
var/obj/item/W = used_weapon
@@ -512,17 +513,17 @@
var/obj/item/projectile/P = W
if(dam_flags & DAMAGE_FLAG_BULLET)
blunt_eligible = TRUE
maim_bonus += P.maim_rate
maim_bonus_to_add += P.maim_rate
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)))
if(!blunt_eligible && edge_eligible && (brute >= max_damage / (DROPLIMB_THRESHOLD_EDGE + maim_bonus_to_add)))
droplimb(0, DROPLIMB_EDGE)
else if(burn >= max_damage / ((dam_flags & DAMAGE_FLAG_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_to_add))
droplimb(0, DROPLIMB_BURN)
else if(blunt_eligible && brute >= max_damage / ((dam_flags & DAMAGE_FLAG_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_to_add))
droplimb(0, DROPLIMB_BLUNT)
else if(brute >= max_damage / (DROPLIMB_THRESHOLD_TEAROFF + maim_bonus))
else if(brute >= max_damage / (DROPLIMB_THRESHOLD_TEAROFF + maim_bonus_to_add))
droplimb(0, DROPLIMB_EDGE)
/obj/item/organ/external/heal_damage(brute, burn, internal = 0, robo_repair = 0)