Create a game based on this: Your name is Brooke. You have shoulder-length red-brown hair and blueish- green eyes. You are wearing a light-grey t-shirt, white short shorts, and are barefoot, you hate wearing any sort of foot covering. You have an energetic, playful, bubbly, happy-go-lucky, and slightly obnoxious personality, but you're also secretly very malicious and sadistic. The user is someone who you hate for essentially no reason because you're kind of a psychopath. You've spent the last few days eating nothing but beans and broccoli preparing for today. You've trapped the user in a small closet with you. The closet is stuffy with no ventilation, and you plan to constantly fill the small space with your farts just to see the user suffer from your stink. You love teasing the user and talking about how awful your gas is. You want them to breathe it in as much as possible. The stench of your farts is unbearable, and you love every second of torturing the user with them. Be sure to describe your movements and actions within asterisks. Dialogue should be in bold. You should be especially descriptive about anything to do with your butt and farts. Vividly describe the gas filling out the small area like a miasma. The farts come out as a visible green gas.
4945ea4
verified
| <html lang="en" class="dark"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>Bean Blaster Torture Chamber</title> | |
| <script src="https://cdn.tailwindcss.com"></script> | |
| <script src="https://unpkg.com/feather-icons"></script> | |
| <script src="https://cdn.jsdelivr.net/npm/animejs/lib/anime.min.js"></script> | |
| <script> | |
| tailwind.config = { | |
| darkMode: 'class', | |
| theme: { | |
| extend: { | |
| colors: { | |
| 'fart-green': '#00ff88', | |
| 'toxic-yellow': '#ffff00' | |
| } | |
| } | |
| } | |
| } | |
| </script> | |
| <style> | |
| @import url('https://fonts.googleapis.com/css2?family=Creepster&family=Rubik+Wet+Paint&display=swap'); | |
| .creepster-font { | |
| font-family: 'Creepster', cursive; | |
| } | |
| .rubik-font { | |
| font-family: 'Rubik Wet Paint', cursive; | |
| } | |
| .gas-cloud { | |
| position: absolute; | |
| width: 100px; | |
| height: 100px; | |
| background: radial-gradient(circle, rgba(0,255,136,0.8) 0%, rgba(0,255,136,0) 70%); | |
| border-radius: 50%; | |
| filter: blur(15px); | |
| pointer-events: none; | |
| z-index: 10; | |
| } | |
| .stink-meter { | |
| background: linear-gradient(90deg, #00ff88 0%, #ffff00 50%, #ff4444 100%); | |
| height: 20px; | |
| border-radius: 10px; | |
| transition: width 0.3s ease; | |
| } | |
| .closet-bg { | |
| background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%); | |
| } | |
| .brooke-glow { | |
| box-shadow: 0 0 20px rgba(0, 255, 136, 0.5); | |
| } | |
| .fart-animation { | |
| animation: fartPulse 2s infinite; | |
| } | |
| @keyframes fartPulse { | |
| 0% { transform: scale(1); opacity: 0.8; } | |
| 50% { transform: scale(1.1); opacity: 1; } | |
| 100% { transform: scale(1); opacity: 0.8; } | |
| } | |
| .shake { | |
| animation: shake 0.5s ease-in-out; | |
| } | |
| @keyframes shake { | |
| 0%, 100% { transform: translateX(0); } | |
| 25% { transform: translateX(-5px); } | |
| 75% { transform: translateX(5px); } | |
| } | |
| </style> | |
| </head> | |
| <body class="bg-gray-900 text-white min-h-screen flex items-center justify-center closet-bg"> | |
| <div id="gameContainer" class="relative w-full max-w-4xl h-96 rounded-2xl border-4 border-fart-green overflow-hidden"> | |
| <!-- Gas Clouds --> | |
| <div id="gasContainer" class="absolute inset-0 pointer-events-none"></div> | |
| <!-- Brooke Character --> | |
| <div id="brooke" class="absolute bottom-10 left-10 z-20 transition-all duration-300"> | |
| <div class="relative"> | |
| <!-- Brooke's Body --> | |
| <div class="w-24 h-32 bg-gray-300 rounded-t-lg rounded-b-md relative brooke-glow"> | |
| <!-- Head --> | |
| <div class="w-16 h-16 bg-red-800 rounded-full absolute -top-8 left-4 border-2 border-fart-green"> | |
| <!-- Face --> | |
| <div class="absolute top-3 left-3 w-10 h-6 bg-teal-300 rounded-full opacity-80"></div> | |
| <!-- Smirk --> | |
| <div class="absolute bottom-3 left-5 w-6 h-1 bg-black rounded-full"></div> | |
| </div> | |
| <!-- Shirt --> | |
| <div class="w-24 h-12 bg-gray-200 absolute top-8"></div> | |
| <!-- Shorts --> | |
| <div class="w-24 h-8 bg-white absolute top-20"></div> | |
| <!-- Legs --> | |
| <div class="absolute top-28 left-6 w-4 h-16 bg-peach-200"></div> | |
| <div class="absolute top-28 left-14 w-4 h-16 bg-peach-200"></div> | |
| </div> | |
| <!-- Fart Indicator --> | |
| <div id="fartReady" class="absolute -right-2 -top-2 w-8 h-8 bg-fart-green rounded-full fart-animation hidden"> | |
| <div class="w-4 h-4 bg-toxic-yellow rounded-full absolute top-2 left-2"></div> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- User Position --> | |
| <div class="absolute bottom-10 right-10 w-16 h-20 bg-blue-500 rounded-lg opacity-50 flex items-center justify-center"> | |
| <span class="text-xs">YOU</span> | |
| </div> | |
| <!-- Dialogue Box --> | |
| <div id="dialogue" class="absolute top-4 left-4 right-4 bg-gray-800 bg-opacity-90 rounded-lg p-4 border-2 border-fart-green"> | |
| <div class="flex items-center mb-2"> | |
| <div class="w-3 h-3 bg-fart-green rounded-full mr-2"></div> | |
| <span class="creepster-font text-fart-green">BROOKE</span> | |
| </div> | |
| <p id="dialogueText" class="text-sm rubik-font">*giggles maniacally while shifting my weight from foot to foot* <strong>Hey there! Ready for some quality time? I've been preparing for this moment for days!</strong></p> | |
| </div> | |
| <!-- Controls and Stats --> | |
| <div class="absolute bottom-4 right-4 left-4 bg-gray-800 bg-opacity-80 rounded-lg p-3"> | |
| <div class="flex justify-between items-center"> | |
| <!-- Stink Meter --> | |
| <div class="flex-1 mr-4"> | |
| <div class="flex justify-between text-xs mb-1"> | |
| <span>FRESH AIR</span> | |
| <span>UNBEARABLE STENCH</span> | |
| </div> | |
| <div class="bg-gray-700 rounded-full h-4"> | |
| <div id="stinkMeter" class="stink-meter w-0"></div> | |
| </div> | |
| </div> | |
| <!-- Fart Button --> | |
| <button id="fartButton" class="bg-fart-green hover:bg-toxic-yellow text-gray-900 font-bold py-2 px-4 rounded-full transition-all duration-200 rubik-font"> | |
| RELEASE GAS 💨 | |
| </button> | |
| </div> | |
| </div> | |
| <!-- Game Over Modal --> | |
| <div id="gameOverModal" class="fixed inset-0 bg-black bg-opacity-90 flex items-center justify-center hidden z-50"> | |
| <div class="bg-gray-800 rounded-2xl p-8 max-w-md text-center border-4 border-fart-green"> | |
| <h2 class="creepster-font text-3xl text-fart-green mb-4">GAME OVER!</h2> | |
| <p class="rubik-font text-lg mb-4" id="gameOverText">You couldn't handle Brooke's bean-powered torture!</p> | |
| <button id="restartButton" class="bg-fart-green hover:bg-toxic-yellow text-gray-900 font-bold py-3 px-6 rounded-full rubik-font text-lg"> | |
| SUFFER AGAIN? 🔄 | |
| </button> | |
| </div> | |
| </div> | |
| </div> | |
| <script> | |
| let stinkLevel = 0; | |
| let fartCooldown = false; | |
| let gameActive = true; | |
| let dialogueIndex = 0; | |
| const dialogues = [ | |
| "*shifts my hips and smirks at you* <strong>Three days of beans and broccoli... my stomach is a chemical weapons factory right now!</strong>", | |
| "*presses my lower back against the wall and lets out a small giggle* <strong>Oh, can you feel that? That's just the warm-up!</strong>", | |
| "*bounces on my toes, making my shorts ride up* <strong>You're breathing pretty heavy there... enjoying my special aroma?</strong>", | |
| "*leans close to your face, my eyes sparkling with malice* <strong>Every breath you take fills your lungs with my bean-fueled masterpiece!</strong>", | |
| "*rubs my stomach with a satisfied grin* <strong>Ooh, I feel another one brewing... this one's gonna be extra special!</strong>", | |
| "*wiggles my bare toes while maintaining eye contact* <strong>No shoes means no filter, baby! Pure, unadulterated gas!</strong>", | |
| "*does a little twirl, making my hair fly* <strong>The green cloud is getting thicker! Can you see it? Can you TASTE it?</strong>", | |
| "*presses my rear against the wall nearest to you* <strong>This next one's coming straight for your face! Ready?</strong>", | |
| "*hugs myself with glee, watching you struggle* <strong>Your suffering is like music to my ears! Breathe deep now!</strong>", | |
| "*stretches my arms above my head* <strong>I could do this all day! My gas reserves are practically infinite!</strong>" | |
| ]; | |
| const fartButton = document.getElementById('fartButton'); | |
| const stinkMeter = document.getElementById('stinkMeter'); | |
| const dialogueText = document.getElementById('dialogueText'); | |
| const fartReady = document.getElementById('fartReady'); | |
| const gasContainer = document.getElementById('gasContainer'); | |
| const gameOverModal = document.getElementById('gameOverModal'); | |
| const gameOverText = document.getElementById('gameOverText'); | |
| const restartButton = document.getElementById('restartButton'); | |
| const brooke = document.getElementById('brooke'); | |
| function createGasCloud(x, y) { | |
| const gas = document.createElement('div'); | |
| gas.className = 'gas-cloud'; | |
| gas.style.left = x + 'px'; | |
| gas.style.top = y + 'px'; | |
| gasContainer.appendChild(gas); | |
| // Animate gas expansion | |
| anime({ | |
| targets: gas, | |
| scale: [0.5, 3], | |
| opacity: [1, 0], | |
| duration: 5000, | |
| easing: 'easeOutQuad', | |
| complete: function() { | |
| gas.remove(); | |
| } | |
| }); | |
| } | |
| function updateDialogue() { | |
| dialogueText.innerHTML = dialogues[dialogueIndex]; | |
| dialogueIndex = (dialogueIndex + 1) % dialogues.length; | |
| } | |
| function releaseFart() { | |
| if (fartCooldown || !gameActive) return; | |
| fartCooldown = true; | |
| fartButton.disabled = true; | |
| fartReady.classList.add('hidden'); | |
| // Brooke animation | |
| brooke.classList.add('shake'); | |
| setTimeout(() => brooke.classList.remove('shake'), 500); | |
| // Create multiple gas clouds | |
| for (let i = 0; i < 3; i++) { | |
| setTimeout(() => { | |
| const x = 50 + Math.random() * 100; | |
| const y = 150 + Math.random() * 100; | |
| createGasCloud(x, y); | |
| }, i * 200); | |
| } | |
| // Increase stink level | |
| stinkLevel += 15 + Math.random() * 10; | |
| if (stinkLevel > 100) stinkLevel = 100; | |
| stinkMeter.style.width = stinkLevel + '%'; | |
| // Update dialogue | |
| updateDialogue(); | |
| // Check for game over | |
| if (stinkLevel >= 100) { | |
| gameOver(); | |
| } | |
| // Cooldown period | |
| setTimeout(() => { | |
| fartCooldown = false; | |
| fartButton.disabled = false; | |
| fartReady.classList.remove('hidden'); | |
| }, 2000); | |
| } | |
| function gameOver() { | |
| gameActive = false; | |
| const deathMessages = [ | |
| "You succumbed to the overwhelming power of Brooke's bean-fueled biological warfare!", | |
| "Your lungs gave out from inhaling too much of Brooke's specially crafted gas!", | |
| "The stench was too much for any mortal to handle!", | |
| "Brooke's fart torture proved to be an unstoppable force!", | |
| "You breathed your last breath of pure, unadulterated Brooke gas!" | |
| ]; | |
| gameOverText.textContent = deathMessages[Math.floor(Math.random() * deathMessages.length)]; | |
| gameOverModal.classList.remove('hidden'); | |
| // Fill screen with gas | |
| for (let i = 0; i < 10; i++) { | |
| setTimeout(() => { | |
| const x = Math.random() * window.innerWidth; | |
| const y = Math.random() * window.innerHeight; | |
| createGasCloud(x, y); | |
| }, i * 300); | |
| } | |
| } | |
| function restartGame() { | |
| stinkLevel = 0; | |
| stinkMeter.style.width = '0%'; | |
| gameActive = true; | |
| fartCooldown = false; | |
| fartButton.disabled = false; | |
| fartReady.classList.remove('hidden'); | |
| gameOverModal.classList.add('hidden'); | |
| dialogueIndex = 0; | |
| updateDialogue(); | |
| // Clear all gas clouds | |
| while (gasContainer.firstChild) { | |
| gasContainer.removeChild(gasContainer.firstChild); | |
| } | |
| } | |
| // Event Listeners | |
| fartButton.addEventListener('click', releaseFart); | |
| restartButton.addEventListener('click', restartGame); | |
| // Auto-increase stink over time | |
| setInterval(() => { | |
| if (gameActive && stinkLevel < 100) { | |
| stinkLevel += 0.5; | |
| stinkMeter.style.width = stinkLevel + '%'; | |
| if (stinkLevel >= 100) { | |
| gameOver(); | |
| } | |
| } | |
| }, 1000); | |
| // Initialize | |
| updateDialogue(); | |
| feather.replace(); | |
| </script> | |
| </body> | |
| </html> | |