mirror of
https://gitlab.crans.org/bde/nk20
synced 2024-12-18 13:32:28 +00:00
46 lines
1.1 KiB
JavaScript
46 lines
1.1 KiB
JavaScript
/*
|
|
* Konami code support
|
|
*/
|
|
|
|
// Cursor denote the position in konami code
|
|
let cursor = 0
|
|
const KONAMI_CODE = [38, 38, 40, 40, 37, 39, 37, 39, 66, 65]
|
|
|
|
function afterKonami () {
|
|
// Load Rythm.js
|
|
var rythmScript = document.createElement('script')
|
|
rythmScript.setAttribute('src', '//unpkg.com/rythm.js@2.2.5/rythm.min.js')
|
|
document.head.appendChild(rythmScript)
|
|
|
|
rythmScript.addEventListener('load', function () {
|
|
// Ker-Lyon audio courtesy of @adalan, ker-lyon.fr
|
|
const audioElement = new Audio('/static/song/konami.ogg')
|
|
audioElement.loop = true
|
|
audioElement.play()
|
|
|
|
const rythm = new Rythm()
|
|
rythm.connectExternalAudioElement(audioElement)
|
|
rythm.addRythm('card', 'pulse', 50, 50, {
|
|
min: 1,
|
|
max: 1.1
|
|
})
|
|
rythm.addRythm('d-flex', 'color', 50, 50, {
|
|
from: [64, 64, 64],
|
|
to: [128, 64, 128]
|
|
})
|
|
rythm.addRythm('nav-link', 'jump', 150, 50, {
|
|
min: 0,
|
|
max: 10
|
|
})
|
|
rythm.start()
|
|
})
|
|
}
|
|
|
|
// Register custom event
|
|
document.addEventListener('keydown', (e) => {
|
|
cursor = (e.keyCode === KONAMI_CODE[cursor]) ? cursor + 1 : 0
|
|
if (cursor === KONAMI_CODE.length) {
|
|
afterKonami()
|
|
}
|
|
})
|