mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-08-29 16:19:36 +01:00
[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:
co-authored by
Selis
Nadyr
parent
c55d853d7d
commit
f9ea062b64
@@ -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. \
|
||||
|
||||
Reference in New Issue
Block a user