Regenerative extract nerfing

This commit is contained in:
Cognition
2021-09-17 02:23:06 -07:00
parent 54ca7efa2b
commit db511f4d7e

View File

@@ -14,25 +14,58 @@ Regenerative extracts:
/obj/item/slimecross/regenerative/proc/core_effect_before(mob/living/carbon/human/target, mob/user)
return
/obj/item/slimecross/regenerative/pre_attack(atom/A, mob/living/user, params, attackchain_flags, damage_multiplier)
if(!isliving(A))
return TRUE //returning TRUE preemptively ends the attack chain and thus doesn't call afterattack, this is noteworthy for below as well
var/mob/living/M = A
if(M.stat == DEAD)
to_chat(user, "<span class='warning'>[src] will not work on the dead!</span>")
return TRUE
//inform the target that they're about to have a regenerative extract used on them
if(M != user)
M.visible_message("<span class='notice'>[user] readies [src], holding it steady near [M] and guiding it to the center of [M.p_their()] mass...</span>",
"<span class='notice'>[user] readies [src], holding it steady near you and guiding it to the center of your mass...</span>")
else
M.visible_message("<span class='notice'>[user] readies [src], holding it steady near [user.p_them()]self and guiding it to the center of [user.p_their()] mass...</span>",
"<span class='notice'>You ready [src], holding it steady near you and guiding it to the center of your mass...</span>")
if(!do_after(user, 50, target = M)) //5 seconds
return TRUE
. = ..()
/obj/item/slimecross/regenerative/afterattack(atom/target,mob/user,prox)
. = ..()
if(!prox || !isliving(target))
return
var/mob/living/H = target
if(H.stat == DEAD)
to_chat(user, "<span class='warning'>[src] will not work on the dead!</span>")
var/mob/living/M = target
if(M.stat == DEAD)
to_chat(user, "<span class='warning'>[M] died before you could apply [src]!</span>")
return
if(H != user)
user.visible_message("<span class='notice'>[user] crushes the [src] over [H], the milky goo quickly regenerating all of [H.p_their()] injuries!</span>",
"<span class='notice'>You squeeze the [src], and it bursts over [H], the milky goo regenerating [H.p_their()] injuries.</span>")
if(M != user)
user.visible_message("<span class='notice'>[user] crushes the [src] over [M], the milky goo quickly regenerating all of [M.p_their()] injuries!</span>",
"<span class='notice'>You squeeze the [src], and it bursts over [M], the milky goo regenerating [M.p_their()] injuries.</span>")
else
user.visible_message("<span class='notice'>[user] crushes the [src] over [user.p_them()]self, the milky goo quickly regenerating all of [user.p_their()] injuries!</span>",
"<span class='notice'>You squeeze the [src], and it bursts in your hand, splashing you with milky goo which quickly regenerates your injuries!</span>")
core_effect_before(H, user)
H.revive(full_heal = 1)
core_effect(H, user)
core_effect_before(M, user)
var/new_disgust_level = 0
if(iscarbon(M)) //simpler mobs don't have a disgust variable and we need to grab that.
var/mob/living/carbon/C = M
new_disgust_level = C.disgust + DISGUST_LEVEL_GROSS
M.revive(full_heal = 1)
M.set_disgust(new_disgust_level)
core_effect(M, user)
playsound(target, 'sound/effects/splat.ogg', 40, 1)
//warn receivers of the extract about the disgust if they're carbon, making it clear that the regenerative extract is causing this.
if(iscarbon(M))
switch(new_disgust_level)
if(0 to DISGUST_LEVEL_GROSS)
to_chat(M,"<span class='warning'>While you recovered from [src], you feel a little nauseous.</span>")
if(DISGUST_LEVEL_GROSS to DISGUST_LEVEL_VERYGROSS)
to_chat(M,"<span class='warning'>While you recovered from [src], you feel quite queasy.</span>")
if(DISGUST_LEVEL_VERYGROSS to DISGUST_LEVEL_DISGUSTED)
to_chat(M,"<span class='warning'>While you recovered from [src], you feel like you're about to vomit!</span>")
if(DISGUST_LEVEL_DISGUSTED to INFINITY)
to_chat(M,"<span class='userdanger'>You feel absolutely sick. Maybe you should lay off the regenerative extracts until your stomach settles!</span>")
qdel(src)
/obj/item/slimecross/regenerative/grey