Files
pages/static/projects/tads/tads2/index.html
2025-04-04 20:28:38 +02:00

302 lines
16 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<meta name='viewport' content='width=device-width'>
<title>Totally Accurate Dating Simulator 2</title>
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="/projects/tads/pagestyle.css">
<script>
let playerNameEmptyError = "Your name cannot be nothing, silly.";
let promisingButtonText = "Find hot girls";
let disillusionedButtonText = "Continue being sad";
let baldiImages = [
"baldicampertalk.webp", // 1
"baldiwaveparty.webp",
"baldifarmerspank.webp",
"baldicrying.webp",
"spacerat.png", // 5
"red.webp",
"cena.jpeg",
"vaso1.png",
"vaso2.png",
"dannyass.png", // 10
"batman.jpeg",
"homersweet.jpg",
"california.jpg",
"dream.gif",
"frax.png", // 15
"sandwich.png",
"sonicgood.png",
"sonicbad.png",
"toilet.jpg",
"nook.png", // 20
"garry.jpg",
"bigsmoke.png",
"biden.png",
"burn.jpg",
"reigns.png", // 25
"helga.png",
"deniz.gif",
"isa.png"
];
let baldiTexts;
function initBaldiTexts() {
baldiTexts = [
`${playerName} just met Baldi as he returned from a camping trip! Baldi is eager to talk to ${playerName} and they form a lasting friendship`,
`${playerName} just met Baldi after he went to a party and he is drunk as fuck, he touches ${playerName}'s bum and ${playerName} reports Baldi to the police for sexual assault`,
`${playerName} meets Baldi, and he is horny as fuck. Fortunately, ${playerName} is also in the mood for it. Baldi has a stick ready to spank ${playerName}`,
`${playerName} meets Baldi as he is having an existential crisis. Baldi doesn't know what to do with his life and neither does ${playerName} so they cry together`,
`${playerName} meets a space rat from 3000 years into the future. The space rat does not speak ${playerName}'s language. The space rat pulls out a rocket launcher and ${playerName} runs away`,
`${playerName} meets red\n\nthat's kinda sus`,
`${playerName} meets John Cena. Or at least ${playerName} thinks so, because ${playerName} cannot see him`,
`${playerName} encounters Vaso, but he doesn't look too well. ${playerName} calls an ambulance and Vaso dies in the hospital, holding ${playerName}'s hand, sharing his last moments with ${playerName}`,
`${playerName} meets Vaso! He is excited to tell ${playerName} all about how Outer Wilds has changed his life, and how it will change ${playerName}'s life as well`,
`${playerName} bears witness to a weird couple doing fetish things in public. They ask ${playerName} if they would like to join, but ${playerName} declines and dies alone`,
`${playerName} encounters plagiarism Batman and Robin. They discover that ${playerName} didn't correctly cite Karl Marx in an essay ${playerName} submitted 4 years ago, and they run over ${playerName} with the Batmobile`,
`${playerName} sees Homer Simpson wielding a bat. Homer wants to protect ${playerName}. ${playerName} and Homer live happily ever after`,
`${playerName} meets the US state California. It is on fire due to climate change and ${playerName} suffocates from smoke inhalation`,
`${playerName} approaches Vaso's dream girl. Vaso notices and punches ${playerName} to death`,
`${playerName} meets Fraxiom at a rave. Fraxiom wants to fantasize about being or kissing Skrillex. Rejected, ${playerName} walks away and drowns their sadness in alcohol`,
`${playerName} sees a sandwich lying on the floor. ${playerName} picks it up and begins to eat it. ${playerName} realizes that they just ate a potential lover, and that they will be forever alone`,
`${playerName} meets Sonic from the Sonic the Hedgehog series! Sonic takes one look at ${playerName} and proceeds to run away as far as possible at top speed`,
`${playerName} meets Sonic from the Sonic the Hedgehog series! But it's the original design from the movie, so ${playerName} decides to pretend they don't speak Sonic's language and walks away`,
`${playerName} sees a cool toilet. ${playerName} realizes that the toilet is a metaphor for how ${playerName}'s life is going down the shitter, so ${playerName} goes to cry in the shower`,
`${playerName} meets Tom Nook. Tom Nook is here to collect the 2,498,000 bell debt that ${playerName} has not paid off in 28 months. Tom Nook shoots ${playerName}`,
`${playerName} meets Garry! But Garry is too busy with creating the base game groundwork for renowned fantasy shooter Team Fortress 2`,
`${playerName} meets up with Big Smoke from Grand Theft Auto: San Andreas, and they go out for a meal at the Cluckin' Bell. Big Smoke orders two number 9s, a number 9 large, a number 6 with extra dip, a number 7, two number 45s, one with cheese, and a large soda. ${playerName} is embarrassed, runs away, and gets caught in the crossfire of a drive-by shooting`,
`${playerName} gets invited to the White House and has the pleasure of meeting Joe Biden. ${playerName} tells Joe Biden their name, and Joe Biden responds: "nice to meet you ${playerName.shuffle()}!" ${playerName} decides to leave the state of Washington`,
`Unable to find a lover, ${playerName} travels towards the sun and burns to death`,
`${playerName} meets Roman Reigns! ${playerName} boos him and quickly regrets it, as Roman Reigns is filled with hatred and all members of the Bloodline body slam ${playerName} out of existence`,
`${playerName} meets Helga von Streissenburgen! She tells ${playerName} that they are too weak, weak, weak, and that they could eat them for breakfast, so Helga fries up some robot bacon alongside ${playerName} and eats them`,
`${playerName} meets Deniz! Unfortunately, Deniz is busy creating a dating simulator and has no time for ${playerName}`,
`${playerName} meets Isabel! She is lonely and watches all the cool kids from her window. ${playerName} joins Isabel and they are lonely together`
];
}
let viewPrep, viewButtons, viewAnswer, text;
var userPreference;
var playerName;
window.onload = function() {
viewPrep = document.getElementById("viewPrep");
viewButtons = document.getElementById("viewButtons");
viewAnswer = document.getElementById("viewAnswer");
text = document.getElementById("text");
viewPrep.style.display = "block";
viewButtons.style.display = "none";
viewAnswer.style.display = "none";
document.getElementById("viewCheater").style.display = "none";
document.getElementById("buttonHotGirls").style.display = "block";
document.getElementById("buttonHotGuys").style.display = "block";
document.getElementById("buttonCuteGirls").style.display = "none";
document.getElementById("buttonCuteGuys").style.display = "none";
document.getElementById("buttonNormalGirls").style.display = "none";
document.getElementById("buttonNormalGuys").style.display = "none";
document.getElementById("buttonAnyGirl").style.display = "none";
document.getElementById("buttonAnyGuy").style.display = "none";
document.getElementById("buttonLiterallyAny").style.display = "none";
}
String.prototype.shuffle = function () {
var a = this.split(""),
n = a.length;
for(var i = n - 1; i > 0; i--) {
var j = Math.floor(Math.random() * (i + 1));
var tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
return a.join("");
}
function finishPrep() {
let name = document.getElementById("playerName").value;
if (name.trim() === "") {
document.getElementById("error").innerText = playerNameEmptyError;
return;
}
if (name.trim() === "cheater") {
showCheaterMenu();
return;
}
playerName = name.trim();
viewPrep.style.display = "none";
viewButtons.style.display = "block";
document.getElementById("cheaterDescription").innerText = `Pick a number from 1-${baldiImages.length + 1}`;
initBaldiTexts();
}
function hotGirls() {
document.getElementById("buttonHotGirls").onclick = alreadyTried;
userPreference = "girl";
document.getElementById("buttonHotGuys").style.display = "none";
document.getElementById("buttonCuteGirls").style.display = "block";
showAnswer(
`There are hot girls around, but they are not interested in ${playerName}`,
"Look around some more"
);
}
function hotGuys() {
document.getElementById("buttonHotGuys").onclick = alreadyTried;
userPreference = "guy";
document.getElementById("buttonHotGirls").style.display = "none";
document.getElementById("buttonCuteGuys").style.display = "block";
showAnswer(
`There are hot guys around, but they are not interested in ${playerName}`,
"Look around some more"
);
}
function cute() {
document.getElementById("buttonCuteGirls").onclick = alreadyTried;
document.getElementById("buttonCuteGuys").onclick = alreadyTried;
if (userPreference == "girl") {
document.getElementById("buttonNormalGirls").style.display = "block";
} else {
document.getElementById("buttonNormalGuys").style.display = "block";
}
showAnswer(
`A cute ${userPreference} walks by, ${playerName} waves at them but the ${userPreference} pretends they didn't see that`,
":("
);
}
function normal() {
document.getElementById("buttonNormalGirls").onclick = alreadyTried;
document.getElementById("buttonNormalGuys").onclick = alreadyTried;
if (userPreference == "girl") {
document.getElementById("buttonAnyGirl").style.display = "block";
} else {
document.getElementById("buttonAnyGuy").style.display = "block";
}
showAnswer(
`${playerName} sees a group of ${userPreference}s but ${playerName} is too scared to talk to any of them`,
"maybe another time"
);
}
function any() {
document.getElementById("buttonAnyGirl").onclick = alreadyTried;
document.getElementById("buttonAnyGuy").onclick = alreadyTried;
document.getElementById("buttonLiterallyAny").style.display = "block";
showAnswer(
`Losing patience, ${playerName} approaches a ${userPreference} but they already have a partner and tell ${playerName} to leave`,
"oof really?"
);
}
function random(min,max) {
return Math.floor((Math.random())*(max-min+1))+min;
}
function literallyany(i) {
document.getElementById("answerButton").onclick = null;
showAnswer(
baldiTexts[i],
`Ending ${i + 1} of ${baldiImages.length}`
);
document.getElementById("baldiImage").src = `/projects/tads/${baldiImages[i]}`;
}
function literallyanyButton() {
literallyany(random(0, baldiImages.length - 1));
}
function returnToOverview() {
viewButtons.style.display = "block";
viewAnswer.style.display = "none";
}
function alreadyTried() {
showAnswer(
`${playerName} considers it but then decides against it, because it would only end in disappointment`,
"depressing but ok"
);
}
function showAnswer(answer, buttonText) {
text.innerText = answer;
document.getElementById("answerButton").innerText = buttonText;
viewButtons.style.display = "none";
viewAnswer.style.display = "block";
}
function showCheaterMenu() {
viewPrep.style.display = "none";
document.getElementById("viewCheater").style.display = "block";
}
function buttonCheater() {
let index = document.getElementById("cheater").value;
if (baldiImages[index - 1] == undefined) {
document.getElementById("cheaterError").innerText = `'${index}' does not exist`;
return;
}
playerName = "cheater";
initBaldiTexts();
document.getElementById("viewCheater").style.display = "none";
literallyany(index - 1);
}
</script>
</head>
<body>
<h1 class="fancy-header">Totally Accurate Dating Simulator 2</h1>
<div id="viewPrep">
<p>Enter your name, dating padawan:</p>
<input id="playerName"/>
<p id="error"></p>
<button onclick="finishPrep()">Get dating!</button>
</div>
<div id="viewButtons">
<button id="buttonHotGirls" onclick="hotGirls()">Find hot girls</button>
<button id="buttonHotGuys" onclick="hotGuys()">Find hot guys</button>
<button id="buttonCuteGirls" onclick="cute()">Find cute girls</button>
<button id="buttonCuteGuys" onclick="cute()">Find cute guys</button>
<button id="buttonNormalGirls" onclick="normal()">Find normal girls</button>
<button id="buttonNormalGuys" onclick="normal()">Find normal guys</button>
<button id="buttonAnyGirl" onclick="any()">Find any girl</button>
<button id="buttonAnyGuy" onclick="any()">Find any guy</button>
<button id="buttonLiterallyAny" onclick="literallyanyButton()">Really, no one??</button>
</div>
<div id="viewAnswer">
<p id="text"></p>
<img id="baldiImage"/>
<button id="answerButton" onclick="returnToOverview()"></button>
</div>
<div id="viewCheater">
<h3>CHEATER CHEATER CHEATER</h3>
<p id="cheaterDescription"></p>
<input id="cheater"/>
<p id="cheaterError"></p>
<button onclick="buttonCheater()">THAT'S RIGHT WE'RE GONNA CHEAT</button>
</div>
</body>
</html>