mirror of
				https://gitlab.crans.org/bde/nk20
				synced 2025-10-31 15:50:03 +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()
 | |
|   }
 | |
| })
 |