K.V.E.W. Visual Novel body { font-family: ‘Courier New’, Courier, monospace; background-color: black; color: white; text-align: center; padding: 20px; } #game-container { max-width: 800px; margin: auto; } #character-img { width: 300px; height: auto; margin: 10px; } .dialogue-box, .choice-box { border: 2px solid white; padding: 15px; margin: 15px auto; cursor: pointer; max-width: 600px; } input, button { padding: 8px; font-size: 16px; margin-top: 15px; }
const player = { name: “”, knowsOtherStudent: false }; const images = { scared: “https://fritzmonkor.com/wp-content/uploads/2025/07/millenniumscared.png”, talking: “https://fritzmonkor.com/wp-content/uploads/2025/07/millenniumtalking.png”, happy: “https://fritzmonkor.com/wp-content/uploads/2025/07/millenniumhappy.png”, angry: “https://fritzmonkor.com/wp-content/uploads/2025/07/millenniumangry.png”, confused: “https://fritzmonkor.com/wp-content/uploads/2025/07/millenniumconfused.png”, }; function showCharacter(expression) { const img = document.getElementById(‘character-img’); img.src = images[expression]; img.style.display = ‘block’; } function setDialogue(text) { document.getElementById(‘dialogue’).innerText = text; } function setChoices(options) { const choicesDiv = document.getElementById(‘choices’); choicesDiv.innerHTML = ”; options.forEach(option => { const div = document.createElement(‘div’); div.className = ‘choice-box’; div.innerText = option.text; div.onclick = option.action; choicesDiv.appendChild(div); }); } function askPlayerName(callback) { const choicesDiv = document.getElementById(‘choices’); choicesDiv.innerHTML = ‘
Submit’; window.submitName = () => { player.name = document.getElementById(‘playerName’).value || “Player”; callback(); }; } // Initial intro sequence function startGame() { document.getElementById(‘intro-logo’).style.display = ‘block’; setDialogue(”); setTimeout(() => { document.getElementById(‘intro-logo’).style.display = ‘none’; firstEncounter(); }, 3000); } function firstEncounter() { showCharacter(‘scared’); setDialogue(‘What the—Who you are and where am I?’); setChoices([ { text: “I am just as confused as you are”, action: optionOne }, { text: “You are inside a game on a random website hidden from view”, action: optionTwo } ]); } function optionOne() { showCharacter(‘talking’); setDialogue(“I guess we are both in the same boat. Name’s Mariya by the way, what’s yours?”); askPlayerName(() => { showCharacter(‘happy’); setDialogue(player.name + “? Never heard that before from where I’m from. Hopefully we can cooperate through this mess.”); setChoices([{ text: “Any idea on how we can get out of here?”, action: commonDialogue }]); }); } function optionTwo() { showCharacter(‘angry’); setDialogue(“Oh great! That is the same thing that other student said.”); setTimeout(() => { showCharacter(‘confused’); setDialogue(“Wait, unlike her I don’t see you. Who are you?”); askPlayerName(() => { showCharacter(‘talking’); setDialogue(“Well, ” + player.name + ” my name is Mariya.”); setChoices([ { text: “Any idea on how we can get out of here?”, action: commonDialogue }, { text: ‘Wait, what did you mean by “another” student?’, action: otherStudent } ]); }); }, 2000); } function commonDialogue() { showCharacter(‘confused’); setDialogue(“Honestly? I’m sure we can figure it out.”); setTimeout(() => { showCharacter(‘happy’); let endingText = “At least you seem to be sticking around.”; if(player.knowsOtherStudent){ endingText = “Despite you being rather unseen, you are less creepy than that girl.”; } setDialogue(endingText); setChoices([]); }, 2000); } function otherStudent() { player.knowsOtherStudent = true; showCharacter(‘talking’); setDialogue(“It was an odd sight really. That girl was completely black and white, looked poorly drawn, and had very few expressions. What really bothered me however,”); setTimeout(() => { showCharacter(‘scared’); setDialogue(“was the fact that she did not have a halo.”); setChoices([{ text: “Any idea on how we can get out of here?”, action: commonDialogue }]); }, 3000); } // Start the game startGame();
K.V.E.W. Visual Novel body { font-family: ‘Courier New’, Courier, monospace; background-color: black; color: white; text-align: center; padding: 20px; } #game-container { max-width: 800px; margin: auto; } #character-img { width: 300px; height: auto; margin: 10px; } .dialogue-box, .choice-box { border: 2px solid white; padding: 15px; margin: 15px auto; cursor: pointer; max-width: 600px; } input, button { padding: 8px; font-size: 16px; margin-top: 15px; }
const player = { name: “”, knowsOtherStudent: false }; const images = { scared: “https://fritzmonkor.com/wp-content/uploads/2025/07/millenniumscared.png”, talking: “https://fritzmonkor.com/wp-content/uploads/2025/07/millenniumtalking.png”, happy: “https://fritzmonkor.com/wp-content/uploads/2025/07/millenniumhappy.png”, angry: “https://fritzmonkor.com/wp-content/uploads/2025/07/millenniumangry.png”, confused: “https://fritzmonkor.com/wp-content/uploads/2025/07/millenniumconfused.png”, }; function showCharacter(expression) { const img = document.getElementById(‘character-img’); img.src = images[expression]; img.style.display = ‘block’; } function setDialogue(text) { document.getElementById(‘dialogue’).innerText = text; } function setChoices(options) { const choicesDiv = document.getElementById(‘choices’); choicesDiv.innerHTML = ”; options.forEach(option => { const div = document.createElement(‘div’); div.className = ‘choice-box’; div.innerText = option.text; div.onclick = option.action; choicesDiv.appendChild(div); }); } function askPlayerName(callback) { const choicesDiv = document.getElementById(‘choices’); choicesDiv.innerHTML = ‘
Submit’; window.submitName = () => { player.name = document.getElementById(‘playerName’).value || “Player”; callback(); }; } // Initial intro sequence function startGame() { document.getElementById(‘intro-logo’).style.display = ‘block’; setDialogue(”); setTimeout(() => { document.getElementById(‘intro-logo’).style.display = ‘none’; firstEncounter(); }, 3000); } function firstEncounter() { showCharacter(‘scared’); setDialogue(‘What the—Who you are and where am I?’); setChoices([ { text: “I am just as confused as you are”, action: optionOne }, { text: “You are inside a game on a random website hidden from view”, action: optionTwo } ]); } function optionOne() { showCharacter(‘talking’); setDialogue(“I guess we are both in the same boat. Name’s Mariya by the way, what’s yours?”); askPlayerName(() => { showCharacter(‘happy’); setDialogue(player.name + “? Never heard that before from where I’m from. Hopefully we can cooperate through this mess.”); setChoices([{ text: “Any idea on how we can get out of here?”, action: commonDialogue }]); }); } function optionTwo() { showCharacter(‘angry’); setDialogue(“Oh great! That is the same thing that other student said.”); setTimeout(() => { showCharacter(‘confused’); setDialogue(“Wait, unlike her I don’t see you. Who are you?”); askPlayerName(() => { showCharacter(‘talking’); setDialogue(“Well, ” + player.name + ” my name is Mariya.”); setChoices([ { text: “Any idea on how we can get out of here?”, action: commonDialogue }, { text: ‘Wait, what did you mean by “another” student?’, action: otherStudent } ]); }); }, 2000); } function commonDialogue() { showCharacter(‘confused’); setDialogue(“Honestly? I’m sure we can figure it out.”); setTimeout(() => { showCharacter(‘happy’); let endingText = “At least you seem to be sticking around.”; if(player.knowsOtherStudent){ endingText = “Despite you being rather unseen, you are less creepy than that girl.”; } setDialogue(endingText); setChoices([]); }, 2000); } function otherStudent() { player.knowsOtherStudent = true; showCharacter(‘talking’); setDialogue(“It was an odd sight really. That girl was completely black and white, looked poorly drawn, and had very few expressions. What really bothered me however,”); setTimeout(() => { showCharacter(‘scared’); setDialogue(“was the fact that she did not have a halo.”); setChoices([{ text: “Any idea on how we can get out of here?”, action: commonDialogue }]); }, 3000); } // Start the game startGame();