[MIRROR] Scel and lunging (#7089)

Co-authored-by: Selis <sirlionfur@hotmail.de>
Co-authored-by: Nadyr <41974248+Darlantanis@users.noreply.github.com>
This commit is contained in:
CHOMPStation2
2023-10-24 20:44:50 -04:00
committed by GitHub
co-authored by Selis Nadyr
parent c55d853d7d
commit f9ea062b64
2 changed files with 74 additions and 2 deletions
@@ -1461,3 +1461,72 @@
hitsound = 'sound/vore/sunesound/pred/schlorp.ogg'
hitsound_wall = 'sound/vore/sunesound/pred/schlorp.ogg'
zaptype = /obj/item/projectile/beam/appendage
/mob/living/proc/target_lunge() //The leaper leap, but usable as an ability
set name = "Lunge At Prey"
set category = "Abilities"
set desc = "Dive atop your prey and gobble them up!"
var/leap_warmup = 1 SECOND //Easy to modify
var/leap_sound = 'sound/weapons/spiderlunge.ogg'
if(stat || paralysis || weakened || stunned || world.time < last_special) //No tongue flicking while stunned.
to_chat(src, "<span class='warning'>You can't do that in your current state.</span>")
return
last_special = world.time + 10 //Anti-spam.
if (!istype(src, /mob/living))
to_chat(src, "<span class='warning'>It doesn't work that way.</span>")
return
else
var/list/targets = list() //IF IT IS NOT BROKEN. DO NOT FIX IT.
for(var/mob/living/L in range(5, src))
if(!istype(L, /mob/living)) //Don't eat anything that isn't mob/living. Failsafe.
continue
if(L == src) //no eating yourself. 1984.
continue
if(L.devourable && L.throw_vore && (L.can_be_drop_pred || L.can_be_drop_prey))
targets += L
if(!(targets.len))
to_chat(src, "<span class='notice'>No eligible targets found.</span>")
return
var/mob/living/target = tgui_input_list(src, "Please select a target.", "Victim", targets)
if(!target)
return
if(!istype(target, /mob/living)) //Safety.
to_chat(src, "<span class='warning'>You need to select a living target!</span>")
return
if (get_dist(src,target) >= 6)
to_chat(src, "<span class='warning'>You need to be closer to do that.</span>")
return
visible_message(span("warning","\The [src] rears back, ready to lunge!"))
to_chat(target, span("danger","\The [src] focuses on you!"))
// Telegraph, since getting stunned suddenly feels bad.
do_windup_animation(target, leap_warmup)
sleep(leap_warmup) // For the telegraphing.
if(target.z != z) //Make sure you haven't disappeared to somewhere we can't go
return FALSE
// Do the actual leap.
status_flags |= LEAPING // Lets us pass over everything.
visible_message(span("critical","\The [src] leaps at \the [target]!"))
throw_at(get_step(target, get_turf(src)), 7, 1, src)
playsound(src, leap_sound, 75, 1)
sleep(5) // For the throw to complete.
if(status_flags & LEAPING)
status_flags &= ~LEAPING // Revert special passage ability.
if(Adjacent(target)) //We leapt at them but we didn't manage to hit them, let's see if we're next to them
target.Weaken(2) //get knocked down, idiot
@@ -71,7 +71,7 @@
vore_escape_chance = 5
vore_pounce_chance = 100
vore_active = 1
vore_icons = 2
vore_icons = 1
vore_icons = SA_ICON_LIVING | SA_ICON_REST
vore_capacity = 2
swallowTime = 50
@@ -89,6 +89,7 @@
verbs |= /mob/living/proc/glow_toggle
verbs |= /mob/living/proc/glow_color
verbs |= /mob/living/proc/long_vore
verbs |= /mob/living/proc/target_lunge
movement_cooldown = -1
/mob/living/simple_mob/vore/scel/init_vore()
@@ -143,6 +144,8 @@
/mob/living/simple_mob/vore/scel/do_special_attack(atom/A)
. = TRUE
if(ckey)
return
if(prob(50))
lunge(A)
else
@@ -192,7 +195,7 @@
name = "Extra-Realspace Fauna - Scel"
desc = "Classification: Voidwyrm\
<br><br>\
Scel, colloquially known as Voidwyrms, are creatures originating from outside of realspace, typically found at extradimensional breaches such as redpsace tears or within redgate locations. \
Scel, colloquially known as Voidwyrms, are creatures originating from outside of realspace, typically found at extradimensional breaches such as bluepsace tears. \
While they are known to appear in many variants, the serpentine shape with antennae or whiskers is known to be the most common, due to being the closest and most accurate approximation of their natural forms from their home reality. \
Scel bodies, contrary to popular belief, are not slime. They are solid matter, but are still incredibly malleable, which they use to 'shapeshift' when desired. The shifting is limited to just their figure. A scel attempting to look human would still have black squishy flesh and glowing eyes and spots for example. \
Various other appendages seem to manifest at will, growing out of their body when needed. Tentacles are by-far the most preferred and commonly seen, but hardened legs and even clawed hands have been seen. While able to shapeshift into even human or animal shapes, it is always in shape only, and certain traits are universal. \