From 52f74fa6435494b583dc17c0710cc6059fc8aff7 Mon Sep 17 00:00:00 2001 From: s1nical Date: Fri, 9 Aug 2019 15:34:28 -0700 Subject: Konami Code ;) --- js/app.js | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) (limited to 'js') diff --git a/js/app.js b/js/app.js index 2f4d6e0..61b5d6b 100644 --- a/js/app.js +++ b/js/app.js @@ -95,3 +95,93 @@ setTimeout(function () { document.querySelector('a[href="/cdn-cgi/l/email-protection"]').href = `\x6dailto:hi\x40${location.hostname}`; })(); +// KONAMI CODE FOR ALTERNATE 90s SITE + +// a key map of allowed keys +var allowedKeys = { + 37: 'left', + 38: 'up', + 39: 'right', + 40: 'down', + 65: 'a', + 66: 'b' +}; + +// the 'official' Konami Code sequence +var konamiCode = ['up', 'up', 'down', 'down', 'left', 'right', 'left', 'right', 'b', 'a']; + +// a variable to remember the 'position' the user has reached so far. +var konamiCodePosition = 0; + +// add keydown event listener +document.addEventListener('keydown', function (e) { + // get the value of the key code from the key map + var key = allowedKeys[e.keyCode]; + // get the value of the required key from the konami code + var requiredKey = konamiCode[konamiCodePosition]; + + // compare the key with the required key + if (key == requiredKey) { + + // move to the next key in the konami code sequence + konamiCodePosition++; + + // if the last key is reached, activate cheats + if (konamiCodePosition == konamiCode.length) { + activateCheats(); + konamiCodePosition = 0; + } + } else { + konamiCodePosition = 0; + } +}); + +function activateCheats() { + + var audio = new Audio('https://s3-eu-west-1.amazonaws.com/wdildnproject2/toasty.mp3'); + audio.play(); + + window.location.href = "./konami"; +} + +var TxtRotate = function (el, toRotate, period) { + this.toRotate = toRotate; + this.el = el; + this.loopNum = 0; + this.period = parseInt(period, 10) || 2000; + this.txt = ''; + this.tick(); + this.isDeleting = false; +}; + +TxtRotate.prototype.tick = function () { + var i = this.loopNum % this.toRotate.length; + var fullTxt = this.toRotate[i]; + + if (this.isDeleting) { + this.txt = fullTxt.substring(0, this.txt.length - 1); + } else { + this.txt = fullTxt.substring(0, this.txt.length + 1); + } + + this.el.innerHTML = '' + this.txt + ''; + + var that = this; + var delta = 300 - Math.random() * 100; + + + setTimeout(function () { + that.tick(); + }, delta); +}; + +window.onload = function () { + var elements = document.getElementsByClassName('txt-rotate'); + for (var i = 0; i < elements.length; i++) { + var toRotate = elements[i].getAttribute('data-rotate'); + var period = elements[i].getAttribute('data-period'); + if (toRotate) { + new TxtRotate(elements[i], JSON.parse(toRotate), period); + } + } +}; -- cgit v1.2.3