From 70b771a8f2b473b557fb245d38bdf71c78652f2a Mon Sep 17 00:00:00 2001 From: Putnam Date: Mon, 13 Apr 2020 17:04:09 -0700 Subject: [PATCH] Also made bellies only generate when needed. --- .../living/simple_animal/simple_animal_vr.dm | 79 +++++++++---------- code/modules/vore/eating/living.dm | 8 +- 2 files changed, 45 insertions(+), 42 deletions(-) diff --git a/code/modules/mob/living/simple_animal/simple_animal_vr.dm b/code/modules/mob/living/simple_animal/simple_animal_vr.dm index 4a3ad39919..de5bb578b8 100644 --- a/code/modules/mob/living/simple_animal/simple_animal_vr.dm +++ b/code/modules/mob/living/simple_animal/simple_animal_vr.dm @@ -57,46 +57,45 @@ if(vore_active && !IsAdvancedToolUser()) //vore active, but doesn't have thumbs to grab people with. verbs |= /mob/living/simple_animal/proc/animal_nom - if(LAZYLEN(vore_organs)) - return - - LAZYINITLIST(vore_organs) - var/obj/belly/B = new (src) - vore_selected = B - B.immutable = TRUE - B.name = vore_stomach_name ? vore_stomach_name : "stomach" - B.desc = vore_stomach_flavor ? vore_stomach_flavor : "Your surroundings are warm, soft, and slimy. Makes sense, considering you're inside \the [name]." - B.digest_mode = vore_default_mode - B.vore_sound = vore_default_sound - B.release_sound = vore_default_release - B.is_wet = vore_wetness - B.escapable = vore_escape_chance > 0 - B.escapechance = vore_escape_chance - B.digestchance = vore_digest_chance - B.absorbchance = vore_absorb_chance - B.human_prey_swallow_time = swallowTime - B.nonhuman_prey_swallow_time = swallowTime - B.vore_verb = "swallow" - B.emote_lists[DM_HOLD] = list( // We need more that aren't repetitive. I suck at endo. -Ace - "The insides knead at you gently for a moment.", - "The guts glorp wetly around you as some air shifts.", - "The predator takes a deep breath and sighs, shifting you somewhat.", - "The stomach squeezes you tight for a moment, then relaxes harmlessly.", - "The predator's calm breathing and thumping heartbeat pulses around you.", - "The warm walls kneads harmlessly against you.", - "The liquids churn around you, though there doesn't seem to be much effect.", - "The sound of bodily movements drown out everything for a moment.", - "The predator's movements gently force you into a different position.") - B.emote_lists[DM_DIGEST] = list( - "The burning acids eat away at your form.", - "The muscular stomach flesh grinds harshly against you.", - "The caustic air stings your chest when you try to breathe.", - "The slimy guts squeeze inward to help the digestive juices soften you up.", - "The onslaught against your body doesn't seem to be letting up; you're food now.", - "The predator's body ripples and crushes against you as digestive enzymes pull you apart.", - "The juices pooling beneath you sizzle against your sore skin.", - "The churning walls slowly pulverize you into meaty nutrients.", - "The stomach glorps and gurgles as it tries to work you into slop.") +/mob/living/simple_animal/lazy_init_belly() + if(!LAZYLEN(vore_organs)) + LAZYINITLIST(vore_organs) + var/obj/belly/B = new (src) + vore_selected = B + B.immutable = TRUE + B.name = vore_stomach_name ? vore_stomach_name : "stomach" + B.desc = vore_stomach_flavor ? vore_stomach_flavor : "Your surroundings are warm, soft, and slimy. Makes sense, considering you're inside \the [name]." + B.digest_mode = vore_default_mode + B.vore_sound = vore_default_sound + B.release_sound = vore_default_release + B.is_wet = vore_wetness + B.escapable = vore_escape_chance > 0 + B.escapechance = vore_escape_chance + B.digestchance = vore_digest_chance + B.absorbchance = vore_absorb_chance + B.human_prey_swallow_time = swallowTime + B.nonhuman_prey_swallow_time = swallowTime + B.vore_verb = "swallow" + B.emote_lists[DM_HOLD] = list( // We need more that aren't repetitive. I suck at endo. -Ace + "The insides knead at you gently for a moment.", + "The guts glorp wetly around you as some air shifts.", + "The predator takes a deep breath and sighs, shifting you somewhat.", + "The stomach squeezes you tight for a moment, then relaxes harmlessly.", + "The predator's calm breathing and thumping heartbeat pulses around you.", + "The warm walls kneads harmlessly against you.", + "The liquids churn around you, though there doesn't seem to be much effect.", + "The sound of bodily movements drown out everything for a moment.", + "The predator's movements gently force you into a different position.") + B.emote_lists[DM_DIGEST] = list( + "The burning acids eat away at your form.", + "The muscular stomach flesh grinds harshly against you.", + "The caustic air stings your chest when you try to breathe.", + "The slimy guts squeeze inward to help the digestive juices soften you up.", + "The onslaught against your body doesn't seem to be letting up; you're food now.", + "The predator's body ripples and crushes against you as digestive enzymes pull you apart.", + "The juices pooling beneath you sizzle against your sore skin.", + "The churning walls slowly pulverize you into meaty nutrients.", + "The stomach glorps and gurgles as it tries to work you into slop.") // // Simple proc for animals to have their digestion toggled on/off externally diff --git a/code/modules/vore/eating/living.dm b/code/modules/vore/eating/living.dm index 1f4a4e3909..33f8d78300 100644 --- a/code/modules/vore/eating/living.dm +++ b/code/modules/vore/eating/living.dm @@ -42,8 +42,8 @@ vore_selected = vore_organs[1] return TRUE - //Or, we can create a basic one for them - if(!LAZYLEN(vore_organs)) +/mob/living/proc/lazy_init_belly() + if(!length(vore_organs)) LAZYINITLIST(vore_organs) var/obj/belly/B = new /obj/belly(src) vore_selected = B @@ -61,6 +61,7 @@ // Critical adjustments due to TG grab changes - Poojawa /mob/living/proc/vore_attack(var/mob/living/user, var/mob/living/prey, var/mob/living/pred) + lazy_init_belly() if(!user || !prey || !pred) return @@ -100,14 +101,17 @@ // Eating procs depending on who clicked what // /mob/living/proc/feed_grabbed_to_self(var/mob/living/user, var/mob/living/prey) + user.lazy_init_belly() var/belly = user.vore_selected return perform_the_nom(user, prey, user, belly) /mob/living/proc/feed_self_to_grabbed(var/mob/living/user, var/mob/living/pred) + pred.lazy_init_belly() var/belly = input("Choose Belly") in pred.vore_organs return perform_the_nom(user, user, pred, belly) /mob/living/proc/feed_grabbed_to_other(var/mob/living/user, var/mob/living/prey, var/mob/living/pred) + pred.lazy_init_belly() var/belly = input("Choose Belly") in pred.vore_organs return perform_the_nom(user, prey, pred, belly)