Vore preference helpers (#18656)

* Procs

* Pref checks

* Snack eat changes

* Fix
This commit is contained in:
Guti
2025-10-30 23:26:10 -04:00
committed by GitHub
parent fb73d362a0
commit aa14f1fbcc
18 changed files with 140 additions and 120 deletions
@@ -59,7 +59,7 @@
var/list/potentials = living_mobs(0)
if(potentials.len)
var/mob/living/target = pick(potentials)
if(istype(target) && target.devourable && target.can_be_drop_prey && vore_selected)
if(CanPhaseVore(src, target))
target.forceMove(vore_selected)
to_chat(target,span_vwarning("\The [src] phases in around you, [vore_selected.vore_verb]ing you into their [vore_selected.get_belly_name()]!"))
@@ -203,7 +203,7 @@
var/list/potentials = living_mobs(0)
if(potentials.len)
var/mob/living/target = pick(potentials)
if(istype(target) && target.devourable && target.can_be_drop_prey && vore_selected)
if(CanPhaseVore(src, target))
target.forceMove(vore_selected)
to_chat(target,span_vwarning("\The [src] phases in around you, [vore_selected.vore_verb]ing you into their [vore_selected.get_belly_name()]!"))
@@ -217,7 +217,7 @@
var/list/potentials = living_mobs(0)
if(potentials.len)
var/mob/living/target = pick(potentials)
if(istype(target) && target.devourable && target.can_be_drop_prey && vore_selected)
if(CanSpontaneousVore(src, target))
if(target.buckled)
target.buckled.unbuckle_mob(target, force = TRUE)
target.forceMove(vore_selected)
@@ -75,7 +75,7 @@
return ..()
if(istype(A, /mob/living)) //Swoopie gonn swoop
var/mob/living/M = A //typecast
if(!M.devourable || !M.can_be_drop_prey)
if(CanSpontaneousVore(src, A))
return ..()
Vac.afterattack(M, src, 1)
return
@@ -246,7 +246,7 @@
for(var/atom/movable/AM in D)
if(istype(AM, /mob/living))
var/mob/living/M = AM
if(!M.devourable || !M.can_be_drop_prey)
if(!CanSpontaneousVore(src, M))
to_chat(M, span_warning("[src] plunges their head into \the [D], while you narrowly avoid being sucked up!"))
continue
to_chat(M, span_warning("[src] plunges their head into \the [D], sucking up everything inside- Including you!"))