mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 02:09:41 +00:00
some vore fixes
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
19
code/modules/vore/eating/human_ch.dm
Normal file
19
code/modules/vore/eating/human_ch.dm
Normal 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
|
||||
@@ -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
|
||||
|
||||
@@ -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!
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user