mirror of
				https://gitlab.crans.org/bde/nk20
				synced 2025-11-04 09:12:11 +01: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: [255, 0, 101]
 | 
						|
    })
 | 
						|
    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()
 | 
						|
  }
 | 
						|
})
 |