implement groundwork for topic system: new data structure, dynamic content
This commit is contained in:
parent
cd69c462c2
commit
bb1ac78fe9
@ -13,7 +13,7 @@
|
|||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<h1>7 vs. Wild Bingo <span id="refresh-bingo">🔄</span></h1>
|
<h1><span id="topic"></span> Bingo <span id="refresh-bingo">🔄</span></h1>
|
||||||
<table id="bingo">
|
<table id="bingo">
|
||||||
<tr>
|
<tr>
|
||||||
<td data-row="0" data-col="0" class="bingo-field"></td>
|
<td data-row="0" data-col="0" class="bingo-field"></td>
|
||||||
|
147
script.js
147
script.js
@ -1,5 +1,4 @@
|
|||||||
"use strict"
|
"use strict"
|
||||||
let fields = [
|
|
||||||
// 'MARTINAA/JAAAAA??!!',
|
// 'MARTINAA/JAAAAA??!!',
|
||||||
// '"Du bist doch auch so einer, der ..."',
|
// '"Du bist doch auch so einer, der ..."',
|
||||||
// 'Brain-AFK',
|
// 'Brain-AFK',
|
||||||
@ -24,46 +23,86 @@ let fields = [
|
|||||||
// 'Tamme Story',
|
// 'Tamme Story',
|
||||||
// 'Ich kam heut morgen auf Arbeit...',
|
// 'Ich kam heut morgen auf Arbeit...',
|
||||||
// 'Crypto / Fiat / Inflation ...'
|
// 'Crypto / Fiat / Inflation ...'
|
||||||
'Krokodil',
|
|
||||||
'Blut zu sehen',
|
let topics = {
|
||||||
'"Ich kämpfe"',
|
'7vsWild': {
|
||||||
'"Ich kann nicht mehr"',
|
'title': '7 vs. Wild',
|
||||||
'Jemand trinkt unsauberes Wasser',
|
'image': 'img/7-vs-wild-logo.svg',
|
||||||
'Jemand schneidet von einem lebenden Baum was ab',
|
'fields': [
|
||||||
'Knossi raucht',
|
'Krokodil',
|
||||||
'Nackt',
|
'Blut zu sehen',
|
||||||
'Jemand isst eine Kokosnuss',
|
'"Ich kämpfe"',
|
||||||
'Stufenlos verstellbare Knoten',
|
'"Ich kann nicht mehr"',
|
||||||
'"Ich frag mich, wie es den anderen so geht"',
|
'Jemand trinkt unsauberes Wasser',
|
||||||
'Kleidung ist feucht/nass',
|
'Jemand schneidet von einem lebenden Baum was ab',
|
||||||
'Joris verwirft seinen Tagesplan',
|
'Knossi raucht',
|
||||||
'Sascha flext für die Kamera',
|
'Nackt',
|
||||||
'"Bist du deppert?"',
|
'Jemand isst eine Kokosnuss',
|
||||||
'Sonnenbrand',
|
'Stufenlos verstellbare Knoten',
|
||||||
'7 in the wild',
|
'"Ich frag mich, wie es den anderen so geht"',
|
||||||
'Aus Plastik Müll wird was gebaut',
|
'Kleidung ist feucht/nass',
|
||||||
'Es wird geschrien',
|
'Joris verwirft seinen Tagesplan',
|
||||||
'Es wird gesungen',
|
'Sascha flext für die Kamera',
|
||||||
'"Mir ist kalt"',
|
'"Bist du deppert?"',
|
||||||
'Dinge bekommen Namen',
|
'Sonnenbrand',
|
||||||
'"Das ist auf einem anderen Level"',
|
'7 in the wild',
|
||||||
'Kleine Krebse',
|
'Aus Plastik Müll wird was gebaut',
|
||||||
'Jemand entschuldigt sich',
|
'Es wird geschrien',
|
||||||
'Challenge wird falsch verstanden',
|
'Es wird gesungen',
|
||||||
'Es ist alles ganz anders als ich es mir vorgestellt habe',
|
'"Mir ist kalt"',
|
||||||
'Jemand kündigt an aufzuhören, tut es aber nicht',
|
'Dinge bekommen Namen',
|
||||||
'Urin',
|
'"Das ist auf einem anderen Level"',
|
||||||
'Jemand spricht durch die Kamera mit Freunden/Familie',
|
'Kleine Krebse',
|
||||||
'Shelter bricht zusammen',
|
'Jemand entschuldigt sich',
|
||||||
'Jemand weint',
|
'Challenge wird falsch verstanden',
|
||||||
'Sonne kommt raus',
|
'Es ist alles ganz anders als ich es mir vorgestellt habe',
|
||||||
'Medi Kit wird geöffnet',
|
'Jemand kündigt an aufzuhören, tut es aber nicht',
|
||||||
'Kriegt kein Feuer an',
|
'Urin',
|
||||||
'Joris starrt in die Kamera',
|
'Jemand spricht durch die Kamera mit Freunden/Familie',
|
||||||
'Schimmel',
|
'Shelter bricht zusammen',
|
||||||
'Jemand geht früher'
|
'Jemand weint',
|
||||||
];
|
'Sonne kommt raus',
|
||||||
|
'Medi Kit wird geöffnet',
|
||||||
|
'Kriegt kein Feuer an',
|
||||||
|
'Joris starrt in die Kamera',
|
||||||
|
'Schimmel',
|
||||||
|
'Jemand geht früher'
|
||||||
|
]
|
||||||
|
},
|
||||||
|
'tinder': {
|
||||||
|
'title': '🔥 Tinder',
|
||||||
|
'image': 'img/Tinder.svg',
|
||||||
|
'fields': [
|
||||||
|
'Sternzeichen',
|
||||||
|
'Unaufgeräumtes Zimmer',
|
||||||
|
'Pferdemädchen',
|
||||||
|
'Duckface',
|
||||||
|
'Waschmaschine im Hintergrund',
|
||||||
|
'Nur schwarze Bilder',
|
||||||
|
'Französin',
|
||||||
|
'Selfcare',
|
||||||
|
'Persönlichkeitstyp',
|
||||||
|
'Nur Fotos mit mehreren',
|
||||||
|
'Tier das ihr nicht gehört',
|
||||||
|
'Nur Emojis',
|
||||||
|
'Nur Bilder',
|
||||||
|
'Instagram Handle',
|
||||||
|
'Spricht kein Deutsch',
|
||||||
|
'Nicht aus der Region (nur zu Besuch)',
|
||||||
|
'Selfie ohne Kopf',
|
||||||
|
'Random Foto',
|
||||||
|
'Spotify Song',
|
||||||
|
'Name nicht lesbar',
|
||||||
|
'Hat bereits Kinder',
|
||||||
|
'Bild im Fitnessstudio',
|
||||||
|
'Polyamorie',
|
||||||
|
'EMF'
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let seed;
|
let seed;
|
||||||
|
let topic;
|
||||||
const urlParams = new URLSearchParams(window.location.search);
|
const urlParams = new URLSearchParams(window.location.search);
|
||||||
const seed_elem = document.querySelector('#seeed-value');
|
const seed_elem = document.querySelector('#seeed-value');
|
||||||
const allFields = document.querySelectorAll('#bingo td');
|
const allFields = document.querySelectorAll('#bingo td');
|
||||||
@ -72,12 +111,7 @@ const centerFieldImage = document.querySelector('#center-field-image');
|
|||||||
const refreshBingoButton = document.querySelector('#refresh-bingo');
|
const refreshBingoButton = document.querySelector('#refresh-bingo');
|
||||||
const copyPermalinkButton = document.querySelector('#copy-permalink');
|
const copyPermalinkButton = document.querySelector('#copy-permalink');
|
||||||
const winnerMessage = document.querySelector('#winner-message');
|
const winnerMessage = document.querySelector('#winner-message');
|
||||||
centerFieldImage.src = "img/7-vs-wild-logo.svg";
|
const topicTitle = document.querySelector('#topic');
|
||||||
centerFieldImage.alt = "7 vs. Wild Logo";
|
|
||||||
centerFieldImage.parentElement.addEventListener('contextmenu', ev => {
|
|
||||||
ev.preventDefault();
|
|
||||||
centerFieldImage.parentElement.classList.remove('bingo');
|
|
||||||
});
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reads the seed from URL Parameter or generates new seed
|
* Reads the seed from URL Parameter or generates new seed
|
||||||
@ -89,6 +123,25 @@ if (urlParams.has('seeed')) {
|
|||||||
seed = Date.now().toString();
|
seed = Date.now().toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (urlParams.has('topic')) {
|
||||||
|
topic = urlParams.get('topic');
|
||||||
|
} else {
|
||||||
|
topic = 'tinder';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set fields, headline and center image based on topic
|
||||||
|
*/
|
||||||
|
|
||||||
|
let fields = topics[topic].fields;
|
||||||
|
|
||||||
|
topicTitle.innerText = topics[topic].title;
|
||||||
|
centerFieldImage.src = topics[topic].image;
|
||||||
|
centerFieldImage.alt = topics[topic].title + ' Logo';
|
||||||
|
centerFieldImage.parentElement.addEventListener('contextmenu', ev => {
|
||||||
|
ev.preventDefault();
|
||||||
|
centerFieldImage.parentElement.classList.remove('bingo');
|
||||||
|
});
|
||||||
|
|
||||||
const copyPermalinkToClipboard = function () {
|
const copyPermalinkToClipboard = function () {
|
||||||
const permalink = window.location.href;
|
const permalink = window.location.href;
|
||||||
@ -239,10 +292,8 @@ function mulberry32(a) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
drawTable();
|
drawTable();
|
||||||
|
|
||||||
|
|
||||||
const redrawTable = function () {
|
const redrawTable = function () {
|
||||||
winnerMessage.classList.remove('won');
|
winnerMessage.classList.remove('won');
|
||||||
allFields.forEach(elem => {
|
allFields.forEach(elem => {
|
||||||
|
Loading…
Reference in New Issue
Block a user