some vore fixes

This commit is contained in:
BlackMajor
2021-02-08 22:01:29 +13:00
parent e1b3126391
commit c1bf8edaa6
10 changed files with 45 additions and 16 deletions

View File

@@ -175,6 +175,10 @@
if(has_eye_glow)
add_eyes()
if(!IsAdvancedToolUser()) //CHOMPSTATION edit: Moved here so the verb is useable before initialising vorgans.
verbs |= /mob/living/simple_mob/proc/animal_nom
verbs |= /mob/living/proc/shred_limb
return ..()
/mob/living/simple_mob/Destroy()

View File

@@ -86,6 +86,8 @@
icon_state = "[icon_rest]-[vore_fullness]"
/mob/living/simple_mob/proc/will_eat(var/mob/living/M)
M.init_vore()
init_vore()
if(client) //You do this yourself, dick!
//ai_log("vr/wont eat [M] because we're player-controlled", 3) //VORESTATION AI TEMPORARY REMOVAL
return 0
@@ -194,10 +196,6 @@
if(!vore_active || no_vore)
return
if(!IsAdvancedToolUser())
verbs |= /mob/living/simple_mob/proc/animal_nom
verbs |= /mob/living/proc/shred_limb
if(LAZYLEN(vore_organs))
return

View File

@@ -78,6 +78,7 @@
var/target_zone = pick(BP_TORSO,BP_TORSO,BP_TORSO,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_HEAD)
if(L.can_inject(src, null, target_zone))
last_inject = world.time
L.init_vore()
if(!L.allowmobvore) //If we can't eat them, stop mauling them.
ai_holder.lose_target() //Call this first so the attacks stop if the reagent proc runtimes.
L.reagents.add_reagent("bicaridine", venom_dose) //If we can't eat them, give them some bicar to compensate for no heal belly.

View File

@@ -77,6 +77,8 @@
pred.Weaken(8)
var/mob/living/prey = src
var/fallloc = prey.loc
pred.init_vore()
prey.init_vore()
if(pred.can_be_drop_pred && prey.can_be_drop_prey)
pred.feed_grabbed_to_self_falling_nom(pred,prey)
pred.loc = fallloc

View File

@@ -0,0 +1,19 @@
/*
init_vore() was moved to only be called when vore organs are needed. This is also responsible for loading vore prefs.
This file is here to make vore prefs default to off so that someone who hasn't opened their vore panel during a round
won't accidentally be prefbroken.
Also, these should've been defaulted to off in the first place.
*/
/mob/living/carbon/human
digestable = FALSE
devourable = FALSE
feeding = FALSE
absorbable = FALSE
digest_leave_remains = FALSE
allowmobvore = FALSE
showvoreprefs = FALSE
permit_healbelly = FALSE
can_be_drop_prey = FALSE
can_be_drop_pred = FALSE
show_vore_fx = FALSE

View File

@@ -49,11 +49,6 @@
M.verbs += /mob/living/proc/insidePanel
M.verbs += /mob/living/proc/vore_transfer_reagents //CHOMP If mob doesnt have bellies it cant use this verb for anything
//Tries to load prefs if a client is present otherwise gives freebie stomach
spawn(2 SECONDS)
if(M)
M.init_vore()
//return TRUE to hook-caller
return TRUE
@@ -102,6 +97,7 @@
//Has to be aggressive grab, has to be living click-er and non-silicon grabbed
if(G.state >= GRAB_AGGRESSIVE && (isliving(user) && !issilicon(G.affecting)))
var/mob/living/attacker = user // Typecast to living
G.affecting.init_vore()
// src is the mob clicked on and attempted predator
@@ -157,6 +153,10 @@
var/mob/living/attacker = user // Typecast to living
if(is_vore_predator(src))
for(var/mob/living/M in H.contents)
M.init_vore()
if(!M.devourable)
to_chat(user, "<span class='notice'>[M] isn't able to be devoured.</span>")
return FALSE
if(attacker.eat_held_mob(attacker, M, src))
if(H.held_mob == M)
H.held_mob = null

View File

@@ -13,6 +13,8 @@
if(stat != CONSCIOUS)
return
init_vore()
T.init_vore()
// Verbs are horrifying. They don't call overrides. So we're stuck with this.
if(istype(src, /mob/living/simple_mob/animal/passive/mouse) && !T.ckey)
// Mice can't eat logged out players!

View File

@@ -80,6 +80,7 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
// Check if an object is capable of eating things, based on vore_organs
//
/proc/is_vore_predator(mob/living/O)
O.init_vore()
if(istype(O,/mob/living))
if(O.vore_organs.len > 0)
return TRUE

View File

@@ -18,6 +18,7 @@
if(!vorePanel)
log_debug("[src] ([type], \ref[src]) didn't have a vorePanel and tried to use the verb.")
vorePanel = new(src)
init_vore() //Returns if the organs already exist anyway.
vorePanel.tgui_interact(src)

View File

@@ -3958,6 +3958,7 @@
#include "code\modules\vore\eating\bellymodes_vr.dm"
#include "code\modules\vore\eating\contaminate_vr.dm"
#include "code\modules\vore\eating\digest_act_vr.dm"
#include "code\modules\vore\eating\human_ch.dm"
#include "code\modules\vore\eating\leave_remains_vr.dm"
#include "code\modules\vore\eating\living_ch.dm"
#include "code\modules\vore\eating\living_vr.dm"