mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-26 06:29:23 +01:00
[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:
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user