JavaScript must be enabled to play.
Browser lacks capabilities required to play.
Upgrade or switch to another browser.
Loading…
<div class="about-page"> <div class="about-header"> <h2>About the Game</h2> <li>"Corpse City 2037" is a browser adventure game about survival in a post-apocalyptic world. After years of isolation in your house bunker, you finally emerge to face the new reality. The world has plunged into anarchy. The remnants of civilization are scattered settlements of surviving women trying to survive among the ruins of the former world. As one of the few remaining men, you occupy a unique position in this new society. Game features:</li> <li>Open world - explore city ruins, abandoned complexes, and wild territories Survival system - gather resources, create shelter, and fight for your place in this new world Branching plot - your decisions will affect the development of the story and relationships with different factions Relationship system - build connections with characters you meet, from hostility to alliance Character development - improve your hero's skills and abilities as you progress through the game</li> <li>Uncover the secrets of this world and decide what role you want to play in humanity's future. Will you become the savior of civilization, a ruthless ruler, or simply try to survive day by day? Warning: the game is intended exclusively for adult audiences (18+) and contains content of an appropriate nature.</li> <a class="back-button" data-passage="MainMenu"> <span class="back-icon">←</span> Return to Menu </a> </div> </div>
<div class="changelog-page"> <div class="changelog-header"> <h1>Changelog</h1> <a class="back-button" data-passage="MainMenu"> <span class="back-icon">←</span> Return to Menu </a> <div class="choice-container"> <a class="button" data-passage="Changelog last">Next Changelog</a> </div> <div class="changelog-content"> <div class="changelog-entry"> <div class="version-header"> <h2>Version 0.1 Alpha (Old)</h2> <span class="date">03.21.2025</span> </div> <div class="changes-list"> <h3>Added:</h3> <ul> <li>Created basic game structure</li> <li>Developed main menu with 18+ warning</li> <li>Added basic styles and animations</li> <li>Created changelog system</li> <li>Added 3 NPCs and sex scenes with them</li> <li>Added main locations and some interactions with them</li> <li>Added combat system and basic mechanics</li> </ul> <h3>Settings:</h3> <ul> <li>Established basic variables for CSS</li> <li>Configured fonts and color scheme</li> <li>Added responsive design</li> <li>Fixed menu element alignment</li> </ul> <h3>Fixes:</h3> <ul> <li>Fixed left-shifting of elements</li> <li>Improved content centering</li> </ul> <h3>Known Issues:</h3> <ul> <li>Needs testing on different browsers</li> </ul> <h3>Author's Note:</h3> <ul> <li>The game is only in the early stages of development, no element of the game is 100% permanent</li> </ul> </div> </div> </div> </div>
<div class="game-content fade-in"> <div class="scene-desc"> <h1>Prologue: Unwelcome Guest</h1> <p>Year 2037. Three months have passed since the world changed forever...</p> </div> <div class="story-text"> <p> Nighttime. You sit in the darkness of your house, listening to sounds from outside. Suddenly, you hear quiet footsteps on the first floor. Someone is moving carefully, trying not to make noise. </p> <p> As you descend the stairs, you spot a slender female figure rummaging through your supplies. Moonlight streaming through the window illuminates her long dark hair. It's Luna - a young woman you've seen from a distance several times while observing the neighborhood from your bunker window. </p> <p> She's unaware of your presence. You have the element of surprise. One quick movement - and you grab her, covering her mouth to prevent screaming. Luna struggles against you, but you hold her firmly. </p> <div class="dialog"> <div class="dialog-text"> <em>"Now your fate is in my hands..."</em> </div> </div> </div> <div class="choice-container"> <h3>What will you do with her?</h3> <a class="button dark-choice" data-passage="Luna_Enslave"> Subdue by force and make her your slave </a> <a class="button neutral-choice" data-passage="Luna_Dominate"> Dominate and make her work off what she stole </a> <a class="button light-choice" data-passage="Luna_Talk"> Try to talk with her </a> </div> </div> <<script>> $(document).ready(function() { // Text appearance animation $('.story-text p').each(function(index) { $(this).css({ 'opacity': '0', 'transform': 'translateY(20px)' }); setTimeout(() => { $(this).css({ 'transition': 'all 0.8s ease', 'opacity': '1', 'transform': 'translateY(0)' }); }, 500 * (index + 1)); }); // Choice button styling $('.dark-choice').css({ 'background': 'linear-gradient(to bottom, #660000, #330000)', 'border-color': '#800000' }); $('.neutral-choice').css({ 'background': 'linear-gradient(to bottom, #663300, #331900)', 'border-color': '#804000' }); $('.light-choice').css({ 'background': 'linear-gradient(to bottom, #006666, #003333)', 'border-color': '#008080' }); }); <</script>>
<div class="scene-content"> <div class="scene-text"> <p> You assert your dominance forcefully. Luna's resistance is futile against your strength. Her eyes reflect fear and resignation to her new reality. </p> <<set $player.luna_status = "slave">> </div> <div class="video-container"> <video id="sceneVideo" class="scene-video" autoplay muted loop playsinline> <source src="assets/luna/blowjob_dominance.mp4" type="video/mp4"> <source src="assets/luna/blowjob_dominance.webm" type="video/webm"> </video> </div> <div class="choice-container"> <a class="button dark-choice" data-passage="Luna_Final">Claim your dominance</a> </div> </div>
<div class="scene-content"> <p> You release Luna but block her escape route. She trembles, yet a glimmer of hope appears in her eyes when you refrain from direct aggression. </p> <div class="dialog"> <p class="luna-dialog">"I... I'll do whatever you say. Just please don't kill me..."</p> </div> <div class="choice-container"> <a class="button dark-choice" data-passage="Luna_Enslave">Assert control</a> <a class="button neutral-choice" data-passage="Luna_Banish">Send her away</a> <a class="button danger-choice" data-passage="Luna_Kill">End the threat</a> </div> </div>
<div class="scene-content"> <p> You cautiously release Luna but remain on guard. She turns to face you, revealing an exhausted, broken young woman. </p> <div class="dialog"> <p class="luna-dialog"> "I... I can't keep living like this. Every day is just a struggle to survive. Please, let me stay. I'll make myself useful..." </p> </div> <div class="choice-container"> <a class="button light-choice" data-passage="Luna_Accept">Accept her offer</a> <a class="button neutral-choice" data-passage="Luna_Reject">Refuse</a> </div> </div>
<div class="scene-content"> <div class="video-container"> <video id="sexVideo" class="scene-video" controls preload="auto" width="100%" loop> <source src="assets/luna/sex.mp4" type="video/mp4"> <source src="assets/luna/sex.webm" type="video/webm"> </video> </div> <<set $player.stamina -= 20>> <div class="choice-container"> <a class="button dark-choice" data-passage="Luna_Final">Finish the scene</a> </div> </div>
<div class="scene-content"> <div class="scene-text"> <p> Luna submits completely, her body still trembling from the experience. You feel absolute dominance over the situation. </p> <<set $player.stamina -= 30>> <<set $player.luna_status = "enslaved">> </div> <div class="video-container"> <video id="aftermathVideo" class="scene-video" autoplay muted loop playsinline> <source src="assets/luna/cum.mp4" type="video/mp4"> <source src="assets/luna/cum.webm" type="video/webm"> </video> </div> <div class="choice-container"> <a class="button dark-choice" data-passage="Luna_AfterMath">Continue</a> </div> </div>
<div class="scene-content"> <div class="scene-text"> <p> You finish on Luna, demonstrating your dominance. Luna now completely belongs to you. </p> <<set $player.stamina -= 30>> <<set $player.luna_status = "enslaved">> </div> <div class="video-container"> <video id="cumVideo" class="scene-video" controls preload="auto" width="100%" loop> <source src="assets/luna/cum.mp4" type="video/mp4"> <source src="assets/luna/cum.webm" type="video/webm"> </video> </div> <div class="choice-container"> <a class="button dark-choice" data-passage="Luna_AfterMath">Continue</a> </div> </div>
<div class="scene-content"> <div class="scene-text"> <p> Luna is now under your complete authority. She must obey your commands, her fate entirely in your hands. </p> <div class="status-update"> <h3>Status Updated:</h3> <ul> <li>Luna has joined your household</li> <li>New interaction options unlocked</li> <li>Try interacting with her at home</li> </ul> </div> </div> <div class="choice-container"> <a class="button dark-choice" data-passage="House_Life">Return home</a> </div> </div>
<div class="scene-content"> <div class="scene-text"> <p> Without hesitation, you slit her throat. In this new world, there is no place for the weak. Her body falls to the floor, blood spreading across the wooden boards. </p> <<set $player.luna_status = "dead">> </div> <div class="choice-container"> <a class="button danger-choice" data-passage="House_Life">Clean up the body</a> </div> </div>
<div class="scene-content"> <div class="scene-text"> <p> You decide to give her a chance. Tears of gratitude well up in her eyes. "Thank you... I won't let you down," she whispers. </p> <<set $player.luna_status = "ally">> <<set $player.dominance += 5>> </div> <div class="choice-container"> <a class="button light-choice" data-passage="House_Life">Show her the safehouse</a> </div> </div>
<div class="scene-content"> <div class="scene-text"> <p> "Get out and don't come back," you say coldly. Sobbing, Luna quickly disappears into the night's darkness. </p> <<set $player.luna_status = "rejected">> </div> <div class="choice-container"> <a class="button neutral-choice" data-passage="House_Life">Return to your business</a> </div> </div>
<div class="scene-content"> <div class="scene-text"> <p> You decide to banish Luna. "Get out and don't come back," you say coldly. She trembles but quickly gathers her things and rushes out of the house. </p> <<set $player.luna_status = "banished">> </div> <div class="choice-container"> <a class="button neutral-choice" data-passage="House_Life">Return to your affairs</a> </div> </div>
<div class="scene-content"> <div class="scene-text"> <div class="date-display"> <span class="day">Day: <<print $player.days_survived>></span> <span class="month">Month: <<print $player.current_month>></span> <span class="year">Year: <<print $player.current_year>></span> </div> <h2>Your Safehouse</h2> <div class="characters-grid"> <<if $player.luna_status == "enslaved">> <div class="mini-character-card"> <img src="assets/luna/luna.png" alt="Luna" class="mini-portrait"> <div class="mini-info"> <span class="char-name">Luna</span> <span class="char-status">Slave</span> <a class="mini-btn" data-passage="Luna_Interact">Interact</a> </div> </div> <<elseif $player.luna_status == "ally">> <div class="mini-character-card"> <img src="assets/luna/luna.png" alt="Luna" class="mini-portrait"> <div class="mini-info"> <span class="char-name">Luna</span> <span class="char-status">Ally</span> <a class="mini-btn" data-passage="Luna_Interact">Interact</a> </div> </div> <</if>> <<if $player.alex_status == "enslaved">> <div class="mini-character-card"> <img src="assets/alex/alex.png" alt="Alex" class="mini-portrait"> <div class="mini-info"> <span class="char-name">Alex</span> <span class="char-status">Slave</span> <a class="mini-btn" data-passage="Alex_Interact">Interact</a> </div> </div> <<elseif $player.alex_status == "ally">> <div class="mini-character-card"> <img src="assets/alex/alex.png" alt="Alex" class="mini-portrait"> <div class="mini-info"> <span class="char-name">Alex</span> <span class="char-status">Ally</span> <a class="mini-btn" data-passage="Alex_Interact">Interact</a> </div> </div> <<elseif $player.alex_status == "dead">> <div class="status-message dark"> A dark stain on the floor reminds you of Alex's fate... </div> <</if>> <<if $player.dominika_status == "enslaved">> <div class="mini-character-card"> <img src="assets/dominika/dominika.png" alt="Dominika" class="mini-portrait"> <div class="mini-info"> <span class="char-name">Dominika</span> <span class="char-status">Slave</span> <a class="mini-btn" data-passage="Dominika_Interact">Interact</a> </div> </div> <<elseif $player.dominika_status == "ally">> <div class="mini-character-card"> <img src="assets/dominika/dominika.png" alt="Dominika" class="mini-portrait"> <div class="mini-info"> <span class="char-name">Dominika</span> <span class="char-status">Ally</span> <a class="mini-btn" data-passage="Dominika_Interact">Interact</a> </div> </div> <<elseif $player.dominika_status == "dead">> <div class="status-message dark"> A dark stain on the floor reminds you of Dominika's fate... </div> <</if>> </div> </div> <div class="status-container"> <h3>Character Status:</h3> <ul> <li class="health-bar"> <span class="stat-label">Health:</span> <div class="bar-container"> <div class="bar-fill" style="width: <<print ($player.health / $player.max_health * 100)>>%"></div> <span class="bar-text"><<print $player.health>>/<<print $player.max_health>></span> </div> </li> <li class="stamina-bar"> <span class="stat-label">Stamina:</span> <div class="bar-container"> <div class="bar-fill" style="width: <<print ($player.stamina / $player.max_stamina * 100)>>%"></div> <span class="bar-text"><<print $player.stamina>>/<<print $player.max_stamina>></span> </div> </li> </ul> </div> <div class="choice-container"> <<if $player.stamina <= 0>> <div class="warning-message">You're too exhausted to go outside!</div> <a class="button dark-choice disabled" data-passage="House_Life">Go Outside</a> <<else>> <a class="button dark-choice" data-passage="Outside">Go Outside</a> <</if>> <a class="button dark-choice" data-passage="Inventory">Check Supplies</a> <a class="button dark-choice" data-passage="Armory">Armory</a> <a class="button dark-choice" data-passage="Rest">Rest</a> </div> </div>
<div class="scene-content"> <div class="dialog-container"> <p class="narrator-text">Luna looks at you with a mix of fear and submission.</p> <div class="luna-dialog"> <p>"Yes... master? What would you like to know?"</p> </div> <div class="dialog-options"> <a class="button light-choice" data-passage="Luna_Past">Ask about her past</a> <a class="button light-choice" data-passage="Luna_Feelings">Ask how she's feeling</a> <a class="button neutral-choice" data-passage="Luna_Interact">End conversation</a> </div> </div> </div>
<div class="scene-content"> <div class="work-menu"> <h3>Choose a task for Luna:</h3> <<if $player.luna_work == "scavenging">> <div class="current-task"> <p>Current task: Scavenging for supplies</p> <a class="button danger-choice" data-passage="Luna_Cancel_Work">Cancel task</a> </div> <<else>> <div class="work-options"> <a class="button neutral-choice" data-passage="Luna_Start_Scavenging">Start scavenging</a> </div> <</if>> <a class="button" data-passage="Luna_Interact">Return</a> </div> </div>
<div class="scene-content"> <div class="work-menu"> <h3>Choose a task for Alex:</h3> <<if $player.alex_work == "scavenging">> <div class="current-task"> <p>Current task: Scavenging for supplies</p> <a class="button danger-choice" data-passage="Alex_Cancel_Work">Cancel task</a> </div> <<else>> <div class="work-options"> <a class="button neutral-choice" data-passage="Alex_Start_Scavenging">Start scavenging</a> </div> <</if>> <a class="button" data-passage="Alex_Interact">Return</a> </div> </div>
<div class="scene-content"> <div class="scene-text"> <p>You send Alex to scavenge for supplies in the city. It's a dangerous task, but necessary for survival.</p> <<set $player.alex_work = "scavenging">> </div> <div class="choice-container"> <a class="button" data-passage="House_Life">Return to the house</a> </div> </div>
<div class="scene-content"> <div class="scene-text"> <p>You recall Alex from her task. She is now available for other interactions.</p> <<set $player.alex_work = "none">> </div> <div class="choice-container"> <a class="button" data-passage="House_Life">Return to the house</a> </div> </div>
<<if $player.stamina < 10>> <div class="scene-content"> <div class="warning-message">You do not have enough energy for sexual actions!</div> <div class="choice-container"> <a class="button back-btn" data-passage="Alex_Interact">← Back</a> </div> </div> <<else>> <div class="scene-content"> <div class="scene-text"> <p> Alex obediently waits for your orders, ready to fulfill any of your desires. </p> </div> <div class="video-container"> <video id="alexServiceVideo" class="scene-video" autoplay muted loop playsinline> <source src="assets/alex/blowjob (1).webm" type="video/webm"> </video> </div> <div class="service-menu"> <div class="menu-title">Choose an action:</div> <div class="service-buttons"> <a class="service-btn" id="alexBlowjobBtn">Blowjob</a> <a class="service-btn" id="alexVaginalBtn">Vaginal</a> <a class="service-btn" id="alexAnalBtn">Anal</a> <a class="service-btn" id="alexCumBtn">Finish</a> </div> <a class="button back-btn" data-passage="Alex_Interact">← Back</a> </div> </div> <<script>> $(document).ready(function() { const alexVideos = { blowjob: [ 'assets/alex/blowjob (1).webm', 'assets/alex/blowjob (4).webm', 'assets/alex/blowjob (5).webm', 'assets/alex/blowjob (6).webm', 'assets/alex/blowjob (7).webm', 'assets/alex/blowjob (8).webm' ], vaginal: [ 'assets/alex/vaginal (1).webm', 'assets/alex/vaginal (4).webm', 'assets/alex/vaginal (5).webm', 'assets/alex/vaginal (6).webm', 'assets/alex/vaginal (7).webm', 'assets/alex/vaginal (8).webm', 'assets/alex/vaginal (9).webm', 'assets/alex/vaginal (10).webm' ], anal: [ 'assets/alex/anal (1).webm', 'assets/alex/anal (3).webm', 'assets/alex/anal (4).webm' ], cum: [ 'assets/alex/cum.webm', 'assets/alex/cum (1).webm', 'assets/alex/cum (2).webm', 'assets/alex/cum (3).webm', 'assets/alex/cum (4).webm', 'assets/alex/cum (5).webm', 'assets/alex/cum (6).webm' ] }; function getRandomVideo(category) { const videos = alexVideos[category]; return videos[Math.floor(Math.random() * videos.length)]; } function changeVideo(type) { const video = document.getElementById('alexServiceVideo'); if (video) { const newSrc = getRandomVideo(type); if (video.src !== newSrc) { video.src = newSrc; video.play().catch(function(error) { console.log("Autoplay error:", error); }); } } // Update player stats with minimum check State.variables.player.stamina = Math.max(0, State.variables.player.stamina - 10); // Refresh stats display $(document).trigger(':refresh'); } // Add event handlers for buttons $('#alexBlowjobBtn').on('click', function() { changeVideo('blowjob'); }); $('#alexVaginalBtn').on('click', function() { changeVideo('vaginal'); }); $('#alexAnalBtn').on('click', function() { changeVideo('anal'); }); $('#alexCumBtn').on('click', function() { changeVideo('cum'); }); // Add click handler for video to toggle mute $('#alexServiceVideo').on('click', function() { this.muted = !this.muted; }); }); <</script>> <</if>>
<div class="main-menu"> <div class="menu-content"> <div class="logo-container"> <h1 class="game-logo">Corpse City</h1> <div class="logo-subtitle">2037: The World After the Fall</div> </div> <div class="menu-warning"> <div class="warning-icon">⚠</div> <p>WARNING! This game contains adult content (18+).<br> Sexual content, elements of dominance, violence, and brutality.<br> By continuing, you confirm that you are at least 18 years old.</p> </div> <nav class="menu-buttons"> <a class="button start-button" data-passage="Play"> <span class="button-inner">New Game</span> </a> <a class="button" data-passage="Settings"> <span class="button-inner">Settings</span> </a> <a class="button" data-passage="About"> <span class="button-inner">About</span> </a> </nav> <div class="world-info"> <div class="info-title">World of 2037</div> <div class="info-text"> After a biological catastrophe that wiped out 80% of the male population, the world descended into chaos. You are one of the few who survived. Now your fate is to decide the future of this world. </div> </div> <div class="version-info"> <span class="version">Version 0.2 Alpha</span> <span class="separator">|</span> <span class="engine">SugarCube 2.36.1</span> <span class="separator">|</span> <a class="changelog-link" data-passage="Changelog">Latest Changes</a> </div> </div> </div>
<div class="start-container"> <div class="start-content"> <h1>Start New Game</h1> <p>Are you ready to dive into the post-apocalyptic world?</p> <nav class="menu-buttons"> <a class="button start-button" data-passage="Intro"> <span class="button-inner">Begin Story</span> </a> <a class="button" data-passage="MainMenu"> <span class="button-inner">Return to Menu</span> </a> </nav> </div> </div> <<script>> $(document).ready(function() { // Container styles $('.start-container').css({ 'max-width': '800px', 'margin': '0 auto', 'background': 'rgba(0, 0, 0, 0.8)', 'padding': '40px', 'border-radius': '10px', 'box-shadow': '0 0 20px rgba(0, 0, 0, 0.5)', 'text-align': 'center' }); $('.start-content h1').css({ 'color': '#fff', 'font-size': '2.5em', 'margin-bottom': '20px', 'text-shadow': '0 0 10px rgba(156, 14, 54, 0.7)' }); $('.start-content p').css({ 'color': '#ccc', 'font-size': '1.2em', 'margin-bottom': '30px' }); }); <</script>>
<div class="settings-page"> <div class="settings-header"> <h1>Settings</h1> <a class="back-button" data-passage="MainMenu"> <span class="back-icon">←</span> Return to menu </a> </div>
<<set $player = { name: "Alex", health: 100, max_health: 100, stamina: 100, max_stamina: 100, current_month: "March", current_year: 2037, days_survived: 90, inventory: [], Canned_Food: 4, Medkit: 1, Caps: 30, Pistol: 0, Shotgun: 0, Wrench: 0, Knife: 0, Weapon_status: "none", Weapon_damage: 2, survivors_met: 0, luna_status: "unknown", alex_status: "unknown", luna_work: "none", alex_work: "none", dominika_status: "unknown", severina_status: "unknown", }>> <<set $discovered_bunker = false>> <<set $discovered_farm = false>> <<set $discovered_city_center = false>> <<set $discovered_settlement = false>> <<set $discovered_dominika = false>>
<div class="scene-content"> <div class="scene-text"> <h2>Outside</h2> <p> You stand in the middle of a devastated city. Broken windows and abandoned cars serve as reminders of the catastrophe that occurred. The air is heavy with the smell of decay and dust. </p> </div> <<if $discovered_bunker == true>> <div class="choice-container"> <div class="locations-grid"> <a class="location-btn" data-passage="Bunker"> <div class="location-icon">🔒</div> <span>Bunker</span> </a> <</if>> <<if $discovered_city_center == true>> <div class="choice-container"> <div class="locations-grid"> <a class="location-btn" data-passage="City_Center"> <div class="location-icon">🏙️</div> <span>City center</span> </a> <</if>> <<if $discovered_farm == true>> <div class="choice-container"> <div class="locations-grid"> <a class="location-btn" data-passage="Farm"> <div class="location-icon">🌾</div> <span>Farm</span> </a> <</if>> <<if $discovered_settlement == true>> <div class="choice-container"> <div class="locations-grid"> <a class="location-btn" data-passage="Settlement"> <div class="location-icon">🏚️</div> <span>Settlement</span> </a> <</if>> <div class="choice-container"> <<if $player.alex_status == "unknown">> <a class="button dark-choice enabled" data-passage="Search_Supplies">Screams in the distance</a> <</if>> <<if $player.stamina lt 10>> <div class="warning-message">You don't have enough energy to scavenge for supplies!</div> <a class="button dark-choice disabled" data-passage="Outside">Search for supplies</a> <<else>> <<if !$player.first_search>> <<set $player.first_search = true>> <<set $found_food = true>> <<set $found_meds = random(1, 100) lte 5>> <a class="button dark-choice" data-passage="Search_Result">Search for supplies</a> <<else>> <<set $found_food = random(1, 100) lte 50>> <<set $found_meds = random(1, 100) lte 5>> <a class="button dark-choice" data-passage="Search_Result">Search for supplies</a> <</if>> <</if>> </div> <<if !$found_food && !$found_meds>> <div class="scene-text"> <p>Unfortunately, you didn't find anything this time.</p> </div> <</if>> <a class="button dark-choice" data-passage="Explore_Area">Explore area</a> <div class="choice-container"> <a class="button back-btn" data-passage="House_Life">Return home</a> </div>
<div class="scene-content"> <div class="scene-text"> <h2>Area Reconnaissance</h2> <<set $player.stamina = Math.max(0, $player.stamina - 10)>> <p> You decide to explore the surroundings in search of useful locations. It's dangerous, but could prove beneficial. </p> <<if $discovered_bunker == false or $discovered_farm == false or $discovered_city_center == false or $discovered_settlement>> <<set _explore_chance = random(1, 100)>> <<if _explore_chance <= 50>> <<set _location_type = random(1, 4)>> <<if _location_type == 1>> <<set $discovered_bunker = true>> <p class="success">You found something interesting! An abandoned bunker stands among the ruins.</p> <a class="button light-choice" data-passage="Bunker">Explore the bunker</a> <<elseif _location_type == 2>> <<set $discovered_farm = true>> <p class="success">You found something interesting! An old farm is visible outside the city.</p> <a class="button light-choice" data-passage="Farm">Explore the farm</a> <<elseif _location_type == 3>> <<set $discovered_city_center = true>> <p class="success">You discovered a safe route to the city center!</p> <a class="button light-choice" data-passage="City_Center">Go to the center</a> <<else>> <<set $discovered_settlement = true>> <p class="success">You spot a small settlement of survivors in the distance!</p> <a class="button light-choice" data-passage="Settlement">Approach the settlement</a> <</if>> <</if>> <<else>> <p>Unfortunately, you didn't find anything interesting today. Maybe you should try a different direction.</p> <</if>> </div> <div class="choice-container"> <a class="button" data-passage="Outside">Return</a> </div> </div>
<div class="scene-content"> <div class="scene-text"> <h2>Abandoned Bunker</h2> <p> The bunker's massive metal doors stand slightly ajar, revealing only darkness within. This appears to be a military facility abandoned in haste. While it could contain valuable resources, unknown dangers might lurk inside. </p> <p> A cold draft from the dark entrance makes you shiver. Without proper equipment or weapons, exploring this place could be extremely risky. </p> </div> <div class="choice-container"> <a class="button" data-passage="Outside">Turn back</a> </div> </div>
<div class="scene-content"> <div class="scene-text"> <h2>The Old Farm</h2> <p> Outside the city lies an abandoned farm with vast fields and several outbuildings. The main structure appears sturdy despite needing repairs. The surrounding land looks fertile and could yield crops with proper care. </p> <p> Someone already tried settling here - you can see attempts to reinforce the fence and clear part of the field. This place could potentially make a good survival base with some work. </p> </div> <div class="choice-container"> <a class="button" data-passage="Outside">Turn back</a> </div> </div>
<div class="scene-content"> <div class="scene-text"> <h2>City Center</h2> <p> The city center is the most dangerous area, but also potentially the richest in resources. Tall buildings tower into the sky, many damaged by fires and looting. The streets are cluttered with abandoned cars and debris. </p> <p> The center contains stores, pharmacies, banks and other establishments that might hold valuable resources. However, it's also where bandit groups are most concentrated, hunting for lone survivors. </p> <<if $discovered_dominika == false>> <<set $discovered_dominika = true>> <div class="encounter"> <p class="danger">Suddenly, you hear footsteps behind you...</p> <a class="button danger-choice" data-passage="Dominika_Encounter">Turn around</a> </div> <<else>> <div class="choice-container"> <a class="button" data-passage="Outside">Return</a> </div> <</if>> </div> </div>
<div class="scene-content"> <div class="encounter-header"> <h2>Dangerous Encounter</h2> </div> <div class="character-encounter"> <div class="encounter-image"> <img src="assets/dominika/dominika.png" alt="Dominika"> </div> <div class="encounter-text"> <p>A tall woman stands before you with a cold gaze and a weapon in hand. Her posture reveals military experience, and her eyes reflect cruelty.</p> <div class="dialog"> <p class="dominika-dialog">"Another lone wolf... Nice prey. You'll be useful in my camp."</p> </div> <p>She aims her weapon at you. Her intentions are clear - to take you as a slave. In this situation, you have no choice - you must fight.</p> </div> </div> <div class="choice-container"> <a class="button danger-choice" data-passage="Combat_Dominika">Fight</a> <a class="button" data-passage="Outside">Try to escape</a> </div> </div>
<<set $combat = { enemy_name: "Dominika", enemy_health: 70, enemy_max_health: 70, enemy_damage: 10, player_damage: $player.Weapon_damage, turn: "player" }>> <div class="scene-content"> <div class="combat-container"> <div class="combat-header"> <h2>Battle with Dominika</h2> </div> <div class="combatants"> <div class="combatant player"> <div class="combatant-info"> <h3><span class="player-name">You</span></h3> <div class="health-container"> <div class="health-bar-wrapper"> <div class="health-bar-fill" style="width: <<print Math.floor($player.health/$player.max_health*100)>>%"></div> </div> <div class="health-text"><<print $player.health>>/<<print $player.max_health>></div> </div> </div> </div> <div class="combat-vs">VS</div> <div class="combatant enemy"> <div class="combatant-info"> <h3><span class="enemy-name"><<print $combat.enemy_name>></span></h3> <div class="health-container"> <div class="health-bar-wrapper"> <div class="health-bar-fill" style="width: <<print Math.floor($combat.enemy_health/$combat.enemy_max_health*100)>>%"></div> </div> <div class="health-text"><<print $combat.enemy_health>>/<<print $combat.enemy_max_health>></div> </div> </div> </div> </div> <div class="combat-log"> <p>The battle has begun! You stand face to face with Dominika.</p> <p>What will you do?</p> </div> <div class="combat-controls"> <a class="combat-btn attack" data-passage="Combat_Attack">Attack</a> <a class="combat-btn defend" data-passage="Combat_Defend">Defend</a> <<if $player.inventory.some(item => item.includes("Medkit"))>> <a class="combat-btn heal" data-passage="Combat_Heal">Use Medkit</a> <<else>> <a class="combat-btn heal disabled">Medkit (none)</a> <</if>> </div> </div> </div> <style> .combat-container { background: rgba(0, 0, 0, 0.7); border: 1px solid var(--accent-gold); border-radius: 8px; padding: 15px; } .combat-header { text-align: center; margin-bottom: 20px; } .combat-header h2 { color: var(--accent-gold); text-shadow: 0 0 5px rgba(198, 168, 97, 0.5); margin: 0; } .combatants { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; } .combatant { width: 40%; } .combat-vs { font-size: 1.5em; color: var(--accent-gold); font-weight: bold; } .combatant-info h3 { text-align: center; margin: 0 0 10px 0; } .player-name { color: #4CAF50; } .enemy-name { color: #F44336; } .health-container { margin-bottom: 10px; } .health-bar-wrapper { height: 15px; background-color: rgba(0, 0, 0, 0.5); border-radius: 4px; overflow: hidden; margin-bottom: 5px; } .health-bar-fill { height: 100%; background: linear-gradient(90deg, #9c0e36, #d91a4d); transition: width 0.3s ease; } .health-text { text-align: center; font-size: 0.8em; color: var(--text-medium); } .combat-log { background: rgba(0, 0, 0, 0.5); border-radius: 6px; padding: 10px; margin-bottom: 20px; max-height: 120px; overflow-y: auto; } .combat-log p { margin: 5px 0; font-size: 0.9em; } .combat-controls { display: flex; justify-content: space-between; gap: 10px; } .combat-btn { flex: 1; padding: 8px 15px; border-radius: 4px; text-align: center; cursor: pointer; font-weight: bold; transition: all 0.2s ease; text-decoration: none; color: white; } .combat-btn.attack { background: linear-gradient(45deg, #d32f2f, #f44336); } .combat-btn.attack:hover { background: linear-gradient(45deg, #f44336, #ff5252); transform: translateY(-2px); } .combat-btn.defend { background: linear-gradient(45deg, #1976d2, #2196f3); } .combat-btn.defend:hover { background: linear-gradient(45deg, #2196f3, #42a5f5); transform: translateY(-2px); } .combat-btn.heal { background: linear-gradient(45deg, #388e3c, #4caf50); } .combat-btn.heal:hover { background: linear-gradient(45deg, #4caf50, #66bb6a); transform: translateY(-2px); } .combat-btn.disabled { background: #616161; cursor: not-allowed; opacity: 0.5; } .combat-btn.disabled:hover { transform: none; } .encounter { margin-top: 15px; padding: 10px; background: rgba(156, 14, 54, 0.1); border-radius: 6px; border-left: 3px solid var(--accent-primary); } p.danger { color: #f44336; font-weight: bold; } .character-encounter { display: flex; margin-bottom: 20px; background: rgba(0, 0, 0, 0.5); border-radius: 8px; padding: 15px; } .encounter-image { width: 120px; margin-right: 15px; } .encounter-image img { width: 100%; border-radius: 4px; } .encounter-text { flex: 1; } .dominika-dialog { color: #ff5252; font-style: italic; margin: 10px 0; padding: 10px; background: rgba(156, 14, 54, 0.1); border-radius: 6px; border-left: 3px solid var(--accent-primary); } </style>
<<if $combat.turn == "player">> <<set $combat.enemy_health = Math.max(0, $combat.enemy_health - $combat.player_damage)>> <<set $combat.turn = "enemy">> <<if $combat.enemy_health <= 0>> <<goto "Combat_Victory">> <<else>> <<goto "Combat_Enemy_Turn">> <</if>> <<else>> <<goto "Combat_Enemy_Turn">> <</if>> <style> .combat-container { background: rgba(0, 0, 0, 0.7); border: 1px solid var(--accent-gold); border-radius: 8px; padding: 15px; } .combat-header { text-align: center; margin-bottom: 20px; } .combat-header h2 { color: var(--accent-gold); text-shadow: 0 0 5px rgba(198, 168, 97, 0.5); margin: 0; } .combatants { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; } .combatant { width: 40%; } .combat-vs { font-size: 1.5em; color: var(--accent-gold); font-weight: bold; } .combatant-info h3 { text-align: center; margin: 0 0 10px 0; } .player-name { color: #4CAF50; } .enemy-name { color: #F44336; } .health-container { margin-bottom: 10px; } .health-bar-wrapper { height: 15px; background-color: rgba(0, 0, 0, 0.5); border-radius: 4px; overflow: hidden; margin-bottom: 5px; } .health-bar-fill { height: 100%; background: linear-gradient(90deg, #9c0e36, #d91a4d); transition: width 0.3s ease; } .health-text { text-align: center; font-size: 0.8em; color: var(--text-medium); } .combat-log { background: rgba(0, 0, 0, 0.5); border-radius: 6px; padding: 10px; margin-bottom: 20px; max-height: 120px; overflow-y: auto; } .combat-log p { margin: 5px 0; font-size: 0.9em; } .combat-controls { display: flex; justify-content: space-between; gap: 10px; } .combat-btn { flex: 1; padding: 8px 15px; border-radius: 4px; text-align: center; cursor: pointer; font-weight: bold; transition: all 0.2s ease; text-decoration: none; color: white; } .combat-btn.attack { background: linear-gradient(45deg, #d32f2f, #f44336); } .combat-btn.attack:hover { background: linear-gradient(45deg, #f44336, #ff5252); transform: translateY(-2px); } .combat-btn.defend { background: linear-gradient(45deg, #1976d2, #2196f3); } .combat-btn.defend:hover { background: linear-gradient(45deg, #2196f3, #42a5f5); transform: translateY(-2px); } .combat-btn.heal { background: linear-gradient(45deg, #388e3c, #4caf50); } .combat-btn.heal:hover { background: linear-gradient(45deg, #4caf50, #66bb6a); transform: translateY(-2px); } .combat-btn.disabled { background: #616161; cursor: not-allowed; opacity: 0.5; } .combat-btn.disabled:hover { transform: none; } .encounter { margin-top: 15px; padding: 10px; background: rgba(156, 14, 54, 0.1); border-radius: 6px; border-left: 3px solid var(--accent-primary); } p.danger { color: #f44336; font-weight: bold; } .character-encounter { display: flex; margin-bottom: 20px; background: rgba(0, 0, 0, 0.5); border-radius: 8px; padding: 15px; } .encounter-image { width: 120px; margin-right: 15px; } .encounter-image img { width: 100%; border-radius: 4px; } .encounter-text { flex: 1; } .dominika-dialog { color: #ff5252; font-style: italic; margin: 10px 0; padding: 10px; background: rgba(156, 14, 54, 0.1); border-radius: 6px; border-left: 3px solid var(--accent-primary); } </style>
<<if $combat.turn == "player">> <<set $combat.is_defending = true>> <<set $combat.turn = "enemy">> <<goto "Combat_Enemy_Turn">> <<else>> <<goto "Combat_Enemy_Turn">> <</if>> <style> .combat-container { background: rgba(0, 0, 0, 0.7); border: 1px solid var(--accent-gold); border-radius: 8px; padding: 15px; } .combat-header { text-align: center; margin-bottom: 20px; } .combat-header h2 { color: var(--accent-gold); text-shadow: 0 0 5px rgba(198, 168, 97, 0.5); margin: 0; } .combatants { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; } .combatant { width: 40%; } .combat-vs { font-size: 1.5em; color: var(--accent-gold); font-weight: bold; } .combatant-info h3 { text-align: center; margin: 0 0 10px 0; } .player-name { color: #4CAF50; } .enemy-name { color: #F44336; } .health-container { margin-bottom: 10px; } .health-bar-wrapper { height: 15px; background-color: rgba(0, 0, 0, 0.5); border-radius: 4px; overflow: hidden; margin-bottom: 5px; } .health-bar-fill { height: 100%; background: linear-gradient(90deg, #9c0e36, #d91a4d); transition: width 0.3s ease; } .health-text { text-align: center; font-size: 0.8em; color: var(--text-medium); } .combat-log { background: rgba(0, 0, 0, 0.5); border-radius: 6px; padding: 10px; margin-bottom: 20px; max-height: 120px; overflow-y: auto; } .combat-log p { margin: 5px 0; font-size: 0.9em; } .combat-controls { display: flex; justify-content: space-between; gap: 10px; } .combat-btn { flex: 1; padding: 8px 15px; border-radius: 4px; text-align: center; cursor: pointer; font-weight: bold; transition: all 0.2s ease; text-decoration: none; color: white; } .combat-btn.attack { background: linear-gradient(45deg, #d32f2f, #f44336); } .combat-btn.attack:hover { background: linear-gradient(45deg, #f44336, #ff5252); transform: translateY(-2px); } .combat-btn.defend { background: linear-gradient(45deg, #1976d2, #2196f3); } .combat-btn.defend:hover { background: linear-gradient(45deg, #2196f3, #42a5f5); transform: translateY(-2px); } .combat-btn.heal { background: linear-gradient(45deg, #388e3c, #4caf50); } .combat-btn.heal:hover { background: linear-gradient(45deg, #4caf50, #66bb6a); transform: translateY(-2px); } .combat-btn.disabled { background: #616161; cursor: not-allowed; opacity: 0.5; } .combat-btn.disabled:hover { transform: none; } .encounter { margin-top: 15px; padding: 10px; background: rgba(156, 14, 54, 0.1); border-radius: 6px; border-left: 3px solid var(--accent-primary); } p.danger { color: #f44336; font-weight: bold; } .character-encounter { display: flex; margin-bottom: 20px; background: rgba(0, 0, 0, 0.5); border-radius: 8px; padding: 15px; } .encounter-image { width: 120px; margin-right: 15px; } .encounter-image img { width: 100%; border-radius: 4px; } .encounter-text { flex: 1; } .dominika-dialog { color: #ff5252; font-style: italic; margin: 10px 0; padding: 10px; background: rgba(156, 14, 54, 0.1); border-radius: 6px; border-left: 3px solid var(--accent-primary); } </style>
<<if $combat.turn == "player">> <<set _found_index = -1>> <<for _i to 0; _i < $player.inventory.length; _i++>> <<if $player.inventory[_i].includes("Medkit")>> <<set _found_index = _i>> <<break>> <</if>> <</for>> <<if _found_index >= 0>> <<set $player.inventory.splice(_found_index, 1)>> <<set $player.health = Math.min($player.max_health, $player.health + 50)>> <<set $combat.turn = "enemy">> <<goto "Combat_Enemy_Turn">> <<else>> <<goto "Combat_Dominika">> <</if>> <<else>> <<goto "Combat_Enemy_Turn">> <</if>> <style> .combat-container { background: rgba(0, 0, 0, 0.7); border: 1px solid var(--accent-gold); border-radius: 8px; padding: 15px; } .combat-header { text-align: center; margin-bottom: 20px; } .combat-header h2 { color: var(--accent-gold); text-shadow: 0 0 5px rgba(198, 168, 97, 0.5); margin: 0; } .combatants { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; } .combatant { width: 40%; } .combat-vs { font-size: 1.5em; color: var(--accent-gold); font-weight: bold; } .combatant-info h3 { text-align: center; margin: 0 0 10px 0; } .player-name { color: #4CAF50; } .enemy-name { color: #F44336; } .health-container { margin-bottom: 10px; } .health-bar-wrapper { height: 15px; background-color: rgba(0, 0, 0, 0.5); border-radius: 4px; overflow: hidden; margin-bottom: 5px; } .health-bar-fill { height: 100%; background: linear-gradient(90deg, #9c0e36, #d91a4d); transition: width 0.3s ease; } .health-text { text-align: center; font-size: 0.8em; color: var(--text-medium); } .combat-log { background: rgba(0, 0, 0, 0.5); border-radius: 6px; padding: 10px; margin-bottom: 20px; max-height: 120px; overflow-y: auto; } .combat-log p { margin: 5px 0; font-size: 0.9em; } .combat-controls { display: flex; justify-content: space-between; gap: 10px; } .combat-btn { flex: 1; padding: 8px 15px; border-radius: 4px; text-align: center; cursor: pointer; font-weight: bold; transition: all 0.2s ease; text-decoration: none; color: white; } .combat-btn.attack { background: linear-gradient(45deg, #d32f2f, #f44336); } .combat-btn.attack:hover { background: linear-gradient(45deg, #f44336, #ff5252); transform: translateY(-2px); } .combat-btn.defend { background: linear-gradient(45deg, #1976d2, #2196f3); } .combat-btn.defend:hover { background: linear-gradient(45deg, #2196f3, #42a5f5); transform: translateY(-2px); } .combat-btn.heal { background: linear-gradient(45deg, #388e3c, #4caf50); } .combat-btn.heal:hover { background: linear-gradient(45deg, #4caf50, #66bb6a); transform: translateY(-2px); } .combat-btn.disabled { background: #616161; cursor: not-allowed; opacity: 0.5; } .combat-btn.disabled:hover { transform: none; } .encounter { margin-top: 15px; padding: 10px; background: rgba(156, 14, 54, 0.1); border-radius: 6px; border-left: 3px solid var(--accent-primary); } p.danger { color: #f44336; font-weight: bold; } .character-encounter { display: flex; margin-bottom: 20px; background: rgba(0, 0, 0, 0.5); border-radius: 8px; padding: 15px; } .encounter-image { width: 120px; margin-right: 15px; } .encounter-image img { width: 100%; border-radius: 4px; } .encounter-text { flex: 1; } .dominika-dialog { color: #ff5252; font-style: italic; margin: 10px 0; padding: 10px; background: rgba(156, 14, 54, 0.1); border-radius: 6px; border-left: 3px solid var(--accent-primary); } </style>
<div class="scene-content"> <div class="combat-container"> <div class="combat-header"> <h2>Battle with Dominika</h2> </div> <div class="combatants"> <div class="combatant player"> <div class="combatant-info"> <h3><span class="player-name">You</span></h3> <div class="health-container"> <div class="health-bar-wrapper"> <div class="health-bar-fill" style="width: <<print Math.floor($player.health/$player.max_health*100)>>%"></div> </div> <div class="health-text"><<print $player.health>>/<<print $player.max_health>></div> </div> </div> </div> <div class="combat-vs">VS</div> <div class="combatant enemy"> <div class="combatant-info"> <h3><span class="enemy-name"><<print $combat.enemy_name>></span></h3> <div class="health-container"> <div class="health-bar-wrapper"> <div class="health-bar-fill" style="width: <<print Math.floor($combat.enemy_health/$combat.enemy_max_health*100)>>%"></div> </div> <div class="health-text"><<print $combat.enemy_health>>/<<print $combat.enemy_max_health>></div> </div> </div> </div> </div> <div class="combat-log"> <<if $combat.turn == "enemy">> <<if $combat.is_defending>> <<set _damage = Math.floor($combat.enemy_damage / 2)>> <<set $player.health = Math.max(0, $player.health - _damage)>> <<set $combat.is_defending = false>> <p>You defend! Dominika deals <<print _damage>> damage.</p> <<else>> <<set $player.health = Math.max(0, $player.health - $combat.enemy_damage)>> <p>Dominika attacks and deals <<print $combat.enemy_damage>> damage!</p> <</if>> <<if $player.health <= 0>> <p>Critical hit! You can no longer continue the fight...</p> <<else>> <p>Now it's your turn.</p> <</if>> <</if>> </div> <<if $player.health <= 0>> <div class="combat-controls"> <a class="combat-btn attack" data-passage="Combat_Defeat">Continue</a> </div> <<else>> <<set $combat.turn = "player">> <div class="combat-controls"> <a class="combat-btn attack" data-passage="Combat_Attack">Attack</a> <a class="combat-btn defend" data-passage="Combat_Defend">Defend</a> <<if $player.inventory.some(item => item.includes("Medkit"))>> <a class="combat-btn heal" data-passage="Combat_Heal">Use Medkit</a> <<else>> <a class="combat-btn heal disabled">Medkit (none)</a> <</if>> </div> <</if>> </div> </div> <style> .combat-container { background: rgba(0, 0, 0, 0.7); border: 1px solid var(--accent-gold); border-radius: 8px; padding: 15px; } .combat-header { text-align: center; margin-bottom: 20px; } .combat-header h2 { color: var(--accent-gold); text-shadow: 0 0 5px rgba(198, 168, 97, 0.5); margin: 0; } .combatants { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; } .combatant { width: 40%; } .combat-vs { font-size: 1.5em; color: var(--accent-gold); font-weight: bold; } .combatant-info h3 { text-align: center; margin: 0 0 10px 0; } .player-name { color: #4CAF50; } .enemy-name { color: #F44336; } .health-container { margin-bottom: 10px; } .health-bar-wrapper { height: 15px; background-color: rgba(0, 0, 0, 0.5); border-radius: 4px; overflow: hidden; margin-bottom: 5px; } .health-bar-fill { height: 100%; background: linear-gradient(90deg, #9c0e36, #d91a4d); transition: width 0.3s ease; } .health-text { text-align: center; font-size: 0.8em; color: var(--text-medium); } .combat-log { background: rgba(0, 0, 0, 0.5); border-radius: 6px; padding: 10px; margin-bottom: 20px; max-height: 120px; overflow-y: auto; } .combat-log p { margin: 5px 0; font-size: 0.9em; } .combat-controls { display: flex; justify-content: space-between; gap: 10px; } .combat-btn { flex: 1; padding: 8px 15px; border-radius: 4px; text-align: center; cursor: pointer; font-weight: bold; transition: all 0.2s ease; text-decoration: none; color: white; } .combat-btn.attack { background: linear-gradient(45deg, #d32f2f, #f44336); } .combat-btn.attack:hover { background: linear-gradient(45deg, #f44336, #ff5252); transform: translateY(-2px); } .combat-btn.defend { background: linear-gradient(45deg, #1976d2, #2196f3); } .combat-btn.defend:hover { background: linear-gradient(45deg, #2196f3, #42a5f5); transform: translateY(-2px); } .combat-btn.heal { background: linear-gradient(45deg, #388e3c, #4caf50); } .combat-btn.heal:hover { background: linear-gradient(45deg, #4caf50, #66bb6a); transform: translateY(-2px); } .combat-btn.disabled { background: #616161; cursor: not-allowed; opacity: 0.5; } .combat-btn.disabled:hover { transform: none; } .encounter { margin-top: 15px; padding: 10px; background: rgba(156, 14, 54, 0.1); border-radius: 6px; border-left: 3px solid var(--accent-primary); } p.danger { color: #f44336; font-weight: bold; } .character-encounter { display: flex; margin-bottom: 20px; background: rgba(0, 0, 0, 0.5); border-radius: 8px; padding: 15px; } .encounter-image { width: 120px; margin-right: 15px; } .encounter-image img { width: 100%; border-radius: 4px; } .encounter-text { flex: 1; } .dominika-dialog { color: #ff5252; font-style: italic; margin: 10px 0; padding: 10px; background: rgba(156, 14, 54, 0.1); border-radius: 6px; border-left: 3px solid var(--accent-primary); } </style>
<div class="scene-content"> <div class="combat-result victory"> <h2>Victory!</h2> <p>You have defeated Dominika. She lies before you, breathing heavily. Her weapon is cast aside, and she no longer poses a threat.</p> <p>What will you do with her?</p> <div class="choice-container"> <a class="button dark-choice" data-passage="Dominika_Enslave">Make her a slave</a> <a class="button danger-choice" data-passage="Dominika_Kill">Kill her</a> </div> </div> </div> <style> .combat-result { padding: 20px; border-radius: 8px; background-color: rgba(0, 0, 0, 0.7); margin-bottom: 20px; } .combat-result.victory { border: 2px solid #4CAF50; } .combat-result.defeat { border: 2px solid #F44336; } .combat-result h2 { text-align: center; margin-top: 0; } .victory h2 { color: #4CAF50; } .defeat h2 { color: #F44336; } </style>
<div class="scene-content"> <div class="combat-result defeat"> <h2>Defeat...</h2> <p>You lose consciousness under Dominika's blows. The last thing you remember is her triumphant smile.</p> <p>When you come to, you realize that your hands and feet are bound, and there is some kind of collar around your neck. You have lost... and now you are Dominika's slave.</p> </div> <div class="game-over"> <h3>GAME OVER</h3> <a class="button" data-passage="MainMenu">Return to the main menu</a> </div> </div> <style> .game-over { text-align: center; margin-top: 30px; } .game-over h3 { color: var(--accent-secondary); font-size: 1.5em; margin: 0 0 15px 0; } </style>
<div class="scene-content"> <div class="scene-text"> <h2>Subjugating Dominika</h2> <p> "Kneel," you command, weapon at the ready. Dominika weakly falls to her knees, looking at you with hatred and helplessness. </p> <<set $player.dominika_status = "enslaved">> <p> "Now you are my slave," you say, binding her hands. "And you will believe your own fate..." </p> </div> <div class="choice-container"> <a class="button dark-choice" data-passage="Dominika_Service">Secure the subjugation</a> <a class="button" data-passage="House_Life">Take her home</a> </div> </div>
<div class="scene-content"> <div class="scene-text"> <h2>Execution of Dominika</h2> <p> You decide not to give her a chance. In this world, there is no place for mercy. A quick, decisive strike - and it's all over. </p> <<set $player.dominika_status = "dead">> <p> You search her belongings and find some useful supplies. </p> <div class="loot"> <h3>Found:</h3> <ul> <<set $player.inventory.push("Canned food (1 unit)")>> <<set $player.inventory.push("Medkit")>> <li>Canned food (1 unit)</li> <li>Medkit</li> </ul> </div> </div> <div class="choice-container"> <a class="button" data-passage="House_Life">Return home</a> </div> </div> <style> .loot { background: rgba(0, 0, 0, 0.5); border: 1px solid var(--accent-gold); border-radius: 6px; padding: 10px; margin: 15px 0; } .loot h3 { color: var(--accent-gold); margin-top: 0; margin-bottom: 10px; font-size: 1em; } .loot ul { margin: 0; padding-left: 20px; } .loot li { color: #ffffff; margin-bottom: 5px; } </style>
<div class="scene-content"> <div class="scene-text"> <p> You force Dominika to understand her new place. She is proud but broken by defeat. Her eyes burn with hatred, but her body obeys your commands. </p> </div> <div class="video-container"> <video id="dominikaServiceVideo" class="scene-video" autoplay muted loop playsinline> <source src="assets/dominika/blowjob (1).webm" type="video/webm"> </video> </div> <div class="service-menu"> <div class="menu-title">Choose an action:</div> <div class="service-buttons"> <a class="service-btn" id="dominikaBlowjobBtn">Blowjob</a> <a class="service-btn" id="dominikaVaginalBtn">Vaginal</a> <a class="service-btn" id="dominikaAnalBtn">Anal</a> <a class="service-btn" id="dominikaCumBtn">Finish</a> </div> <a class="button back-btn" data-passage="House_Life">← Finish</a> </div> </div> <<script>> $(document).ready(function() { const dominikaVideos = { blowjob: [ 'assets/dominika/blowjob (1).webm', 'assets/dominika/blowjob (2).webm', 'assets/dominika/blowjob (3).webm', 'assets/dominika/blowjob (4).webm', 'assets/dominika/blowjob (5).webm', 'assets/dominika/blowjob (6).webm' ], vaginal: [ 'assets/dominika/vaginal (1).webm', 'assets/dominika/vaginal (2).webm', 'assets/dominika/vaginal (3).webm' ], anal: [ 'assets/dominika/anal (1).webm' ], cum: [ 'assets/dominika/cum.webm' ] }; function getRandomVideo(category) { const videos = dominikaVideos[category]; return videos[Math.floor(Math.random() * videos.length)]; } function changeVideo(type) { const video = document.getElementById('dominikaServiceVideo'); if (video) { const newSrc = getRandomVideo(type); if (video.src !== newSrc) { video.src = newSrc; video.play().catch(function(error) { console.log("Autoplay error:", error); }); } } // Update player stats with minimum check State.variables.player.stamina = Math.max(0, State.variables.player.stamina - 10); // Refresh stats display $(document).trigger(':refresh'); } // Add event handlers for buttons $('#dominikaBlowjobBtn').on('click', function() { changeVideo('blowjob'); }); $('#dominikaVaginalBtn').on('click', function() { changeVideo('vaginal'); }); $('#dominikaAnalBtn').on('click', function() { changeVideo('anal'); }); $('#dominikaCumBtn').on('click', function() { changeVideo('cum'); }); // Add click handler for video to toggle mute $('#dominikaServiceVideo').on('click', function() { this.muted = !this.muted; }); }); <</script>>
<div class="scene-content"> <div class="scene-text"> <h2>Survivor Settlement</h2> <p> On the outskirts of the city, a small settlement of several dozen people has formed. They've built defensive structures from scavenged materials and organized a survival system. From a distance, you can spot guards stationed on makeshift watchtowers. </p> <p> It's unclear whether they'll be friendly to newcomers. Some similar communities trade with travelers, while others shoot strangers on sight. You should be cautious. </p> </div> <div class="choice-container"> <div class="locations-grid"> <a class="location-btn" data-passage="Market"> <div class="location-icon">🛒</div> <span>Market</span> </a> <a class="location-btn" data-passage="SlaveMarket"> <div class="location-icon">⛓️</div> <span>Slave Market</span> </a> <a class="location-btn" data-passage="Bar"> <div class="location-icon">🍻</div> <span>Bar</span> </a> <a class="location-btn" data-passage="Administration"> <div class="location-icon">🏛️</div> <span>Administration</span> </a> <a class="location-btn" data-passage="Mary"> <div class="location-icon">👩</div> <span>Mary's Place</span> </a> <a class="location-btn" data-passage="ResidentialDistrict"> <div class="location-icon">🏘️</div> <span>Residential District</span> </a> </div> </div> <div class="choice-container"> <a class="button back-btn" data-passage="Outside">← Return</a> </div> </div>
<div class="scene-content"> <div class="scene-text"> <h2>Scavenging for Supplies</h2> <<set $player.first_search = true>> <<set $player.stamina = Math.max(0, $player.stamina - 10)>> <p> Suddenly, you hear a cry for help coming from the direction of an abandoned supermarket. </p> </div> <div class="choice-container"> <a class="button dark-choice" data-passage="Alex_Event">Investigate the scream</a> <a class="button" data-passage="Ignore_Scream">Ignore it</a> </div> </div>
<div class="scene-content"> <div class="scene-text"> <h2>Search Results</h2> <<set $player.stamina = Math.max(0, $player.stamina - 10)>> <<if $found_food>> <<set $food_found = random(1, 3)>> <p class="success">You found <<print $food_found>> can<<print $food_found === 1 ? "" : "s">> of food!</p> <<set $player.Canned_Food += $food_found>> <<run console.log("Added food. Total now:", $player.Canned_Food)>> <</if>> <<if $found_meds>> <<set $meds_found = random(0, 2)>> <<if $meds_found gt 0>> <p class="success">You found <<print $meds_found>> first aid kit<<print $meds_found === 1 ? "" : "s">>!</p> <<set $player.Medkit += $meds_found>> <<run console.log("Added medkits. Total now:", $player.Medkit)>> <<else>> <p>You found an empty first aid kit.</p> <</if>> <</if>> <<if !$found_food and !$found_meds>> <p>Unfortunately, you didn't find anything this time.</p> <</if>> </div> <div class="choice-container"> <a class="button" data-passage="Outside">Return</a> </div> </div>
<div class="scene-content"> <div class="scene-text"> <h2>Encounter with Alex</h2> <p> Deep in the supermarket, you find a young girl trapped between the shelves. She looks exhausted and frightened. </p> <p> "Please, help me! I haven't eaten or drunk anything for two days... I'll do anything, just get me out of here!" </p> </div> <div class="choice-container"> <a class="button dark-choice" data-passage="Alex_Enslave">Offer to make her a slave</a> <a class="button" data-passage="Alex_Help">Help her</a> <a class="button" data-passage="Alex_Leave">Leave her to die</a> </div> </div>
<div class="scene-content"> <div class="scene-text"> <h2>Helping Alex</h2> <p> You help the girl get free. She introduces herself as Alex and explains that she lost her group a few days ago. </p> <p> "I... I'm not sure I can survive on my own. Can... can I come with you?" </p> </div> <div class="choice-container"> <a class="button dark-choice" data-passage="Alex_Accept">Accept her</a> <a class="button" data-passage="Alex_Reject">Refuse</a> </div> </div>
<div class="scene-content"> <div class="scene-text"> <h2>Enslaving Alex</h2> <<set $player.alex_status = "enslaved">> <p> You offer her to become your slave in exchange for food and shelter. Tears well up in her eyes, but she agrees. </p> </div> <div class="choice-container"> <a class="button" data-passage="House_Life">Return home</a> </div> </div>
<div class="scene-content"> <div class="scene-text"> <h2>Accepting Alex</h2> <<set $player.alex_status = "ally">> <p> You agree to take her with you. Alex smiles gratefully and promises to be helpful. </p> </div> <div class="choice-container"> <a class="button" data-passage="House_Life">Return home</a> </div> </div>
<div class="scene-content"> <div class="scene-text"> <h2>Rejecting Alex</h2> <<set $player.alex_status = "rejected">> <p> You refuse her. Alex looks heartbroken but nods in understanding and walks away. </p> </div> <div class="choice-container"> <a class="button" data-passage="House_Life">Return home</a> </div> </div>
<div class="scene-content"> <div class="scene-text"> <h2>Fate of Alex</h2> <<set $player.dominance += 15>> <<set $player.alex_status = "dead">> <p> You decide to leave her to her fate. Her cries for help gradually fade into the distance... </p> </div> <div class="choice-container"> <a class="button" data-passage="House_Life">Return home</a> </div> </div>
<div class="scene-content"> <div class="scene-text"> <h2>Ignoring the Scream</h2> <<set $player.alex_status = "ignored">> <p> You decide not to take the risk and ignore the scream. Who knows what it could have been... </p> </div> <div class="choice-container"> <a class="button" data-passage="Outside">Return</a> </div> </div>
<div class="scene-content"> <div class="character-card"> <div class="character-image"> <img src="assets/alex/alex.png" alt="Alex"> </div> <div class="character-info"> <h3>Alex</h3> <p>Status: <<if $player.alex_status == "enslaved">>Slave<<else>>Ally<</if>></p> <<if $player.alex_work == "scavenging">> <p class="work-status">Current task: Scavenging for supplies</p> <</if>> </div> </div> <div class="interaction-menu"> <a class="button light-choice" data-passage="Alex_Talk_Menu">Talk</a> <<if $player.alex_status == "enslaved" && $player.alex_work != "scavenging">> <a class="button dark-choice" data-passage="Alex_Service">Have sex</a> <</if>> <a class="button neutral-choice" data-passage="Alex_Work">Assign a task</a> <a class="button back-btn" data-passage="House_Life">← Back</a> </div> </div>
<<if $player.stamina < 10>> <div class="scene-content"> <div class="warning-message">You do not have enough energy for sexual actions!</div> <div class="choice-container"> <a class="button back-btn" data-passage="Luna_Interact">← Back</a> </div> </div> <<else>> <div class="scene-content"> <div class="scene-text"> <p> Luna obediently waits for your orders, ready to fulfill any of your desires. </p> </div> <div class="video-container"> <video id="lunaServiceVideo" class="scene-video" autoplay muted loop playsinline> <source src="assets/luna/blowjob.mp4" type="video/mp4"> <source src="assets/luna/blowjob.webm" type="video/webm"> </video> </div> <div class="service-menu"> <div class="menu-title">Choose an action:</div> <div class="service-buttons"> <a class="service-btn" id="lunaBlowjobBtn">Blowjob</a> <a class="service-btn" id="lunaVaginalBtn">Vaginal</a> <a class="service-btn" id="lunaAnalBtn">Anal</a> <a class="service-btn" id="lunaCumBtn">Finish</a> </div> <a class="button back-btn" data-passage="Luna_Interact">← Back</a> </div> </div> <<script>> $(document).ready(function() { const lunaVideos = { blowjob: [ 'assets/luna/blowjob.webm', 'assets/luna/blowjob_2.webm', 'assets/luna/blowjob_3.webm', 'assets/luna/blowjob_4.webm', 'assets/luna/blowjob_5.webm', 'assets/luna/blowjob_6.webm', 'assets/luna/blowjob_7.webm', 'assets/luna/blowjob_8.webm', 'assets/luna/blowjob_dominance.webm' ], vaginal: [ 'assets/luna/vaginal (1).webm', 'assets/luna/vaginal (2).webm', 'assets/luna/vaginal (3).webm', 'assets/luna/vaginal (4).webm', 'assets/luna/vaginal (5).webm', 'assets/luna/vaginal (6).webm', 'assets/luna/vaginal (7).webm', 'assets/luna/vaginal (8).webm', 'assets/luna/vaginal (9).webm', 'assets/luna/vaginal (10).webm' ], anal: [ 'assets/luna/anal (1).webm', 'assets/luna/anal (2).webm' ], cum: [ 'assets/luna/cum.webm' ] }; function getRandomVideo(category) { const videos = lunaVideos[category]; return videos[Math.floor(Math.random() * videos.length)]; } function changeVideo(type) { const video = document.getElementById('lunaServiceVideo'); if (video) { const newSrc = getRandomVideo(type); if (video.src !== newSrc) { video.src = newSrc; video.play().catch(function(error) { console.log("Autoplay error:", error); }); } } // Update player stats with minimum check State.variables.player.stamina = Math.max(0, State.variables.player.stamina - 10); // Refresh stats display $(document).trigger(':refresh'); } // Add event handlers for buttons $('#lunaBlowjobBtn').on('click', function() { changeVideo('blowjob'); }); $('#lunaVaginalBtn').on('click', function() { changeVideo('vaginal'); }); $('#lunaAnalBtn').on('click', function() { changeVideo('anal'); }); $('#lunaCumBtn').on('click', function() { changeVideo('cum'); }); // Add click handler for video to toggle mute $('#lunaServiceVideo').on('click', function() { this.muted = !this.muted; }); }); <</script>> <</if>>
<div class="scene-content"> <div class="scene-text"> <h2>Rest</h2> <p> You decide to rest and recover your strength. The day comes to an end... </p> <<set $player.stamina = $player.max_stamina>> <<set $player.health = $player.max_health>> <<set $player.days_survived += 1>> <div class="status-update"> <h3>Status Update:</h3> <ul> <li class="success">Energy fully restored!</li> <li class="success">Health fully restored!</li> <li>Another day has passed...</li> <<if $player.alex_work == "scavenging">> <<set _chance = random(1, 100)>> <<if _chance <= 25>> <<set $player.Canned_Food = ($player.Canned_Food || 0) + 1>> <li class="success">Alex found some canned food!</li> <</if>> <<if _chance <= 5>> <<set $player.Medkit = ($player.Medkit || 0) + 1>> <li class="success">Alex found medical supplies!</li> <</if>> <</if>> <<if $player.luna_work == "scavenging">> <<set _chance_luna = random(1, 100)>> <<if _chance_luna <= 25>> <<set $player.Canned_Food = ($player.Canned_Food || 0) + 1>> <li class="success">Luna found some canned food!</li> <</if>> <<if _chance_luna <= 5>> <<set $player.Medkit = ($player.Medkit || 0) + 1>> <li class="success">Luna found medical supplies!</li> <</if>> <</if>> <<if $player.dominika_work == "scavenging">> <<set _chance = random(1, 100)>> <<if _chance <= 25>> <<set $player.Canned_Food = ($player.Canned_Food || 0) + 1>> <li class="success">Dominika found some canned food!</li> <</if>> <<if _chance <= 5>> <<set $player.Medkit = ($player.Medkit || 0) + 1>> <li class="success">Dominika found medical supplies!</li> <</if>> <</if>> </ul> </div> </div> <div class="choice-container"> <a class="button dark-choice" data-passage="House_Life">Wake Up</a> </div> </div>
<div class="scene-content"> <div class="dialog-container"> <p class="narrator-text">Luna lowers her gaze, her voice trembling with memories.</p> <div class="luna-dialog"> <p>"Before the apocalypse, I was a medical student. I dreamed of becoming a surgeon... I had a family, friends, plans for the future. But when the epidemic started, everything changed. My father was among the first to die, and my mother... she couldn't bear it and took her own life."</p> <p>"I was left alone. I had to learn to survive, to steal, to hide. For three months I wandered the city, searching for a safe place. And now... now I'm here."</p> </div> </div> <div class="choice-container"> <a class="button neutral-choice" data-passage="Luna_Talk_Menu">Return to conversation</a> </div> </div>
<div class="scene-content"> <div class="dialog-container"> <p class="narrator-text">Luna nervously fidgets with the hem of her clothing.</p> <div class="luna-dialog"> <<if $player.luna_status == "enslaved">> <p>"I... I've accepted my fate. Maybe this is better than starving or being killed by bandits. At least here I have a roof over my head and food. And... and you, master."</p> <<else>> <p>"Thank you for giving me shelter. I'm still afraid that one day I'll wake up and find this was all a dream. That I'm back alone on the city streets. But for now... for now I feel safe."</p> <</if>> </div> </div> <div class="choice-container"> <a class="button neutral-choice" data-passage="Luna_Talk_Menu">Return to conversation</a> </div> </div>
<div class="scene-content"> <div class="dialog-container"> <p class="narrator-text">Alex looks at you with gratitude and a hint of concern.</p> <div class="alex-dialog"> <p>"Really? What do you want to know?"</p> </div> <div class="dialog-options"> <a class="button light-choice" data-passage="Alex_Past">Ask about her past</a> <a class="button light-choice" data-passage="Alex_Feelings">Ask about her feelings</a> <a class="button neutral-choice" data-passage="Alex_Interact">End the conversation</a> </div> </div> </div>
<div class="scene-content"> <div class="dialog-container"> <p class="narrator-text">Alex takes a deep breath, gathering her thoughts.</p> <div class="alex-dialog"> <p>"I worked in the police, I was a detective. When the epidemic started, we tried to maintain order, help people... But the system quickly fell apart. My colleagues became fewer and fewer."</p> <p>"In the last few months, I was part of a group of survivors. We stuck together, protected each other. But a week ago, we were attacked by bandits. I was the only one who managed to escape... And if it weren't for you, I wouldn't have survived in that supermarket."</p> </div> </div> <div class="choice-container"> <a class="button neutral-choice" data-passage="Alex_Talk_Menu">Return to the conversation</a> </div> </div>
<div class="scene-content"> <div class="dialog-container"> <p class="narrator-text">Alex pauses for a moment, searching for the right words.</p> <div class="alex-dialog"> <<if $player.alex_status == "enslaved">> <p>"Honestly? I never thought I would end up in this position. But... it's strange to admit, I feel a certain... safety. Although the price for it is high. At least I know I'll survive until tomorrow."</p> <<else>> <p>"I need time to recover from everything that has happened. Losing my group was hard... But I'm grateful for your help and shelter. I hope I can be useful."</p> <</if>> </div> </div> <div class="choice-container"> <a class="button neutral-choice" data-passage="Alex_Talk_Menu">Return to the conversation</a> </div> </div>
<div class="scene-content"> <div class="work-menu"> <h3>Choose a task for Luna:</h3> <<if $player.luna_work == "scavenging">> <div class="current-task"> <p>Current task: Scavenging for supplies</p> <a class="button danger-choice" data-passage="Luna_Cancel_Work">Cancel task</a> </div> <<else>> <div class="work-options"> <a class="button neutral-choice" data-passage="Luna_Start_Scavenging">Start scavenging</a> </div> <</if>> <a class="button" data-passage="Luna_Interact">Return</a> </div> </div>
<div class="scene-content"> <div class="scene-text"> <p>You send Luna to scavenge for supplies in the city. You see fear in her eyes, but she does not dare to refuse.</p> <<set $player.luna_work = "scavenging">> </div> <div class="choice-container"> <a class="button" data-passage="House_Life">Return to the house</a> </div> </div>
<div class="scene-content"> <div class="scene-text"> <p>You recall Luna from her task. She returns home with relief.</p> <<set $player.luna_work = "none">> </div> <div class="choice-container"> <a class="button" data-passage="House_Life">Return to the house</a> </div> </div>
<div class="scene-content"> <div class="character-card"> <div class="character-image"> <img src="assets/luna/luna.png" alt="Luna"> </div> <div class="character-info"> <h3>Luna</h3> <p>Status: <<if $player.luna_status == "enslaved">>Slave<<else>>Ally<</if>></p> <<if $player.luna_work == "scavenging">> <p class="work-status">Current task: Scavenging for supplies</p> <</if>> </div> </div> <div class="interaction-menu"> <a class="button light-choice" data-passage="Luna_Talk_Menu">Talk</a> <<if $player.luna_work != "scavenging">> <a class="button dark-choice" data-passage="Luna_Service">Have sex</a> <</if>> <a class="button neutral-choice" data-passage="Luna_Work">Assign a task</a> <a class="button back-btn" data-passage="House_Life">← Back</a> </div> </div>
<div class="scene-content"> <div class="inventory-header"> <h2>Supply Storage</h2> <a class="button back-btn" data-passage="House_Life">← Return</a> </div> <div class="inventory-container"> <!-- Food Section --> <div class="inventory-section"> <h3>Food</h3> <div class="item-grid"> <<if ndef $player.Canned_Food>><<set $player.Canned_Food = 0>><</if>> <div class="inventory-item"> <div class="item-top"> <span class="item-name">Canned Food</span> <span class="item-count">x<<print $player.Canned_Food>></span> </div> <div class="item-bottom"> <<if $player.Canned_Food gt 0>> <a class="use-item-btn" data-passage="Use_Food">Use</a> <<else>> <span class="use-item-btn disabled">Use</span> <</if>> </div> </div> </div> </div> <!-- Medicine Section --> <div class="inventory-section"> <h3>Medicine</h3> <div class="item-grid"> <<if ndef $player.Medkit>><<set $player.Medkit = 0>><</if>> <div class="inventory-item"> <div class="item-top"> <span class="item-name">First Aid Kit</span> <span class="item-count">x<<print $player.Medkit>></span> </div> <div class="item-bottom"> <<if $player.Medkit gt 0>> <a class="use-item-btn" data-passage="Use_Medkit">Use</a> <<else>> <span class="use-item-btn disabled">Use</span> <</if>> </div> </div> </div> </div> <!-- Weapons Section --> <div class="inventory-section"> <h3>Weapons</h3> <div class="item-grid" style="grid-template-columns: repeat(4, 1fr);"> <!-- add columns --> <!-- Wrench --> <div class="inventory-item"> <div class="item-top"> <span class="item-name">Wrench</span> <span class="item-count">x<<print $player.Wrench>></span> </div> <div class="item-bottom"> <<if $player.Wrench gt 0>> <a class="use-item-btn" data-passage="Use_Wrench">Equip</a> <<else>> <span class="use-item-btn disabled">Equip</span> <</if>> </div> </div> <!-- Knife --> <div class="inventory-item"> <div class="item-top"> <span class="item-name">Knife</span> <span class="item-count">x<<print $player.Knife>></span> </div> <div class="item-bottom"> <<if $player.Knife gt 0>> <a class="use-item-btn" data-passage="Use_Knife">Equip</a> <<else>> <span class="use-item-btn disabled">Equip</span> <</if>> </div> </div> <!-- Pistol --> <div class="inventory-item"> <div class="item-top"> <span class="item-name">Pistol</span> <span class="item-count">x<<print $player.Pistol>></span> </div> <div class="item-bottom"> <<if $player.Pistol gt 0>> <a class="use-item-btn" data-passage="Use_Pistol">Equip</a> <<else>> <span class="use-item-btn disabled">Equip</span> <</if>> </div> </div> <!-- Shotgun --> <div class="inventory-item"> <div class="item-top"> <span class="item-name">Shotgun</span> <span class="item-count">x<<print $player.Shotgun>></span> </div> <div class="item-bottom"> <<if $player.Shotgun gt 0>> <a class="use-item-btn" data-passage="Use_Shotgun">Equip</a> <<else>> <span class="use-item-btn disabled">Equip</span> <</if>> </div> </div> </div> </div>
<div class="scene-content"> <div class="scene-text"> <<if ($player.Canned_Food || 0) gt 0>> <<set $player.Canned_Food -= 1>> <<set $player.stamina = Math.min($player.max_stamina, $player.stamina + 20)>> <h2>Food Consumption</h2> <p class="success">You ate the canned food. Energy restored (+20).</p> <div class="item-effect"> <div class="effect-icon">⚡</div> <div class="effect-value">+20 energy</div> </div> <<else>> <h2>Error</h2> <p class="error">You don't have any canned food.</p> <</if>> </div> <div class="choice-container"> <a class="button" data-passage="Inventory">Return to Inventory</a> </div> </div>
<div class="scene-content"> <div class="scene-text"> <<if ($player.Medkit || 0) gt 0>> <<set $player.Medkit -= 1>> <<set $player.health = Math.min($player.max_health, $player.health + 50)>> <h2>Using First Aid Kit</h2> <p class="success">You used a first aid kit. Health restored (+50).</p> <div class="item-effect"> <div class="effect-icon">❤</div> <div class="effect-value">+50 health</div> </div> <<else>> <h2>Error</h2> <p class="error">You don't have a first aid kit.</p> <</if>> </div> <div class="choice-container"> <a class="button" data-passage="Inventory">Return to Inventory</a> </div> </div>
<div class="scene-content"> <div class="character-card"> <div class="character-image"> <img src="assets/dominika/dominika.png" alt="Dominika"> </div> <div class="character-info"> <h3>Dominika</h3> <p>Status: <<if $player.dominika_status == "enslaved">>Slave<<else>>Ally<</if>></p> <<if $player.dominika_work == "scavenging">> <p class="work-status">Current task: Scavenging for supplies</p> <</if>> </div> </div> <div class="interaction-menu"> <a class="button light-choice" data-passage="Dominika_Talk_Menu">Talk</a> <<if $player.dominika_status == "enslaved" && $player.dominika_work != "scavenging">> <a class="button dark-choice" data-passage="Dominika_Service">Have sex</a> <</if>> <a class="button neutral-choice" data-passage="Dominika_Work">Assign a task</a> <a class="button back-btn" data-passage="House_Life">← Back</a> </div> </div>
<div class="scene-content"> <div class="dialog-container"> <p class="narrator-text">Dominika looks at you with gratitude and a hint of concern.</p> <div class="dominika-dialog"> <p>"Really? What do you want to know?"</p> </div> <div class="dialog-options"> <a class="button light-choice" data-passage="Dominika_Past">Ask about her past</a> <a class="button light-choice" data-passage="Dominika_Feelings">Ask about her feelings</a> <a class="button neutral-choice" data-passage="Dominika_Interact">End the conversation</a> </div> </div> </div>
<div class="scene-content"> <div class="work-menu"> <h3>Choose a task for Dominika:</h3> <<if $player.alex_work == "scavenging">> <div class="current-task"> <p>Current task: Scavenging for supplies</p> <a class="button danger-choice" data-passage="Dominika_Cancel_Work">Cancel task</a> </div> <<else>> <div class="work-options"> <a class="button neutral-choice" data-passage="Dominika_Start_Scavenging">Start scavenging</a> </div> <</if>> <a class="button" data-passage="Dominika_Interact">Return</a> </div> </div>
<div class="scene-content"> <div class="scene-text"> <p>You recall Dominika from her task. She is now available for other interactions.</p> <<set $player.dominika_work = "none">> </div> <div class="choice-container"> <a class="button" data-passage="House_Life">Return to the house</a> </div> </div>
<div class="scene-content"> <div class="scene-text"> <p>You send Dominika to scavenge for supplies in the city. It's a dangerous task, but necessary for survival.</p> <<set $player.dominika_work = "scavenging">> </div> <div class="choice-container"> <a class="button" data-passage="House_Life">Return to the house</a> </div> </div>
<div class="scene-content"> <div class="dialog-container"> <p class="narrator-text">Dominika pauses for a moment, searching for the right words.</p> <div class="dominika-dialog"> <<if $player.dominika_status == "enslaved">> <p>"Honestly, I never expected to be in this position. Yet, oddly enough, I feel a certain... safety. You are far stronger than I am, and I accept my role as your slave; it’s not the worst fate I could have."</p> <</if>> </div> </div> <div class="choice-container"> <a class="button neutral-choice" data-passage="Dominika_Talk_Menu">Return to the conversation</a> </div> </div>
<div class="scene-content"> <div class="dialog-container"> <p class="narrator-text">Dominika takes a deep breath, gathering her thoughts.</p> <div class="dominika-dialog"> <p>"I sought out slaves for settlement, captured them, and sold them, but I seem to have overestimated my strength."</p> </div> </div> <div class="choice-container"> <a class="button neutral-choice" data-passage="Dominika_Talk_Menu">Return to the conversation</a> </div> </div>
<div class="choice-container"> <<silently>> /* Simple item prices setup */ <<set $prices = { "Canned_Food": [5, 2], /* [buy price, sell price] */ "Medkit": [20, 10], "Pistol": [200, 100], "Shotgun": [600, 300], "Wrench": [30, 15], "Knife": [70, 35] }>> <</silently>> <div class="shop-container"> <h1>Trader</h1> <div class="player-info"> <div>Name: $player.name</div> <div>Health: $player.health/$player.max_health</div> <div>Stamina: $player.stamina/$player.max_stamina</div> <div>Days Survived: $player.days_survived</div> <div class="caps-display">Caps: $player.Caps</div> </div> <div class="shop-section"> <h2>Buy Items</h2> <div class="item-row"> <span class="item-name">Canned Food</span> <span class="item-price">$prices["Canned_Food"][0] caps</span> <<if $player.Caps >= $prices["Canned_Food"][0]>> <<button "Buy" class="buy-btn">> <<set $player.Caps -= $prices["Canned_Food"][0]>> <<set $player["Canned_Food"] += 1>> <<goto "Market">> <</button>> <<else>> <span class="disabled">[Not enough caps]</span> <</if>> </div> <div class="item-row"> <span class="item-name">Medkit</span> <span class="item-price">$prices["Medkit"][0] caps</span> <<if $player.Caps >= $prices["Medkit"][0]>> <<button "Buy" class="buy-btn">> <<set $player.Caps -= $prices["Medkit"][0]>> <<set $player["Medkit"] += 1>> <<goto "Market">> <</button>> <<else>> <span class="disabled">[Not enough caps]</span> <</if>> </div> <div class="item-row"> <span class="item-name">Pistol</span> <span class="item-price">$prices["Pistol"][0] caps</span> <<if $player.Caps >= $prices["Pistol"][0]>> <<button "Buy" class="buy-btn">> <<set $player.Caps -= $prices["Pistol"][0]>> <<set $player["Pistol"] += 1>> <<goto "Market">> <</button>> <<else>> <span class="disabled">[Not enough caps]</span> <</if>> </div> <div class="item-row"> <span class="item-name">Shotgun</span> <span class="item-price">$prices["Shotgun"][0] caps</span> <<if $player.Caps >= $prices["Shotgun"][0]>> <<button "Buy" class="buy-btn">> <<set $player.Caps -= $prices["Shotgun"][0]>> <<set $player["Shotgun"] += 1>> <<goto "Market">> <</button>> <<else>> <span class="disabled">[Not enough caps]</span> <</if>> </div> <div class="item-row"> <span class="item-name">Wrench</span> <span class="item-price">$prices["Wrench"][0] caps</span> <<if $player.Caps >= $prices["Wrench"][0]>> <<button "Buy" class="buy-btn">> <<set $player.Caps -= $prices["Wrench"][0]>> <<set $player["Wrench"] += 1>> <<goto "Market">> <</button>> <<else>> <span class="disabled">[Not enough caps]</span> <</if>> </div> <div class="item-row"> <span class="item-name">Knife</span> <span class="item-price">$prices["Knife"][0] caps</span> <<if $player.Caps >= $prices["Knife"][0]>> <<button "Buy" class="buy-btn">> <<set $player.Caps -= $prices["Knife"][0]>> <<set $player["Knife"] += 1>> <<goto "Market">> <</button>> <<else>> <span class="disabled">[Not enough caps]</span> <</if>> </div> </div> <div class="shop-section"> <h2>Sell Items</h2> <div class="item-row"> <span class="item-name">Canned Food</span> <span class="item-price">$prices["Canned_Food"][1] caps</span> <span class="item-count">(you have: $player.Canned_Food)</span> <<if $player["Canned_Food"] > 0>> <<button "Sell" class="sell-btn">> <<set $player.Caps += $prices["Canned_Food"][1]>> <<set $player["Canned_Food"] -= 1>> <<goto "Market">> <</button>> <<else>> <span class="disabled">[No items]</span> <</if>> </div> <div class="item-row"> <span class="item-name">Medkit</span> <span class="item-price">$prices["Medkit"][1] caps</span> <span class="item-count">(you have: $player.Medkit)</span> <<if $player["Medkit"] > 0>> <<button "Sell" class="sell-btn">> <<set $player.Caps += $prices["Medkit"][1]>> <<set $player["Medkit"] -= 1>> <<goto "Market">> <</button>> <<else>> <span class="disabled">[No items]</span> <</if>> </div> <div class="item-row"> <span class="item-name">Pistol</span> <span class="item-price">$prices["Pistol"][1] caps</span> <span class="item-count">(you have: $player.Pistol)</span> <<if $player["Pistol"] > 0>> <<button "Sell" class="sell-btn">> <<set $player.Caps += $prices["Pistol"][1]>> <<set $player["Pistol"] -= 1>> <<goto "Market">> <</button>> <<else>> <span class="disabled">[No items]</span> <</if>> </div> <div class="item-row"> <span class="item-name">Shotgun</span> <span class="item-price">$prices["Shotgun"][1] caps</span> <span class="item-count">(you have: $player.Shotgun)</span> <<if $player["Shotgun"] > 0>> <<button "Sell" class="sell-btn">> <<set $player.Caps += $prices["Shotgun"][1]>> <<set $player["Shotgun"] -= 1>> <<goto "Market">> <</button>> <<else>> <span class="disabled">[No items]</span> <</if>> </div> <div class="item-row"> <span class="item-name">Wrench</span> <span class="item-price">$prices["Wrench"][1] caps</span> <span class="item-count">(you have: $player.Wrench)</span> <<if $player["Wrench"] > 0>> <<button "Sell" class="sell-btn">> <<set $player.Caps += $prices["Wrench"][1]>> <<set $player["Wrench"] -= 1>> <<goto "Market">> <</button>> <<else>> <span class="disabled">[No items]</span> <</if>> </div> <div class="item-row"> <span class="item-name">Knife</span> <span class="item-price">$prices["Knife"][1] caps</span> <span class="item-count">(you have: $player.Knife)</span> <<if $player["Knife"] > 0>> <<button "Sell" class="sell-btn">> <<set $player.Caps += $prices["Knife"][1]>> <<set $player["Knife"] -= 1>> <<goto "Market">> <</button>> <<else>> <span class="disabled">[No items]</span> <</if>> </div> </div> <div id="transaction-message" class="transaction-message"></div> <div class="inventory-section"> <h2>Your Inventory</h2> <div class="inventory-grid"> <div class="inventory-item"> <div>Canned Food</div> <div class="inventory-count">$player.Canned_Food</div> </div> <div class="inventory-item"> <div>Medkit</div> <div class="inventory-count">$player.Medkit</div> </div> <div class="inventory-item"> <div>Pistol</div> <div class="inventory-count">$player.Pistol</div> </div> <div class="inventory-item"> <div>Shotgun</div> <div class="inventory-count">$player.Shotgun</div> </div> <div class="inventory-item"> <div>Wrench</div> <div class="inventory-count">$player.Wrench</div> </div> <div class="inventory-item"> <div>Knife</div> <div class="inventory-count">$player.Knife</div> </div> </div> </div> <a class="button back-btn" data-passage="Settlement">← Return</a> </div>
<div class="choice-container"> <div class="mini-character-card"> <div class="character-card"> <div class="character-image"> <img src="assets/Other/indevelopment.png" alt="indevelopment"> <a class="button back-btn" data-passage="Settlement">← Return</a> </div>
<div class="choice-container"> <div class="scene-text"> <h2>Bar Matriarch</h2> The interior of "Matriarch" blends rugged functionality with feminine aesthetics. Tables are crafted from salvaged machine parts, and chairs from recycled plastic and metal. Behind the bar, a long slab of polished bulletproof glass, sits Severina, a stern but fair woman with a tattoo. Walls display trophies: parts of destroyed drones, daggers, and embroidered tapestries bearing the names of fallen sisters, a reminder of survival’s cost. Lighting comes from a mix of kerosene lamps and homemade neon signs flickering in pink and purple hues. In the corner, an old jukebox plays only songs by female voices, from gritty blues ballads to electronic anthems crafted by local tech women. <<if $player.severina_status == "unknown">> <a class="button light-choice" data-passage="Severina_First_dialog">Talk with Severina</a> <<elseif $player.severina_status == "Familiar">> <a class="button light-choice" data-passage="Severina_Talk_Menu">Talk with Severina</a> <</if>> <div class="choice-container"> <a class="button back-btn" data-passage="Settlement">← Return</a> </div>
<div class="choice-container"> <div class="mini-character-card"> <div class="character-card"> <div class="character-image"> <img src="assets/Other/indevelopment.png" alt="indevelopment"> <a class="button back-btn" data-passage="Settlement">← Return</a> </div>
<div class="choice-container"> <div class="scene-text"> <div class="mini-character-card"> <div class="character-card"> <div class="character-image"> <img src="assets/NPC/mary/mary.png" alt="Luna"> <h2>Mary</h2> <p> You see a beautiful girl with a poster saying “I am selling my body” Sex with a woman - 20 caps Sex with a man - 10 caps </p> <p> Wow, a real man. It's been a long time since I had a real man. </p> <<if $player.Caps > 9>> <a class="button dark-choice" data-passage="Fuck_Mary">Fuck Mary (10 caps)</a> <</if>> <a class="button back-btn" data-passage="Settlement">← Return</a> </div>
<div class="choice-container"> <div class="mini-character-card"> <div class="character-card"> <div class="character-image"> <img src="assets/Other/indevelopment.png" alt="indevelopment"> <a class="button back-btn" data-passage="Settlement">← Return</a> </div>
<<if ndef $player.Weapon_status>> <<set $player.Weapon_status = "none">> <<set $player.Weapon_damage = 0>> <</if>> <div class="weapon-display"> <div class="weapon-image"> <<if $player.Weapon_status == "none">> <img src="images/weapons/none.png" alt="No Weapon"> <<elseif $player.Weapon_status == "pistol">> <img src="images/weapons/pistol.png" alt="Pistol"> <<elseif $player.Weapon_status == "shotgun">> <img src="images/weapons/shotgun.png" alt="Shotgun"> <<elseif $player.Weapon_status == "knife">> <img src="images/weapons/knife.png" alt="Knife"> <<else>> <img src="images/weapons/unknown.png" alt="Unknown Weapon"> <</if>> </div> <div class="weapon-info"> <div class="weapon-status"> Weapon: <<print $player.Weapon_status>> </div> <div class="weapon-damage"> Damage: <<print $player.Weapon_damage>> </div> </div> </div> <style> .weapon-display { display: flex; align-items: center; gap: 15px; margin: 10px 0; padding: 10px; background: rgba(35, 25, 35, 0.7); border-radius: 5px; border: 1px solid var(--accent-gold); } .weapon-image img { width: 60px; height: 60px; object-fit: contain; } .weapon-info { display: flex; flex-direction: column; gap: 5px; } .weapon-status { color: var(--accent-gold); font-weight: bold; } .weapon-damage { color: var(--accent-highlight); font-size: 0.9em; } </style> <a class="button dark-choice" data-passage="House_Life">Return</a>
<<if ndef $player.Weapon_status>> <<set $player.Weapon_status = "none">> <<set $player.Weapon_damage = 2>> <</if>> <div class="weapon-display"> <div class="weapon-image"> <<if $player.Weapon_status == "none">> <img src="assets/weapons/empty.png" alt="No Weapon"> <<elseif $player.Weapon_status == "Wrench">> <img src="assets/weapons/wrench.png" alt="Wrench"> <<elseif $player.Weapon_status == "Pistol">> <img src="assets/weapons/pistol.png" alt="Pistol"> <<elseif $player.Weapon_status == "Shotgun">> <img src="assets/weapons/shotgun.png" alt="Shotgun"> <<elseif $player.Weapon_status == "Knife">> <img src="assets/weapons/knife.png" alt="Knife"> <</if>> </div> <div class="weapon-info"> <div class="weapon-status"> Weapon: <<print $player.Weapon_status>> </div> <div class="weapon-damage"> Damage: <<print $player.Weapon_damage>> </div> <<if $player.Weapon_status != "none">> <div class="weapon-actions"> <<link "Unequip">> <<set $player[$player.Weapon_status] += 1>> <!-- Повертаємо зброю в інвентар --> <<set $player.Weapon_status = "none">> <<set $player.Weapon_damage = 2>> <<goto "Armory">> <!-- Або поточний пасаж --> <</link>> </div> <</if>> </div> </div> <a class="button dark-choice" data-passage="House_Life">Return</a>
<div class="scene-content"> <div class="scene-text"> <<if ($player.Wrench || 0) gt 0>> <<if $player.Weapon_status != "none">> <div class="weapon-actions"> <<link "Unequip">> <<set $player[$player.Weapon_status] += 1>> <!-- Повертаємо зброю в інвентар --> <<set $player.Weapon_status = "none">> <<set $player.Weapon_damage = 0>> <<goto "Inventory">> <!-- Або поточний пасаж --> <</if>> <<set $player.Wrench -= 1>> <<set $player.Weapon_status = "Wrench">> <<set $player.Weapon_damage = 8>> <h2>Equiped Wrench</h2> <p class="success">You equip a Wrench.</p> <div class="item-effect"> <div class="effect-icon"></div> <div class="effect-value">(8 dmg)</div> </div> <<else>> <h2>Error</h2> <p class="error">You don't have a Wrench.</p> <</if>> </div> <div class="choice-container"> <a class="button" data-passage="Inventory">Return to Inventory</a> </div> </div>
<div class="scene-content"> <div class="scene-text"> <<if ($player.Knife || 0) gt 0>> <<if $player.Weapon_status != "none">> <div class="weapon-actions"> <<link "Unequip">> <<set $player[$player.Weapon_status] += 1>> <!-- Повертаємо зброю в інвентар --> <<set $player.Weapon_status = "none">> <<set $player.Weapon_damage = 0>> <<goto "Inventory">> <!-- Або поточний пасаж --> <</if>> <<set $player.Knife -= 1>> <<set $player.Weapon_status = "Knife">> <<set $player.Weapon_damage = 15>> <h2>Equiped Knife</h2> <p class="success">You equip a Knife.</p> <div class="item-effect"> <div class="effect-icon"></div> <div class="effect-value">(15 dmg)</div> </div> <<else>> <h2>Error</h2> <p class="error">You don't have a knife.</p> <</if>> </div> <div class="choice-container"> <a class="button" data-passage="Inventory">Return to Inventory</a> </div> </div>
<div class="scene-content"> <div class="scene-text"> <<if ($player.Pistol || 0) gt 0>> <<if $player.Weapon_status != "none">> <div class="weapon-actions"> <<link "Unequip">> <<set $player[$player.Weapon_status] += 1>> <!-- Повертаємо зброю в інвентар --> <<set $player.Weapon_status = "none">> <<set $player.Weapon_damage = 0>> <<goto "Inventory">> <!-- Або поточний пасаж --> <</if>> <<set $player.Pistol -= 1>> <<set $player.Weapon_status = "Pistol">> <<set $player.Weapon_damage = 25>> <h2>Equiped Pistol</h2> <p class="success">You equip a Pistol.</p> <div class="item-effect"> <div class="effect-icon"></div> <div class="effect-value">(25 dmg)</div> </div> <<else>> <h2>Error</h2> <p class="error">You don't have a Pistol.</p> <</if>> </div> <div class="choice-container"> <a class="button" data-passage="Inventory">Return to Inventory</a> </div> </div>
<div class="scene-content"> <div class="scene-text"> <<if ($player.Shotgun || 0) gt 0>> <<if $player.Weapon_status != "none">> <div class="weapon-actions"> <<link "Unequip">> <<set $player[$player.Weapon_status] += 1>> <!-- Повертаємо зброю в інвентар --> <<set $player.Weapon_status = "none">> <<set $player.Weapon_damage = 0>> <<goto "Inventory">> <!-- Або поточний пасаж --> <</if>> <<set $player.Shotgun -= 1>> <<set $player.Weapon_status = "Shotgun">> <<set $player.Weapon_damage = 40>> <h2>Equiped Shotgun</h2> <p class="success">You equip a Shotgun.</p> <div class="item-effect"> <div class="effect-icon"></div> <div class="effect-value">(40 dmg)</div> </div> <<else>> <h2>Error</h2> <p class="error">You don't have a Shotgun.</p> <</if>> </div> <div class="choice-container"> <a class="button" data-passage="Inventory">Return to Inventory</a> </div> </div>
<div class="choice-container"> <<set $player.Caps -= 10>> <<if $player.stamina < 10>> <div class="scene-content"> <div class="warning-message">You do not have enough energy for sexual actions!</div> <div class="choice-container"> <a class="button back-btn" data-passage="Mary">← Back</a> </div> </div> <<else>> <div class="scene-content"> <div class="scene-text"> <p> Maria has taken the caps and is following your instructions. </p> </div> <div class="video-container"> <video id="maryServiceVideo" class="scene-video" autoplay muted loop playsinline> <source src="assets/NPC/mary/blowjob (1).mp4" type="video/mp4"> </video> </div> <div class="service-menu"> <div class="menu-title">Choose an action:</div> <div class="service-buttons"> <a class="service-btn" id="maryBlowjobBtn">Blowjob</a> <a class="service-btn" id="maryVaginalBtn">Vaginal</a> <a class="service-btn" id="maryAnalBtn">Anal</a> <a class="service-btn" id="maryCumBtn">Finish</a> </div> <a class="button back-btn" data-passage="Mary">← Back</a> </div> </div> <<script>> $(document).ready(function() { const maryVideos = { blowjob: [ 'assets/NPC/mary/blowjob (1).mp4', 'assets/NPC/mary/blowjob (2).mp4', 'assets/NPC/mary/blowjob (3).mp4' ], vaginal: [ 'assets/NPC/mary/vaginal (1).webm', 'assets/NPC/mary/vaginal (2).webm', 'assets/NPC/mary/vaginal (3).webm', 'assets/NPC/mary/vaginal (4).webm', 'assets/NPC/mary/vaginal (5).webm' ], anal: [ 'assets/NPC/mary/anal.mp4', 'assets/NPC/mary/anal (1).mp4', 'assets/NPC/mary/anal (2).mp4', 'assets/NPC/mary/anal.webm' ], cum: [ 'assets/NPC/mary/cum.mp4', 'assets/NPC/mary/cum.webm' ] }; function getRandomVideo(category) { const videos = maryVideos[category]; return videos[Math.floor(Math.random() * videos.length)]; } function changeVideo(type) { const video = document.getElementById('maryServiceVideo'); if (video) { const newSrc = getRandomVideo(type); if (video.src !== newSrc) { video.src = newSrc; video.play().catch(function(error) { console.log("Autoplay error:", error); }); } } // Update player stats with minimum check State.variables.player.stamina = Math.max(0, State.variables.player.stamina - 10); // Refresh stats display $(document).trigger(':refresh'); } // Add event handlers for buttons $('#maryBlowjobBtn').on('click', function() { changeVideo('blowjob'); }); $('#maryVaginalBtn').on('click', function() { changeVideo('vaginal'); }); $('#maryAnalBtn').on('click', function() { changeVideo('anal'); }); $('#maryCumBtn').on('click', function() { changeVideo('cum'); }); // Add click handler for video to toggle mute $('#maryServiceVideo').on('click', function() { this.muted = !this.muted; }); }); <</script>> <</if>>
<div class="choice-container"> <div class="scene-text"> <div class="mini-character-card"> <div class="character-card"> <div class="character-image"> <img src="assets/NPC/severina/severina.png" alt="severina"> <h2>Severina</h2> <p> Severina is the owner of the Matriarch bar, a strict but fair bartender who is trusted in the settlemant. She is about 30+. She has unevenly cut hair that is as red as fire. She has tattoos in the form of flowers that wrap around her. She wears light clothes and always carries a homemade pistol and knife on her belt. Hello, decided to wet your throat a little? </p> <a class="button back-btn" data-passage="Bar">← Return</a> </div> </div>
<div class="choice-container"> <div class="scene-text"> <div class="mini-character-card"> <div class="character-card"> <div class="character-image"> <img src="assets/NPC/severina/severina.png" alt="severina"> <h2>Severina</h2> <p> Severina is the owner of the Matriarch bar, a strict but fair bartender who is trusted in the settlemant. She is about 30+. She has unevenly cut hair that is as red as fire. She has tattoos in the form of flowers that wrap around her. She wears light clothes and always carries a homemade pistol and knife on her belt. You walk into the Matriarch bar. Severina behind the bar looks up, and her eyes widen in surprise. Her smile sparkles slightly in the neon light as she slowly sets down the glass she's been wiping. Conversations in the bar quiet down, and several women look at each other. Severina shakes her head, a wry but warm smile appears on her face, and her voice sounds husky, tinged with genuine surprise: - A man? You've got to be kidding! She laughs softly, looking at you curiously. "Identify yourself, miracle of the apocalypse, and tell us how you managed to survive the damn virus. We rarely have guests like you, so your story better be worth a drink. She leans on the counter, her hand relaxed on the knife, but her eyes glow with warmth. Come on, what are you doing alone? She waits, clearly intrigued, and there is a slight buzz in the bar, as if everyone wants to hear your answer. </p> <a class="button dark-choice" data-passage="Severina_Tell_Story">Tell her</a> <a class="button dark-choice" data-passage="Bar" <set $player.severina_status = "Familiar"> Refuse</a> </div> </div>
<div class="choice-container"> <div class="scene-text"> <div class="mini-character-card"> <div class="character-card"> <div class="character-image"> <img src="assets/NPC/severina/severina.png" alt="severina"> <h2>Severina</h2> <p> (U tell) All I remember is green clouds covering the sky, a burning pain in my head and darkness. When I woke up, I saw hundreds of dead people, their bodies lying like abandoned dolls in the middle of the destroyed city. I was terrified, I did not understand what was happening. Pain throbbed in my chest, as if something was trying to destroy me from the inside. I wandered the wastelands, avoiding gangs of marauders who robbed everyone indiscriminately. To survive, I pretended to be a wounded refugee, hiding my gender under my rags. One day I joined a gang, but when they slaughtered an entire camp for a few tins of food, I couldn't stand it. At night, I slit the throat of their leader, took the supplies and went to seek my fate. Now I'm trying to take control of my life again, maybe I'll go into the slave trade or another profitable business, I haven't decided yet. (Severina) Wow, that's a cool story, but now men are worth their weight in gold, so you're in a good position, after all, if you need the first money in the settlement, you can find the administration there, and there's always some work, and we also have a slave market where you can sell or buy several slaves to work, there is also a market where you can sell unnecessary things and buy something useful for yourself, even weapons, by the way, if you don't have any, I advise you to buy at least something because they say that there is a crazy bitch Dominika running around the city who hunts travelers and sells them into slavery, so be careful. </p> <<set $player.severina_status = "Familiar">> <a class="button back-btn" data-passage="Bar">← Return</a> </div> </div>
<div class="changelog-page"> <div class="changelog-header"> <h1>Changelog</h1> <a class="back-button" data-passage="Changelog"> <span class="back-icon">←</span> return </a> </div> <div class="changelog-content"> <div class="changelog-entry"> <div class="version-header"> <h2>Version 0.2 alpha (current)</h2> <span class="date">04/19/2025</span> </div> <div class="changelog list"> <h3>Added:</h3> <ul> <li>More locations</li> <li>New NPC with sex scenes (Maru)</li> <li>Added 1 NPC without sex scenes (Bartender Severina)</li> <li>Added more locations and locations for interaction</li> <li>A trading system has been created, now the player can trade with the settlement</li> <li>A weapon system has been added (Wrench, knife, pistol, shotgun)</li> </ul> <h3>Settings:</h3> <ul> <li>Reconfigured CSS variables</li> </ul> <h3>Bugs:</h3> <ul> <li>Fixed numerous bugs (not 100% all but everything I found has been fixed)</li> <li>Changed and improved the styles of most locations and interaction points</li> </ul> <h3>Reworked:</h3> <ul> <li>Completely rewritten from scratch the inverter system and its functionality, now it works properly</li> </ul> <h3>Known issues:</h3> <ul> <li></li> </ul> <h3>Author's Note:</h3> <ul> <li>The game is still in its early stages of development, no element of the game is 100% permanent and I am constantly reworking everything</li> </ul> </div> </div> </div> </div>