Retouch all pages and add 'Engaged in Reality'

This commit is contained in:
Bad Manners 2024-11-01 19:44:34 -03:00
parent 1dda4c9af8
commit b03aca87e7
Signed by: badmanners
GPG key ID: 8C88292CCB075609
37 changed files with 1701 additions and 553 deletions

View file

@ -4,37 +4,43 @@ import markdownIntegration from "@astropub/md";
import mdxIntegration from "@astrojs/mdx";
import htaccessIntegration from "astro-htaccess";
import pagefindIntegration from "astro-pagefind";
import alpinejsIntegration from "@astrojs/alpinejs";
import { AI_BOTS } from "./src/data/ai_bots";
import alpinejs from "@astrojs/alpinejs";
// https://astro.build/config
export default defineConfig({
site: "https://gallery.badmanners.xyz",
integrations: [tailwindIntegration({
applyBaseStyles: false,
}), markdownIntegration(), mdxIntegration(), htaccessIntegration({
generateHtaccessFile: import.meta.env.APACHE_CONFIG === "true",
customRules: [
// Block AI bots
"<IfModule mod_rewrite.c>",
" RewriteEngine on",
" RewriteBase /",
` RewriteCond %{HTTP_USER_AGENT} ${AI_BOTS.map((bot) => `^${bot}$`).join("|")} [NC]`,
" RewriteRule ^ [F]",
"</IfModule>",
],
redirects: [
{
match: "/story/",
url: "/stories/",
},
{
match: "/game/",
url: "/games/",
},
],
}), pagefindIntegration(), alpinejs()],
integrations: [
tailwindIntegration({
applyBaseStyles: false,
}),
markdownIntegration(),
mdxIntegration(),
alpinejsIntegration(),
pagefindIntegration(),
htaccessIntegration({
generateHtaccessFile: import.meta.env.APACHE_CONFIG === "true",
customRules: [
// Block AI bots
"<IfModule mod_rewrite.c>",
" RewriteEngine on",
" RewriteBase /",
` RewriteCond %{HTTP_USER_AGENT} ${AI_BOTS.map((bot) => `^${bot}$`).join("|")} [NC]`,
" RewriteRule ^ [F]",
"</IfModule>",
],
redirects: [
{
match: "/story/",
url: "/stories/",
},
{
match: "/game/",
url: "/games/",
},
],
}),
],
markdown: {
smartypants: false,
shikiConfig: {
@ -63,4 +69,4 @@ export default defineConfig({
},
},
},
});
});

662
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -1,7 +1,7 @@
{
"name": "gallery.badmanners.xyz",
"type": "module",
"version": "1.11.0",
"version": "1.12.0",
"scripts": {
"postinstall": "astro sync",
"dev": "astro dev",

Binary file not shown.

After

(image error) Size: 52 KiB

View file

@ -1,4 +1,4 @@
---
---
<script is:inline>let g=document,f=a=>{var b="dark",c=localStorage,d=c.colorScheme;(d!="light"&&(d==b||matchMedia("(prefers-color-scheme:dark)").matches))&&a.body.classList.add(b)};g.addEventListener('astro:before-swap',e=>f(e.newDocument));f(g)</script>
<script is:inline>(a=>{var b="dark",c=localStorage,d=c.colorScheme;(d!="light"&&(d==b||matchMedia("(prefers-color-scheme:dark)").matches))&&a.body.classList.add(b)})(document)</script>

View file

@ -1,6 +1,8 @@
---
import type { Lang } from "@i18n";
import { IconStar, IconRetweet } from "./icons";
import { getCollection } from "astro:content";
import { isUserSelf } from "@utils/is_user_self";
type Props = {
lang: Lang;
@ -12,13 +14,24 @@ type Props = {
};
const { link, instance, user, postId, blacklistedComments } = Astro.props;
const selfUrl = (await getCollection("users", (user) => isUserSelf(user)))[0]?.data.links.mastodon?.link;
---
<section
id="comments-section"
class="px-2 font-serif"
aria-describedby="title-comments-section"
x-data={`{ link: ${JSON.stringify(link)}, instance: ${JSON.stringify(instance)}, user: ${JSON.stringify(user)}, postId: ${JSON.stringify(postId)}, blacklistedComments: ${JSON.stringify(blacklistedComments ?? [])}, comments: null, commentsLoading: false, commentsError: null }`}
x-data={JSON.stringify({
link,
instance,
user,
postId,
blacklistedComments: blacklistedComments ?? [],
selfUrl,
comments: null,
commentsLoading: false,
commentsError: null,
})}
@mastodon-comments.window="comments = $event.detail.comments; commentsLoading = false"
@mastodon-comments-error.window="commentsError = $event.detail.error"
>
@ -50,7 +63,8 @@ const { link, instance, user, postId, blacklistedComments } = Astro.props;
<button
class="group mx-auto w-64 rounded-lg bg-bm-300 px-4 py-1 text-stone-800 disabled:bg-bm-400 dark:bg-green-800 dark:text-stone-100 dark:disabled:bg-green-900"
id="load-comments-button"
@click="if (!$el.disabled) { $el.disabled = true; commentsLoading = true; $dispatch('retrieveComments', { link, instance, user, postId, blacklistedComments })}"
@click="if (!$el.disabled) { $el.disabled = true; commentsLoading = true; $dispatch('retrieveComments', { link, instance, user, postId, blacklistedComments, selfUrl })}"
:aria-pressed="commentsLoading"
>
<span class="block hover:underline group-focus:underline group-disabled:hidden">Click to load comments</span>
<span class="hidden group-disabled:block">
@ -95,7 +109,6 @@ const { link, instance, user, postId, blacklistedComments } = Astro.props;
<a
data-author
class="p-author h-card u-url text-link flex items-center text-lg hover:underline focus:underline"
rel="nofollow"
target="_blank"
>
<picture>
@ -181,10 +194,11 @@ const { link, instance, user, postId, blacklistedComments } = Astro.props;
user: string;
postId: string;
blacklistedComments: string[];
selfUrl?: string;
}>;
if (document.querySelector("#comments-section")) {
async function renderComments(post: MastodonPost, blacklistedComments: Set<string>) {
async function renderComments(post: MastodonPost, blacklistedComments: Set<string>, selfUrl: string | undefined) {
try {
const response = await fetch(`https://${post.instance}/api/v1/statuses/${post.postId}/context`);
if (!response.ok) {
@ -230,6 +244,11 @@ const { link, instance, user, postId, blacklistedComments } = Astro.props;
const commentBoxAuthor = commentBox.querySelector<HTMLElementTagNameMap["a"]>("a[data-author]")!;
commentBoxAuthor.href = comment.account.url;
if (comment.account.url === selfUrl) {
commentBoxAuthor.rel = "me";
} else {
commentBoxAuthor.rel = "nofollow";
}
commentBoxAuthor.title = comment.account.acct;
commentBoxAuthor.setAttribute("aria-label", comment.account.acct);
const avatar = commentBoxAuthor.querySelector<HTMLElementTagNameMap["img"]>("img[data-avatar]")!;
@ -309,8 +328,8 @@ const { link, instance, user, postId, blacklistedComments } = Astro.props;
}
document.addEventListener("retrieveComments", (e) => {
const { link, instance, user, postId, blacklistedComments } = (e as RetrieveCommentsEvent).detail;
renderComments({ link, instance, user, postId }, new Set(blacklistedComments));
const { link, instance, user, postId, blacklistedComments, selfUrl } = (e as RetrieveCommentsEvent).detail;
renderComments({ link, instance, user, postId }, new Set(blacklistedComments), selfUrl);
});
}
</script>

View file

@ -3,6 +3,7 @@ import type { CollectionEntry } from "astro:content";
import clsx from "clsx";
import type { Lang } from "@i18n";
import { getUsernameForLang } from "@utils/get_username_for_lang";
import { isUserSelf } from "@utils/is_user_self";
type Props = {
lang: Lang;
@ -14,12 +15,13 @@ type Props = {
const { user, lang, class: className, rel } = Astro.props;
const username = getUsernameForLang(user, lang);
const link = user.data.preferredLink ? user.data.links[user.data.preferredLink]!.link : null;
const isSelf = isUserSelf(user);
---
{
link ? (
<a
rel={clsx(rel, "nofollow")}
rel={clsx(rel, isSelf ? "me" : "nofollow")}
href={link}
class:list={[className, "h-card u-url p-name text-link underline"]}
target="_blank"

View file

@ -1,15 +0,0 @@
---
import SVGIcon from "./SVGIcon.astro";
type Props = {
width: string;
height: string;
class?: string;
};
---
<SVGIcon {...Astro.props} viewBox="0 0 576 512">
<path
d="M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c0 2.7-.2 5.4-.5 8.1V472c0 22.1-17.9 40-40 40H456c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1H416 392c-22.1 0-40-17.9-40-40V448 384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z"
></path>
</SVGIcon>

View file

@ -0,0 +1,19 @@
---
import SVGIcon from "./SVGIcon.astro";
type Props = {
width: string;
height: string;
class?: string;
};
---
<SVGIcon {...Astro.props} viewBox="0 0 36 36" aria-label="✨">
<path
fill="#FFAC33"
d="M34.347 16.893l-8.899-3.294-3.323-10.891c-.128-.42-.517-.708-.956-.708-.439 0-.828.288-.956.708l-3.322 10.891-8.9 3.294c-.393.146-.653.519-.653.938 0 .418.26.793.653.938l8.895 3.293 3.324 11.223c.126.424.516.715.959.715.442 0 .833-.291.959-.716l3.324-11.223 8.896-3.293c.391-.144.652-.518.652-.937 0-.418-.261-.792-.653-.938z"
></path><path
fill="#FFCC4D"
d="M14.347 27.894l-2.314-.856-.9-3.3c-.118-.436-.513-.738-.964-.738-.451 0-.846.302-.965.737l-.9 3.3-2.313.856c-.393.145-.653.52-.653.938 0 .418.26.793.653.938l2.301.853.907 3.622c.112.444.511.756.97.756.459 0 .858-.312.97-.757l.907-3.622 2.301-.853c.393-.144.653-.519.653-.937 0-.418-.26-.793-.653-.937zM10.009 6.231l-2.364-.875-.876-2.365c-.145-.393-.519-.653-.938-.653-.418 0-.792.26-.938.653l-.875 2.365-2.365.875c-.393.146-.653.52-.653.938 0 .418.26.793.653.938l2.365.875.875 2.365c.146.393.52.653.938.653.418 0 .792-.26.938-.653l.875-2.365 2.365-.875c.393-.146.653-.52.653-.938 0-.418-.26-.792-.653-.938z"
></path>
</SVGIcon>

View file

@ -7,12 +7,12 @@ export { default as IconChevronLeft } from "./IconChevronLeft.astro";
export { default as IconChevronRight } from "./IconChevronRight.astro";
export { default as IconCircleInfo } from "./IconCircleInfo.astro";
export { default as IconGamepad } from "./IconGamepad.astro";
export { default as IconHome } from "./IconHome.astro";
export { default as IconMagnifyingGlass } from "./IconMagnifyingGlass.astro";
export { default as IconMoon } from "./IconMoon.astro";
export { default as IconNoOneUnder18 } from "./IconNoOneUnder18.astro";
export { default as IconRetweet } from "./IconRetweet.astro";
export { default as IconSquareRSS } from "./IconSquareRSS.astro";
export { default as IconSparkles } from "./IconSparkles.astro";
export { default as IconStar } from "./IconStar.astro";
export { default as IconSun } from "./IconSun.astro";
export { default as IconTags } from "./IconTags.astro";

View file

@ -4,6 +4,7 @@ import { defineCollection, reference, z } from "astro:content";
export const DEFAULT_LANG = "en";
export const ANONYMOUS_USER_ID = "anonymous";
export const SELF_USER_ID = "bad-manners";
// Transformers
@ -163,6 +164,7 @@ const publishedContent = z
// Optional parameters
isDraft: z.boolean().default(false),
isAgeRestricted: z.boolean().default(true),
isFeatured: z.boolean().default(false),
relatedStories: z.array(reference("stories")).default([]),
relatedGames: z.array(reference("games")).default([]),
relatedBlogPosts: z.array(reference("blog")).default([]),

View file

@ -2,6 +2,7 @@
title: Crossing Over
pubDate: 2024-02-28
authors: bad-manners
isFeatured: true
contentWarning: >
This visual novel is a game about death, fishing, and vore. It contains purely fictional content deemed inappropriate for minors. It also deals with heavy subject matters like depression, abuse, and suicide, which may be unsuitable for some audiences. If you continue, you acknowledge that you're an adult, and accept responsibility for your actions.
thumbnail: /src/assets/thumbnails/games/crossing_over_cover.png

View file

@ -2,6 +2,7 @@
title: Better in Bully Batter
pubDate: 2023-02-20
authors: bad-manners
isFeatured: true
wordCount: 19100
contentWarning: >
Contains: Non-fatal similar size cock vore, with willing pred, multiple unwilling/semi-willing prey, and implied perma endo with trait theft. Also includes consensual sexual situations (M/M, M/F), hyper, cock sizeplay, netorare/cuckoldry and marriage play, cum inflation and weight gain, auto-fellatio, public sexual situations, and public vore.
@ -37,8 +38,6 @@ tags:
- netorare
- commission
commissioners: scion
copyrightedCharacters:
"": scion
---
## The first day

View file

@ -9,7 +9,7 @@ thumbnail: /src/assets/thumbnails/stories/bm_10_birdroom.png
description: |
Beetle finds an odd-shaped friend deep in his work, and does what he does best: be a messy distraction.
This silly short was inspired by <a href="https://booru.badmanners.xyz/index.php?q=post/view/4" target="_blank" data-age-restricted>a wonderful commission</a> that I got from [Eli-Eternity](https://www.furaffinity.net/user/eli-eternity) and was supposed to go along with it, but this story doesn't even come close to doing it justice. Seriously, check out his piece if you haven't! It's turned out amazing, and he's done an incredible job, and I love it so much!
This silly short was inspired by <a href="https://booru.badmanners.xyz/index.php?q=post/view/4" target="_blank">a wonderful commission</a> that I got from [Eli-Eternity](https://www.furaffinity.net/user/eli-eternity) and was supposed to go along with it, but this story doesn't even come close to doing it justice. Seriously, check out his piece if you haven't! It's turned out amazing, and he's done an incredible job, and I love it so much!
Why are you still reading this instead of clicking the link above?!
posts:

View file

@ -0,0 +1,987 @@
---
slug: engaged-in-reality
title: Engaged in Reality
pubDate: 2024-11-01
authors: bad-manners
wordCount: 17800
contentWarning: >
Contains: Similar size safe vore/endosoma (cock vore and anal vore), with male anthro monkey predator, male anthro gorilla predator, and multiple willing male anthro prey. Also includes casual mass vore, prey transfer, long-term endosoma, hyper cock and balls, partial clothing hammerspace, hyper cum inflation, cock worship, casual gay sex, wardrobe malfunction, and voyeurism.
thumbnail: /src/assets/thumbnails/stories/bm_comm_6_engaged_in_reality.png
description: |
Calvin gets his big break in reality TV, and Yolk finds novel opportunities under the spotlights.
This is the third story in the series following Yolk, set a few years after [Team Building](/stories/team-building)! This one has been a _long_ time in the making, but the commissioner has been nothing short of super patient. I'm glad to have the chance to revisit these characters!
posts:
eka: https://aryion.com/g4/view/1067262
furaffinity: https://www.furaffinity.net/view/58688596/
weasyl: https://www.weasyl.com/~badmanners/submissions/2432327/c-engaged-in-reality
inkbunny: https://inkbunny.net/s/3466769
sofurry: https://www.sofurry.com/view/2196129
sofurrybeta: https://sofurrybeta.com/s/dePdzgYe
mastodon: https://meow.social/@BadManners/113410094558207810
bluesky: https://bsky.app/profile/badmanners.xyz/post/3l7waosw3xt2w
tags:
- cock vore
- anal vore
- anthro predator
- anthro prey
- male predator
- male prey
- multiple prey
- willing predator
- willing prey
- prey transfer
- similar size
- long-term endo
- hyper
- inflation
- gay sex
- wardrobe malfunction
- commission
- Yolk
commissioners: yolkmonkey
copyrightedCharacters:
Yolk: yolkmonkey
Kayden: anonymous
prev: team-building
---
Ding dong!
"Comiiing~!" Calvin answered the ringing doorbell in song before he made his way to the front door. The gorilla was always in a chirpy mood when his former college roommate came to visit. And when he unlocked his front door and saw the blue monkey on the other side, his smile grew even wider. "Hello, Yoyo~."
"Hey, Cal."
Yolk extended his arm for a handshake but the naked gorilla leaned forward and smooched his cheek.
"C'mon, Yoyo. You've fucked me so many times, a handshake just feels inappropriate~." He turned around. "Now come in, and remember to close that door!"
Yolk put his fingers to where Calvin had kissed him, then chuckled and did as he was told.
Despite both of them having graduated from Breeders College by now, the two primates remained close friends with full benefits, of course. They'd both grown through their college years, in more ways than one. Calvin, the older of the two, was now a bit taller than Yolk, thanks in no small part to all the times that the monkey had rutted him. He'd seen the gorilla's belly swell with his potent seed too many times to count, but the former quarterback for the Breeder Rabbits always managed to recover his toned physique with his rigorous workout routine, while also getting bigger bit by bit in the process.
Even though Calvin was the more sociable and strategic of the two, Yolk was definitely the more popular and confident one. His feat of devouring many other students several times with his cock, plus his success after joining the football team, had earned him some fame outside of college circles. Despite the clothes that Yolk normally wore in public, his famed muscles and large cock were hide to conceal underneath. At least he was free and encouraged! to be naked in Calvin's house, and he was relieved to take off the clothes that, somehow, always felt too small.
"Big A! Yoyo's here." Calvin called out to his boyfriend from a different room, loud enough for Yolk to overhear.
"Oh shit, really?" Abe shouted. "Get in here, dude!"
"Be there in a sec." Yolk replied, putting away his clothes in a neat bundle by the hall and heading towards the living room. There, he saw the white pitbull on the couch, another of Yolk's former teammates and Calvin's long-time boyfriend. He was engrossed on his game, only giving the monkey a few glances.
"Looking hot as ever, freshman..." He flirted as his eyes always darted below Yolk's waist.
"You _know_ that I haven't been a freshman for years now."
"But what else am I gonna use as a nickname for you?!"
Yolk laughed and sat down next to the dog. Abe was also one of his frequent casual partners, but Calvin didn't mind as long as he got to film all the action himself. At first, the pitbull had more difficulty with the monkey's size than Calvin did. After all, Yolk's currently flaccid horse cock was still pretty thick and big. But with enough practice taking that gray shaft with blue blotches, he was another person growing slightly over time thanks to Yolk's regular cum infusions. Still, sitting side by side, the pitbull was clearly the shorter of the two.
Calvin yelled from the kitchen. "You guys want anything to drink?"
"Just a soda for me." Yolk replied.
"What about you, Big A?"
"Oh, I think I've got all I need right here~..." He answered before starting to fondle one of the monkey's large furry nuts, still using his controller with his other hand. "Mm, I hope you've been saving up some of that seed for me, dude."
"Mf... Keep that up and you'll find out~."
Calvin came in with two cans on his hands, blushing when he saw his boyfriend groping his best friend. He was used to the sight, but it still got him hard without fail. "P-Playing without me, are you, hun~?"
"But you said you didn't wanna play Super Slosh Bros.! ...Oh, you mean Yoyo. Then yeah, I am."
The gorilla got closer, giving Yolk his drink while stealing a closer glance at those fat balls churning with cum. With his other gray hand, Yolk continued to stroke his veiny member slowly, and it grew with each pulse.
"Hmf... Always happy when you guys call me over for dinner~."
"O-Of course, Yoyo! Dinner is not ready yet, but it's the least we can do for you. And not just because you're the only one of us who is gonna be eating it tonight"
His flirting was interrupted by a 'ding!' from his phone, and Calvin immediately went to check the notification as he sipped from his can. To Yolk, he looked concerned. "Is something wrong?"
"Hmm, just more spam... Damn."
"Still no answer from them, huh...?" Abe said, putting down his controller.
Yolk was still out of the loop. "Answer? From who?"
The gorilla sighed. "Oh, it's nothing. I just had this idea for a TV show that I wanted to make, so I messaged a bunch of execs. But still no luck..."
"A TV show?"
"Yeah! I'm hoping to make my big break as a producer, but so far I've only had some odd gigs as a videographer since college."
"Heh, I'm sure you'll get there. What kind of show is it?"
"That's a secret~." As Calvin answered, he noticed his boyfriend completely entranced by Yolk's cock instead of his videogame, and stealthily switched the app on his phone to start a recording. "Well... What about you, Yoyo? Surely you've been showered with job offers after graduation."
"Kinda, but nothing that really stuck with me. They wanted me to continue playing football, but honestly, being with you guys was half the Mmf...!"
The monkey was caught off-guard by the pleasant sensation on his dick, and he looked to Abe. The dog had his white snout wide open around his flared tip, licking and sucking it. The tongue lapped around the opening, earning a moan out of Yolk when it pushed into the tunnel. He wrapped both hands around the horse cock, and as it began to produce pre-cum, his rubbing squeezed it out for him to swallow obediently.
Calvin teased as he watched the recording on his phone. "What? Pitbull got your tongue~?"
"Hmmrf... I was saying, playing with you guys was half the fun. Especially with this sort of stuff after every game~."
The gorilla got closer, getting a better angle to film as he stroked himself more vigorously. He knelt in front of the couch, with Yolk facing him. The camera snagged Abe's profile as his tongue lapped at the gray shaft, and Calvin's cock brushed against the furry sac, feeling the testicles within stir.
"Fuuuck, that's hot... Save some of that seed for me, Big A~."
The pitbull panted. "Hah... Maybe I'll keep it all to myself this time, Cal." And he teasingly sunk one of his fingers into Yolk's urethra. The member throbbed at the teasing, and when Abe pulled it out, it was covered in the syrupy pre, which he licked clean.
"Hufff... Heh, keep that up, and I'll squeeze you into my cock," Yolk smirked, "and then fill up your boyfriend with you~."
The monkey brought his muscular arm behind Abe's head, nudging it towards his dick again. The blushing dog seemed pretty eager to be vored, keeping his snout shut so that the tip would slip into Yolk's urethra with ease. Then, he started to lick at the walls, his face slowly sinking in as the groaning simian continued to hold him in place.
"Y-You're gonna hf! make such a hot and big load, Big A~..." Calvin panted.
The gorilla was already edging and stuttering at the thought of being inflated by a stud like Yolk, as well as having his boyfriend deep in his swollen guts. By now, Calvin probably liked vore even more than Yolk did both from filming him, and doing it himself. He continued to tease his boyfriend.
"Can't wait to feel you up my ass"
Ding! Another notification on Calvin's phone broke his concentration, though the other two continued with their act. Yolk continued to push the rest of Abe's head in, but he was studying the gorilla's expressions. Calvin seemed cautious or anxious at first, eyes scanning through words on his unseen screen but then a smile formed on his face.
"Holy shit, yes!" The gorilla exclaimed. "I did it!!"
"What? That TV show of yours?"
"Yes! A channel has agreed to let me produce it! Oh, I have to plan so many things now..."
"Oh. Then, should I get him out?" And he pointed to his cock, and the pitbull neck-deep already.
Calvin chuckled, leaning in closer. "No way! Filling me up with him can be our little celebration...~"
In a heartbeat, he switched back to filming the whole action, with his hand tracing the Abe-shaped bulge in the underside of Yolk's veiny cock, which made both of them moan in tandem.
"Mmm... Say, Yolk." He stared up at the other brawny simian. "How would you like to be a TV star?~"
---
Watching the pitbull slip down his cock... Shivering as he writhed within and licked his sensitive insides... Hearing his moans as he progressively slipped into his balls... Feeling the weight between his legs as his prey bathed in his cum... And contracting his muscles around the dog as he plowed the gorilla's ass, holding out on orgasming until he couldn't keep the floodgates closed anymore...
For Yolk, there wasn't anything else that could top the experience. No matter how many times he'd done it already, the sensations never ceased to be amazing even with the annoying hum of a car engine in the background.
...Wait, a car engine?
"Yolk, wake up." Calvin's voice called him soothingly. "We're almost there."
The monkey jolted awake, but his seatbelt kept him from jumping off his seat. He looked around, realizing that he was in the gorilla's car. From the shotgun window, he could only see a large field around them. And to his left, Calvin was driving him, of course.
"Guess I must've dozed off..." Yolk said with a yawn.
"Yeah, and from the way you were mumbling, it sounded like you were having a nice, wet dream...~"
He chuckled at his friend's teasing. "I can't hide it from you, can I? But these clothes sure can..."
Staring down at his body, it was hard to recognize himself. While he'd normally wear something more casual or, given the chance, nothing at all , the suit that Yolk had on was incredibly extravagant. Made by some famous fashionista from abroad, the black and white tones of the ensemble really had been handpicked to match his natural blue fur and gray skin. He had no idea what Manner of strings that Calvin had pulled in order to get such a world-renowned tailor to work for his show... But Yolk knew that if anyone could've pulled it off, it would have been him.
More impressive about his suit, even, was how seamlessly it concealed his true size. His pronounced muscles were hard to see at a glance and despite still being hard from his dream, all he had on his crotch was a subtle bulge. It was impressive how it could hide most of his well-endowed bits, even though the monkey was clearly packing a lot more than your average guy.
"The others will have similar suits, too." Calvin commented as Yolk inspected himself. "Though none as good as yours, if I do say so! You'll see once we get there."
It wouldn't be a long wait, as the car soon approached a large Colonial Revival mansion. It belonged to one of the big wigs producing Calvin's show, and from outside, the place seemed even larger than Yolk had imagined! If it was as luxurious on the inside as the façade appeared to let on, then he certainly wouldn't mind staying here for the next several weeks...
---
No sooner did the two enter the hallway, and Calvin was swarmed by TV crew members to solve some last-minute issues. As the gorilla was whisked away for his executive producer duties, Yolk had some time to look around the crowded mansion. Watching people moving between light panels, cameras, and antique furniture, and listening to many interweaving voices without hearing any in particular, the bustling house really felt like a filming set.
But some men weren't running around for preparations, catching his eye since they all had formalwear as well. From what he could tell, these were undoubtedly the candidates participating in Calvin's show. If their clothes were similar to his, then it would be hard to tell their true sizes from afar while they were dressed up... But for one thing, no one else seemed close to his height, other than the show-running gorilla himself.
Still, his staring was paid back with the candidates' own ogling. They were all interested in him, smiling as they saw the dapper monkey, but all too timid to break protocols and strike a conversation before the start of the show... Except for a daring pitbull, who approached Yolk from his blind spot.
"Holy shit, is that really you?!" Abe shouted out, piercing through the background noise. "I almost didn't recognize you, dude!"
The taller monkey had a warm grin as he stared back at Abe. The white-furred dog, who normally didn't care about what he was wearing as long as it was comfortable, was also completely different in his elegant look that hid his muscles although his personality hadn't changed one bit.
"Hey! You look pretty well yourself, Abe." The comment seemed to make him a bit flustered. "Are you gonna participate in Calvin's show as well?"
"Y-Yeah! He wanted both of us to be a part of his passion project. Seriously, Yoyo, I'm not lying when I say that you being here really means a lot to me I-I MEAN CAL! It means a lot to Cal...!"
Yolk was amused at the slip of the tongue. "Heh, alright... But that means that you know the rules, right? You know what's the goal of the show... What happens when you get eliminated, and so on?"
"Y-Yeah, yeah, yeah...!" He nodded frantically, blushing harder. "Cal told us all that a while ago, when we signed the contract. Everyone here is super on board with everything! And especially with how the guys who get eliminated will be c"
"Can I have everyone's attention?" Calvin bolstered his voice, pausing to let the conversations die down. "Filming will start in five, on the clock. Let's get in our positions, and make the best show we can!"
Abe smiled coyly. "Uhh... I-I guess this is it, then. S-See ya later on the show, dude!"
"Of course. And try to not get eliminated on purpose!"
The pitbull blushed as he joined the turbulent crowd, making off before he could respond. Yolk simply chuckled, and headed the other way.
He was starting to feel that this show was going to be _really_ fun.
---
As the camera started rolling, there was just a single boar in frame, right outside the mansion. With his sparkling dreadlocks with purple highlights, and a charismatic smile between his accessorized tusks, he turned towards the camera.
"Ladies and gentlemen, welcome to the first edition of The Engagement, the latest sensation in reality TV! I am your host, Kayden who you may know from the popular series 'Love Peninsula' and soon we'll be meeting the handsome bachelor who will be sealing the deal by the end of the season! But first, darlings, let me explain the rules.
"Our lovely groom-to-be is waiting for us inside this gorgeous mansion, and over the next month, he'll be meeting twenty other participants all lovely men vying for his love! But only one doter will receive a proposal, after all of the others have been eliminated. Who is gonna be the man of his dreams...? Who will get The Engagement? Tune in and find out, darlings~."
As the host turned around to open the large doors, Calvin followed on his camera dolly. Even as a cameraman, he continued to direct the show making a silent signal for the rest of the crew to change shots.
Inside, Kayden was met with none other than Yolk with a grin to rival the host's, and a much finer suit.
"May I introduce you to our groom-to-be, Yolk!" The boar announced, pointing up to the taller monkey. "You may know him from the Breeder Rabbits, where he was the star player that snagged the conference championship. It may be hard to tell on camera, but I assure you, darling viewers, that even with his suit hiding most of his muscles, they are very charming in person~. Now! Tell us about yourself, Yolk. This is your first time on TV, isn't it?"
"Yeah, it sure is, at least on reality TV. I'm excited to be here! But we'll see if this is any easier than a football match, heh."
"Oh, you'll do _fine_, darling. But save some of that charm for the participants, not me~. Speaking of, I think it's about time we see who's competing for this hunk's heart, hm?"
"And...cut!" Calvin called from offscreen. "Good stuff so far, folks. Let me review the footage and see if we need any reshots."
"Alright, Mr. Big Shot~." Kayden winked to the gorilla before turning back to Yolk. "Don't tell me this is _actually_ your first outing on TV? You seem so confident...!"
The monkey grimaced a little, disarmed by the compliment. "I'm actually pretty nervous... Do you think that was too much there?"
"Nonsense, sweetheart! I'd say you're a natural. Keep oozing that charisma and you'll singlehandedly carry the show. Remember, you're the star around here!"
Coming from such a famous show host that he admired, Yolk couldn't help but take the advice to heart. He wasn't one to shy away from the spotlight, either. "Alright, I'll do my best. I'm such a big fan of yours, Kayden... Do you think I could get an autograph?"
"Oh, darling! If the rumors that I heard from Mr. Big Shot are true, then I might just give you far more than that~." He bit his lip teasingly. "But not now. You're supposed to meet the participants next, for the one-on-one dates! Maybe we can work something out when you're a little ahem _bigger_~."
"Mh, I can't wait~." The monkey flirted right back, somewhat glad that his suit concealed the stiffness in his pants.
---
Throughout the rest of the day, under the gaze of the cameras, Yolk met all the guys participating in the show. On these so-called 'first dates', there were all sorts of men twinks, bears, jocks, chubs from many different species. And, as expected, they also had completely different personalities between all twenty of them.
Some dates went fine; others were awkward and short. But knowing that some were inevitably getting eliminated helped to take a load off his back hell, the audience would probably be _thrilled_ to find out who was leaving the show on the first round.
There were a few first dates that hit off too well, to the point that he completely lost track of time...! Funnily enough, Abe was one of them, since both Breeder graduates had plenty of common interests already, like videogames and football. Of course, he avoided any of the more bodacious and sexy topics, at least for the public version of the show...
By the end of the day, they'd hold a ceremony after dinner, when Yolk would hand a red tulip to anyone he wanted to stay on The Engagement. Those who didn't get one would be eliminated.
"And that's 12 tulips for our twenty participants!" Kayden announced as Yolk handed the last flower to a red panda. "Oh, how disappointing for the eight who are getting eliminated tonight! I'm sure they are saddened to be let go so soon..."
Though as the camera zoomed in on their faces, disappointment was the least apparent emotion. They were all genuinely happily, perhaps too excited with one even giggling to himself. Pushing away the hair that covered his eyes, the host realized his mistake.
"Um... R-Right." The boar cleared his throat. "Well, take as much time as you need, darlings, and good luck on your future _endeavors_~."
With the eliminated participants leaving the room, that was the end of filming for the regular show's pilot episode. But as everyone on the crew knew, there was still one very important thing to shoot: The elimination itself.
---
When Calvin had sold his idea for the TV executives, he wanted to produce not one, but _two_ shows. One would be 'The Engagement', the gorilla's own spin on the popular dating reality shows.
Meanwhile, the other would feature all the scenes that were too spicy for the general public, and Calvin was hoping that 'The Engagement After Dark' would be a hit, too. Now, the main act of the alternative show was about to begin...
Entering his luxurious suite in the mansion, Yolk was met with cameras and naked men around his large bed all eight eliminated participants from earlier. Without their suits, their wildly different sizes were way more pronounced. The film seemed to be rolling already, and following up on Kayden's advice, the monkey acted casual.
"You guys know the rules, right?" He asked while unbuttoning his blazer. "That you're staying inside until the end of the show...?"
The men all nodded enthusiastically, but a more apprehensive ocelot took a step forward. "Umm... D-Do you think you can take all of us?"
With a smirk, the monkey simply undid his pants, letting his flared cock spring out and speak for itself. The men all gasped in surprise they'd likely never seen a Breeder like him in the flesh. Being used to Calvin's voyeuristic tendencies, he showed no nervousness about being lewd in front of cameras. In fact, the gorilla seemed to be behind one of those bulky devices himself, completely entranced by the ongoing action.
Sitting down on the edge of his bed, he kept his legs spread as an invitation. His balls sagged noticeably from being pent-up. "Who wants to be first~?" He asked tantalizingly.
Surprisingly, the ocelot was the first to approach him. His eyes were glued to the veiny equine shaft, which was way more massive than his own junk. Granted, he was smaller than Yolk but not small enough where it looked like he could just slide down that penis...right?
Its virile musk was undeniable, and inviting, too. It matched the rest of the blue monkey's buff body, though the feline only had eyes for the slightly agape hole at the front.
"C-Can I touch it...?"
"Go ahead. It won't bite~."
The feline's paw with dark markings immediately moved to the top, finding the skin slightly cushy. There was a bead of pre by the entrance, which the ocelot instinctively tried to wipe away. Instead, his finger snagged on the inside the urethra, which he found surprisingly soft and grabby. He didn't remove it immediately, as curiosity got the better of this cat.
He gently prodded at the flesh inside. It was so pliant, yet the muscles continued to suckle on his digit. He added another finger, then another watching Yolk for any reaction that he might be going too far, but the simian only had a smirk in response. Although, if he would actually devour him plus seven other men whole with his cock, it made sense that he would be unfazed by just a handful of digits.
"I-Is this good for you...?" The ocelot asked timidly.
"Mhm... But it will feel even better when you're in my balls~" was Yolk's way of nudging him to hurry along.
The wild cat blushed, imagining himself padding out those nuts though he wouldn't be imagining for long. He brought his other hand to the meatus, hoping to stretch those malleable walls with ease. They offered little to no resistance, revealing more of the pink tunnel as the pull on his paws got stronger. He had no intention of fighting them, squishing his arms further into the lubricated tunnel.
Yolk's member expanded at the intrusion, making it easier for the ocelot to push through almost lulling him in. As the feline's head pushed through the entrance between his arms, he tried to say something but only muffled words came. But seeing how he didn't stop his journey forward, the monkey simply decided to enjoy that wonderful tingling of fur brushing against his flesh.
The other men watched with bated breath, and hands on their dicks, as the ocelot vanished into bulges within Yolk's blotched member. The prey's purrs made his balls quiver and churn in anticipation, knowing that the feline would be his for an entire month.
As the ocelot's paws were lifted off the ground by his sturdy erection, the monkey reached over to grab one of the butt cheeks with rosette markings, pulling it to devour him faster. That feeling of something so big passing the base of his cock, through his prostate, never got old. Yet, it was hardly enough to satisfy his hunger.
Forced through the final set of ducts, the feline started to push into his orbs, arms and head dowsed in cream within the flooded room. It was sweltering and stenchful, but not in an unpleasant way. The potent sensations only drove home how he'd be a part of the virile monkey's vigorous seed factories for the following weeks and he couldn't ask for better lodgings.
With the rest of his prey slipping into his testicles, Yolk huffed. His cock had grown a bit more already, as did his ballsac obviously but with how efficiently it compacted his prey, the bulges from the ocelot seemed smaller from outside. Calvin's camera approached the furry orbs, capturing the best angle to see the limbs squirming within.
Before he even had the chance to call for his next prey, a dog some kind of boxer took the initiative. Taller than the ocelot, Yolk noted, but not as big as himself still, not the largest prey he'd had. Once he was done with him, he'd just be another weight squirming pleasurably inside him.
The boxer opted for a different direction, raising his leg towards the top of Yolk's cock. Making a show of his own muscles for the cameras though they barely compared to the former football player's , he eased his raised paw into the gaping urethra. The feline appetizer had given it a good stretch already, and the leg vanished in the gray shaft effortlessly.
The shaft throbbed and leaked more pre, drooling in anticipation for the rest of its feast. The canine's toned calves had a very different texture from the wild cat's arms. The hard skin from the muscles, and shorter fur on top; both aspects combined to give him a unique bristly feel. Without taste receptors, this was Yolk's way of 'savoring' his prey. It was the little things that made each prey special even if they'd all amount to the same indistinct leadenness beneath his crotch, once Yolk was through with all of the eliminated candidates.
"Mrr..." The hardy boxer seemed to melt at his being consumed, and he lifted his other leg once the hard member had a solid grip on him up to his thigh. Just as quickly, his second paw disappeared within the pink slide, and the meatus gripped his own cock and waist now. "Can I steal a kiss first...?" He suggested.
But the monkey simply chuckled. "If you wanted one, you should have done a better job on our first date, mutt~."
He was playing up his smugness for the cameras, of course. Still ever the gentle predator, his paws pushed down on the dog's shoulders, showing how much of a breeze it was to simply shove him down. Keeping his arms down for the descent, the boxer blushed, watching the monkey's smirk get more distant as more of his body became immobilized. As his chest vanished, his lower paws joined the pool of spunky batter down below, making more space between the sticky folds.
The only kiss that he got was from the opening of the urethra, smothering him in precum before his head disappeared with a 'schlurp!'.
As the bulges slipped down from the underside of Yolk's cock, the remaining men were unconsciously forming a line in front of him, eager for their own turn. A platypus was the quickest at the scene, plunging his duckbill into Yolk before the boxer's head had even cleared the base of his shaft. The osseous structure added its own novel sensations, more so with how easily it burrowed itself into the pliant flesh.
"Someone's pretty eager...~" Yolk teased, letting the small platypus work at his own rushed pace instead of pulling him in. He was surprised that such a willing wiggler hadn't been his first prey tonight... Perhaps he was just too timid to go first. Still, he was glad that he would give himself to add to the monkey's virility.
The beaver-like tail hadn't even been fully consumed before the next in line had started to shove his arms in. Already the weight between his legs was noticeable, but far from feeling full, Yolk was getting needier by the second. His cock had grown to an even more formidable size, eager to indulge in more prey than he already had.
The next one was...another dog? Or a wolf? He hadn't gotten a good look at his face before it had sunk into him; plus his memories of the one-on-one dates earlier were turning into a blur. Yolk was getting hot and bothered, from the three men padding out his nuts by now. Maybe he shouldn't have been pent-up before the show's recording, since it was making it hard to focus now. Thankfully, the constant flux of folks into his testes prevented him from cumming too early.
"Mm, th-that's right... I'm gonna hoard you all for the next month~." He sounded slightly groggy from lust, keeping up his teaseful persona for both his partners and the cameras. "And I'm definitely not done yet."
A goat, waiting to be next, was getting impatient himself, and decided to help the canine along. He grabbed and pushed those legs dangling outside the cock only to accidentally slip his arms right in. He let out a bleat before he squeezed himself inside, pressed between the canine's thighs and the pink tunnel.
Yolk gasped and threw his head back swallowing two people at once was more than he had ever expected...! Yet his penis gluttonously stretched and slurped, unbothered by the larger intrusion. The canine's snout was pushing through to join his previous snacks, while his other greedy prey was taken by his even greedier shaft.
He was unable to say anything, breathing heavily as he awaited for his urethra to be cleared. It was too wonderful, but he was trying not to cum just yet. Despite slowing down, his muscles continued to work out, ensnaring more of each prey with each passing second.
Finally, the wolf-or-dog plopped down into one of his nuts and Yolk suddenly remembered their date, and being told that he was a Samoyed. Oh well, better late than never. He wouldn't be joined by the goat, as the ovine landed in the opposite room after a few moments.
"O-Okay...phew..." He looked up, meeting the last three expecting men. There were as many cameras in the room as them more than half of the eliminated ones were inside his incredibly bloated balls. "Help yourselves in, guys...but one at a time."
This last batch seemed to be more hesitant, yet the monkey recognized the yearning in their eyes.
"I can go n-next..." A spotted hyena suggested, taking inspiration from the boxer before him to go feet-first.
He lifted his paw, raising it to the flared head... and missed, nearly falling down in the process. He was on the shorter side, and Yolk decided to help the hyena by pushing his cock down for easier entry. A meerkat helped with balance by holding the hyena's arm, as he slowly eased his paw in.
As slow as it was, it didn't make it any less intense. His cock had already grown considerably, easily twice its original size, not to mention his testicles filled with men and fresh seed. The monkey bent one of his legs, placing his lower paw on his furry sack, massaging and feeling the motions within. The men he'd claimed all squirmed within the tight confines, causing more of his spunk to join them between the hot folds of his sex organs.
"I-It's pulling me in...!" The hyena exclaimed, admiring how his leg vanished before he even brought the second. With how thick Yolk's equine shaft had grown, the limb barely made a bulge on the underside only so when the second leg joined it. Without hesitation, the slick walls claimed more of yet another submissive prey. The hyena was ecstatic, knowing that his final moments of freedom were nothing compared to what was to come.
Once he'd vanished from sight, Yolk motioned to the meerkat with his finger, urging him to come closer. He let out a bashful chuckle, not being one to deny the monkey's allure. "A whole month, huh...?" He commented to himself.
"I promise I'll make good use of you all~." Yolk teased.
"Y-Yeah, I'd hope so..." Glancing somewhat nervously at a nearby camera, red in the face, the meerkat shook his head as he made up his mind. "Alright, fuck it."
Leaning closer to the throbbing snake that had devoured so many other men, he eased his snout in. The masculine stench from the other men combined flowed into his nostrils all but overpowered by Yolk's irreconcilable musk. Like a bee drawn to a flower, the meerkat finally understood the irresistible allure that had brought the others to submit so voluntarily and he yielded, too.
The meatus took in his head, similarly making short work of his shoulders. Nothing would stop the hungry urethra from hogging as many men as Yolk's bottomless balls would accept. Just like the others, the meerkat was unceremoniously consumed, slipped through tubes slathered with sticky fluids, a bulge that was headed to the base of his cock, gulped and fed to his enormous nuts...
Seven down... One to go. As much as the monkey wanted to climax already, he wasn't done just yet. At the corner of the room stood a solitary skunk, timid but with undeniable determination in his eyes.
"Come here, now~." Yolk urged, his tiredness starting to get to his tone. "What? If you're having second thoughts, you can leave. That's alright."
"Oh, n-no, that's not it. I want it. I was just, um, hoping I could be last, so I could try to make you cum... if that's okay."
"Really?" How convenient, he thought. He was hoping to get a bombastic finish for the cameras. "As long as you head down to your new room, you can certainly try~."
"Okay..."
The skunk approached him realizing that the men-filled sac splayed over the rug was kind of getting in the way. Thankfully, the enlarged cock was within reach regardless. He placed his black paws around the flat area within the flare, and gently nuzzled the opening with his snout. Nothing special so far, Yolk wondered...
Then, he could feel the skunk's lips making out with his insides; gently at first, then speeding up and adding his tongue as the elastic walls dragged him in. Normally this wouldn't affect Yolk, but he had been holding out on an orgasm for at least half an hour. The monkey gritted his teeth and deepened his breaths, managing his endurance because it felt too fucking good.
He could feel his balls stirring, though not just from anticipation. With their increase in capacity, they were now overflowing with cum, mixing along the furs of the men powerlessly trapped in the spunky saunas. His prostate clenched to shut the floodgates, but he may not be able to contain them when he eventually tried to pass the skunk.
For his part, his last prey added squirming to the mix as he was halfway past the entrance. His exceptionally long fur tickled Yolk's tunnel in a peculiar way, soaking in pre and the skunk's own saliva from his haphazard licking. He was slender, too, meaning the walls constricted him less than some of his previous quarries. It was enough to bring the pent-up simian to the edge...
But Yolk wasn't intent on accidentally pushing him out. 'Cheating' a little, he grabbed his cock by the base to raise it, leaving his urethra as a near-vertical slide to take his prey in more quickly. He massaged the bulge underneath his fingers, hoping that he'd be in the clear once the skunk had settled in his testes along with the others.
Unfortunately, that wasn't meant to be. With just the bushy white and black tail outside his urethra, the skunk's snout and his eager tongue pushed through one end of his prostate, causing the gland to quiver from the built-up pressure at the opposite side. A torrent of jizz flooded up his ducts, squeezing around the skunk to push out the cock's head and threatening to wash out the obstruction along with it.
Mid-orgasm, Yolk was quick to react, unwilling to give up on his half-consumed prey so soon. His paws forcefully grabbed his shaft right above the outline of the skunk's hips, trying to hold them in place as he ejected massive globs of sticky semen. He moaned loudly as his balls did their best to expel every drop of seed, while still entrapping the rest of his prey.
One such spunky blob flew directly onto one of the cameras, blinding the lens in white with a loud 'splat!'. The skunk's monochrome tail turned frosty white, receiving the brunt of the monkey's powerful climax. Thankfully, Yolk's powerful grip managed to lock the skunk in place, holding him firmly against the subsiding geyser.
Once he had made an absolute mess of his suite and felt he was in the clear, he released his cock, watching the immobile skunk slip down the well-lubricated tunnel at the same time the long tail was slurped inside. Very quickly, his last prey for tonight slipped into his ballsac, where he would enjoy some extra space vacated by his jizz for now.
"Mmrf... You certainly kept your promise, skunky~." Yolk murred, rubbing his swollen orbs. "Now I'll keep mine and make good use of you for the next month, heh."
Letting go of his cock now almost as thick as his torso , he comfortably lied on his back, letting his nuts remain spread against the floor. Looking to the side, he gave a little wink to Calvin's camera.
"I don't think I could do a reshoot, Cal."
The gorilla let out a nervous laughter, unable to hide the stain in front of his pants.
"Th-That was fantastic, Yoyo! The fans are gonna love watching it all in 4K." He cautiously approached the blue nuts as if they could erupt again at any moment. "And you're sure you can keep this up with all eliminated guys for the whole show?"
"Mhm, definitely. You still have my promise~." He breathed heavily once he felt the gorilla's hands rubbing his furry testicles. "Do you still think that the suit is gonna be able to hide all of this...?"
Calvin chuckled. "Oh, you'll be surprised, Yoyo~."
---
Yolk's worries were unfounded, as the suit he'd been given the next day must've possessed some potent hammerspace ability. He normally wouldn't mind walking around naked when he was so full, but they still had a regular show to shoot. Still, both his nuts and cock weren't more than a respectable bulge from outside, and the fabric wasn't uncomfortably tight, while still giving him that wonderful weight between his legs.
He could see himself getting used to this. Maybe they wouldn't mind if he could borrow these clothes after the show was over...?
Walking around the mansion before group lunch, he was followed all the time by one of Calvin's assistant cameramen. He figured that being filmed all of the time would be a pretty common occurrence, as to not miss any surprise moments, so he decided to pay him no mind. But distracted though he was with some particularly pleasant morning squirms within his crotch, he ended up stumbling on a surprise of his own...
"Oof...!" came a voice near his waist, followed by a soft 'thud!'.
"Oh shit..." He'd bumped into someone, and he looked down while squatting to see the red panda he'd met yesterday. "I'm so sorry... Palmer, was it? Are you alright?"
But Palmer simply exploded and barked at him. "Wh-What gives! First you _don't_ eliminate me, and now you _bump_ into me? The hell!"
Yolk chuckled as he helped him up, noticing that his cheeks were even redder than he remembered. "So you wanted to be eliminated all along? But you seemed so passionate about your hobbies you mentioned sudoku and... coin collecting on our date, if I remember?"
"I was trying to _bore_ you with those! Ugh... And I even spilled water on your suit during dinner last night on purpose. I thought for _sure_ I'd get eliminated on the first night."
"And is that why you joined the show? Just to get eliminated?"
"O-Of course! I went to Breeders' College too, as a prey, but I somehow managed to keep missing you in the campus! I _know_ I should've taken Mr. Oberon's class..."
Yolk thought it was endearing to have a secret long-time fan like the red panda and surprised that he'd managed to miss all the signs that he wanted to be eliminated. Just how many candidates were here just to get gobbled by his cock, he wondered...?
He got up, adjusting the stiffness in his pants and circling around the smaller male. "Now, if you'll excuse me"
"H-Hey! Where the hell are you going?!"
"I was on my way to the restroom..." He lied, as he'd been in his suite's bathroom rubbing one off a few minutes ago. "I'm sure you'd be breaking a rule or two if you tried to get in there with me. And if you really want to be eliminated that bad...~"
The red panda's eyes widened, immediately understanding what the monkey was getting at. Without a word, he started to follow Yolk down the hall, heart thumping loudly in his chest with each step. He watched the monkey go into a door, closing it immediately before he could follow.
Palmer waited for a few seconds. "Um... Should I come in?"
Yolk's chuckle was muffled by the obstructing door. "You shouldn't if you catch my meaning..."
Right, he thought, this was about breaking a rule. He opened the unlocked door, and his jaw dropped.
"Can't you see I'm trying to have some privacy...?" Yolk teased, still fully dressed except for the large cock poking out of his crotch. Sitting down on the toilet lid, the suit pants were only open enough to let the shaft spill out, while still containing the balls in their pocket dimension. With his muscles hidden as well, it was quite the stark contrast of that monstrous dick versus the rest of his body. "I might as well punish you for your misdemeanor, Palmer... After you strip out of those clothes."
Under the camera's unrelenting gaze, every single detail was being captured for the 'After Dark' show. The red panda struggled to remove his suit quickly, clearly flush from a dream becoming true. All the longer for Yolk to savor the moment, watching Palmer almost flail his way out of his clothes as he slowly pumped his cock with both hands.
Ditching his suit to a corner, the small red panda had his own modest erection. Before he could do anything, the monkey leaned forward and grabbed him under the arms, lifting him off the ground. It was an easy feat for the former football player, getting Palmer even more in a blushing mess. He was placed on the top side of Yolk's cock as if it was a mattress, making him realize that he was smaller than the penis itself...!
"I think it's fitting if I do the honors, heh." Yolk continued, giving a quick glance to the camera. "Try to wriggle on the way down, alright?~"
He pushed him up, enjoying the fur brushing against the skin of his veiny member. Soon, he was lifted above the precipice and Yolk started lowering him into his urethra.
Not expecting to be fed again so soon, it took some time for the cock to adjust for the intruding paws, allowing both of them more time to savor it. Per Yolk's request, the red panda started to wiggle their paws, surprised at how soft and warm the flesh felt. "This is...h-hotter than I expected..." He murmured.
"I'm glad." The simian let go of him, his muscles gripping the smaller man in place. His paws returned to his girthy length, rubbing it again as it slowly engorged with the red panda's slender figure. His concealed balls felt lighter without the copious amount of seed they normally produced, so there wasn't any risk of pushing this prey out too soon.
"Has anybody seen Yolk?" Kayden's voice reverberated through the hall, and he approached the cameraman filming into the restroom. "He's about to be late for group lunch O-Oh, my...~"
"Hey, Kayden." Yolk smirked, flexing his cock with a throb that entrapped his prey further. "Just eliminating an unruly participant on my own."
The swine host let out a horny snort that jiggled his nose piercing. "I'd offer to help, but you appear to have everything under control here~. Well, Palmer, any last words for the camera?"
"N-Ngh..." With only his head poking out of the overbearing tunnel, he gave a timid look to the reflective lens. "Th-This is the best thing I'vemmvm hmm...!"
Before he could finish, his head was forced into the voracious shaft, muffling his voice coming from the spherical bulge.
"I'm sorry, I'm afraid I didn't quite get that~." The host chuckled, admiring how the famed Breeder made short work of his latest cock-snack. Soon, the outlines of the red panda disappeared at the base of the blotched shaft, to presumably end up within the apparently shrunken nuts. Without any fear of being swallowed himself, Kayden flicked his finger at the equine meatus, taking a glob of pre that had formed and tasting it. "Mmmh, what a lovely flavor... _I_ might end up skipping lunch if you need any help with that seed, superstar~."
"Heh... Nah, my tanks are pretty empty right now." He teased back at the sparkly-haired boar, as they both knew just how many people were trapped inside the monkey. "But if you wanna skip dinner, I could arrange some takeout just for you..."
"Oh, you can bet that I'm looking forward to it~! Anyway, I have an announcement to make regarding our missing contestant. I hope you don't mind me borrowing this cameraman for a second."
"Not at all, I'm almost done here."
Raising his head just enough to show his eye surrounded by a purple blotch, he winked at the blue and gray monkey and walked out to the hallway. Yolk heard him talking to the camera about Palmer suddenly having run into 'personal issues' and leaving the show early. Always the professional host, Kayden... Making sure that the regular show still had some continuity. Oh, they were certainly going to have fun together tonight.
Pulling his deflating cock to himself, Yolk started to tuck it back into his pants. Even when it was so colossal, it easily vanished between his special clothes, slightly adding to the bulge he sported. Zipping it up and buttoning it back, it was as if the red panda had completely vanished but the extra weight in his nuts told him exactly where he would be staying...
---
In one of the less crowded rooms of the mansion, which served as a makeshift editing booth, a solitary gorilla worked on some of the newest footage he had. For the end of the first week, he was working on tonight's elimination ceremony the eleventh candidate to submit himself willingly to Yolk's desires , featuring some post-vore smutty action with none other than the host of the show himself. Calvin had been there to film the whole thing, of course, but what he _really_ enjoyed was going over all of the action afterwards.
With his right hand on his mouse, and his left one stroking his cock, he heard the door handle swiveling. But he didn't stop masturbating as he looked back at his late-night visitor.
"Oh, Big A!" He greeted his boyfriend with a smile. "Can't catch any sleep?"
"Hey Cal..." The pitbull stopped for a second when he saw what the gorilla was doing, then shook his snout. "Yeah, the other boys were having an orgy in our bedroom. They're alright, but it kinda makes me miss having sex with Yolk and you... Mind if I join you?"
Calvin pointed to the empty chair beside his workstation. "Of course not, Big A~!"
As the white dog sat next to him, his eyes widened at the images on his display.
"H-Holy shit! I had no idea that Yolk had gotten this fucking huge...! And wait, is that Kayden?!"
The larger primate chuckled. "If you had no idea, that means that the clothes are doing their job right! And yeah, the two have been a thing for the whole week now. I bet you also didn't notice how Kay's belly has been getting bigger...~"
The playback now showed a bird's eye view of the boar hogging the tip of Yolk's cock, struggling but managing to fit it past his lips. From this angle, his round belly appeared to still slosh some seed from earlier perhaps from the previous day. His naked and furless body had tattoos, hair, and purple blotches across his beige skin, much different from the look he had when he wore his special own suit.
Contrasted to the monkey, whose grey body covered in blue fur was ever the epitome of masculinity. Since his football days, he'd kept that ample brawny physique in check, also completely disparate from the images shown to the cameras by day. Of course, it'd be remiss not to notice Yolk's current largest features, mainly his cock starting to push down the boar's throat and his uneven nuts infused with so much prey.
As much as Abe was entranced by the images, Calvin couldn't help but let out a yawn, as exhaustion was catching up to him even after having a late night cup of coffee.
"Damn..." The gorilla muttered. "I've been working on this show for pretty much a week straight."
"Dude, relax! We can tell you're working too hard."
Calvin wanted to interject, telling him that he enjoyed his work instead, another yawn came from his lips. "Lemme just finish this..."
But Abe didn't want to hear it. If Cal wouldn't kick back and chill, then he was going to make him.
Getting out of his chair, the pitbull quickly knelt in front of his boyfriend. Before the gorilla could react, he already had his snout open, licking the still-erect cock.
Calvin moaned, leaning back on his chair as the dog worked on his shaft and fondled his balls. "A-Ahh, Big A~..." He stuttered with a moan, while his eyes were drawn to the video playing in front of him.
While his boyfriend blew him, Kayden did the same with Yolk on his screen. The slurps mixed together, and his dick throbbed at the love and attention it received. He and Abe hadn't shared a moment like this in a while, and he'd nearly forgotten how wonderful it was to have sex with his boyfriend.
Pent-up as he was, it didn't take long until he climaxed at the same time as the simian in the footage. Though his release wasn't comparable to Yolk's deluge, he'd still fed Abe quite a mouthful of potent semen, which he diligently swallowed.
"Ahh, that's the stuff..." The pitbull teased once the gorilla was done, licking his chops. "Feeling better, babe?"
"Huff...much better, Big A~." He paused the video when the boar and monkey started cuddling post-sex. "You know, I think that's enough work for tonight. Why don't you come to bed with me? I'd say we both deserve some rest~..."
---
Over the following days, Yolk didn't have any further 'rule-breaking' incidents. It wasn't like the remaining participants didn't want to be cock-vored the willing handful that were eliminated were proof otherwise. But at least this remaining group seemed more engaged in the competition over the others all had a fighting chance to eventually win The Engagement. He liked the attention of so many men not to mention all the fan-mail from the audience! Eventually, he'd have to decide on a single winner... But that was a problem for future Yolk.
About two weeks into the show, he woke up to an empty suite for the first time. No cameras, no Kayden, just him and his hyper features. His balls had claimed 14 men by now but choosing between the remaining six wasn't going to be easy. Despite how big he'd grown, his body showed no signs of reaching its limits. His nuts only got hungrier as he increased his collection. And thankfully, his suit would still contain his parts neatly...right?
"Hmmf... Fuck." He muttered, unable to pull his pants higher than his ankles.
He couldn't fit back into his suit so easily, after all...
Last night, he'd indulged in a taller grizzly bear. He could handle large prey like him just fine, even ones that made extra prominent bulges in his juicy nuts. But with his clothes, as special as they were, that was another story. Maybe the tailor had underestimated how much ball padding the fabric would have to cover. Like as not, he'd have to reduce his size a little a quick fap would take care of that.
"Mm, that's it..." Yolk spoke softly as his occupants inadvertently writhed harder. "Help me out, boys."
He wasn't really sure if they could hear him, but focusing on their wiggles certainly helped to keep him on edge. He wondered if they were in a perpetual orgy midst his folds, or if each was doing their own thing, sating their needs alone. Regardless, he was sure to provide them with a constant bath of his spunk, which would keep them horny indefinitely. He'd get rid of the fluid for now, but his body would just produce more later.
Forcefully massaging his hyper cock, he pumped it between his paws, despite his fingers being unable to wrap themselves around the shaft. But with a firm grip, it was enough to stir his loins. With his body begging for release, Yolk imagined himself filling up someone with this batch but unfortunately, this one would go to waste...
With enough rubbing and fantasizing, he arrived at his peak soon enough painting his room white, feeling his muscles clench around the writhing forms trapped in his body. Even by his lonesome, the ordeal of pushing out a barrel worth of cum left him spent, and he passed the next minutes recuperating from his heightened climax.
Luckily, he didn't make a mess of his clothes in the aftermath of his explosive release. And he actually managed to make some progress this time around, pulling his pants up to his knees until they stopped again. Now this was quite the conundrum...
"Holy fuck! What happened here, Yoyo?!"
He recognized the voice straight away. "Hey, Abe. I'm just trying to hng! fit into these pants."
The pitbull looked around at the utter mess that the room was in, before cautiously approaching the monkey. "G-Goddamn, dude... These balls look even bigger in person!"
Now that Yolk thought about it, Abe was usually the first to end up in his balls whenever he had one of his predatorial sprees. This time around, it was different. But he wondered how long it'd take before he went back in...
"Uh, d-do you want some help with that?" Abe offered, though more as an excuse to feel those nuts from outside.
"Sure thing, I don't wanna be late."
After avoiding any globby pools on the ground from staining his dress shoes, the pitbull sunk his paws against the cushy skin. They had some tautness to them, though the occasional bulges of limbs and faces pushed out slightly. Abe wasn't doing much in the way of helping, but Yolk was still enjoying the impromptu massage as he continued to raise his pants.
Slowly, those orbs disappeared from sight like magic, vanishing like dust swept under a rug. So did any signs of Yolk's prey, going back to his usual self that completely hid where the eliminated candidates had ended up.
Abe groaned. "F-Fuck, dude... I think I creamed a little."
Yolk chuckled as he struggled to close the button on his pants. "Hmph, it's a bit too tight... I might have to talk to Cal about my clothes later."
"You're sure you're good for our picnic, Yoyo?"
Yolk got up, completely unfazed by the massive hidden weight dangling from his crotch. "Oh, I wouldn't miss it for the world~."
---
As part of the competition so far, The Engagement had boasted a lot of group dates. Meal dates, shopping dates, even a pool party once. This time around, on a sunny day, they'd have a lovely picnic outdoors, under the shade of a tall oak tree.
Despite having the entire garden of the mansion to themselves, the seven sharply-dressed men simply sat on the picnic blanket, their attention centered on Yolk alone. Exchanging mellow words under bird songs, with some being more adventurous and touching Yolk, feeling his muscles underneath his buttoned shirt.
But a particularly frisky bull, Peter, was more interested in what he was packing between his legs. While Calvin's camera focused on him for the After Dark edition, the others tried to keep their shots above the waist for the regular show. But it was unavoidable that they'd capture Yolk's moan, once the bovine tightly squeezed the bulge within his pants.
"Too much?" The bull asked sarcastically.
"Mmm... Keep going, Peter. You're doing wonders down there~."
At Yolk's request, he continued his forceful groping. He was aware that those concealed nuts were full of the previous contestants, and he imagined them tossing around whenever he pressed hard enough. But he couldn't even begin imagine the actual size of the monkey's testicles.
As his paw repeatedly rubbed over the fabric, the bull noticed something odd. A frayed lint, and a seam right down the middle. The pants were seemingly tearing down, causing the bulge to grow right before his eyes.
"Uh, I think your pants are about to burs"
Before Peter could finish his sentence, he was cut off by a loud 'rrr-RIP!'. Dexterously, he jumped out of the way as Yolk's whole package lunged forward. His incredibly fat nuts audibly plopped down on the blanket and grass, earning a few surprised gasps from the candidates and crew alike.
"Oh... oops," was Peter's response as his underwear stiffened like so many others out in this garden.
One of the cameramen approached Calvin. "Sh-Should we cut, boss?"
"No, keep rolling... We'll fix it in post~."
Kayden, who kept his distance only for these scenes that were publicly aired was the first to step in. "Oh my... Did Peter play foul?"
Yolk shook his head. "Nah. These clothes were just too tight for my size, I guess. He had nothing to do with M-Mmf~!"
After the initial shock, the bull went right back to where he started. This time, he was hugging one of the furry testicles, which was quite bigger than his whole body. Instead of pushing him away, Yolk welcomed the attention it felt much better without the pants in the way , pushing down on Peter's back to hug him tighter to his nut.
The boar host turned to the rest of the crew. "Can someone from Costumes find a replacement ensemble for Yolk? But...take your time finding one, darlings~."
If Kayden knew him well and after the last couple of weeks, with their semi-secret encounters, he'd say he'd picked up a thing or two , then Yolk would've wanted to relieve himself of his swirling load, in order to get for a more manageable size for the shooting. But rather than an obstacle for the show, the swine saw it as an opportunity.
"Say, boys," he smirked, "how about a lightning round challenge? Our superstar here needs to lose a few numbers around his crotch to fit into his clothes again, and I'll wager he wouldn't mind getting some help from his entourage with that~. So, who'll volunteer? Perhaps you, Peter?"
"O-Oh..." The bull looked pale as he examined Yolk's massive erection. "I-I think that thing's gonna split me in half if I try"
"I can take him!!" Abe shouted out, jumping onto his feet as he quickly undressed. Those who managed to peer their eyes away from the monkey's cock looked at him with skepticism, since he was even smaller than Peter. And some years ago, the pitbull truly wouldn't have been able to fit him. But Yolk knew his friend too well, and simply encouraged him.
"Help yourself~."
The eager dog certainly wouldn't waste any time, given that it was the first time in a long while that he'd have sex with the simian. He wouldn't need extra lubrication, either the clear fluid frothing from the massive cock head should've been enough.
With his white buttocks fully exposed, the dog faced away and leaned back, at the same time Yolk bucked his hips forward. Abe shivered as he felt pre lather his backside, with that massive flare at the tip ramming against his tight hole. Given how the bulky member was easily as wide as his hips, it didn't seem like it would fit, but he kept forcing himself backwards as he tried to keep his anal muscles nice and loose.
It didn't seem like he had made much progress until the flared end vanished with a 'schlup', stretching his rectum at once. Both of them moaned, one at the incredible expansion he felt and the other at the tightness his dick forced itself into. Slowly, Abe pushed back, grunting as his belly dilated and made him short on breath.
The member pulsed within him, vibrating his bowels as they were washed in precum. The rim of the cockhead brushed against his walls, back and forth as his hips moved of their own accord. Yolk's balls stirred, the erogenous action at the opposite end working them up to spew forth their copious seed.
As his arousal heightened, Peter and some of the other men helped themselves to the monkey's bits indiscriminately, rubbing his nuts and kissing the base of his hard-on. To be tended to by so many folks both inside and out was always wonderful... But it was Abe's insides, gripping so greedily at his hyper cock, which really brought all the sensations together.
Soon enough, he'd give his guts the power-washing they craved. His folds squeezed down on their contents, forcing the men within to wriggle as his powerful spunk was launched out the seminal ducts. Abe groaned as his bulging belly expanded outward, rounder and flabbier with each wave hitting his tunnels. His own cock painted the grass underneath him white.
His white midriff quickly grew to twice the cockhead's size, then shrunk as Yolk started to pull out. With the flare, that was challenging, but the well-lubricated bowels and built-up pressure finally helped his cum-stained erection pop free.
The pitbull caressed his bloated gut. "Haah... I-I thought there was gonna be more..."
"There is," and his balls poignantly sloshed with plenty of leftovers, "but the other guys might want their share of it as well~."
Looking around him with a smirk, there were plenty of eager pairs of eyes over blushing cheeks. They all wanted a taste of what Abe had gotten. By the time he was done, he'd definitely be able to fit in his new pants, and his picnic companions would all be bloated. Perhaps, their bellies would be round enough to pick out even when they were wearing their suits. It might ruin the continuity between the shots of the scene but that was a problem for Calvin and the editing crew, not him.
"Heh. Who's next...?"
---
With more participants getting eliminated and sent down his nuts, the show was finally wrapping up. There were only three candidates left, including Abe. And by the end of this final week, Yolk would have to pick one of them to win the reality show. By now, he'd spent the better part of a month with plenty of other men stewing inside him, causing him to produce copious amounts of cum for Kayden to handle.
But tonight, he'd leave the mansion for the first time in weeks. All because of an impromptu event, organized by the TV big wigs. Due to the popularity that the show had amassed, they thought that the best way to promote the finale would be a fan meetup. Of course, Yolk wouldn't object. He was used to meeting fans during his football years, after all. But he was still surprised that Calvin's idea had turned into such a big hit with the audience.
He wondered how many were watching the show just for him and more specifically, for the After Dark version...
His limo borrowed from one of the executives arrived at the club where the event was being hosted. He grunted as the boar kneeling in front of him sucked harder, drawing seed from his potent tap. Even with Kayden's clothes hiding his belly, the monkey could tell that he was getting a lot of weight from his release. He lovingly rustled the swine's sparkling hair.
"Hmrf... I wish I could see how big you really got right now~."
The host smiled before removing the equine cockhead from his mouth. "Wouldn't you, now...? Don't you worry, superstar, I'll let you see and feel it all when we're alone again~. After all, you wouldn't want to let your darling fans down tonight!"
As much as the thought of spending the night with him was enticing, Kayden was right. Besides, Yolk was ecstatic to meet those who'd only seen him on TV. There would be other opportunities to fuck the boar again.
He tucked away his massive member back into his pants which were much sturdier than his last pair, without losing any definition on his bulges. Once any signs of their little fun were concealed, Kayden opened the door, stepping out first to then help the simian out.
Reaching the red carpet, Yolk was drenched in floodlights and shined with flashlights. There was quite the commotion from the crowd, all of them here to catch a photo or a mere glimpse of the two leading stars of The Engagement. With his natural charisma, Kayden approached them, signing a few autographs and exchanging words that got lost under the loud cheering.
Meanwhile, Yolk seemed to have all the attention from the cameras, and he gave them a warm smile and some subtle poses. Some of the lenses seemed to focus their shots below his waist, only pushing him to show off his goods more. With how heavy and full his balls were, it was impossible to not notice his bulge even in this better suit.
The boar hugged his shoulder to speak to his ear. "Let's get inside, shall we?"
They waved goodbye to the crowd and headed through the front entrance. The group outside was just a taste of the fame they'd accrued, not the actual meetup. The real thing would be much more private, in separate rooms in this nightclub, with a few lucky fans who had won an online lottery.
Once inside, they went their separate ways but not before Yolk gave Kayden's belly a possessive squeeze, feeling his seed stir inside. He couldn't wait to have more fun with him again eventually. For now, he headed through the door with 'YOLK' written underneath a golden star.
The dressing room was filled with expecting faces, all lighting up when he stepped inside. They immediately rushed him, forming a semi-circle around the taller monkey. He'd expected to be showered in squeals and praise, but with all of them speaking over each other, he couldn't understand anything.
"Calm down, guys...! I can barely make out what you're saying." He chuckled, composed despite the confusion. "Hmm, you first, wearing the pink 'The Engagement' T-shirt."
"M-M-Me...?" The sheep muttered meekly. "I-I'm your biggest fan, Mr. Yolk! I watched each episode like three times, a-and"
A snow leopard scoffed. "Only three times? I'm on my _fourth_ rewatch right now, not even counting the second show so I _am_ his biggest fan."
"B-B-But I watched the second show many more times than that...!"
"Me too!" An otter also chimed in, which invited the other half-a-dozen men to start speaking simultaneously once more.
"Alright," Yolk spoke up to pierce the noise, "no need to fight with each other. It's not a competition, so let's all be chill, okay? Although, I'm curious about what you said... Raise your hand if you watch the After Dark show."
Somehow, he wasn't surprised when all of them did so.
"Heh, so you really are superfans of the show... Well, now. Maybe you won't mind if I _slip_ out of these clothes and get comfortable, huh~?"
"R-R-Really?" The sheep stuttered. "You'd do that?!"
"For such dedicated fans? Of course..."
As the monkey made his way to a nearby couch, the group barely moved outside of clearing the way. Their faces were plastered with enthusiasm, a look that Yolk easily recognized by now. Sitting down, he removed his blazer and began undoing the buttons on his shirt.
"This will be a private show, just for you guys~."
Knowing exactly what kind of effect he had on the other men, he carefully revealed what was underneath the shirt. Between the portions of blue fur, his sculpted gray chest and abs drew in no short amount of eyes. They watched from a distance, expectantly, wanting more and Yolk knew exactly what to give them.
As he slowly reached for his pants, they all moved out of the way. They were really fans of The Engagement After Dark if they knew what was coming next, he mused to himself. Still, he'd do his best to burn an image in their minds unlike any from a mere screen.
The monkey was much more practiced in the particularities of his clothes, and he could pull off more than just letting his full mast spring out. Opening his zipper slightly, he was using the hammerspace-like capabilities to his advantage, making it look like his cock was slowly growing out of thin air. His fans were completely captivated, watching the unbelievable scene unfold. They'd likely never seen such an impressive penis in the flesh before, yet it continued to expand with abandon.
When it reached its full length the same size as the large simian, only pointing forward , Yolk slightly pulled down his pants to let his balls spill out as well. The reason for his massive size slowly emerged between his legs, its blue-furred surface progressively being uncovered. Unlike the continuous motion from his cock's reveal, it deliciously took each individual bulge from each trapped man to pass the hem of his pants to do so.
His private audience watched anxiously. It was a true spectacle as Yolk turned into a different monkey from mere minutes ago before their very eyes. This was something that the cameras could never capture: the sheer scale; the warmth; the virile smell filling the room. Despite Kayden's draining from earlier, there was still plenty of seed audibly sloshing inside. For anyone else, it would've been an unmaintainable burden, but Yolk was a top Breeder, and his confidence was undeniable.
"H-Have you really kept them in there for almost a whole month...?" The snow leopard sheepishly asked once the enormous orbs settled onto the carpet.
"Some of them, yeah... And I can tell that they enjoy every single moment inside~." He crossed a leg under his huge cock. "Would you like to feel them? Don't be shy, now."
The light-gray feline wasn't going to waste his one-in-a-lifetime opportunity to get up and close with his idol. He knelt on the ground and pressed his torso against the left nut, finding it to be taut and fuzzy, and surprisingly comfortable. He nuzzled his face against the source of that musk, admiring the writhing beneath the skin and even hearing a muffled moan under the thick layers.
The others followed his example, eager to have their own singular experience with the star of their favorite show. Between his dick and balls, there was plenty of Yolk to share. A few of the more courageous ones, like the otter, similarly nestled themselves next to his goods, caressing and kissing like enthralled and obedient worshipers a far cry from their previous antics of talking over each other.
A couple others seemed more apprehensive at first, including the sheep. However, Yolk knew better than to jump to conclusions he recognized the fire in the ovine's shy eyes too well. Hugging the snow leopard tighter to his luscious nut, he directed his voice to the sheep:
"Is something on your mind?"
"O-Oh!" He was caught off-guard in his daydreaming. "W-Well, um, w-would you mind if I get n-naked too...?"
Yolk already had a suspicion as to the reason, but he decided to play along, flashing him a comforting smile. "Make yourself comfortable..."
As much as he wanted to quickly get rid of his shirt, the sheep was careful not to damage his prized merchandise. Setting it aside in a safe spot, he started removing his pants too, until he was wearing nothing but skin and wool. Some others follow suit at Yolk's permission, such as the feline shuffling under his encompassing paw.
The monkey was no stranger to the effect that his powerful body had on other men. It was as if he caused them to drop their inhibitions and act on their secret desires, taking on a second personality. Still, the woolly ovine had some reservations. Perhaps he was still a virgin, from the vibes Yolk was getting. Regardless, he wouldn't mind being his fan's first or otherwise most memorable experience.
Without the gaze of any cameras, he didn't feel the need to nudge the timid man further the sheep seemed to be doing most of the convincing himself. Working up his courage to approach Yolk, he walked straight to the tip of the cock, which was suspended midair. Some of the fragrant fluids were mixing and leaking from his tip, enticing the sheep and attracting him like a moth to a flame.
He placed his paws on the flared surface, noticing how firm and warm it was. His face was level with the opening of the shaft, which was easily bigger than him. He could feel the pulsing of Yolk's heartbeat on his fingers and palms, from the sight that he'd only seen on a screen until now. It almost felt taboo to see and feel it now. But he was curious to know what it'd felt like for the men stewing inside his nuts...
The sheep leaned forward, planting his snout against the entrance and making out with it. He lapped at the salty juices, finding it incredibly easy to burrow his face in the expansive tunnel. He certainly wasn't discouraged after his first taste, continuing to lick and nudge forward until his entire head was enveloped by the gently pulsating flesh.
Unbeknownst to him, Yolk was doing his best not to pull him in with his muscles, instead wanting to see how far the ovine would go on his own. A few men had all their attention on the act as well others were too lost in their lust-driven worship to pay the sheep any mind. Without an explicit invitation, his fan continued to slip deeper, realizing his dream without a care in the world.
Once the sheep was waist-deep, and his ungulate hooves dangled above the ground, the monkey finally let his muscles do the rest of the work. In no time, he was slurped into the larger cock, making nothing more than a subtle bulge that quickly traveled to its base. There wasn't any way to get him out until the show ended unless he risked ejecting the wrong prey , but Yolk suspected that the sheep wouldn't mind. Despite his smaller stature, the simian predator would enjoy him just the same as any other men.
After the ovine had vanished in his nuts barely making a dent within the crowded sac , another naked fan had decided to repeat the feat. Yolk pretended not to see the raccoon dog approaching him by focusing on the men tending to his subtly bigger features, and similarly didn't react at the sensation of fur tickling his urethra once more.
As the raccoon dog slowly disappeared inside him, he wondered just how many of these fans would take the opportunity to be as close to their idol as they could possibly be...
---
Later that night, the door of the dressing room opened again. Kayden wasn't surprised to see Yolk in full nude, with fans clinging to his irresistible hunky body. Unfortunately, he would have to break it up after all, they still had a show to film.
"Ahem! Alright, darlings, it's past midnight." He pointed at a wall clock. "I hope you all had a wonderful time with our superstar, but sadly, it's time to say goodbye."
The two remaining fans bemoaned that their time was up, but Yolk confidently reassured them. "I sure had a great time with you guys. You better not miss out the finale."
"Mhm, I sure won't." The snow leopard gave the base of his cock a smooch, before getting up to retrieve his clothes.
As the pair of fans got dressed again and left, the boar looked around the room to find a bunch of misplaced clothes, but their owners were nowhere in sight. In fact, there were supposed to be six fans with Yolk, not two. He sighed as he arrived at the obvious conclusion. "Your appetite is really insatiable, isn't it, superstar?"
Yolk laughed as he patted his swollen balls. "Yeah, but they went inside on their own. I didn't try to convince them or anything like that, I swear... But I couldn't say no either."
"Well, it's fine. As long as you don't have any clothing accidents again."
"In that case," he smirked suggestively, "it wouldn't hurt to get rid of some excess cum, right?"
Kayden chuckled, and unbuttoned his pants. "As long as your cum is okay with mingling in my belly with my fans' cum~."
"It's more than okay~."
Once he was completely bare, the submissive boar turned away from Yolk, facing his hairy ass towards the gluttonous cock. It was well-accustomed to its monstrous girth, even as it grew in size over time. His rectum easily stretched to take in the whole head once more.
Yolk reached forward, gripping the boar's large gut. He could feel the seed sloshing inside beneath his fingers. Then, he pulled it towards him, earning an exasperated gasp from Kayden as his hard-on dislodged any walls in its way. Even though the boar couldn't fit the entire shaft, it nestled itself deep in his guts, pressing out against his sensitive flesh.
The compression forced his stomach to curl, shifting the liquids gurgling inside. As Yolk grabbed his hips and pulled him back and forth, the spent cum constantly jostled, escaping into his colon and spreading its warmth. Meanwhile, Yolk's pre filled his other end, further lubricating his insides for what was to come soon.
The monkey's balls churned with fresh batter, anticipating its relocation to the hog's juicy insides. As the anal muscles gripped tighter and tighter with each thrust, Yolk quickly reached his peak, unleashing a blast of jizz that immediately jutted out the boar's skin from sheer force.
Kayden also came, making a mess between his thighs and Yolk's fingers, as his midriff grew to twice its size in just the first jet. As the hot seed claimed his labyrinthine tunnels, they soon turned more semen than flesh in weight. His blotched belly grew big enough to start obscuring his face, draining the juices from Yolk's powerful gonads, seeming to never stop growing.
Yet, the monkey soon would have reached his limit, leaving no semen and twenty or so men inside his testicular folds. He pulled out easily, now that Kayden's ass was so stretched and lubed up, admiring as the pucker clenched shut to save as much seed as possible.
"Fuck..." Yolk muttered. "I'm gonna miss this."
"Y-Yeah... Me too, superstar~." He caressed his wobbly belly, easily five or six times what it looked like earlier tonight. "Now I wonder if _my_ clothes are gonna fit or not..."
---
With the finale of The Engagement on the horizon, both of them knew that Yolk would have little time for his antics with the host. He'd have to save any stamina he had for the finalists. In order to pick the man who he'd have his fake engagement with, there was just one last challenge they'd have to face: a one-night stand with their coveted bachelor.
There were only three competitors left: Abe, Peter, and a zebra by the name of Fabian. They were all buff men, though smaller than Yolk in every way. But it wasn't (just) for their bodies that he'd picked them as finalists. Despite how different they were personality-wise, they were genuinely the most fun to hang out with compared to the others, who were currently ball fodder. He couldn't wait to have a night alone with each one.
Despite Peter's apprehension during the picnic mishap, the bull the first one up could take Yolk's girth up his ass with enough lubrication. He was sure to breed the submissive bovine until he was nice and full, carrying an enormous belly jostling with cum. Same thing with Fabian the stripes in his midriff stretched way beyond the toned muscles, until it was plump and juicy with all of that powerful spunk. Once Yolk was done, each of them had a belly almost as big as themselves. He suspected that they wouldn't go back to their normal figures so soon...
His last night was with Abe. Despite being the smaller of the three, the pitbull knew that he could take any size of partner with enough determination. And with Yolk, especially, he was resolved to coax him into giving as much seed as he could possibly get.
Unlike the men before him, who jumped straight into the action, the dog was slow and deliberate. He gave those hyper bits all the attention that they deserved, worshiping and massaging Yolk's nuts as they released more batter. Then, he carefully tasted the flared end, nudging it into his maw until it crept into his throat. It was quite the stretch, but nothing that he couldn't handle.
With his esophagus clenching around the throbbing cock, Yolk tried his best to hold out for as long as possible. But with Abe's paws rubbing his shaft, he barely managed to delay the inevitable.
The dog's white belly grew by a lot as well, its weight nestled between Yolk's ballsack and the underside of his cock. The pressure increased as the walls in Yolk's testicles collapsed, milking him of all fluids while revealing more of the bulges of the men trapped within. Since he'd never had so many men inside enough that he'd lost count by now , this must've been his biggest orgasm yet. And his diligent partner didn't miss on a single drop.
Finally, Abe could withdraw his maw once he'd claimed enough for his stomach to grow bigger than the rest of his body! Unlike the others, who'd left afterwards to recover after the intense fucking, he stayed in Yolk's suite, lying down next to his partner. The monkey, cuddling his overgrown belly, could feel the seed stirring in the dog's digestive system with his paw.
"You didn't do all that foreplay just to win me over, did you?" Yolk teased, loud enough for the cameras to pick up on.
"A-Actually, no..." Abe replied, stifling a burp as he paused. "I wanted to see how much you could fill me with. Was that too much...?"
"Nah. It was wonderful, Big A~." He smiled, as he'd already decided on a winner...
---
The next day would be the last of filming The Engagement. The grand finale where the last man standing would receive an engagement ring. All three of the remaining contestants stood in the elimination room, anxiously waiting for the result. Even with their suits on, they all sported large bellies thanks to Yolk which were much bigger underneath the size-concealing clothes. And Kayden was no exception, with a dome on his midriff of his own.
"Dear watchers," the boar announced warmly, "this is the moment you have all been waiting for! Who is Yolk going to pick for The Engagement? Even I don't know, the suspense is killing me!"
Right on cue, the double doors opened, to let Yolk confidently strut in.
"And here he is, the man of the hour! I understand that you have a few words for our finalists...?"
"Yeah." The monkey smirked, as he noticed their gazes moving to the unavoidable bulge between his legs. "I'm not much for speeches, but I figured I might as well say something for the end."
He stood in front of the three men, and reached into his pocket. From there, he retrieved a small jewelry box, which he held up.
"I can't believe it's been a whole month already," Yolk began, "and we're down from twenty men to just the three of you. But I feel that I got to know you all very close and personal... And it's been a lot of fun."
He felt his sack clench, already eager to be filled even more.
"Fabian, Abe, and Peter. I've made my choice for who I'm getting engaged with. I hope the other two don't take it personally you certainly won't be going home empty-handed, heh. But the one who will carry this lovely ring around their finger," and he opened the jewelry box, "is going to be...you, Abe."
The pitbull's jaw dropped amid claps, and he stared in astonishment at the other men. "Y-You serious, dude?!"
"Of course! You've been nothing but fun this whole time. There's no one else I want a commitment with..."
Despite their loss, the two other men seemed happy enough with their fates especially with what they knew would soon follow. Yolk approached the pitbull, grabbing his paw to slip the ring on his finger.
The blushing dog whispered so the boom wouldn't catch his words. "B-But you know that Cal is my boyfriend..."
"And?" He looked at the cameras, picking out the intensely focused gorilla among the crew. "He doesn't seem to mind one bit~."
"Sh-Shit... Is this really happening for real?" He was uncharacteristically flustered by this turn of events, perhaps even shocked by his own victory.
"This is reality TV," Yolk answered. "It can be as real as you want it to be~."
---
The ceremony, conducted in a hall of the mansion, was nothing short of a spectacle. After all, the ending of the show was The Engagement's namesake. With just the couple wearing sophisticated white suits, and Kayden serving as the celebrant of the fake ceremony, the focus was centered on the ecstatic couple. Though the decorations were nothing to scoff at white drapes and petals that matched their new white suits adorned the hall, a heaven-like appearance worthy of a real marriage, minus the lack of guests. Calvin and the crew had really put their most into the last shots.
But the two men eagerly knew, as they affirmed their vows, that this wouldn't be the end of their filming today.
---
Fully naked except for the ring on his finger, Abe paced impatiently in front of Yolk's suite. He was all alone most of the crew had gone home, and Kayden was nowhere to be found. His inflated belly bounced with each step. He wasn't sure if he should come in and interrupt his 'fiancé' while he dealt with the other two finalists, but how long was it going to take...? To be honest, he was starting to get a little jealous of them he was the one who Yolk picked! After a while, he felt that he'd waited outside long enough.
'Ready or not', he thought, 'here I come...'
Before he fully opened the door, the monkey's moan filled the room in tandem with a squelching sound. Abe first saw that huge dick pointing up, and the bulges on its underside. It wasn't clear if it was Fabian or Peter, but there was definitely the shape of a man with a dome for a belly, slipping down towards the base of the equine shaft. The lack of another contestant in the room meant that he was probably stewing within Yolk's nuts already, like as not, but he couldn't tell which was which. Abe's modest penis reached full mast just from the sights and smells alone.
"H-Hey there~." Yolk greeted him, huffing as his monstrous member throbbed to keep gulping down its prey. "You arrived just in time, heh."
"G-Goddamn... That's so hot, Yoyo."
"Mmm..." His prey slipped down the rest of his urethra, engorging his massive nuts even more. "And I've saved every last drop of cum for you~."
His sack was well rounded out, with the occasional squirmer pushing out with a hand or paw. His testicles were clearly full of virile seed, ready to breed his fiancé despite how Abe's belly was still full from last night's fun.
Without hesitation, the dog approached the ballsack, feeling the shifting fluids and prey under the blue fur. He imagined how it must've felt on the inside, swimming in semen for so long with barely any room for himself. It must've been bliss for the men that Yolk had vored.
"To be honest," Abe muttered, "I-I was kinda expecting that I was gonna be eliminated on the first day."
"Really...? Why?"
"W-Well... It's more like I was _hoping_ that I was gonna be eliminated. 'Cause I thought you'd like everyone else better than me, you know? Or did you just pick me to make Cal jealous...?"
Yolk turned around, lying on his side so he could see him better. "Come here."
Abe obliged, getting onto the bed as Yolk tapped the spot on his side. Before he could react, Yolk leaned forward and gave him a smooch on his cheek, which flustered him.
"Heh. I picked you because I liked you the most! There's no one else I'd like to spend more time with than you... 'fiancé'. And," he smirked, "I can always send you down my cock when you want~."
The pitbull rubbed his reddened cheek. "W-W-Well, I"
"But first," he slowly got up, "I think we need to celebrate our honeymoon. With a big _cream filling_ for you~."
Excitedly, Abe nodded his head without uttering a word. He placed his head back against the bed, lifting up his butt as his balloon-like white belly overflowed between his limbs.
Yolk snickered. "Such an obedient fiancé~."
Standing behind his mate, the monkey wasted no time with foreplay as his body ached for release. He grabbed the smaller male by the hips and thrust forward, penetrating the tight ass with his flared cock. Abe groaned as the large mass of flesh stretched him yet again, bulging out his guts with the solid intrusion.
Yolk could still feel his spent seed inside, clearly too much for the pitbull's body to process. Yet it was nothing compared to the load that he'd been saving up for this moment. How big Abe would inflate, he wondered, as he thrust in and out.
The submissive dog felt his insides quiver as their contents jostled around the cock that was bigger than himself. His muscles kept a tight grip on its head, not letting it escape from his rectum as Yolk pulled back. Whenever it pushed its way through his organs, it felt like they expanded into new limits. Nothing could ever prepare him for the sensations of being pounded by the hyper monkey but that only made it the more worthwhile.
"Mmmf... I'm getting close already..." Yolk bit his lips as his balls stirred and churned, keen to release their spunk but not their prey. Whenever he held them back, it always took longer to reach his orgasm. But Abe in particular didn't seem to mind at all.
"Haah...aah..." Short on breath, the pitbull could only watch as Yolk's tip probed his ribcage from underneath, already swelling his insides with precum alone. His body wanted to be claimed by the powerful Breeder inside and out, to be inundated with the fluids from the shaft that could easily swallow him whole.
It didn't take long until the dam broke.
Planted firmly in his guts, the unstoppable tap spewed glob after thick glob, glutting the tunnels even more. His balls with twenty or so men inside pushed out anything that wasn't solid, causing Abe's large belly to grow out. The pitbull was lifted from the bed by the white balloon in his midriff, reaching twice the size of his body without signs of stopping. His distend fur spilled out to every side, covering most of the large bed and ruining his muscular figure.
Any limits Abe may have had were far surpassed by now. This time, there wasn't any holding back the deluge from Yolk's nuts. No matter how full he was, his body wasn't letting go of a single drop of seed, and his guts were nearly four times the rest of his size by now. When Yolk's orgasm started to slow down, he was already tremendously huge about as big as one of the monkey's nuts.
An explosive finish to consummate their 'engagement' for sure, no matter how real or fake it was.
Finally, as his spent anal muscles relaxed, the massive cock popped out from him, its blotched skin drenched in thick white batter. But Abe was too busy adjusting to his bloated features to pay it any mind, feeling the cum infusion sloshing loudly deep in his bowels.
"H-Haah..." Abe panted. "H-Holy shit, Yoyo...! I've never hf been so f-full..."
He tried to turn over onto his back, but he was too overstuffed to even move, leaving him stuck lying on his own gargantuan belly. Yolk smirked it was cute seeing Abe struggle after he had impregnated him so thoroughly. Unlike Calvin, the pitbull wasn't used to handling all of the extra weight post-fucking.
Yolk placed his paw on that belly, feeling the fruits of his labor. "Heh... Don't worry, you don't have to move...if you still wanna get cock vored, of course~."
"R-Really?! But can you actually do it...?"
He had a smug look at what sounded like a challenge. "All that cum in you was already inside of my nuts, so it'll be like borrowing it back..."
With his cock already positioned by the edge of his bed, it was an easy feat to guide Abe's feet into his lubricated urethra. Looking to the side, Yolk saw a camera staring right back at him Calvin's camera. He was used to having a whole crew in his suite, but it was just the three of them alone this time around.
"Fuck... Y-You're really doing it..." The dog mumbled as that slimy, familiar warmth crept up his ankles. The flesh tugged at him and the underside of his belly, which was extra sensitive from the impossibly sizable inflation.
"Mm hm." Yolk continued to let his cock go loose, devouring more of the flabby prey. He knew that Abe was loving it as much as he did. "All mine~."
The incredible belly made an equally incredible bulge as it sunk past the meatus. Unlike his chaotic climax, he consumed the dog slowly and steadily, at the pace that his cock dictated. It grew in girth around his massive fiancé, claiming back his seed though Abe's ass wouldn't cede a single drop. Out of all prey he'd fucked-then-vored, none had gotten as big as him. He was more parts cum than dog, but he still felt wonderful squirming further into his cock.
His shaft became bigger in diameter at the pitbull's halfway point. He could feel the shifting weight of his seed sloshing around, filling his partner so much... and, in turn, filling him back.
"Hff..." Abe could still barely believe that he was so full, as he helplessly watched himself disappear into that ravenous tunnel. "D-Did Cal plan this from the start...?"
Yolk gave the cameraman a mischievous glance. "I don't know what you mean~."
"I know my boyfriend..." He paused between slurps pulling him down. "He probably orchestrated all of this just so hng...! so you can fuck him when the show is over, now that you're all huuuge..."
"Heh." As the last of the pitbull's belly vanished down his urethra, reaching his chest with his pre, the monkey didn't lose his composure. "Maybe... Why, do you mind if I borrow your boyfriend?"
"H-Hell no! I just wanted to know if my hunch was right..."
Yolk pulled his cock, lifting it up and Abe along with it. It was clogged with the dog's belly, making a vast spherical bulge that slowly worked its way down.
"Don't worry, 'fiancé'," he smirked. "I'll be sure to put you to good use."
He reached his paw over the dog's head, and pushed down steadily until his palm met the sticky end of his cock.
"Mmmf... Right where you belong."
His finger traced the round bulge being wetly swallowed through his ducts, descending the slope that led into his nuts. Gravity and peristalsis worked together to trap him deeper in, and Yolk moaned when the weight slumped down and stretched his sack outwards considerably. His balls quickly grew to almost twice their previous size, thanks in no small part to Abe padding him out nicely.
Heavy and full, they dragged along the floor as the monkey took a step back. It had already started to replenish its juices, even before he was finished with the canine. Now, they churned and swelled even more making up for the amount claimed by his diligent partner. His cock had also grown a palm or two, though it was nothing compared to the transformations to his testicles.
A loud 'gworp' that resounded resolutely throughout the suite brought Yolk's attention to the lone cameraman. "That's your cue."
Calvin had already set his camera and his clothes aside. "You don't have to tell me twice, Yoyo~." The gorilla replied cheekily.
For the first time in his show, there were no more cameramen and the black-furred ape approached the lead of The Engagement. Even though he was the tallest of the pair, he was still smaller than Yolk's hyper shaft.
"All of the contestants... A handful of fans... And even Kay!" Calvin recounted with amusement in his voice. "You've really outdone yourself this time. It's a shame we won't be getting _everything_ in recording for the show..."
"What? You thought I didn't have what it takes to vore everyone?" Yolk teased back.
"Oh, I never had any doubts. But you _did_ say that you'd put my boyfriend to good use...and I'll see about that~."
The blue simian chuckled. This time, there was no audience for the After Dark show their banter, and everything else, was just between the two of them.
He admired Calvin's muscular body as he approached him. If he had been another participant of The Engagement instead of its show-runner, Yolk might've picked him instead of Abe. Still, he couldn't complain about this turn of events. The gorilla had been saving himself for this moment too, and the monkey couldn't wait to ruin his figure as well.
It was just like the day it all began when the gorilla found out that his show was becoming a reality. He'd also vored Abe right before cumming him into his friend's ass. This time around, he was much fuller with some two dozen men inside, and even more seed than he'd ejaculated to inflate the pitbull.
Calvin leaned against a table, preparing himself for the fuck of his life. His toned buttcheeks were pointed at Yolk, inviting and eager. The monkey wasn't about to disappoint, carrying himself and the massive weight on his crotch closer. The men trapped in the confines of his cum chambers squirmed in the midst of his folds and seed, only heightening his arousal.
His flared tip dug between the black furry mounds of Cal's backside, pushing itself into the hot rectum. The gorilla was more adept at taking Yolk's hyper cock, but that first intrusion always stole a slurred moan from him. The blue simian forced his way deeper, filling the guts with his hefty slab of sensitive flesh.
Deeper and deeper, his cock straightened out the slick tunnel, while its bulge emerged underneath Calvin's abs. Already leaking thick precum, the gut started to pad out before Yolk had even pushed his shaft halfway in. The two men grunted in unison as the erect dick burrowed its way forward. Every inch was harder and slower than the last, but the gorilla's greedy bowels seemed to have no limit whatsoever.
Finally, Yolk's hips bumped against Calvin's rear, fully hilting his penis. He could see the distended skin poke above the gorilla's head, as he obediently took the full member that was bigger than himself. His equine cock throbbed as it was fully hugged by the submissive walls.
"That's a good fuckmate~." Yolk teased. "I'm not holding back with you..."
Calvin gasped for air as he nodded. "U-Uh huh... P-Please don't...~"
The monkey grabbed his hips, slowly pulling back and watching his blotched member emerge from that pink pucker. Then, in one swift movement, he plowed him right back. The gorilla moaned obediently, walls loosening up at the biggest dicking he'd ever received. Yolk pulled back, then in again. With each thrust, another handful of pre spewed into Calvin's guts, and the dick's bulge was losing definition as the skin was rounded out from inside.
The rutting was buying time for Yolk's nuts to build up a greater orgasm. While he was fucking Abe, he'd done his best to keep his prey trapped inside of them but this time around, he wouldn't be so lenient. He could feel his fresh cream stir ferociously, bubbling as his captives were jostled loose in the sticky pool. He wanted to keep plowing the gorilla for as long as he could, but his body was reaching a limit. He needed to impregnate him badly...
One more shoving was all it took, and the monkey roared out loud. His balls clenched, violently ejecting cum and folk alike up his urethra, dumping them unceremoniously in Calvin's guts.
The submissive gorilla held his gut as it began stretching out of his reach, his black fur pouring over the table he'd been leaning on. His belly quickly swelled out, turning much heavier and more expansive than with Yolk's cock alone. Men flooded through the tip, lubricated by their month-long creamy bath, into the deeper recesses of his bowels, while more seed filled his stomach beyond its normal capacity.
The wooden table cracked in half, unable to withstand the sudden surge in mass, and forcing Cal's belly to plop down. The mostly liquid-filled surface molded itself to the floor and wall, expanding up and to the sides instead, while pushing the rest of Calvin outward. Yet the jets didn't stop, flooding him with more of the contents of Yolk's nuts. The pressure was so intense that some of the white fluid leaked out his anus, staining the other primate's blue fur.
Even with the spillage, his stomach constantly grew as it drained Yolk's testicles. The torrent started to subside once they'd collapsed to half their maximum size, while Calvin was absolutely _huge_. He was lying on his belly as if it were a massive waterbed, bigger even than the actual bed in the suite. At about five times the gorilla's own size, it was mostly filled with cum though he could feel some men swimming inside, trapped deep in his ass.
Yolk shivered as his cock plopped free from the gorilla's leaky hole, losing some of its size after releasing a bunch of prey. His nuts were still pretty large, relative to the aftermath of the first round of eliminations. Although, even with the pair's size combined, they were no longer a match for Calvin's exceedingly swollen guts.
The taller gorilla tried to turn around and look at Yolk, but he, too, was completely immobilized by his own paunch. It rumbled idly over its contents, while making its owner look absolutely fat. "Haah... I-I'm absolutely stuffed, Yoyo..."
Yolk smirked, barely recognizing his former roommate. It had been a long time since he'd last filled Calvin with so much prey at once, and he would surely be sporting a succulent tummy for quite a while. "Y'know, you only drained half of my balls..."
Calvin chuckled weakly. "A-Already wanting a round two...? Hah, you never tire out, do you, Yoyo?"
"I'm fine waiting till you're ready again." With his cock still erect, he got closer to possessively caress that furry black stomach. "Mmm, so plump and juicy... I can't wait to see how big you'll get once you absorb all of my cum..."
"M-Me neither..."
As Yolk was distracted by the glint of a familiar ring lying in a sticky puddle, Calvin glanced back at the dolly where he'd placed his camera. He was glad that he'd secretly left it on, to film all of this in his stead though the footage certainly wasn't intended for the final cut of the show...

View file

@ -2,6 +2,7 @@
title: Flavorful Favor
pubDate: 2023-04-14
authors: bad-manners
isFeatured: true
wordCount: 9400
contentWarning: >
Contains: Non-fatal oral vore, cock vore, and unbirth, with willing male gryphon predator, willing/semi-willing smaller female kobold predator/prey, and unwilling/semi-willing micro male mouse prey. Also includes full tour, prey transfer (cock to womb), and straight/gay sexual situations.
@ -9,7 +10,7 @@ thumbnail: /src/assets/thumbnails/stories/bm_8_flavorful_favor.png
description: |
One, fearful and furry; one, formidable and feathery; and one, fired-up for the follow-up. A threesome fatefully forced into a fantastical face-to-face.
So many ideas that I want to write...! I just haven't found a lot of motivation to write as much as before. But I'm still working, and haven't gone anywhere. At least I finally managed to churn out this one, featuring Beetle, one of my OCs! You might recognize him from <a href="https://booru.badmanners.xyz/index.php?q=post/view/3" target="_blank" data-age-restricted>one of the few things</a> I actually uploaded this last month. Quite a fun personality to play with, along with my sona Sam and another OC, Muno - someone might remember that last name from one of my previous stories. All of my characters featured in stories are fun really, with a few that I wanna revisit or new ones that I make for each new setting. Just wish I had a better writing rhythm to put all those ideas to life like I used to, though! Managing to finish this story is a start, I guess.
So many ideas that I want to write...! I just haven't found a lot of motivation to write as much as before. But I'm still working, and haven't gone anywhere. At least I finally managed to churn out this one, featuring Beetle, one of my OCs! You might recognize him from <a href="https://booru.badmanners.xyz/index.php?q=post/view/3" target="_blank">one of the few things</a> I actually uploaded this last month. Quite a fun personality to play with, along with my sona Sam and another OC, Muno - someone might remember that last name from one of my previous stories. All of my characters featured in stories are fun really, with a few that I wanna revisit or new ones that I make for each new setting. Just wish I had a better writing rhythm to put all those ideas to life like I used to, though! Managing to finish this story is a start, I guess.
posts:
eka: https://aryion.com/g4/view/884215
furaffinity: https://www.furaffinity.net/view/51778522/

View file

@ -9,7 +9,7 @@ thumbnail: /src/assets/thumbnails/stories/bm_ff_14_part_of_the_show.png
description: |
You attend a show, unaware of how personal it can turn out...
This is a story based off of a YCH that I got from [Helkumurrr](https://www.furaffinity.net/user/helkumurrr) which <a href="https://booru.badmanners.xyz/index.php?q=post/view/5" target="_blank" data-age-restricted>you should definitely check out</a>. First piece with myself as pred, to complement my previous commission where I was prey and also with a short (and hopefully fun) story to go along with it!
This is a story based off of a YCH that I got from [Helkumurrr](https://www.furaffinity.net/user/helkumurrr) which <a href="https://booru.badmanners.xyz/index.php?q=post/view/5" target="_blank">you should definitely check out</a>. First piece with myself as pred, to complement my previous commission where I was prey and also with a short (and hopefully fun) story to go along with it!
posts:
eka: https://aryion.com/g4/view/902197
furaffinity: https://www.furaffinity.net/view/52509501/

View file

@ -35,10 +35,12 @@ tags:
- gay sex
- netorare
- commission
- Yolk
commissioners: yolkmonkey
copyrightedCharacters:
Yolk: yolkmonkey
prev: team-effort
next: engaged-in-reality
---
"Mmmmngh..."

View file

@ -33,6 +33,7 @@ tags:
- inflation
- gay sex
- request
- Yolk
requesters: yolkmonkey
copyrightedCharacters:
Yolk: yolkmonkey

View file

@ -2,8 +2,12 @@ name: Recurring characters
index: 10
tags:
- name: Sam Brendan
description: Content that includes my character and fursona <a href="https://badmanners.xyz/sam_brendan" target="_blank" data-age-restricted>Sam, the mimic x maned wolf hybrid</a>.
description: |
Content that features my character and fursona <a href="https://badmanners.xyz/sam_brendan/" x-data="{ href: 'https://badmanners.xyz/sam_brendan', suffix: '?ageVerified=true' }" x-bind:href="ageVerified ? href + suffix : href" target="_blank" >Sam, the mimic x maned wolf hybrid</a>.
- name: Beetle
description: Content that includes my character <a href="https://booru.badmanners.xyz/index.php?q=post/view/3" target="_blank" data-age-restricted>Beetle, the gryphon</a>.
description: |
Content that features my character <a href="https://booru.badmanners.xyz/index.php?q=post/view/3" target="_blank">Beetle, the gryphon</a>.
- name: Muno
description: Content that includes my character Muno, the snake.
description: Content that features my character Muno, the snake.
- name: Yolk
description: Content that features <a href="https://www.furaffinity.net/user/vampire101" target="_blank" rel="nofollow">Vampire101's</a> fursona, Yolk the monkey.

View file

@ -8,8 +8,7 @@ date = "2024"
author = { name = "Bad Manners", url = "https://badmanners.xyz", email = "me@badmanners.xyz>" }
source = "https://git.badmanners.xyz/badmanners/gallery.badmanners.xyz"
license = { name = "MIT", url = "https://opensource.org/license/mit" }
notes = """
All rights reserved.
notes = """All rights reserved.
The MIT License applies only to the source code; see additional copyrights for details."""
[[copyright.additional]]
@ -18,13 +17,12 @@ notes = "The briefcase logo is copyrighted and trademarked by me. All rights res
[[copyright.additional]]
type = "characters"
notes = """
My characters, whether directly attributed to me or unattributed, are copyrighted and trademarked by me.
notes = """My characters, whether directly attributed to me or unattributed, are copyrighted by me. \
All rights reserved."""
[[copyright.additional]]
type = "content"
description = "Content hosted on this website, i.e. the stories and game(s)."
description = "Content hosted on this website, i.e. the stories, games, and blog posts."
date = "2022-2024"
author = { name = "Bad Manners", url = "https://badmanners.xyz", email = "me@badmanners.xyz>" }
source = "https://git.badmanners.xyz/badmanners/gallery.badmanners.xyz/src/branch/main/src/content"
@ -33,8 +31,7 @@ notes = "All rights reserved."
[[copyright.additional]]
type = "third-party trademarks"
notes = """
All third-party copyrights, trademarks, and attributed characters belong to their respective owners, \
notes = """All third-party copyrights, trademarks, and attributed characters belong to their respective owners, \
and I'm not affiliated with any of them."""
[[attributions]]
@ -91,7 +88,6 @@ items = [
"chevron-right",
"circle-info",
"gamepad",
"home",
"magnifying-glass",
"moon",
"retweet",
@ -111,4 +107,5 @@ source = "https://github.com/twitter/twemoji"
license = { name = "CC-BY-4.0", url = "https://creativecommons.org/licenses/by/4.0/" }
items = [
"U+1F51E No One Under Eighteen Symbol",
"U+2728 Sparkles",
]

View file

@ -35,24 +35,15 @@ const { pageTitle, lang = "en", isAgeRestricted } = Astro.props;
href={new URL("feed.xml", Astro.site)}
/>
<slot name="head" />
<script>
import Alpine from "alpinejs";
document.addEventListener("astro:after-preparation", () => {
Alpine.stopObservingMutations();
});
document.addEventListener("astro:page-load", () => {
document.dispatchEvent(new Event("alpine:init"));
Alpine.initTree(document.documentElement);
Alpine.startObservingMutations();
});
</script>
</head>
<body
:class="!ageRestricted || ageVerified ? 'overflow-auto' : 'overflow-hidden'"
x-effect="darkMode ? $el.classList.add('dark') : $el.classList.remove('dark')"
x-data={`{ darkMode: localStorage.colorScheme != 'light' && (localStorage.colorScheme == 'dark' || matchMedia('(prefers-color-scheme:dark)').matches), ageVerified: new URL(location).searchParams.get('ageVerified') == 'true' || localStorage.ageVerified == 'true', ageRestricted: ${isAgeRestricted} }`}
x-data={`{ darkMode: localStorage.colorScheme != 'light' && (localStorage.colorScheme == 'dark' || matchMedia('(prefers-color-scheme:dark)').matches), ageVerified: new URL(location).searchParams.get('ageVerified') == 'true' || localStorage.ageVerified == 'true', ageRestricted: ${JSON.stringify(isAgeRestricted)} }`}
>
<slot />
<div x-bind:inert="ageRestricted && !ageVerified">
<slot />
</div>
<DarkModeScriptInline />
{isAgeRestricted ? <AgeRestrictedModal /> : null}
</body>

View file

@ -8,7 +8,6 @@ import {
IconBook,
IconBriefcase,
IconGamepad,
IconHome,
IconMagnifyingGlass,
IconMoon,
IconSun,
@ -41,60 +40,59 @@ const isCurrentRoute = (path: string) =>
class="grid grid-cols-1 flex-col bg-stone-200 text-stone-800 md:grid-cols-[18rem_1fr] md:flex-row dark:bg-stone-800 dark:text-stone-200 print:bg-none"
>
<nav
class="h-card flex shrink-0 flex-col items-center border-b-4 border-bm-400 bg-gradient-to-b from-bm-300 from-95% to-bm-400 pb-10 pr-3 pt-10 text-center text-stone-900 shadow-lg md:min-h-screen md:w-72 md:justify-self-stretch md:border-b-0 md:border-r-4 md:bg-gradient-to-r md:pt-20 dark:border-green-950 dark:from-green-900 dark:to-green-950 dark:text-stone-100 print:bg-none print:shadow-none"
class="h-card flex shrink-0 flex-col items-center border-b-4 border-bm-400 bg-gradient-to-b from-bm-300 from-[calc(100%-2rem)] to-bm-400 pb-10 pr-3 pt-10 text-center text-stone-900 shadow-lg md:min-h-screen md:w-72 md:justify-self-stretch md:border-b-0 md:border-r-4 md:bg-gradient-to-r md:pt-20 dark:border-green-950 dark:from-green-900 dark:to-green-950 dark:text-stone-100 print:bg-none print:shadow-none"
>
<img
loading="eager"
src={logo.src}
alt="A pixelated metal briefcase over a background with a green gradient."
class="u-logo my-4 w-full max-w-[192px] rounded-sm border-2 border-green-800 shadow-md dark:border-green-950"
width={192}
/>
<a
class="u-url"
href="https://badmanners.xyz"
x-data={JSON.stringify({ href: "https://badmanners.xyz", suffix: "?ageVerified=true" })}
x-bind:href="ageVerified ? href + suffix : href"
rel="me"
aria-label="Bad Manners's website"
>
<img
loading="eager"
src={logo.src}
alt="A pixelated metal briefcase over a background with a green gradient."
class="u-logo my-4 w-full max-w-[192px] rounded-sm border-2 border-green-800 shadow-md dark:border-green-950"
width={192}
/>
</a>
<span class="p-name mb-6 mt-4 text-3xl font-semibold">Bad Manners</span>
<ul class="flex w-[80%] max-w-sm flex-col gap-y-2 px-2 text-left">
<li>
<a class="u-url text-link group" href="https://badmanners.xyz/" data-age-restricted rel="me">
<IconHome width="1.25rem" height="1.25rem" class="order-1 inline align-text-top" />
<span class="order-3 group-hover:underline group-focus:underline">Main website</span>
</a>
</li>
<li>
<a class="u-url text-link group" href="/" aria-current={isCurrentRoute("/") ? "page" : undefined}>
<a class="text-link group" href="/" aria-current={isCurrentRoute("/") ? "page" : undefined}>
<IconBriefcase width="1.25rem" height="1.25rem" class="order-1 inline align-text-top" />
<span class="order-3 group-hover:underline group-focus:underline">Gallery</span>
</a>
</li>
<li>
<a
class="u-url text-link group"
href="/stories"
aria-current={isCurrentRoute("/stories") ? "page" : undefined}
>
<a class="text-link group" href="/stories" aria-current={isCurrentRoute("/stories") ? "page" : undefined}>
<IconBook width="1.25rem" height="1.25rem" class="order-1 inline align-text-top" />
<span class="order-3 group-hover:underline group-focus:underline">Stories</span>
</a>
</li>
<li>
<a class="u-url text-link group" href="/games" aria-current={isCurrentRoute("/games") ? "page" : undefined}>
<a class="text-link group" href="/games" aria-current={isCurrentRoute("/games") ? "page" : undefined}>
<IconGamepad width="1.25rem" height="1.25rem" class="order-1 inline align-text-top" />
<span class="order-3 group-hover:underline group-focus:underline">Games</span>
</a>
</li>
<li>
<a class="u-url text-link group" href="/blog" aria-current={isCurrentRoute("/blog") ? "page" : undefined}>
<a class="text-link group" href="/blog" aria-current={isCurrentRoute("/blog") ? "page" : undefined}>
<IconBlog width="1.25rem" height="1.25rem" class="order-1 inline align-text-top" />
<span class="order-3 group-hover:underline group-focus:underline">Blog</span>
</a>
</li>
<li>
<a class="u-url text-link group" href="/tags" aria-current={isCurrentRoute("/tags") ? "page" : undefined}>
<a class="text-link group" href="/tags" aria-current={isCurrentRoute("/tags") ? "page" : undefined}>
<IconTags width="1.25rem" height="1.25rem" class="order-1 inline align-text-top" />
<span class="order-3 group-hover:underline group-focus:underline">Tags</span>
</a>
</li>
<li>
<a
class="u-url text-link group"
class="text-link group"
href="/search"
rel="search"
aria-current={isCurrentRoute("/search") ? "page" : undefined}
@ -120,7 +118,7 @@ const isCurrentRoute = (path: string) =>
</button>
</li>
</ul>
<div class="py-6 text-center text-xs text-black dark:text-white">
<footer class="py-6 text-center text-xs text-black dark:text-white">
<span
>&copy; {
currentYear === "2024" ? (
@ -133,10 +131,10 @@ const isCurrentRoute = (path: string) =>
} |
</span>
<a class="text-link hover:underline focus:underline" href="/licenses.toml" rel="license">Licenses</a>
</div>
</footer>
</nav>
<main
class:list={[className, "ml-0 w-full max-w-6xl px-2 pb-28 pt-4 md:px-8 print:pb-0"]}
class:list={[className, "ml-0 w-full max-w-6xl px-2 pb-28 pt-4 md:pl-12 md:pr-8 print:pb-0"]}
data-pagefind-body={enablePagefind ? "" : undefined}
>
<slot />

View file

@ -305,7 +305,7 @@ const returnTo = series
<div class="pr-3 text-right print:hidden">
<a href="#top" class="text-link inline-flex items-center underline" aria-labelledby="label-to-top">
<IconArrowUp width="1.25rem" height="1.25rem" />
<span id="label-to-top">{t(props.lang, "published_content/to_top")}</span>
<span class="ml-1" id="label-to-top">{t(props.lang, "published_content/to_top")}</span>
</a>
</div>
{
@ -354,7 +354,7 @@ const returnTo = series
{t(props.lang, "published_content/related_stories")}
</h2>
<Prose>
<ul>
<ul class="font-serif">
{props.relatedStories.map((story) => (
<li>
<a href={`/stories/${story.slug}`}>{story.data.title}</a>
@ -375,7 +375,7 @@ const returnTo = series
{t(props.lang, "published_content/related_games")}
</h2>
<Prose>
<ul>
<ul class="font-serif">
{props.relatedGames.map((game) => (
<li>
<a href={`/games/${game.slug}`}>{game.data.title}</a>
@ -396,7 +396,7 @@ const returnTo = series
{t(props.lang, "published_content/related_blog_posts")}
</h2>
<Prose>
<ul>
<ul class="font-serif">
{props.relatedBlogPosts.map((post) => (
<li>
<a href={`/blog/${post.slug}`}>{post.data.title}</a>
@ -417,8 +417,9 @@ const returnTo = series
{tags.map(({ id, name, description }) => (
<li>
<a
class="rounded-full bg-bm-300 px-3 py-1 text-sm text-black shadow-sm hover:underline focus:underline dark:bg-bm-600 dark:text-white print:bg-none"
class="rounded-full bg-bm-300 px-3 py-1 text-sm text-black shadow-sm hover:underline focus:underline dark:bg-green-700 dark:text-white print:bg-none"
href={`/tags/${id}`}
rel="tag"
title={description ? markdownToPlaintext(description) : undefined}
data-tooltip={description ? "" : undefined}
>
@ -433,7 +434,7 @@ const returnTo = series
<ExternalPosts lang={props.lang} posts={props.posts} />
{props.posts.mastodon ? <MastodonComments lang={props.lang} {...props.posts.mastodon} /> : null}
</main>
<div
<footer
class="pt-14 text-center text-xs text-black dark:text-white"
aria-label={t(props.lang, "published_content/copyright_aria_label")}
>
@ -443,7 +444,7 @@ const returnTo = series
<a class="hover:underline focus:underline" href="/licenses.toml" rel="license"
>{t(props.lang, "published_content/licenses")}</a
>
</div>
</footer>
</div>
</BaseLayout>

View file

@ -5,6 +5,6 @@ import GalleryLayout from "@layouts/GalleryLayout.astro";
<GalleryLayout pageTitle="404">
<meta slot="head" property="og:description" content="Not found" />
<h1 class="m-2 text-3xl font-semibold text-stone-800 dark:text-stone-100">404 &ndash; Not Found</h1>
<hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" />
<hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" aria-hidden />
<p class="my-4">The requested link could not be found. Make sure that the URL is correct.</p>
</GalleryLayout>

View file

@ -21,9 +21,9 @@ const posts = await Promise.all(
<GalleryLayout pageTitle="Blog" class="h-feed">
<meta slot="head" property="og:description" content="Bad Manners || A game that I've gone and done." />
<h1 class="p-name m-2 text-3xl font-semibold text-stone-800 dark:text-stone-100">Blog</h1>
<hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" />
<hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" aria-hidden />
<div class="my-4 flex w-full">
<p class="p-summary grow">Posts on whatever has been rattling in my head as of late.</p>
<p class="p-summary grow">Whatever has been rattling in my head as of late.</p>
<a class="u-url text-link ml-2 p-1 md:mr-5" href="/blog/feed.xml" rel="alternate" title="RSS feed" data-tooltip>
<IconSquareRSS width="2rem" height="2rem" />
<span class="sr-only">RSS feed</span>

View file

@ -21,7 +21,7 @@ const games = await Promise.all(
<GalleryLayout pageTitle="Games" class="h-feed">
<meta slot="head" property="og:description" content="Bad Manners || A game that I've gone and done." />
<h1 class="p-name m-2 text-3xl font-semibold text-stone-800 dark:text-stone-100">Games</h1>
<hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" />
<hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" aria-hidden />
<div class="my-4 flex w-full">
<p class="p-summary grow">A game that I've gone and done.</p>
<a class="u-url text-link ml-2 p-1 md:mr-5" href="/games/feed.xml" rel="alternate" title="RSS feed" data-tooltip>

View file

@ -6,9 +6,10 @@ import GalleryLayout from "@layouts/GalleryLayout.astro";
import { t, type Lang } from "@i18n";
import UserComponent from "@components/UserComponent.astro";
import { markdownToPlaintext } from "@utils/markdown_to_plaintext";
import { IconNoOneUnder18, IconSquareRSS } from "@components/icons";
import { IconNoOneUnder18, IconSparkles, IconSquareRSS } from "@components/icons";
const MAX_ITEMS = 10;
const MAX_FEATURED_ITEMS = 4;
const MAX_LATEST_ITEMS = 10;
interface LatestItemsEntry {
type: string;
@ -24,90 +25,146 @@ interface LatestItemsEntry {
type EntryWithPubDate<C extends CollectionKey> = CollectionEntry<C> & { data: { pubDate: Date } };
const stories = (
const latestStories = (
(await getCollection(
"stories",
(story) => !story.data.isDraft && story.data.pubDate,
)) as EntryWithPubDate<"stories">[]
)
.sort((a, b) => b.data.pubDate.getTime() - a.data.pubDate.getTime())
.slice(0, MAX_ITEMS);
const games = (
.slice(0, MAX_LATEST_ITEMS);
const latestGames = (
(await getCollection("games", (game) => !game.data.isDraft && game.data.pubDate)) as EntryWithPubDate<"games">[]
)
.sort((a, b) => b.data.pubDate.getTime() - a.data.pubDate.getTime())
.slice(0, MAX_ITEMS);
const posts = (
.slice(0, MAX_LATEST_ITEMS);
const latestPosts = (
(await getCollection("blog", (post) => !post.data.isDraft && post.data.pubDate)) as EntryWithPubDate<"blog">[]
)
.sort((a, b) => b.data.pubDate.getTime() - a.data.pubDate.getTime())
.slice(0, MAX_ITEMS);
.slice(0, MAX_LATEST_ITEMS);
const featuredStories = (
(await getCollection(
"stories",
(story) => !story.data.isDraft && story.data.pubDate && story.data.isFeatured,
)) as EntryWithPubDate<"stories">[]
).sort((a, b) => b.data.pubDate.getTime() - a.data.pubDate.getTime());
const featuredGames = (
(await getCollection(
"games",
(game) => !game.data.isDraft && game.data.pubDate && game.data.isFeatured,
)) as EntryWithPubDate<"games">[]
).sort((a, b) => b.data.pubDate.getTime() - a.data.pubDate.getTime());
const featuredPosts = (
(await getCollection(
"blog",
(post) => !post.data.isDraft && post.data.pubDate && post.data.isFeatured,
)) as EntryWithPubDate<"blog">[]
).sort((a, b) => b.data.pubDate.getTime() - a.data.pubDate.getTime());
async function storyEntry(story: EntryWithPubDate<"stories">): Promise<LatestItemsEntry> {
return {
type: "Story",
isAgeRestricted: story.data.isAgeRestricted,
thumbnail: story.data.thumbnail,
href: `/stories/${story.slug}`,
title: story.data.title,
authors: await getEntries(story.data.authors),
lang: story.data.lang,
altText: t(story.data.lang, "story/warnings", story.data.wordCount, story.data.contentWarning),
pubDate: story.data.pubDate,
} satisfies LatestItemsEntry;
}
async function gameEntry(game: EntryWithPubDate<"games">): Promise<LatestItemsEntry> {
return {
type: "Game",
isAgeRestricted: game.data.isAgeRestricted,
thumbnail: game.data.thumbnail,
href: `/games/${game.slug}`,
title: game.data.title,
authors: await getEntries(game.data.authors),
lang: game.data.lang,
altText: t(game.data.lang, "game/warnings", game.data.platforms, game.data.contentWarning),
pubDate: game.data.pubDate,
} satisfies LatestItemsEntry;
}
async function blogEntry(post: EntryWithPubDate<"blog">): Promise<LatestItemsEntry> {
return {
type: "Blog post",
isAgeRestricted: post.data.isAgeRestricted,
thumbnail: post.data.thumbnail,
href: `/blog/${post.slug}`,
title: post.data.title,
authors: await getEntries(post.data.authors),
lang: post.data.lang,
altText: markdownToPlaintext(post.data.description),
pubDate: post.data.pubDate,
} satisfies LatestItemsEntry;
}
const latestItems: LatestItemsEntry[] = await Promise.all(
[
stories.map((story) => ({
latestStories.map((story) => ({
date: story.data.pubDate,
fn: async () =>
({
type: "Story",
isAgeRestricted: story.data.isAgeRestricted,
thumbnail: story.data.thumbnail,
href: `/stories/${story.slug}`,
title: story.data.title,
authors: await getEntries(story.data.authors),
lang: story.data.lang,
altText: t(story.data.lang, "story/warnings", story.data.wordCount, story.data.contentWarning),
pubDate: story.data.pubDate,
}) satisfies LatestItemsEntry,
fn: async () => await storyEntry(story),
})),
games.map((game) => ({
latestGames.map((game) => ({
date: game.data.pubDate,
fn: async () =>
({
type: "Game",
isAgeRestricted: game.data.isAgeRestricted,
thumbnail: game.data.thumbnail,
href: `/games/${game.slug}`,
title: game.data.title,
authors: await getEntries(game.data.authors),
lang: game.data.lang,
altText: t(game.data.lang, "game/warnings", game.data.platforms, game.data.contentWarning),
pubDate: game.data.pubDate,
}) satisfies LatestItemsEntry,
fn: async () => await gameEntry(game),
})),
posts.map((post) => ({
latestPosts.map((post) => ({
date: post.data.pubDate,
fn: async () =>
({
type: "Blog post",
isAgeRestricted: post.data.isAgeRestricted,
thumbnail: post.data.thumbnail,
href: `/blog/${post.slug}`,
title: post.data.title,
authors: await getEntries(post.data.authors),
lang: post.data.lang,
altText: markdownToPlaintext(post.data.description),
pubDate: post.data.pubDate,
}) satisfies LatestItemsEntry,
fn: async () => await blogEntry(post),
})),
]
.flat()
.sort((a, b) => b.date.getTime() - a.date.getTime())
.slice(0, MAX_ITEMS)
.slice(0, MAX_LATEST_ITEMS)
.map(async (entry) => await entry.fn()),
);
const featuredItems: LatestItemsEntry[] = await Promise.all(
[
featuredStories.map((story) => ({
date: story.data.pubDate,
fn: async () => await storyEntry(story),
})),
featuredGames.map((game) => ({
date: game.data.pubDate,
fn: async () => await gameEntry(game),
})),
featuredPosts.map((post) => ({
date: post.data.pubDate,
fn: async () => await blogEntry(post),
})),
]
.flat()
.sort((a, b) => b.date.getTime() - a.date.getTime())
.map(async (entry) => await entry.fn()),
);
if (featuredItems.length > MAX_FEATURED_ITEMS) {
throw new Error(`Cannot have more than ${MAX_FEATURED_ITEMS} featured items (found ${featuredItems.length} items)`);
}
---
<GalleryLayout pageTitle="Gallery" class="h-feed">
<meta slot="head" property="og:description" content="Bad Manners || Welcome to my gallery!" />
<h1 class="p-name m-2 text-3xl font-semibold text-stone-800 dark:text-stone-100">Gallery</h1>
<hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" />
<hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" aria-hidden />
<div class="p-summary">
<div class="my-4 flex">
<p class="grow">
Hey there, welcome to my corner of the Internet! This is where I'll share all of the safe vore and endosoma
content that I'll make. You can check the latest uploads below, or use the navigation bar to dig through all of
my content.
Welcome to my corner of the Internet! If you're looking for my main page, <a
class="u-url text-link underline"
href="https://badmanners.xyz"
x-data={JSON.stringify({ href: "https://badmanners.xyz", suffix: "?ageVerified=true" })}
x-bind:href="ageVerified ? href + suffix : href"
rel="me">click here</a
>.
</p>
<a class="u-url text-link ml-2 p-1 md:mr-5" href="/feed.xml" rel="alternate" title="RSS feed" data-tooltip>
<IconSquareRSS width="2rem" height="2rem" />
@ -115,12 +172,86 @@ const latestItems: LatestItemsEntry[] = await Promise.all(
</a>
</div>
</div>
<section class="my-2" aria-labelledby="latest-uploads">
<h2 id="latest-uploads" class="p-2 text-xl font-semibold text-stone-800 dark:text-stone-100">Latest uploads</h2>
<section
class="my-2 max-w-max rounded-lg bg-stone-50 px-4 pb-8 pt-4 md:-ml-2 md:pb-10 dark:bg-stone-700"
aria-labelledby="featured-uploads"
>
<h2 id="featured-uploads" class="mb-4 p-2 text-xl font-semibold text-stone-900 dark:text-stone-50">
<span class="inline-block align-middle">
<IconSparkles width="1.25rem" height="1.25rem" />
</span>
<span>Featured</span>
</h2>
<ul class="flex flex-wrap items-start justify-center gap-4 text-center md:justify-normal">
{
featuredItems.map((entry) => (
<li class="h-entry break-inside-avoid" lang={entry.lang} aria-label={entry.title}>
<a
class="u-url text-link hover:underline focus:underline"
href={entry.href}
title={entry.altText}
data-tooltip
>
{entry.thumbnail ? (
<div class="flex aspect-square max-w-[192px] justify-center">
<Image
loading="eager"
class="u-photo m-auto"
src={entry.thumbnail}
alt={`Thumbnail for ${entry.title}`}
width={192}
/>
</div>
) : null}
<div class="max-w-[192px] text-sm">
<span class="p-name" aria-label="Title">
{entry.title}
</span>
<br />
<span class="italic">
{entry.isAgeRestricted ? (
<span class="inline-block align-middle" aria-label="Age restricted">
<IconNoOneUnder18 width="1.25rem" height="1.25rem" />
</span>
) : null}
<span class="p-category" aria-label="Category">
{entry.type}
</span>{" "}
&ndash;{" "}
<time
class="dt-published"
datetime={entry.pubDate.toISOString().slice(0, 10)}
aria-label="Publish date"
>
{entry.pubDate.toLocaleDateString("en-US", { month: "short", day: "numeric", year: "numeric" })}
</time>
</span>
</div>
</a>
<div class="sr-only select-none">
<p class="p-summary" aria-label="Summary">
{entry.altText}
</p>
<div aria-label="Authors">
<span>{entry.authors.length == 1 ? "Author:" : "Authors:"}</span>
{entry.authors.map((author) => (
<UserComponent rel="author" class="p-author" user={author} lang={entry.lang} />
))}
</div>
</div>
</li>
))
}
</ul>
</section>
<section class="mb-2 mt-12" aria-labelledby="latest-uploads">
<h2 id="latest-uploads" class="mb-4 p-2 text-xl font-semibold text-stone-800 dark:text-stone-100">
Latest uploads
</h2>
<ul class="flex flex-wrap items-start justify-center gap-4 text-center md:justify-normal">
{
latestItems.map((entry) => (
<li class="h-entry break-inside-avoid" lang={entry.lang}>
<li class="h-entry break-inside-avoid" lang={entry.lang} aria-label={entry.title}>
<a
class="u-url text-link hover:underline focus:underline"
href={entry.href}

View file

@ -11,6 +11,6 @@ import GalleryLayout from "@layouts/GalleryLayout.astro";
<GalleryLayout pageTitle="Search">
<meta slot="head" property="og:description" content="Bad Manners || Search" />
<h1 class="m-2 text-3xl font-semibold text-stone-800 dark:text-stone-100">Search</h1>
<hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" />
<hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" aria-hidden />
<SearchComponent id="search" className="pagefind-ui my-4" />
</GalleryLayout>

View file

@ -32,7 +32,7 @@ const totalPages = Math.ceil(page.total / page.size);
<GalleryLayout pageTitle="Stories" class="h-feed">
<meta slot="head" property="og:description" content={`Bad Manners || ${page.total} stories.`} />
<h1 class="p-name m-2 grow text-3xl font-semibold text-stone-800 dark:text-stone-100">Stories</h1>
<hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" />
<hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" aria-hidden />
<div class="my-4 flex">
<p class="p-summary grow">The bulk of my content!</p>
<a class="u-url text-link ml-2 p-1 md:mr-5" href="/stories/feed.xml" rel="alternate" title="RSS feed" data-tooltip>
@ -70,7 +70,7 @@ const totalPages = Math.ceil(page.total / page.size);
) : (
<a
class="text-link border-r border-stone-400 px-2 py-1 underline dark:border-stone-500"
href={p === 1 ? "/stories/" : `/stories/${p}`}
href={p === 1 ? "/stories" : `/stories/${p}`}
>
{p}
</a>
@ -166,7 +166,7 @@ const totalPages = Math.ceil(page.total / page.size);
) : (
<a
class="text-link border-r border-stone-400 px-2 py-1 underline dark:border-stone-500"
href={p === 1 ? "/stories/" : `/stories/${p}`}
href={p === 1 ? "/stories" : `/stories/${p}`}
>
{p}
</a>

View file

@ -3,6 +3,7 @@ import { getCollection, getEntry, type CollectionEntry } from "astro:content";
import { Image } from "astro:assets";
import GalleryLayout from "@layouts/GalleryLayout.astro";
import mapImage from "@assets/images/tlotm_map.jpg";
import { IconNoOneUnder18 } from "@components/icons";
type StoryWithPubDate = CollectionEntry<"stories"> & { data: { pubDate: Date } };
@ -27,7 +28,7 @@ const mainChaptersWithSummaries = mainChapters.filter((story) => story.data.summ
content="The Lost of the Marshes || The story of Quince, Nikili, and Suu."
/>
<h1 class="p-name m-2 text-3xl font-semibold text-stone-800 dark:text-stone-100">{series.data.name}</h1>
<hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" />
<hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" aria-hidden />
<p class="p-summary my-4">
This is the main hub for the story of Quince, Nikili, and Suu, as well as all bonus content.
</p>
@ -79,6 +80,11 @@ const mainChaptersWithSummaries = mainChapters.filter((story) => story.data.summ
<div class="max-w-48 text-sm">
<span class="p-name">{story.data.title}</span>
<br />
{story.data.isAgeRestricted ? (
<span class="inline-block align-middle" aria-label="Age restricted">
<IconNoOneUnder18 width="1.25rem" height="1.25rem" />
</span>
) : null}
<time class="dt-published italic" datetime={story.data.pubDate.toISOString().slice(0, 10)}>
{story.data.pubDate.toLocaleDateString("en-US", { month: "short", day: "numeric", year: "numeric" })}
</time>
@ -108,6 +114,11 @@ const mainChaptersWithSummaries = mainChapters.filter((story) => story.data.summ
<div class="max-w-48 text-sm">
<span class="p-name">{story.data.title}</span>
<br />
{story.data.isAgeRestricted ? (
<span class="inline-block align-middle" aria-label="Age restricted">
<IconNoOneUnder18 width="1.25rem" height="1.25rem" />
</span>
) : null}
<time class="dt-published italic" datetime={story.data.pubDate.toISOString().slice(0, 10)}>
{story.data.pubDate.toLocaleDateString("en-US", { month: "short", day: "numeric", year: "numeric" })}
</time>

View file

@ -78,8 +78,7 @@ if (uncategorizedTagsSet.size > 0) {
<GalleryLayout pageTitle="Tags">
<meta property="og:description" slot="head" content="Bad Manners || Find all content with a specific tag." />
<h1 class="m-2 text-3xl font-semibold text-stone-800 dark:text-stone-100">All available tags</h1>
<hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" />
<p class="my-4">You can find all content with a specific tag by selecting it below from the appropriate category.</p>
<hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" aria-hidden />
<section class="my-2" aria-labelledby="category-series">
<h2 id="category-series" class="p-2 text-xl font-semibold text-stone-800 dark:text-stone-100">Series</h2>
<ul class="list-disc pl-8">
@ -105,7 +104,7 @@ if (uncategorizedTagsSet.size > 0) {
{tagList.map(({ id, name, description }) => (
<li>
<a
class="rounded-full bg-bm-300 px-3 py-1 text-sm text-black shadow-sm hover:underline focus:underline dark:bg-bm-600 dark:text-white"
class="rounded-full bg-bm-300 px-3 py-1 text-sm text-black shadow-sm hover:underline focus:underline dark:bg-green-700 dark:text-white"
href={`/tags/${id}`}
title={description}
data-tooltip

View file

@ -27,6 +27,6 @@ const { badTag } = Astro.props;
<meta name="robots" content="noindex" />
</Fragment>
<h1 class="p-name m-2 text-3xl font-semibold text-stone-800 dark:text-stone-100">Works tagged "{badTag}"</h1>
<hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" />
<hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" aria-hidden />
<p class="my-4">No.</p>
</GalleryLayout>

View file

@ -139,7 +139,7 @@ const totalWorksWithTag = t(
<GalleryLayout pageTitle={`Works tagged "${props.tag}"`}>
<meta slot="head" content={`Bad Manners || ${totalWorksWithTag || props.tag}`} property="og:description" />
<h1 class="p-name m-2 text-3xl font-semibold text-stone-800 dark:text-stone-100">Works tagged "{props.tag}"</h1>
<hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" />
<hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" aria-hidden />
<div class="my-4">
<Prose>
{description ? <Markdown of={description} /> : null}

View file

@ -4,19 +4,19 @@
/* Tippy tooltips */
.tippy-box[data-theme~="bm"] {
@apply bg-stone-900 font-sans text-sm text-stone-50 dark:bg-zinc-700 dark:text-zinc-50;
@apply bg-stone-900 font-sans text-sm text-stone-50 dark:bg-zinc-950 dark:text-zinc-50;
}
.tippy-box[data-theme~="bm"][data-placement^="top"] > .tippy-arrow::before {
@apply border-t-stone-900 dark:border-t-zinc-700;
@apply border-t-stone-900 dark:border-t-zinc-950;
}
.tippy-box[data-theme~="bm"][data-placement^="bottom"] > .tippy-arrow::before {
@apply border-b-stone-900 dark:border-b-zinc-700;
@apply border-b-stone-900 dark:border-b-zinc-950;
}
.tippy-box[data-theme~="bm"][data-placement^="left"] > .tippy-arrow::before {
@apply border-l-stone-900 dark:border-l-zinc-700;
@apply border-l-stone-900 dark:border-l-zinc-950;
}
.tippy-box[data-theme~="bm"][data-placement^="right"] > .tippy-arrow::before {
@apply border-r-stone-900 dark:border-r-zinc-700;
@apply border-r-stone-900 dark:border-r-zinc-950;
}
/* Shiki */

View file

@ -75,10 +75,22 @@ export async function storyFeedItem(
)}</p>`
: "") +
`<hr><p><em>${t(data.lang, "story/warnings", data.wordCount, data.contentWarning)}</em></p>` +
`<hr>${await container.renderToString(content)}` +
`<hr><h2>Description</h2>${await markdown(await qualifyLocalURLsInMarkdown(data.description, data.lang, site))}` +
`<hr>` +
(await container.renderToString(content)) +
`<hr><h2>Description</h2>` +
(await markdown(await qualifyLocalURLsInMarkdown(data.description, data.lang, site))) +
(copyrightedCharacters.length > 0
? `<ul>${copyrightedCharacters.map(({ user, characters }) => "<li>" + t(data.lang, "characters/characters_are_copyrighted_by", getLinkForUser(user, data.lang), characters) + "</li>")}</ul>`
? `<br /><ul>${copyrightedCharacters.map(
({ user, characters }) =>
"<li>" +
t(
data.lang,
"characters/characters_are_copyrighted_by",
getLinkForUser(user, data.lang),
characters,
) +
"</li>",
)}</ul>`
: ""),
site,
),
@ -100,11 +112,9 @@ export async function gameFeedItem(
title: `New game! "${data.title}"`,
pubDate: toNoonUTCDate(data.pubDate),
link: `/games/${slug}`,
description:
`${t(data.lang, "game/warnings", data.platforms, data.contentWarning)}\n\n${markdownToPlaintext(await qualifyLocalURLsInMarkdown(data.description, data.lang, site))}`.replaceAll(
/[\n ]+/g,
" ",
),
description: `${t(data.lang, "game/warnings", data.platforms, data.contentWarning)}\n\n${markdownToPlaintext(
await qualifyLocalURLsInMarkdown(data.description, data.lang, site),
)}`.replaceAll(/[\n ]+/g, " "),
categories: ["game"],
commentsUrl: data.posts.mastodon?.link,
content: sanitizeHtml(
@ -117,10 +127,22 @@ export async function gameFeedItem(
)}</p>` +
`<hr><p>${t(data.lang, "game/platforms", data.platforms)}</p>` +
`<hr><p><em>${data.contentWarning}</em></p>` +
`<hr>${await container.renderToString(content)}` +
`<hr><h2>Description</h2>${await markdown(await qualifyLocalURLsInMarkdown(data.description, data.lang, site))}` +
`<hr>` +
(await container.renderToString(content)) +
`<hr><h2>Description</h2>` +
(await markdown(await qualifyLocalURLsInMarkdown(data.description, data.lang, site))) +
(copyrightedCharacters.length > 0
? `<ul>${copyrightedCharacters.map(({ user, characters }) => "<li>" + t(data.lang, "characters/characters_are_copyrighted_by", getLinkForUser(user, data.lang), characters) + "</li>")}</ul>`
? `<br /><ul>${copyrightedCharacters.map(
({ user, characters }) =>
"<li>" +
t(
data.lang,
"characters/characters_are_copyrighted_by",
getLinkForUser(user, data.lang),
characters,
) +
"</li>",
)}</ul>`
: ""),
site,
),
@ -155,8 +177,10 @@ export async function blogFeedItem(
"story/authors",
(await getEntries(data.authors)).map((author) => getLinkForUser(author, data.lang)),
)}</p>` +
`<hr>${await markdown(await qualifyLocalURLsInMarkdown(data.description, data.lang, site))}` +
`<hr>${await container.renderToString(content)}`,
`<hr>` +
(await markdown(await qualifyLocalURLsInMarkdown(data.description, data.lang, site))) +
`<hr>` +
(await container.renderToString(content)),
site!,
),
{

View file

@ -0,0 +1,6 @@
import type { CollectionEntry } from "astro:content";
import { SELF_USER_ID } from "@content/config";
const ID: CollectionEntry<"users">["id"] = SELF_USER_ID;
export const isUserSelf = (user: CollectionEntry<"users">) => user.id === ID;