[MIRROR] HERETICS: Balancing Mega patch - Changes to ash, flesh ascension and much more!. (#954)

* HERETICS: Balancing Mega patch - Changes to ash, flesh ascension and much more!.  (#53655)

* HERETICS: Balancing Mega patch - Changes to ash, flesh ascension and much more!.

Co-authored-by: EdgeLordExe <42111655+EdgeLordExe@users.noreply.github.com>
This commit is contained in:
SkyratBot
2020-09-24 20:25:26 +02:00
committed by GitHub
co-authored by EdgeLordExe
parent 70508351eb
commit c935c05b83
20 changed files with 299 additions and 180 deletions
@@ -136,6 +136,8 @@
var/stacks_to_grow = 5
///Currently eaten arms
var/current_stacks = 0
///Does this follow other pieces?
var/follow = TRUE
//I tried Initalize but it didnt work, like at all. This proc just wouldnt fire if it was Initalize instead of New
/mob/living/simple_animal/hostile/eldritch/armsy/Initialize(mapload,spawn_more = TRUE,len = 6)
@@ -148,6 +150,9 @@
if(!spawn_more)
return
allow_pulling = TRUE
///sets the hp of the head to be exactly the length times hp, so the head is de facto the hardest to destroy.
maxHealth = len * maxHealth
health = maxHealth
///next link
var/mob/living/simple_animal/hostile/eldritch/armsy/next
///previous link
@@ -178,6 +183,18 @@
prev.AIStatus = AI_OFF
next = prev
/mob/living/simple_animal/hostile/eldritch/armsy/adjustBruteLoss(amount, updating_health, forced)
if(back)
back.adjustBruteLoss(amount, updating_health, forced)
else
return ..()
/mob/living/simple_animal/hostile/eldritch/armsy/adjustFireLoss(amount, updating_health, forced)
if(back)
back.adjustFireLoss(amount, updating_health, forced)
else
return ..()
//we are literally a vessel of otherworldly destruction, we bring our own gravity unto this plane
/mob/living/simple_animal/hostile/eldritch/armsy/has_gravity(turf/T)
return TRUE
@@ -193,8 +210,15 @@
back.contract_next_chain_into_single_tile()
return
/mob/living/simple_animal/hostile/eldritch/armsy/proc/get_length()
. += 1
if(back)
. += back.get_length()
///Updates the next mob in the chain to move to our last location, fixed the worm if somehow broken.
/mob/living/simple_animal/hostile/eldritch/armsy/proc/update_chain_links()
if(!follow)
return
gib_trail()
if(back && back.loc != oldloc)
back.Move(oldloc)
@@ -219,34 +243,31 @@
QDEL_NULL(back) // chain destruction baby
return ..()
/mob/living/simple_animal/hostile/eldritch/armsy/proc/heal()
if(health == maxHealth)
if(back)
back.heal()
return
else
current_stacks++
if(current_stacks >= stacks_to_grow)
var/mob/living/simple_animal/hostile/eldritch/armsy/prev = new type(drop_location(),spawn_more = FALSE)
icon_state = "armsy_mid"
icon_living = "armsy_mid"
back = prev
prev.icon_state = "armsy_end"
prev.icon_living = "armsy_end"
prev.front = src
prev.AIStatus = AI_OFF
current_stacks = 0
if(back)
back.heal()
adjustBruteLoss(-maxHealth * 0.5, FALSE)
adjustFireLoss(-maxHealth * 0.5 ,FALSE)
if(health == maxHealth)
current_stacks++
if(current_stacks >= stacks_to_grow)
var/mob/living/simple_animal/hostile/eldritch/armsy/prev = new type(drop_location(),spawn_more = FALSE)
icon_state = "armsy_mid"
icon_living = "armsy_mid"
back = prev
prev.icon_state = "armsy_end"
prev.icon_living = "armsy_end"
prev.front = src
prev.AIStatus = AI_OFF
current_stacks = 0
return
/mob/living/simple_animal/hostile/eldritch/armsy/Shoot(atom/targeted_atom)
target = targeted_atom
AttackingTarget()
/mob/living/simple_animal/hostile/eldritch/armsy/AttackingTarget()
if(istype(target,/obj/item/bodypart/r_arm) || istype(target,/obj/item/bodypart/l_arm))
qdel(target)
@@ -286,8 +307,8 @@
real_name = "Master of Decay"
maxHealth = 400
health = 400
melee_damage_lower = 20
melee_damage_upper = 25
melee_damage_lower = 30
melee_damage_upper = 50
/mob/living/simple_animal/hostile/eldritch/armsy/prime/Initialize(mapload,spawn_more = TRUE,len = 9)
. = ..()
@@ -342,7 +363,7 @@
melee_damage_lower = 15
melee_damage_upper = 20
sight = SEE_TURFS
spells_to_add = list(/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/ash,/obj/effect/proc_holder/spell/pointed/cleave/long,/obj/effect/proc_holder/spell/aoe_turf/fire_cascade)
spells_to_add = list(/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/ash,/obj/effect/proc_holder/spell/pointed/cleave,/obj/effect/proc_holder/spell/targeted/fire_sworn)
/mob/living/simple_animal/hostile/eldritch/stalker
name = "Flesh Stalker"