Devour fixes (#3231)

Bunch of fixes and balance tweaks to the devour system. Notable changes are that xenomorphs can eat people again and that human-types no longer take ridiculous amounts of damage from devour.

changes:

Devour type checks now actually operate on species for human-types and are all-around hopefully more sane.
Replaced an obsolete define with a boolean.
Fixed xenomorphs being unable to swallow human-types.
Rebalanced digestion damage to not kill human-types in one tick.
Digestion now deals fire+brute instead of cloneloss (bite still deals cloneloss as I didn't touch its damage function)
Misc code tweaks.
This commit is contained in:
Lohikar
2017-08-05 13:03:49 -05:00
committed by Erki
parent 6a6124ca82
commit 20150cd113
13 changed files with 144 additions and 208 deletions

View File

@@ -94,6 +94,25 @@ var/global/list/syndicate_access = list(access_maint_tunnels, access_syndicate,
//Cloaking devices
var/global/list/cloaking_devices = list()
// Devour types (these are typecaches). Only simple_animals check these, other types are handled specially.
/var/list/mtl_synthetic = list(
/mob/living/simple_animal/hostile/hivebot
)
/var/list/mtl_weird = list(
/mob/living/simple_animal/construct,
/mob/living/simple_animal/shade,
/mob/living/simple_animal/slime,
/mob/living/simple_animal/hostile/faithless
)
// Actual human mobs are delibrately not in this list as they are handled elsewhere.
/var/list/mtl_humanoid = list(
/mob/living/simple_animal/hostile/pirate,
/mob/living/simple_animal/hostile/russian,
/mob/living/simple_animal/hostile/syndicate
)
//////////////////////////
/////Initial Building/////
//////////////////////////
@@ -192,6 +211,17 @@ var/global/list/cloaking_devices = list()
var/datum/poster/P = new T
poster_designs += P
// Some setup work for the eat-types lists.
mtl_synthetic = typecacheof(mtl_synthetic) + list(
/mob/living/simple_animal/hostile/retaliate/malf_drone,
/mob/living/simple_animal/hostile/viscerator,
/mob/living/simple_animal/spiderbot
)
mtl_weird = typecacheof(mtl_weird) + /mob/living/simple_animal/adultslime
mtl_humanoid = typecacheof(mtl_humanoid)
return 1
/* // Uncomment to debug chemical reaction list.