Reworks Limb Gibbing Mechanics (#5330)

Overview
Limb gibbing mechanics on Aurora were pretty bad. For melee weapons, it was RNG based and somewhat fair because it was actually based on mechanics. For bullets, it used custom snowflake code that was just absolutely insulting. It didn't really regard armor like most servers, and unlike most servers, if your feet are gibbed you're sideways until it's fixed.
This commit is contained in:
BurgerLUA
2019-01-05 06:50:29 -08:00
committed by Erki
parent e1d2c91472
commit 1b12e26c66
3 changed files with 75 additions and 55 deletions

View File

@@ -106,30 +106,11 @@
if(isanimal(target))
return FALSE
var/mob/living/L = target
var/splatter_color = "#A10808"
if (ishuman(target))
var/mob/living/carbon/human/H = target
var/obj/item/organ/external/organ = H.get_organ(def_zone)
var/armor = H.getarmor_organ(organ, check_armour)
if(agony)
agony = max(0, agony - armor)
if (H.species)
splatter_color = H.species.blood_color || "#A10808"
/*
Maim / Maiming check. Disembody a limb depending on several factors.
can_be_maimed and maim_bonus are defined on 'obj/item/organ/external'.
*/
if(organ.can_be_maimed && maiming)
if(prob((maim_rate * (organ.get_damage() * organ.maim_bonus) - (armor/2))))
organ.droplimb(clean_cut,maim_type)
if (damage_type == BRUTE)
var/splatter_color = "#A10808"
var/mob/living/carbon/human/H = target
if (istype(H)&& H.species && H.species.blood_color)
splatter_color = H.species.blood_color
var/splatter_dir = starting ? get_dir(starting, target.loc) : dir
new /obj/effect/temp_visual/dir_setting/bloodsplatter(target.loc, splatter_dir, splatter_color)