"use strict" import { $, delay, playSound } from './helpers.js' import { doPuzzle } from './puzzle-handler.js' // runs on site load and handles entire flow async function start(duration,puzzlelength,amount,dev){ // reset from previous $('.try-again').classList.add('hidden') $('.spy-icon').src = 'assets/spy-icon.png' playSound('assets/dialing.mp3', 0.1) // mock loading screen setInformationText('OPRETTER FORBINDELSE...') await delay(0.8) setInformationText('BYPASSER FIREWALL...') await delay(1) setInformationText('ADGANDSKODE FLAGGED; MENNESKELIG INPUT NØDVENDIG..') await delay(0.8) // hide text and show squares $('#text-container').classList.toggle('hidden') $('#number-container').classList.toggle('hidden') // activate puzzle 4 times, break on fail let submitted let answer let result = true for (let i = 0; i < amount && result; i++) { [submitted, answer] = await doPuzzle(duration,puzzlelength,dev) result = (submitted?.toLowerCase() == answer) } // hide squares and show text $('.answer-section').classList.add('hidden') $('.number-container').classList.add('hidden') $('#text-container').classList.remove('hidden') // display result setInformationText((result) ? 'system blev bypassed.' : "Systemet afviste din adgangskode.") if(!result) { $('.spy-icon').src = 'assets/failed.png' $('#answer-reveal').textContent = answer await delay(5) } fetch('https://qb-laptopgame/callback', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ success: result }) }); $(".bg").classList.add('hidden'); $('#submitted-reveal').textContent = (result) ? 'Godt arbejde..' : ((submitted == null) ? "Tiden løb ud," : `Du skrev "${submitted || ' '}",`) } function setInformationText(text){ const capitalized = text.toUpperCase() const infoText = `${capitalized.charAt(0)}${capitalized.substring(1)}` $("#loading-text").innerHTML = infoText } // count visitors window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-FUCKGOOGLETRACKING'); window.addEventListener('message', function(event){ if (event.data.action == "open") { start(event.data.duration, event.data.length,event.data.amount, event.data.dev) $(".bg").classList.remove('hidden'); } })