Advertisement
Guest User

Untitled

a guest
Jun 15th, 2016
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 99.76 KB | None | 0 0
  1. http://bluegemx.cf:3000/index.js
  2. HTTP/1.1 200 OK
  3. X-Powered-By: Express
  4. Accept-Ranges: bytes
  5. Cache-Control: public, max-age=0
  6. Last-Modified: Wed, 15 Jun 2016 14:09:05 GMT
  7. ETag: W/"515a-1555464dfe8"
  8. Content-Type: application/javascript
  9. Content-Length: 20826
  10. Date: Wed, 15 Jun 2016 14:31:32 GMT
  11. 00000000: 34 01 00 00 03 00 04 00 2e de 7e 42 e8 93 2e 00 4.........~B....
  12. 00000010: d9 14 81 42 e8 93 2e 00 04 01 00 00 48 54 54 50 ...B........HTTP
  13. 00000020: 2f 31 2e 31 20 32 30 30 20 4f 4b 00 58 2d 50 6f /1.1 200 OK.X-Po
  14. 00000030: 77 65 72 65 64 2d 42 79 3a 20 45 78 70 72 65 73 wered-By: Expres
  15. 00000040: 73 00 41 63 63 65 70 74 2d 52 61 6e 67 65 73 3a s.Accept-Ranges:
  16. 00000050: 20 62 79 74 65 73 00 43 61 63 68 65 2d 43 6f 6e bytes.Cache-Con
  17. 00000060: 74 72 6f 6c 3a 20 70 75 62 6c 69 63 2c 20 6d 61 trol: public, ma
  18. 00000070: 78 2d 61 67 65 3d 30 00 4c 61 73 74 2d 4d 6f 64 x-age=0.Last-Mod
  19. 00000080: 69 66 69 65 64 3a 20 57 65 64 2c 20 31 35 20 4a ified: Wed, 15 J
  20. 00000090: 75 6e 20 32 30 31 36 20 31 34 3a 30 39 3a 30 35 un 2016 14:09:05
  21. 000000a0: 20 47 4d 54 00 45 54 61 67 3a 20 57 2f 22 35 31 GMT.ETag: W/"51
  22. 000000b0: 35 61 2d 31 35 35 35 34 36 34 64 66 65 38 22 00 5a-1555464dfe8".
  23. 000000c0: 43 6f 6e 74 65 6e 74 2d 54 79 70 65 3a 20 61 70 Content-Type: ap
  24. 000000d0: 70 6c 69 63 61 74 69 6f 6e 2f 6a 61 76 61 73 63 plication/javasc
  25. 000000e0: 72 69 70 74 00 43 6f 6e 74 65 6e 74 2d 4c 65 6e ript.Content-Len
  26. 000000f0: 67 74 68 3a 20 32 30 38 32 36 00 44 61 74 65 3a gth: 20826.Date:
  27. 00000100: 20 57 65 64 2c 20 31 35 20 4a 75 6e 20 32 30 31 Wed, 15 Jun 201
  28. 00000110: 36 20 31 34 3a 33 31 3a 33 32 20 47 4d 54 00 00 6 14:31:32 GMT..
  29. 00000120: 0c 00 00 00 38 34 2e 32 36 2e 31 31 30 2e 32 32 ....84.26.110.22
  30. 00000130: b8 0b 00 00 01 00 00 00 ........
  31. 00000000: 2f 2f 20 47 65 6e 65 72 61 74 65 64 20 62 79 20 // Generated by
  32. 00000010: 43 6f 66 66 65 65 53 63 72 69 70 74 20 31 2e 31 CoffeeScript 1.1
  33. 00000020: 30 2e 30 0a 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0.0../**********
  34. 00000030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  35. 00000040: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  36. 00000050: 2a 2a 2a 2a 2a 2a 2a 2a 0a 2a 2a 20 47 41 4d 45 ********.** GAME
  37. 00000060: 20 49 4e 49 54 49 41 4c 49 53 41 54 49 4f 4e 0a INITIALISATION.
  38. 00000070: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  39. 00000080: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  40. 00000090: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  41. 000000a0: 2a 0a 20 2a 2f 0a 76 61 72 20 4b 65 79 73 2c 20 *. */.var Keys,
  42. 000000b0: 50 6c 61 79 65 72 2c 20 63 61 6d 65 72 61 2c 20 Player, camera,
  43. 000000c0: 63 61 6e 76 61 73 2c 20 63 68 61 6e 6e 65 6c 73 canvas, channels
  44. 000000d0: 2c 20 63 68 65 63 6b 50 61 73 73 2c 20 63 74 78 , checkPass, ctx
  45. 000000e0: 2c 20 64 65 6c 74 61 54 69 6d 65 2c 20 64 69 76 , deltaTime, div
  46. 000000f0: 43 61 6e 76 61 73 2c 20 64 72 61 77 2c 20 64 72 Canvas, draw, dr
  47. 00000100: 61 77 5f 64 65 62 75 67 2c 20 65 6d 6f 6a 69 73 aw_debug, emojis
  48. 00000110: 2c 20 65 73 63 61 70 65 52 65 67 65 78 2c 20 67 , escapeRegex, g
  49. 00000120: 65 74 55 73 65 72 6e 61 6d 65 43 6f 6f 6b 69 65 etUsernameCookie
  50. 00000130: 2c 20 69 6e 69 74 2c 20 69 6e 69 74 63 68 61 74 , init, initchat
  51. 00000140: 2c 20 69 6e 69 74 67 61 6d 65 2c 20 6b 65 79 73 , initgame, keys
  52. 00000150: 2c 20 6c 61 73 74 55 70 64 61 74 65 2c 20 6c 65 , lastUpdate, le
  53. 00000160: 6e 2c 20 6c 6f 63 61 6c 50 6c 61 79 65 72 2c 20 n, localPlayer,
  54. 00000170: 6c 6f 63 61 6c 50 6c 61 79 65 72 4e 61 6d 65 2c localPlayerName,
  55. 00000180: 20 6c 6f 67 69 6e 2c 20 6c 6f 67 6f 75 74 2c 20 login, logout,
  56. 00000190: 6e 61 6d 65 2c 20 6f 6e 4b 65 79 64 6f 77 6e 2c name, onKeydown,
  57. 000001a0: 20 6f 6e 4b 65 79 75 70 2c 20 6f 6e 4d 6f 76 65 onKeyup, onMove
  58. 000001b0: 50 6c 61 79 65 72 2c 20 6f 6e 4e 65 77 50 6c 61 Player, onNewPla
  59. 000001c0: 79 65 72 2c 20 6f 6e 52 65 6d 6f 76 65 50 6c 61 yer, onRemovePla
  60. 000001d0: 79 65 72 2c 20 6f 6e 52 65 73 69 7a 65 2c 20 70 yer, onResize, p
  61. 000001e0: 61 72 73 65 4d 65 73 73 61 67 65 2c 20 70 6c 61 arseMessage, pla
  62. 000001f0: 79 65 72 42 79 49 64 2c 20 72 65 66 2c 20 72 65 yerById, ref, re
  63. 00000200: 67 69 73 74 65 72 2c 20 72 65 6d 6f 74 65 50 6c gister, remotePl
  64. 00000210: 61 79 65 72 73 2c 20 72 65 6d 6f 76 65 55 73 65 ayers, removeUse
  65. 00000220: 72 6e 61 6d 65 43 6f 6f 6b 69 65 2c 20 72 6f 6f rnameCookie, roo
  66. 00000230: 6d 2c 20 73 61 66 65 2c 20 73 65 73 73 69 6f 6e m, safe, session
  67. 00000240: 69 64 2c 20 73 65 74 47 61 6d 65 45 76 65 6e 74 id, setGameEvent
  68. 00000250: 48 61 6e 64 6c 65 72 73 2c 20 73 65 74 55 73 65 Handlers, setUse
  69. 00000260: 72 6e 61 6d 65 43 6f 6f 6b 69 65 2c 20 73 65 74 rnameCookie, set
  70. 00000270: 73 74 61 74 75 73 2c 20 73 6f 63 6b 65 74 2c 20 status, socket,
  71. 00000280: 74 69 63 6b 2c 20 75 70 64 61 74 65 2c 20 75 73 tick, update, us
  72. 00000290: 65 72 6e 61 6d 65 3b 0a 0a 6f 6e 4b 65 79 64 6f ername;..onKeydo
  73. 000002a0: 77 6e 20 3d 20 66 75 6e 63 74 69 6f 6e 28 65 29 wn = function(e)
  74. 000002b0: 20 7b 0a 20 20 69 66 20 28 6c 6f 63 61 6c 50 6c {. if (localPl
  75. 000002c0: 61 79 65 72 29 20 7b 0a 20 20 20 20 6b 65 79 73 ayer) {. keys
  76. 000002d0: 2e 6f 6e 4b 65 79 44 6f 77 6e 28 65 29 3b 0a 20 .onKeyDown(e);.
  77. 000002e0: 20 7d 0a 7d 3b 0a 0a 6f 6e 4b 65 79 75 70 20 3d }.};..onKeyup =
  78. 000002f0: 20 66 75 6e 63 74 69 6f 6e 28 65 29 20 7b 0a 20 function(e) {.
  79. 00000300: 20 69 66 20 28 6c 6f 63 61 6c 50 6c 61 79 65 72 if (localPlayer
  80. 00000310: 29 20 7b 0a 20 20 20 20 6b 65 79 73 2e 6f 6e 4b ) {. keys.onK
  81. 00000320: 65 79 55 70 28 65 29 3b 0a 20 20 7d 0a 7d 3b 0a eyUp(e);. }.};.
  82. 00000330: 0a 6f 6e 52 65 73 69 7a 65 20 3d 20 66 75 6e 63 .onResize = func
  83. 00000340: 74 69 6f 6e 28 65 29 20 7b 0a 20 20 63 61 6e 76 tion(e) {. canv
  84. 00000350: 61 73 2e 77 69 64 74 68 20 3d 20 64 69 76 43 61 as.width = divCa
  85. 00000360: 6e 76 61 73 2e 6f 66 66 73 65 74 57 69 64 74 68 nvas.offsetWidth
  86. 00000370: 3b 0a 20 20 63 61 6e 76 61 73 2e 68 65 69 67 68 ;. canvas.heigh
  87. 00000380: 74 20 3d 20 64 69 76 43 61 6e 76 61 73 2e 6f 66 t = divCanvas.of
  88. 00000390: 66 73 65 74 48 65 69 67 68 74 3b 0a 20 20 63 61 fsetHeight;. ca
  89. 000003a0: 6d 65 72 61 20 3d 20 6e 65 77 20 47 61 6d 65 2e mera = new Game.
  90. 000003b0: 43 61 6d 65 72 61 28 30 2c 20 30 2c 20 63 61 6e Camera(0, 0, can
  91. 000003c0: 76 61 73 2e 77 69 64 74 68 2c 20 63 61 6e 76 61 vas.width, canva
  92. 000003d0: 73 2e 68 65 69 67 68 74 2c 20 72 6f 6f 6d 2e 77 s.height, room.w
  93. 000003e0: 69 64 74 68 2c 20 72 6f 6f 6d 2e 68 65 69 67 68 idth, room.heigh
  94. 000003f0: 74 29 3b 0a 20 20 63 61 6d 65 72 61 2e 66 6f 6c t);. camera.fol
  95. 00000400: 6c 6f 77 28 6c 6f 63 61 6c 50 6c 61 79 65 72 2c low(localPlayer,
  96. 00000410: 20 63 61 6e 76 61 73 2e 77 69 64 74 68 20 2f 20 canvas.width /
  97. 00000420: 32 2c 20 63 61 6e 76 61 73 2e 68 65 69 67 68 74 2, canvas.height
  98. 00000430: 20 2f 20 32 29 3b 0a 7d 3b 0a 0a 6f 6e 4e 65 77 / 2);.};..onNew
  99. 00000440: 50 6c 61 79 65 72 20 3d 20 66 75 6e 63 74 69 6f Player = functio
  100. 00000450: 6e 28 64 61 74 61 29 20 7b 0a 20 20 76 61 72 20 n(data) {. var
  101. 00000460: 6e 65 77 50 6c 61 79 65 72 3b 0a 20 20 63 6f 6e newPlayer;. con
  102. 00000470: 73 6f 6c 65 2e 6c 6f 67 28 27 4e 65 77 20 70 6c sole.log('New pl
  103. 00000480: 61 79 65 72 20 63 6f 6e 6e 65 63 74 65 64 3a 20 ayer connected:
  104. 00000490: 27 20 2b 20 64 61 74 61 2e 69 64 29 3b 0a 20 20 ' + data.id);.
  105. 000004a0: 6e 65 77 50 6c 61 79 65 72 20 3d 20 6e 65 77 20 newPlayer = new
  106. 000004b0: 50 6c 61 79 65 72 28 64 61 74 61 2e 78 2c 20 64 Player(data.x, d
  107. 000004c0: 61 74 61 2e 79 2c 20 64 61 74 61 2e 6e 61 6d 65 ata.y, data.name
  108. 000004d0: 29 3b 0a 20 20 6e 65 77 50 6c 61 79 65 72 2e 69 );. newPlayer.i
  109. 000004e0: 64 20 3d 20 64 61 74 61 2e 69 64 3b 0a 20 20 6e d = data.id;. n
  110. 000004f0: 65 77 50 6c 61 79 65 72 2e 6e 61 6d 65 20 3d 20 ewPlayer.name =
  111. 00000500: 64 61 74 61 2e 6e 61 6d 65 3b 0a 20 20 72 65 6d data.name;. rem
  112. 00000510: 6f 74 65 50 6c 61 79 65 72 73 2e 70 75 73 68 28 otePlayers.push(
  113. 00000520: 6e 65 77 50 6c 61 79 65 72 29 3b 0a 7d 3b 0a 0a newPlayer);.};..
  114. 00000530: 6f 6e 4d 6f 76 65 50 6c 61 79 65 72 20 3d 20 66 onMovePlayer = f
  115. 00000540: 75 6e 63 74 69 6f 6e 28 64 61 74 61 29 20 7b 0a unction(data) {.
  116. 00000550: 20 20 76 61 72 20 6d 6f 76 65 50 6c 61 79 65 72 var movePlayer
  117. 00000560: 3b 0a 20 20 6d 6f 76 65 50 6c 61 79 65 72 20 3d ;. movePlayer =
  118. 00000570: 20 70 6c 61 79 65 72 42 79 49 64 28 64 61 74 61 playerById(data
  119. 00000580: 2e 69 64 29 3b 0a 20 20 69 66 20 28 21 6d 6f 76 .id);. if (!mov
  120. 00000590: 65 50 6c 61 79 65 72 29 20 7b 0a 20 20 20 20 63 ePlayer) {. c
  121. 000005a0: 6f 6e 73 6f 6c 65 2e 6c 6f 67 28 27 50 6c 61 79 onsole.log('Play
  122. 000005b0: 65 72 20 6e 6f 74 20 66 6f 75 6e 64 3a 20 27 20 er not found: '
  123. 000005c0: 2b 20 64 61 74 61 2e 69 64 29 3b 0a 20 20 20 20 + data.id);.
  124. 000005d0: 72 65 74 75 72 6e 3b 0a 20 20 7d 0a 20 20 6d 6f return;. }. mo
  125. 000005e0: 76 65 50 6c 61 79 65 72 2e 78 20 3d 20 64 61 74 vePlayer.x = dat
  126. 000005f0: 61 2e 78 3b 0a 20 20 6d 6f 76 65 50 6c 61 79 65 a.x;. movePlaye
  127. 00000600: 72 2e 79 20 3d 20 64 61 74 61 2e 79 3b 0a 7d 3b r.y = data.y;.};
  128. 00000610: 0a 0a 6f 6e 52 65 6d 6f 76 65 50 6c 61 79 65 72 ..onRemovePlayer
  129. 00000620: 20 3d 20 66 75 6e 63 74 69 6f 6e 28 64 61 74 61 = function(data
  130. 00000630: 29 20 7b 0a 20 20 76 61 72 20 72 65 6d 6f 76 65 ) {. var remove
  131. 00000640: 50 6c 61 79 65 72 3b 0a 20 20 72 65 6d 6f 76 65 Player;. remove
  132. 00000650: 50 6c 61 79 65 72 20 3d 20 70 6c 61 79 65 72 42 Player = playerB
  133. 00000660: 79 49 64 28 64 61 74 61 2e 69 64 29 3b 0a 20 20 yId(data.id);.
  134. 00000670: 69 66 20 28 21 72 65 6d 6f 76 65 50 6c 61 79 65 if (!removePlaye
  135. 00000680: 72 29 20 7b 0a 20 20 20 20 63 6f 6e 73 6f 6c 65 r) {. console
  136. 00000690: 2e 6c 6f 67 28 27 50 6c 61 79 65 72 20 6e 6f 74 .log('Player not
  137. 000006a0: 20 66 6f 75 6e 64 3a 20 27 20 2b 20 64 61 74 61 found: ' + data
  138. 000006b0: 2e 69 64 29 3b 0a 20 20 20 20 72 65 74 75 72 6e .id);. return
  139. 000006c0: 3b 0a 20 20 7d 0a 20 20 72 65 6d 6f 74 65 50 6c ;. }. remotePl
  140. 000006d0: 61 79 65 72 73 2e 73 70 6c 69 63 65 28 72 65 6d ayers.splice(rem
  141. 000006e0: 6f 74 65 50 6c 61 79 65 72 73 2e 69 6e 64 65 78 otePlayers.index
  142. 000006f0: 4f 66 28 72 65 6d 6f 76 65 50 6c 61 79 65 72 29 Of(removePlayer)
  143. 00000700: 2c 20 31 29 3b 0a 7d 3b 0a 0a 0a 2f 2a 2a 2a 2a , 1);.};.../****
  144. 00000710: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  145. 00000720: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  146. 00000730: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 2a **************.*
  147. 00000740: 2a 20 47 41 4d 45 20 41 4e 49 4d 41 54 49 4f 4e * GAME ANIMATION
  148. 00000750: 20 4c 4f 4f 50 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a LOOP.**********
  149. 00000760: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  150. 00000770: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  151. 00000780: 2a 2a 2a 2a 2a 2a 2a 0a 20 2a 2f 0a 0a 6c 61 73 *******. */..las
  152. 00000790: 74 55 70 64 61 74 65 20 3d 20 44 61 74 65 2e 6e tUpdate = Date.n
  153. 000007a0: 6f 77 28 29 3b 0a 0a 64 65 6c 74 61 54 69 6d 65 ow();..deltaTime
  154. 000007b0: 20 3d 20 76 6f 69 64 20 30 3b 0a 0a 74 69 63 6b = void 0;..tick
  155. 000007c0: 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a = function() {.
  156. 000007d0: 20 20 76 61 72 20 6e 6f 77 3b 0a 20 20 6e 6f 77 var now;. now
  157. 000007e0: 20 3d 20 44 61 74 65 2e 6e 6f 77 28 29 3b 0a 20 = Date.now();.
  158. 000007f0: 20 64 65 6c 74 61 54 69 6d 65 20 3d 20 6e 6f 77 deltaTime = now
  159. 00000800: 20 2d 20 6c 61 73 74 55 70 64 61 74 65 3b 0a 20 - lastUpdate;.
  160. 00000810: 20 6c 61 73 74 55 70 64 61 74 65 20 3d 20 6e 6f lastUpdate = no
  161. 00000820: 77 3b 0a 20 20 75 70 64 61 74 65 28 29 3b 0a 20 w;. update();.
  162. 00000830: 20 64 72 61 77 28 29 3b 0a 20 20 77 69 6e 64 6f draw();. windo
  163. 00000840: 77 2e 72 65 71 75 65 73 74 41 6e 69 6d 46 72 61 w.requestAnimFra
  164. 00000850: 6d 65 28 74 69 63 6b 29 3b 0a 7d 3b 0a 0a 0a 2f me(tick);.};.../
  165. 00000860: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  166. 00000870: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  167. 00000880: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  168. 00000890: 2a 2a 0a 2a 2a 20 47 41 4d 45 20 55 50 44 41 54 **.** GAME UPDAT
  169. 000008a0: 45 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a E.**************
  170. 000008b0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  171. 000008c0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  172. 000008d0: 2a 2a 2a 0a 20 2a 2f 0a 0a 75 70 64 61 74 65 20 ***. */..update
  173. 000008e0: 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a 20 = function() {.
  174. 000008f0: 20 69 66 20 28 6c 6f 63 61 6c 50 6c 61 79 65 72 if (localPlayer
  175. 00000900: 2e 75 70 64 61 74 65 28 6b 65 79 73 29 29 20 7b .update(keys)) {
  176. 00000910: 0a 20 20 20 20 73 6f 63 6b 65 74 2e 65 6d 69 74 . socket.emit
  177. 00000920: 28 27 6d 6f 76 65 20 70 6c 61 79 65 72 27 2c 20 ('move player',
  178. 00000930: 7b 0a 20 20 20 20 20 20 78 3a 20 6c 6f 63 61 6c {. x: local
  179. 00000940: 50 6c 61 79 65 72 2e 78 2c 0a 20 20 20 20 20 20 Player.x,.
  180. 00000950: 79 3a 20 6c 6f 63 61 6c 50 6c 61 79 65 72 2e 79 y: localPlayer.y
  181. 00000960: 0a 20 20 20 20 7d 29 3b 0a 20 20 7d 0a 20 20 63 . });. }. c
  182. 00000970: 61 6d 65 72 61 2e 75 70 64 61 74 65 28 29 3b 0a amera.update();.
  183. 00000980: 7d 3b 0a 0a 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a };.../**********
  184. 00000990: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  185. 000009a0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  186. 000009b0: 2a 2a 2a 2a 2a 2a 2a 2a 0a 2a 2a 20 47 41 4d 45 ********.** GAME
  187. 000009c0: 20 44 52 41 57 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a DRAW.**********
  188. 000009d0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  189. 000009e0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  190. 000009f0: 2a 2a 2a 2a 2a 2a 2a 0a 20 2a 2f 0a 0a 64 72 61 *******. */..dra
  191. 00000a00: 77 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b w = function() {
  192. 00000a10: 0a 20 20 76 61 72 20 69 2c 20 6c 3b 0a 20 20 63 . var i, l;. c
  193. 00000a20: 74 78 2e 63 6c 65 61 72 52 65 63 74 28 30 2c 20 tx.clearRect(0,
  194. 00000a30: 30 2c 20 63 61 6e 76 61 73 2e 77 69 64 74 68 2c 0, canvas.width,
  195. 00000a40: 20 63 61 6e 76 61 73 2e 68 65 69 67 68 74 29 3b canvas.height);
  196. 00000a50: 0a 20 20 72 6f 6f 6d 2e 6d 61 70 2e 64 72 61 77 . room.map.draw
  197. 00000a60: 28 63 74 78 2c 20 63 61 6d 65 72 61 2e 78 56 69 (ctx, camera.xVi
  198. 00000a70: 65 77 2c 20 63 61 6d 65 72 61 2e 79 56 69 65 77 ew, camera.yView
  199. 00000a80: 29 3b 0a 20 20 66 6f 72 20 28 69 20 3d 20 30 2c );. for (i = 0,
  200. 00000a90: 20 6c 20 3d 20 72 65 6d 6f 74 65 50 6c 61 79 65 l = remotePlaye
  201. 00000aa0: 72 73 2e 6c 65 6e 67 74 68 3b 20 69 20 3c 20 6c rs.length; i < l
  202. 00000ab0: 3b 20 69 2b 2b 29 20 7b 0a 20 20 20 20 72 65 6d ; i++) {. rem
  203. 00000ac0: 6f 74 65 50 6c 61 79 65 72 73 5b 69 5d 2e 64 72 otePlayers[i].dr
  204. 00000ad0: 61 77 28 63 74 78 2c 20 63 61 6d 65 72 61 2e 78 aw(ctx, camera.x
  205. 00000ae0: 56 69 65 77 2c 20 63 61 6d 65 72 61 2e 79 56 69 View, camera.yVi
  206. 00000af0: 65 77 29 3b 0a 20 20 7d 0a 20 20 6c 6f 63 61 6c ew);. }. local
  207. 00000b00: 50 6c 61 79 65 72 2e 64 72 61 77 28 63 74 78 2c Player.draw(ctx,
  208. 00000b10: 20 63 61 6d 65 72 61 2e 78 56 69 65 77 2c 20 63 camera.xView, c
  209. 00000b20: 61 6d 65 72 61 2e 79 56 69 65 77 29 3b 0a 20 20 amera.yView);.
  210. 00000b30: 64 72 61 77 5f 64 65 62 75 67 28 63 74 78 2c 20 draw_debug(ctx,
  211. 00000b40: 63 61 6d 65 72 61 2e 77 56 69 65 77 2c 20 63 61 camera.wView, ca
  212. 00000b50: 6d 65 72 61 2e 68 56 69 65 77 29 3b 0a 7d 3b 0a mera.hView);.};.
  213. 00000b60: 0a 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ../*************
  214. 00000b70: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  215. 00000b80: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  216. 00000b90: 2a 2a 2a 2a 2a 0a 2a 2a 20 47 41 4d 45 20 50 4c *****.** GAME PL
  217. 00000ba0: 41 59 45 52 20 53 45 4c 45 43 54 4f 52 0a 2a 2a AYER SELECTOR.**
  218. 00000bb0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  219. 00000bc0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  220. 00000bd0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a ***************.
  221. 00000be0: 20 2a 2f 0a 0a 70 6c 61 79 65 72 42 79 49 64 20 */..playerById
  222. 00000bf0: 3d 20 66 75 6e 63 74 69 6f 6e 28 69 64 29 20 7b = function(id) {
  223. 00000c00: 0a 20 20 76 61 72 20 69 2c 20 6c 3b 0a 20 20 66 . var i, l;. f
  224. 00000c10: 6f 72 20 28 69 20 3d 20 30 2c 20 6c 20 3d 20 72 or (i = 0, l = r
  225. 00000c20: 65 6d 6f 74 65 50 6c 61 79 65 72 73 2e 6c 65 6e emotePlayers.len
  226. 00000c30: 67 74 68 3b 20 69 20 3c 20 6c 3b 20 69 2b 2b 29 gth; i < l; i++)
  227. 00000c40: 20 7b 0a 20 20 20 20 69 66 20 28 72 65 6d 6f 74 {. if (remot
  228. 00000c50: 65 50 6c 61 79 65 72 73 5b 69 5d 2e 69 64 20 3d ePlayers[i].id =
  229. 00000c60: 3d 3d 20 69 64 29 20 7b 0a 20 20 20 20 20 20 72 == id) {. r
  230. 00000c70: 65 74 75 72 6e 20 72 65 6d 6f 74 65 50 6c 61 79 eturn remotePlay
  231. 00000c80: 65 72 73 5b 69 5d 3b 0a 20 20 20 20 7d 0a 20 20 ers[i];. }.
  232. 00000c90: 7d 0a 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 }. return false
  233. 00000ca0: 3b 0a 7d 3b 0a 0a 77 69 6e 64 6f 77 2e 72 65 71 ;.};..window.req
  234. 00000cb0: 75 65 73 74 41 6e 69 6d 46 72 61 6d 65 20 3d 20 uestAnimFrame =
  235. 00000cc0: 28 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a 20 20 (function() {.
  236. 00000cd0: 72 65 74 75 72 6e 20 77 69 6e 64 6f 77 2e 72 65 return window.re
  237. 00000ce0: 71 75 65 73 74 41 6e 69 6d 61 74 69 6f 6e 46 72 questAnimationFr
  238. 00000cf0: 61 6d 65 20 7c 7c 20 77 69 6e 64 6f 77 2e 77 65 ame || window.we
  239. 00000d00: 62 6b 69 74 52 65 71 75 65 73 74 41 6e 69 6d 61 bkitRequestAnima
  240. 00000d10: 74 69 6f 6e 46 72 61 6d 65 20 7c 7c 20 77 69 6e tionFrame || win
  241. 00000d20: 64 6f 77 2e 6d 6f 7a 52 65 71 75 65 73 74 41 6e dow.mozRequestAn
  242. 00000d30: 69 6d 61 74 69 6f 6e 46 72 61 6d 65 20 7c 7c 20 imationFrame ||
  243. 00000d40: 77 69 6e 64 6f 77 2e 6f 52 65 71 75 65 73 74 41 window.oRequestA
  244. 00000d50: 6e 69 6d 61 74 69 6f 6e 46 72 61 6d 65 20 7c 7c nimationFrame ||
  245. 00000d60: 20 77 69 6e 64 6f 77 2e 6d 73 52 65 71 75 65 73 window.msReques
  246. 00000d70: 74 41 6e 69 6d 61 74 69 6f 6e 46 72 61 6d 65 20 tAnimationFrame
  247. 00000d80: 7c 7c 20 66 75 6e 63 74 69 6f 6e 28 63 61 6c 6c || function(call
  248. 00000d90: 62 61 63 6b 2c 20 65 6c 65 6d 65 6e 74 29 20 7b back, element) {
  249. 00000da0: 0a 20 20 20 20 77 69 6e 64 6f 77 2e 73 65 74 54 . window.setT
  250. 00000db0: 69 6d 65 6f 75 74 28 63 61 6c 6c 62 61 63 6b 2c imeout(callback,
  251. 00000dc0: 20 31 30 30 30 20 2f 20 36 30 29 3b 0a 20 20 7d 1000 / 60);. }
  252. 00000dd0: 3b 0a 7d 29 28 29 3b 0a 0a 77 69 6e 64 6f 77 2e ;.})();..window.
  253. 00000de0: 47 61 6d 65 20 3d 20 7b 7d 3b 0a 0a 28 66 75 6e Game = {};..(fun
  254. 00000df0: 63 74 69 6f 6e 28 29 20 7b 0a 20 20 76 61 72 20 ction() {. var
  255. 00000e00: 52 65 63 74 61 6e 67 6c 65 3b 0a 20 20 52 65 63 Rectangle;. Rec
  256. 00000e10: 74 61 6e 67 6c 65 20 3d 20 66 75 6e 63 74 69 6f tangle = functio
  257. 00000e20: 6e 28 6c 65 66 74 2c 20 74 6f 70 2c 20 77 69 64 n(left, top, wid
  258. 00000e30: 74 68 2c 20 68 65 69 67 68 74 29 20 7b 0a 20 20 th, height) {.
  259. 00000e40: 20 20 74 68 69 73 2e 6c 65 66 74 20 3d 20 6c 65 this.left = le
  260. 00000e50: 66 74 20 7c 7c 20 30 3b 0a 20 20 20 20 74 68 69 ft || 0;. thi
  261. 00000e60: 73 2e 74 6f 70 20 3d 20 74 6f 70 20 7c 7c 20 30 s.top = top || 0
  262. 00000e70: 3b 0a 20 20 20 20 74 68 69 73 2e 77 69 64 74 68 ;. this.width
  263. 00000e80: 20 3d 20 77 69 64 74 68 20 7c 7c 20 30 3b 0a 20 = width || 0;.
  264. 00000e90: 20 20 20 74 68 69 73 2e 68 65 69 67 68 74 20 3d this.height =
  265. 00000ea0: 20 68 65 69 67 68 74 20 7c 7c 20 30 3b 0a 20 20 height || 0;.
  266. 00000eb0: 20 20 74 68 69 73 2e 72 69 67 68 74 20 3d 20 74 this.right = t
  267. 00000ec0: 68 69 73 2e 6c 65 66 74 20 2b 20 74 68 69 73 2e his.left + this.
  268. 00000ed0: 77 69 64 74 68 3b 0a 20 20 20 20 74 68 69 73 2e width;. this.
  269. 00000ee0: 62 6f 74 74 6f 6d 20 3d 20 74 68 69 73 2e 74 6f bottom = this.to
  270. 00000ef0: 70 20 2b 20 74 68 69 73 2e 68 65 69 67 68 74 3b p + this.height;
  271. 00000f00: 0a 20 20 7d 3b 0a 20 20 52 65 63 74 61 6e 67 6c . };. Rectangl
  272. 00000f10: 65 2e 70 72 6f 74 6f 74 79 70 65 2e 73 65 74 20 e.prototype.set
  273. 00000f20: 3d 20 66 75 6e 63 74 69 6f 6e 28 6c 65 66 74 2c = function(left,
  274. 00000f30: 20 74 6f 70 2c 20 77 69 64 74 68 2c 20 68 65 69 top, width, hei
  275. 00000f40: 67 68 74 29 20 7b 0a 20 20 20 20 74 68 69 73 2e ght) {. this.
  276. 00000f50: 6c 65 66 74 20 3d 20 6c 65 66 74 3b 0a 20 20 20 left = left;.
  277. 00000f60: 20 74 68 69 73 2e 74 6f 70 20 3d 20 74 6f 70 3b this.top = top;
  278. 00000f70: 0a 20 20 20 20 74 68 69 73 2e 77 69 64 74 68 20 . this.width
  279. 00000f80: 3d 20 77 69 64 74 68 20 7c 7c 20 74 68 69 73 2e = width || this.
  280. 00000f90: 77 69 64 74 68 3b 0a 20 20 20 20 74 68 69 73 2e width;. this.
  281. 00000fa0: 68 65 69 67 68 74 20 3d 20 68 65 69 67 68 74 20 height = height
  282. 00000fb0: 7c 7c 20 74 68 69 73 2e 68 65 69 67 68 74 3b 0a || this.height;.
  283. 00000fc0: 20 20 20 20 74 68 69 73 2e 72 69 67 68 74 20 3d this.right =
  284. 00000fd0: 20 74 68 69 73 2e 6c 65 66 74 20 2b 20 74 68 69 this.left + thi
  285. 00000fe0: 73 2e 77 69 64 74 68 3b 0a 20 20 20 20 74 68 69 s.width;. thi
  286. 00000ff0: 73 2e 62 6f 74 74 6f 6d 20 3d 20 74 68 69 73 2e s.bottom = this.
  287. 00001000: 74 6f 70 20 2b 20 74 68 69 73 2e 68 65 69 67 68 top + this.heigh
  288. 00001010: 74 3b 0a 20 20 7d 3b 0a 20 20 52 65 63 74 61 6e t;. };. Rectan
  289. 00001020: 67 6c 65 2e 70 72 6f 74 6f 74 79 70 65 2e 77 69 gle.prototype.wi
  290. 00001030: 74 68 69 6e 20 3d 20 66 75 6e 63 74 69 6f 6e 28 thin = function(
  291. 00001040: 72 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 r) {. return
  292. 00001050: 72 2e 6c 65 66 74 20 3c 3d 20 74 68 69 73 2e 6c r.left <= this.l
  293. 00001060: 65 66 74 20 26 26 20 72 2e 72 69 67 68 74 20 3e eft && r.right >
  294. 00001070: 3d 20 74 68 69 73 2e 72 69 67 68 74 20 26 26 20 = this.right &&
  295. 00001080: 72 2e 74 6f 70 20 3c 3d 20 74 68 69 73 2e 74 6f r.top <= this.to
  296. 00001090: 70 20 26 26 20 72 2e 62 6f 74 74 6f 6d 20 3e 3d p && r.bottom >=
  297. 000010a0: 20 74 68 69 73 2e 62 6f 74 74 6f 6d 3b 0a 20 20 this.bottom;.
  298. 000010b0: 7d 3b 0a 20 20 52 65 63 74 61 6e 67 6c 65 2e 70 };. Rectangle.p
  299. 000010c0: 72 6f 74 6f 74 79 70 65 2e 6f 76 65 72 6c 61 70 rototype.overlap
  300. 000010d0: 73 20 3d 20 66 75 6e 63 74 69 6f 6e 28 72 29 20 s = function(r)
  301. 000010e0: 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 {. return thi
  302. 000010f0: 73 2e 6c 65 66 74 20 3c 20 72 2e 72 69 67 68 74 s.left < r.right
  303. 00001100: 20 26 26 20 72 2e 6c 65 66 74 20 3c 20 74 68 69 && r.left < thi
  304. 00001110: 73 2e 72 69 67 68 74 20 26 26 20 74 68 69 73 2e s.right && this.
  305. 00001120: 74 6f 70 20 3c 20 72 2e 62 6f 74 74 6f 6d 20 26 top < r.bottom &
  306. 00001130: 26 20 72 2e 74 6f 70 20 3c 20 74 68 69 73 2e 62 & r.top < this.b
  307. 00001140: 6f 74 74 6f 6d 3b 0a 20 20 7d 3b 0a 20 20 47 61 ottom;. };. Ga
  308. 00001150: 6d 65 2e 52 65 63 74 61 6e 67 6c 65 20 3d 20 52 me.Rectangle = R
  309. 00001160: 65 63 74 61 6e 67 6c 65 3b 0a 7d 29 28 29 3b 0a ectangle;.})();.
  310. 00001170: 0a 28 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a 20 .(function() {.
  311. 00001180: 20 76 61 72 20 41 58 49 53 2c 20 43 61 6d 65 72 var AXIS, Camer
  312. 00001190: 61 3b 0a 20 20 41 58 49 53 20 3d 20 7b 0a 20 20 a;. AXIS = {.
  313. 000011a0: 20 20 4e 4f 4e 45 3a 20 27 6e 6f 6e 65 27 2c 0a NONE: 'none',.
  314. 000011b0: 20 20 20 20 48 4f 52 49 5a 4f 4e 54 41 4c 3a 20 HORIZONTAL:
  315. 000011c0: 27 68 6f 72 69 7a 6f 6e 74 61 6c 27 2c 0a 20 20 'horizontal',.
  316. 000011d0: 20 20 56 45 52 54 49 43 41 4c 3a 20 27 76 65 72 VERTICAL: 'ver
  317. 000011e0: 74 69 63 61 6c 27 2c 0a 20 20 20 20 42 4f 54 48 tical',. BOTH
  318. 000011f0: 3a 20 27 62 6f 74 68 27 0a 20 20 7d 3b 0a 20 20 : 'both'. };.
  319. 00001200: 43 61 6d 65 72 61 20 3d 20 66 75 6e 63 74 69 6f Camera = functio
  320. 00001210: 6e 28 78 56 69 65 77 2c 20 79 56 69 65 77 2c 20 n(xView, yView,
  321. 00001220: 63 61 6e 76 61 73 57 69 64 74 68 2c 20 63 61 6e canvasWidth, can
  322. 00001230: 76 61 73 48 65 69 67 68 74 2c 20 77 6f 72 6c 64 vasHeight, world
  323. 00001240: 57 69 64 74 68 2c 20 77 6f 72 6c 64 48 65 69 67 Width, worldHeig
  324. 00001250: 68 74 29 20 7b 0a 20 20 20 20 74 68 69 73 2e 78 ht) {. this.x
  325. 00001260: 56 69 65 77 20 3d 20 78 56 69 65 77 20 7c 7c 20 View = xView ||
  326. 00001270: 30 3b 0a 20 20 20 20 74 68 69 73 2e 79 56 69 65 0;. this.yVie
  327. 00001280: 77 20 3d 20 79 56 69 65 77 20 7c 7c 20 30 3b 0a w = yView || 0;.
  328. 00001290: 20 20 20 20 74 68 69 73 2e 78 44 65 61 64 5a 6f this.xDeadZo
  329. 000012a0: 6e 65 20 3d 20 30 3b 0a 20 20 20 20 74 68 69 73 ne = 0;. this
  330. 000012b0: 2e 79 44 65 61 64 5a 6f 6e 65 20 3d 20 30 3b 0a .yDeadZone = 0;.
  331. 000012c0: 20 20 20 20 74 68 69 73 2e 77 56 69 65 77 20 3d this.wView =
  332. 000012d0: 20 63 61 6e 76 61 73 57 69 64 74 68 3b 0a 20 20 canvasWidth;.
  333. 000012e0: 20 20 74 68 69 73 2e 68 56 69 65 77 20 3d 20 63 this.hView = c
  334. 000012f0: 61 6e 76 61 73 48 65 69 67 68 74 3b 0a 20 20 20 anvasHeight;.
  335. 00001300: 20 74 68 69 73 2e 61 78 69 73 20 3d 20 41 58 49 this.axis = AXI
  336. 00001310: 53 2e 42 4f 54 48 3b 0a 20 20 20 20 74 68 69 73 S.BOTH;. this
  337. 00001320: 2e 66 6f 6c 6c 6f 77 65 64 20 3d 20 6e 75 6c 6c .followed = null
  338. 00001330: 3b 0a 20 20 20 20 74 68 69 73 2e 76 69 65 77 70 ;. this.viewp
  339. 00001340: 6f 72 74 52 65 63 74 20 3d 20 6e 65 77 20 47 61 ortRect = new Ga
  340. 00001350: 6d 65 2e 52 65 63 74 61 6e 67 6c 65 28 74 68 69 me.Rectangle(thi
  341. 00001360: 73 2e 78 56 69 65 77 2c 20 74 68 69 73 2e 79 56 s.xView, this.yV
  342. 00001370: 69 65 77 2c 20 74 68 69 73 2e 77 56 69 65 77 2c iew, this.wView,
  343. 00001380: 20 74 68 69 73 2e 68 56 69 65 77 29 3b 0a 20 20 this.hView);.
  344. 00001390: 20 20 74 68 69 73 2e 77 6f 72 6c 64 52 65 63 74 this.worldRect
  345. 000013a0: 20 3d 20 6e 65 77 20 47 61 6d 65 2e 52 65 63 74 = new Game.Rect
  346. 000013b0: 61 6e 67 6c 65 28 30 2c 20 30 2c 20 77 6f 72 6c angle(0, 0, worl
  347. 000013c0: 64 57 69 64 74 68 2c 20 77 6f 72 6c 64 48 65 69 dWidth, worldHei
  348. 000013d0: 67 68 74 29 3b 0a 20 20 7d 3b 0a 20 20 43 61 6d ght);. };. Cam
  349. 000013e0: 65 72 61 2e 70 72 6f 74 6f 74 79 70 65 2e 66 6f era.prototype.fo
  350. 000013f0: 6c 6c 6f 77 20 3d 20 66 75 6e 63 74 69 6f 6e 28 llow = function(
  351. 00001400: 67 61 6d 65 4f 62 6a 65 63 74 2c 20 78 44 65 61 gameObject, xDea
  352. 00001410: 64 5a 6f 6e 65 2c 20 79 44 65 61 64 5a 6f 6e 65 dZone, yDeadZone
  353. 00001420: 29 20 7b 0a 20 20 20 20 74 68 69 73 2e 66 6f 6c ) {. this.fol
  354. 00001430: 6c 6f 77 65 64 20 3d 20 67 61 6d 65 4f 62 6a 65 lowed = gameObje
  355. 00001440: 63 74 3b 0a 20 20 20 20 74 68 69 73 2e 78 44 65 ct;. this.xDe
  356. 00001450: 61 64 5a 6f 6e 65 20 3d 20 78 44 65 61 64 5a 6f adZone = xDeadZo
  357. 00001460: 6e 65 3b 0a 20 20 20 20 74 68 69 73 2e 79 44 65 ne;. this.yDe
  358. 00001470: 61 64 5a 6f 6e 65 20 3d 20 79 44 65 61 64 5a 6f adZone = yDeadZo
  359. 00001480: 6e 65 3b 0a 20 20 7d 3b 0a 20 20 43 61 6d 65 72 ne;. };. Camer
  360. 00001490: 61 2e 70 72 6f 74 6f 74 79 70 65 2e 75 70 64 61 a.prototype.upda
  361. 000014a0: 74 65 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 te = function()
  362. 000014b0: 7b 0a 20 20 20 20 69 66 20 28 74 68 69 73 2e 66 {. if (this.f
  363. 000014c0: 6f 6c 6c 6f 77 65 64 20 21 3d 3d 20 6e 75 6c 6c ollowed !== null
  364. 000014d0: 29 20 7b 0a 20 20 20 20 20 20 69 66 20 28 74 68 ) {. if (th
  365. 000014e0: 69 73 2e 61 78 69 73 20 3d 3d 3d 20 41 58 49 53 is.axis === AXIS
  366. 000014f0: 2e 48 4f 52 49 5a 4f 4e 54 41 4c 20 7c 7c 20 74 .HORIZONTAL || t
  367. 00001500: 68 69 73 2e 61 78 69 73 20 3d 3d 3d 20 41 58 49 his.axis === AXI
  368. 00001510: 53 2e 42 4f 54 48 29 20 7b 0a 20 20 20 20 20 20 S.BOTH) {.
  369. 00001520: 20 20 69 66 20 28 74 68 69 73 2e 66 6f 6c 6c 6f if (this.follo
  370. 00001530: 77 65 64 2e 78 20 2d 20 74 68 69 73 2e 78 56 69 wed.x - this.xVi
  371. 00001540: 65 77 20 2b 20 74 68 69 73 2e 78 44 65 61 64 5a ew + this.xDeadZ
  372. 00001550: 6f 6e 65 20 3e 20 74 68 69 73 2e 77 56 69 65 77 one > this.wView
  373. 00001560: 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 74 68 ) {. th
  374. 00001570: 69 73 2e 78 56 69 65 77 20 3d 20 74 68 69 73 2e is.xView = this.
  375. 00001580: 66 6f 6c 6c 6f 77 65 64 2e 78 20 2d 20 28 74 68 followed.x - (th
  376. 00001590: 69 73 2e 77 56 69 65 77 20 2d 20 74 68 69 73 2e is.wView - this.
  377. 000015a0: 78 44 65 61 64 5a 6f 6e 65 29 3b 0a 20 20 20 20 xDeadZone);.
  378. 000015b0: 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 74 } else if (t
  379. 000015c0: 68 69 73 2e 66 6f 6c 6c 6f 77 65 64 2e 78 20 2d his.followed.x -
  380. 000015d0: 20 74 68 69 73 2e 78 44 65 61 64 5a 6f 6e 65 20 this.xDeadZone
  381. 000015e0: 3c 20 74 68 69 73 2e 78 56 69 65 77 29 20 7b 0a < this.xView) {.
  382. 000015f0: 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 78 this.x
  383. 00001600: 56 69 65 77 20 3d 20 74 68 69 73 2e 66 6f 6c 6c View = this.foll
  384. 00001610: 6f 77 65 64 2e 78 20 2d 20 74 68 69 73 2e 78 44 owed.x - this.xD
  385. 00001620: 65 61 64 5a 6f 6e 65 3b 0a 20 20 20 20 20 20 20 eadZone;.
  386. 00001630: 20 7d 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 }. }.
  387. 00001640: 20 69 66 20 28 74 68 69 73 2e 61 78 69 73 20 3d if (this.axis =
  388. 00001650: 3d 3d 20 41 58 49 53 2e 56 45 52 54 49 43 41 4c == AXIS.VERTICAL
  389. 00001660: 20 7c 7c 20 74 68 69 73 2e 61 78 69 73 20 3d 3d || this.axis ==
  390. 00001670: 3d 20 41 58 49 53 2e 42 4f 54 48 29 20 7b 0a 20 = AXIS.BOTH) {.
  391. 00001680: 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e if (this.
  392. 00001690: 66 6f 6c 6c 6f 77 65 64 2e 79 20 2d 20 74 68 69 followed.y - thi
  393. 000016a0: 73 2e 79 56 69 65 77 20 2b 20 74 68 69 73 2e 79 s.yView + this.y
  394. 000016b0: 44 65 61 64 5a 6f 6e 65 20 3e 20 74 68 69 73 2e DeadZone > this.
  395. 000016c0: 68 56 69 65 77 29 20 7b 0a 20 20 20 20 20 20 20 hView) {.
  396. 000016d0: 20 20 20 74 68 69 73 2e 79 56 69 65 77 20 3d 20 this.yView =
  397. 000016e0: 74 68 69 73 2e 66 6f 6c 6c 6f 77 65 64 2e 79 20 this.followed.y
  398. 000016f0: 2d 20 28 74 68 69 73 2e 68 56 69 65 77 20 2d 20 - (this.hView -
  399. 00001700: 74 68 69 73 2e 79 44 65 61 64 5a 6f 6e 65 29 3b this.yDeadZone);
  400. 00001710: 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 . } else
  401. 00001720: 69 66 20 28 74 68 69 73 2e 66 6f 6c 6c 6f 77 65 if (this.followe
  402. 00001730: 64 2e 79 20 2d 20 74 68 69 73 2e 79 44 65 61 64 d.y - this.yDead
  403. 00001740: 5a 6f 6e 65 20 3c 20 74 68 69 73 2e 79 56 69 65 Zone < this.yVie
  404. 00001750: 77 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 74 w) {. t
  405. 00001760: 68 69 73 2e 79 56 69 65 77 20 3d 20 74 68 69 73 his.yView = this
  406. 00001770: 2e 66 6f 6c 6c 6f 77 65 64 2e 79 20 2d 20 74 68 .followed.y - th
  407. 00001780: 69 73 2e 79 44 65 61 64 5a 6f 6e 65 3b 0a 20 20 is.yDeadZone;.
  408. 00001790: 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 7d 0a }. }.
  409. 000017a0: 20 20 20 20 7d 0a 20 20 20 20 74 68 69 73 2e 76 }. this.v
  410. 000017b0: 69 65 77 70 6f 72 74 52 65 63 74 2e 73 65 74 28 iewportRect.set(
  411. 000017c0: 74 68 69 73 2e 78 56 69 65 77 2c 20 74 68 69 73 this.xView, this
  412. 000017d0: 2e 79 56 69 65 77 29 3b 0a 20 20 20 20 69 66 20 .yView);. if
  413. 000017e0: 28 21 74 68 69 73 2e 76 69 65 77 70 6f 72 74 52 (!this.viewportR
  414. 000017f0: 65 63 74 2e 77 69 74 68 69 6e 28 74 68 69 73 2e ect.within(this.
  415. 00001800: 77 6f 72 6c 64 52 65 63 74 29 29 20 7b 0a 20 20 worldRect)) {.
  416. 00001810: 20 20 20 20 69 66 20 28 74 68 69 73 2e 76 69 65 if (this.vie
  417. 00001820: 77 70 6f 72 74 52 65 63 74 2e 6c 65 66 74 20 3c wportRect.left <
  418. 00001830: 20 74 68 69 73 2e 77 6f 72 6c 64 52 65 63 74 2e this.worldRect.
  419. 00001840: 6c 65 66 74 29 20 7b 0a 20 20 20 20 20 20 20 20 left) {.
  420. 00001850: 74 68 69 73 2e 78 56 69 65 77 20 3d 20 74 68 69 this.xView = thi
  421. 00001860: 73 2e 77 6f 72 6c 64 52 65 63 74 2e 6c 65 66 74 s.worldRect.left
  422. 00001870: 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 ;. }.
  423. 00001880: 69 66 20 28 74 68 69 73 2e 76 69 65 77 70 6f 72 if (this.viewpor
  424. 00001890: 74 52 65 63 74 2e 74 6f 70 20 3c 20 74 68 69 73 tRect.top < this
  425. 000018a0: 2e 77 6f 72 6c 64 52 65 63 74 2e 74 6f 70 29 20 .worldRect.top)
  426. 000018b0: 7b 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 79 {. this.y
  427. 000018c0: 56 69 65 77 20 3d 20 74 68 69 73 2e 77 6f 72 6c View = this.worl
  428. 000018d0: 64 52 65 63 74 2e 74 6f 70 3b 0a 20 20 20 20 20 dRect.top;.
  429. 000018e0: 20 7d 0a 20 20 20 20 20 20 69 66 20 28 74 68 69 }. if (thi
  430. 000018f0: 73 2e 76 69 65 77 70 6f 72 74 52 65 63 74 2e 72 s.viewportRect.r
  431. 00001900: 69 67 68 74 20 3e 20 74 68 69 73 2e 77 6f 72 6c ight > this.worl
  432. 00001910: 64 52 65 63 74 2e 72 69 67 68 74 29 20 7b 0a 20 dRect.right) {.
  433. 00001920: 20 20 20 20 20 20 20 74 68 69 73 2e 78 56 69 65 this.xVie
  434. 00001930: 77 20 3d 20 74 68 69 73 2e 77 6f 72 6c 64 52 65 w = this.worldRe
  435. 00001940: 63 74 2e 72 69 67 68 74 20 2d 20 74 68 69 73 2e ct.right - this.
  436. 00001950: 77 56 69 65 77 3b 0a 20 20 20 20 20 20 7d 0a 20 wView;. }.
  437. 00001960: 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 76 69 if (this.vi
  438. 00001970: 65 77 70 6f 72 74 52 65 63 74 2e 62 6f 74 74 6f ewportRect.botto
  439. 00001980: 6d 20 3e 20 74 68 69 73 2e 77 6f 72 6c 64 52 65 m > this.worldRe
  440. 00001990: 63 74 2e 62 6f 74 74 6f 6d 29 20 7b 0a 20 20 20 ct.bottom) {.
  441. 000019a0: 20 20 20 20 20 74 68 69 73 2e 79 56 69 65 77 20 this.yView
  442. 000019b0: 3d 20 74 68 69 73 2e 77 6f 72 6c 64 52 65 63 74 = this.worldRect
  443. 000019c0: 2e 62 6f 74 74 6f 6d 20 2d 20 74 68 69 73 2e 68 .bottom - this.h
  444. 000019d0: 56 69 65 77 3b 0a 20 20 20 20 20 20 7d 0a 20 20 View;. }.
  445. 000019e0: 20 20 7d 0a 20 20 7d 3b 0a 20 20 47 61 6d 65 2e }. };. Game.
  446. 000019f0: 43 61 6d 65 72 61 20 3d 20 43 61 6d 65 72 61 3b Camera = Camera;
  447. 00001a00: 0a 7d 29 28 29 3b 0a 0a 28 66 75 6e 63 74 69 6f .})();..(functio
  448. 00001a10: 6e 28 29 20 7b 0a 20 20 76 61 72 20 4d 61 70 3b n() {. var Map;
  449. 00001a20: 0a 20 20 4d 61 70 20 3d 20 66 75 6e 63 74 69 6f . Map = functio
  450. 00001a30: 6e 28 77 69 64 74 68 2c 20 68 65 69 67 68 74 29 n(width, height)
  451. 00001a40: 20 7b 0a 20 20 20 20 74 68 69 73 2e 77 69 64 74 {. this.widt
  452. 00001a50: 68 20 3d 20 77 69 64 74 68 3b 0a 20 20 20 20 74 h = width;. t
  453. 00001a60: 68 69 73 2e 68 65 69 67 68 74 20 3d 20 68 65 69 his.height = hei
  454. 00001a70: 67 68 74 3b 0a 20 20 20 20 74 68 69 73 2e 69 6d ght;. this.im
  455. 00001a80: 61 67 65 20 3d 20 6e 75 6c 6c 3b 0a 20 20 7d 3b age = null;. };
  456. 00001a90: 0a 20 20 4d 61 70 2e 70 72 6f 74 6f 74 79 70 65 . Map.prototype
  457. 00001aa0: 2e 67 65 6e 65 72 61 74 65 20 3d 20 66 75 6e 63 .generate = func
  458. 00001ab0: 74 69 6f 6e 28 29 20 7b 0a 20 20 20 20 76 61 72 tion() {. var
  459. 00001ac0: 20 63 6f 6c 6f 72 2c 20 63 6f 6c 75 6d 6e 73 2c color, columns,
  460. 00001ad0: 20 63 74 78 2c 20 69 2c 20 6a 2c 20 72 6f 77 73 ctx, i, j, rows
  461. 00001ae0: 2c 20 78 2c 20 79 3b 0a 20 20 20 20 63 74 78 20 , x, y;. ctx
  462. 00001af0: 3d 20 64 6f 63 75 6d 65 6e 74 2e 63 72 65 61 74 = document.creat
  463. 00001b00: 65 45 6c 65 6d 65 6e 74 28 27 63 61 6e 76 61 73 eElement('canvas
  464. 00001b10: 27 29 2e 67 65 74 43 6f 6e 74 65 78 74 28 27 32 ').getContext('2
  465. 00001b20: 64 27 29 3b 0a 20 20 20 20 63 74 78 2e 63 61 6e d');. ctx.can
  466. 00001b30: 76 61 73 2e 77 69 64 74 68 20 3d 20 74 68 69 73 vas.width = this
  467. 00001b40: 2e 77 69 64 74 68 3b 0a 20 20 20 20 63 74 78 2e .width;. ctx.
  468. 00001b50: 63 61 6e 76 61 73 2e 68 65 69 67 68 74 20 3d 20 canvas.height =
  469. 00001b60: 74 68 69 73 2e 68 65 69 67 68 74 3b 0a 20 20 20 this.height;.
  470. 00001b70: 20 72 6f 77 73 20 3d 20 7e 7e 28 74 68 69 73 2e rows = ~~(this.
  471. 00001b80: 77 69 64 74 68 20 2f 20 34 34 29 20 2b 20 31 3b width / 44) + 1;
  472. 00001b90: 0a 20 20 20 20 63 6f 6c 75 6d 6e 73 20 3d 20 7e . columns = ~
  473. 00001ba0: 7e 28 74 68 69 73 2e 68 65 69 67 68 74 20 2f 20 ~(this.height /
  474. 00001bb0: 34 34 29 20 2b 20 31 3b 0a 20 20 20 20 63 6f 6c 44) + 1;. col
  475. 00001bc0: 6f 72 20 3d 20 27 79 65 6c 6c 6f 77 27 3b 0a 20 or = 'yellow';.
  476. 00001bd0: 20 20 20 63 74 78 2e 73 61 76 65 28 29 3b 0a 20 ctx.save();.
  477. 00001be0: 20 20 20 63 74 78 2e 66 69 6c 6c 53 74 79 6c 65 ctx.fillStyle
  478. 00001bf0: 20 3d 20 63 6f 6c 6f 72 3b 0a 20 20 20 20 78 20 = color;. x
  479. 00001c00: 3d 20 32 3b 0a 20 20 20 20 69 20 3d 20 30 3b 0a = 2;. i = 0;.
  480. 00001c10: 20 20 20 20 77 68 69 6c 65 20 28 69 20 3c 20 72 while (i < r
  481. 00001c20: 6f 77 73 29 20 7b 0a 20 20 20 20 20 20 79 20 3d ows) {. y =
  482. 00001c30: 20 32 3b 0a 20 20 20 20 20 20 6a 20 3d 20 30 3b 2;. j = 0;
  483. 00001c40: 0a 20 20 20 20 20 20 77 68 69 6c 65 20 28 6a 20 . while (j
  484. 00001c50: 3c 20 63 6f 6c 75 6d 6e 73 29 20 7b 0a 20 20 20 < columns) {.
  485. 00001c60: 20 20 20 20 20 63 74 78 2e 62 65 67 69 6e 50 61 ctx.beginPa
  486. 00001c70: 74 68 28 29 3b 0a 20 20 20 20 20 20 20 20 63 74 th();. ct
  487. 00001c80: 78 2e 72 65 63 74 28 78 2c 20 79 2c 20 34 30 2c x.rect(x, y, 40,
  488. 00001c90: 20 34 30 29 3b 0a 20 20 20 20 20 20 20 20 63 6f 40);. co
  489. 00001ca0: 6c 6f 72 20 3d 20 63 6f 6c 6f 72 20 3d 3d 3d 20 lor = color ===
  490. 00001cb0: 27 79 65 6c 6c 6f 77 27 20 3f 20 27 6f 72 61 6e 'yellow' ? 'oran
  491. 00001cc0: 67 65 27 20 3a 20 27 79 65 6c 6c 6f 77 27 3b 0a ge' : 'yellow';.
  492. 00001cd0: 20 20 20 20 20 20 20 20 63 74 78 2e 66 69 6c 6c ctx.fill
  493. 00001ce0: 53 74 79 6c 65 20 3d 20 63 6f 6c 6f 72 3b 0a 20 Style = color;.
  494. 00001cf0: 20 20 20 20 20 20 20 63 74 78 2e 66 69 6c 6c 28 ctx.fill(
  495. 00001d00: 29 3b 0a 20 20 20 20 20 20 20 20 63 74 78 2e 63 );. ctx.c
  496. 00001d10: 6c 6f 73 65 50 61 74 68 28 29 3b 0a 20 20 20 20 losePath();.
  497. 00001d20: 20 20 20 20 79 20 2b 3d 20 34 34 3b 0a 20 20 20 y += 44;.
  498. 00001d30: 20 20 20 20 20 6a 2b 2b 3b 0a 20 20 20 20 20 20 j++;.
  499. 00001d40: 7d 0a 20 20 20 20 20 20 78 20 2b 3d 20 34 34 3b }. x += 44;
  500. 00001d50: 0a 20 20 20 20 20 20 69 2b 2b 3b 0a 20 20 20 20 . i++;.
  501. 00001d60: 7d 0a 20 20 20 20 63 74 78 2e 72 65 73 74 6f 72 }. ctx.restor
  502. 00001d70: 65 28 29 3b 0a 20 20 20 20 74 68 69 73 2e 69 6d e();. this.im
  503. 00001d80: 61 67 65 20 3d 20 6e 65 77 20 49 6d 61 67 65 3b age = new Image;
  504. 00001d90: 0a 20 20 20 20 74 68 69 73 2e 69 6d 61 67 65 2e . this.image.
  505. 00001da0: 73 72 63 20 3d 20 63 74 78 2e 63 61 6e 76 61 73 src = ctx.canvas
  506. 00001db0: 2e 74 6f 44 61 74 61 55 52 4c 28 27 69 6d 61 67 .toDataURL('imag
  507. 00001dc0: 65 2f 70 6e 67 27 29 3b 0a 20 20 20 20 63 74 78 e/png');. ctx
  508. 00001dd0: 20 3d 20 6e 75 6c 6c 3b 0a 20 20 7d 3b 0a 20 20 = null;. };.
  509. 00001de0: 4d 61 70 2e 70 72 6f 74 6f 74 79 70 65 2e 64 72 Map.prototype.dr
  510. 00001df0: 61 77 20 3d 20 66 75 6e 63 74 69 6f 6e 28 63 6f aw = function(co
  511. 00001e00: 6e 74 65 78 74 2c 20 78 56 69 65 77 2c 20 79 56 ntext, xView, yV
  512. 00001e10: 69 65 77 29 20 7b 0a 20 20 20 20 76 61 72 20 64 iew) {. var d
  513. 00001e20: 48 65 69 67 68 74 2c 20 64 57 69 64 74 68 2c 20 Height, dWidth,
  514. 00001e30: 64 78 2c 20 64 79 2c 20 73 48 65 69 67 68 74 2c dx, dy, sHeight,
  515. 00001e40: 20 73 57 69 64 74 68 2c 20 73 78 2c 20 73 79 3b sWidth, sx, sy;
  516. 00001e50: 0a 20 20 20 20 73 78 20 3d 20 76 6f 69 64 20 30 . sx = void 0
  517. 00001e60: 3b 0a 20 20 20 20 73 79 20 3d 20 76 6f 69 64 20 ;. sy = void
  518. 00001e70: 30 3b 0a 20 20 20 20 64 78 20 3d 20 76 6f 69 64 0;. dx = void
  519. 00001e80: 20 30 3b 0a 20 20 20 20 64 79 20 3d 20 76 6f 69 0;. dy = voi
  520. 00001e90: 64 20 30 3b 0a 20 20 20 20 73 57 69 64 74 68 20 d 0;. sWidth
  521. 00001ea0: 3d 20 76 6f 69 64 20 30 3b 0a 20 20 20 20 73 48 = void 0;. sH
  522. 00001eb0: 65 69 67 68 74 20 3d 20 76 6f 69 64 20 30 3b 0a eight = void 0;.
  523. 00001ec0: 20 20 20 20 64 57 69 64 74 68 20 3d 20 76 6f 69 dWidth = voi
  524. 00001ed0: 64 20 30 3b 0a 20 20 20 20 64 48 65 69 67 68 74 d 0;. dHeight
  525. 00001ee0: 20 3d 20 76 6f 69 64 20 30 3b 0a 20 20 20 20 73 = void 0;. s
  526. 00001ef0: 78 20 3d 20 78 56 69 65 77 3b 0a 20 20 20 20 73 x = xView;. s
  527. 00001f00: 79 20 3d 20 79 56 69 65 77 3b 0a 20 20 20 20 73 y = yView;. s
  528. 00001f10: 57 69 64 74 68 20 3d 20 63 6f 6e 74 65 78 74 2e Width = context.
  529. 00001f20: 63 61 6e 76 61 73 2e 77 69 64 74 68 3b 0a 20 20 canvas.width;.
  530. 00001f30: 20 20 73 48 65 69 67 68 74 20 3d 20 63 6f 6e 74 sHeight = cont
  531. 00001f40: 65 78 74 2e 63 61 6e 76 61 73 2e 68 65 69 67 68 ext.canvas.heigh
  532. 00001f50: 74 3b 0a 20 20 20 20 69 66 20 28 74 68 69 73 2e t;. if (this.
  533. 00001f60: 69 6d 61 67 65 2e 77 69 64 74 68 20 2d 20 73 78 image.width - sx
  534. 00001f70: 20 3c 20 73 57 69 64 74 68 29 20 7b 0a 20 20 20 < sWidth) {.
  535. 00001f80: 20 20 20 73 57 69 64 74 68 20 3d 20 74 68 69 73 sWidth = this
  536. 00001f90: 2e 69 6d 61 67 65 2e 77 69 64 74 68 20 2d 20 73 .image.width - s
  537. 00001fa0: 78 3b 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 x;. }. if
  538. 00001fb0: 28 74 68 69 73 2e 69 6d 61 67 65 2e 68 65 69 67 (this.image.heig
  539. 00001fc0: 68 74 20 2d 20 73 79 20 3c 20 73 48 65 69 67 68 ht - sy < sHeigh
  540. 00001fd0: 74 29 20 7b 0a 20 20 20 20 20 20 73 48 65 69 67 t) {. sHeig
  541. 00001fe0: 68 74 20 3d 20 74 68 69 73 2e 69 6d 61 67 65 2e ht = this.image.
  542. 00001ff0: 68 65 69 67 68 74 20 2d 20 73 79 3b 0a 20 20 20 height - sy;.
  543. 00002000: 20 7d 0a 20 20 20 20 64 78 20 3d 20 30 3b 0a 20 }. dx = 0;.
  544. 00002010: 20 20 20 64 79 20 3d 20 30 3b 0a 20 20 20 20 64 dy = 0;. d
  545. 00002020: 57 69 64 74 68 20 3d 20 73 57 69 64 74 68 3b 0a Width = sWidth;.
  546. 00002030: 20 20 20 20 64 48 65 69 67 68 74 20 3d 20 73 48 dHeight = sH
  547. 00002040: 65 69 67 68 74 3b 0a 20 20 20 20 63 6f 6e 74 65 eight;. conte
  548. 00002050: 78 74 2e 64 72 61 77 49 6d 61 67 65 28 74 68 69 xt.drawImage(thi
  549. 00002060: 73 2e 69 6d 61 67 65 2c 20 73 78 2c 20 73 79 2c s.image, sx, sy,
  550. 00002070: 20 73 57 69 64 74 68 2c 20 73 48 65 69 67 68 74 sWidth, sHeight
  551. 00002080: 2c 20 64 78 2c 20 64 79 2c 20 64 57 69 64 74 68 , dx, dy, dWidth
  552. 00002090: 2c 20 64 48 65 69 67 68 74 29 3b 0a 20 20 7d 3b , dHeight);. };
  553. 000020a0: 0a 20 20 47 61 6d 65 2e 4d 61 70 20 3d 20 4d 61 . Game.Map = Ma
  554. 000020b0: 70 3b 0a 7d 29 28 29 3b 0a 0a 0a 2f 2a 2a 2a 2a p;.})();.../****
  555. 000020c0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  556. 000020d0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  557. 000020e0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 2a **************.*
  558. 000020f0: 2a 20 47 41 4d 45 20 4b 45 59 42 4f 41 52 44 20 * GAME KEYBOARD
  559. 00002100: 43 4c 41 53 53 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a CLASS.**********
  560. 00002110: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  561. 00002120: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  562. 00002130: 2a 2a 2a 2a 2a 2a 2a 0a 20 2a 2f 0a 0a 4b 65 79 *******. */..Key
  563. 00002140: 73 20 3d 20 66 75 6e 63 74 69 6f 6e 28 75 70 2c s = function(up,
  564. 00002150: 20 6c 65 66 74 2c 20 72 69 67 68 74 2c 20 64 6f left, right, do
  565. 00002160: 77 6e 29 20 7b 0a 20 20 76 61 72 20 75 70 3b 0a wn) {. var up;.
  566. 00002170: 20 20 76 61 72 20 6c 65 66 74 3b 0a 20 20 76 61 var left;. va
  567. 00002180: 72 20 72 69 67 68 74 3b 0a 20 20 76 61 72 20 64 r right;. var d
  568. 00002190: 6f 77 6e 3b 0a 20 20 76 61 72 20 6f 6e 4b 65 79 own;. var onKey
  569. 000021a0: 44 6f 77 6e 2c 20 6f 6e 4b 65 79 55 70 3b 0a 20 Down, onKeyUp;.
  570. 000021b0: 20 75 70 20 3d 20 75 70 20 7c 7c 20 66 61 6c 73 up = up || fals
  571. 000021c0: 65 3b 0a 20 20 6c 65 66 74 20 3d 20 6c 65 66 74 e;. left = left
  572. 000021d0: 20 7c 7c 20 66 61 6c 73 65 3b 0a 20 20 72 69 67 || false;. rig
  573. 000021e0: 68 74 20 3d 20 72 69 67 68 74 20 7c 7c 20 66 61 ht = right || fa
  574. 000021f0: 6c 73 65 3b 0a 20 20 64 6f 77 6e 20 3d 20 64 6f lse;. down = do
  575. 00002200: 77 6e 20 7c 7c 20 66 61 6c 73 65 3b 0a 20 20 6f wn || false;. o
  576. 00002210: 6e 4b 65 79 44 6f 77 6e 20 3d 20 66 75 6e 63 74 nKeyDown = funct
  577. 00002220: 69 6f 6e 28 65 29 20 7b 0a 20 20 20 20 76 61 72 ion(e) {. var
  578. 00002230: 20 63 2c 20 74 68 61 74 3b 0a 20 20 20 20 74 68 c, that;. th
  579. 00002240: 61 74 20 3d 20 74 68 69 73 3b 0a 20 20 20 20 63 at = this;. c
  580. 00002250: 20 3d 20 65 2e 6b 65 79 43 6f 64 65 3b 0a 20 20 = e.keyCode;.
  581. 00002260: 20 20 73 77 69 74 63 68 20 28 63 29 20 7b 0a 20 switch (c) {.
  582. 00002270: 20 20 20 20 20 63 61 73 65 20 33 37 3a 0a 20 20 case 37:.
  583. 00002280: 20 20 20 20 20 20 74 68 61 74 2e 6c 65 66 74 20 that.left
  584. 00002290: 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 = true;.
  585. 000022a0: 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 63 61 73 break;. cas
  586. 000022b0: 65 20 33 38 3a 0a 20 20 20 20 20 20 20 20 74 68 e 38:. th
  587. 000022c0: 61 74 2e 75 70 20 3d 20 74 72 75 65 3b 0a 20 20 at.up = true;.
  588. 000022d0: 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 break;.
  589. 000022e0: 20 20 20 63 61 73 65 20 33 39 3a 0a 20 20 20 20 case 39:.
  590. 000022f0: 20 20 20 20 74 68 61 74 2e 72 69 67 68 74 20 3d that.right =
  591. 00002300: 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 62 true;. b
  592. 00002310: 72 65 61 6b 3b 0a 20 20 20 20 20 20 63 61 73 65 reak;. case
  593. 00002320: 20 34 30 3a 0a 20 20 20 20 20 20 20 20 74 68 61 40:. tha
  594. 00002330: 74 2e 64 6f 77 6e 20 3d 20 74 72 75 65 3b 0a 20 t.down = true;.
  595. 00002340: 20 20 20 7d 0a 20 20 7d 3b 0a 20 20 6f 6e 4b 65 }. };. onKe
  596. 00002350: 79 55 70 20 3d 20 66 75 6e 63 74 69 6f 6e 28 65 yUp = function(e
  597. 00002360: 29 20 7b 0a 20 20 20 20 76 61 72 20 63 2c 20 74 ) {. var c, t
  598. 00002370: 68 61 74 3b 0a 20 20 20 20 74 68 61 74 20 3d 20 hat;. that =
  599. 00002380: 74 68 69 73 3b 0a 20 20 20 20 63 20 3d 20 65 2e this;. c = e.
  600. 00002390: 6b 65 79 43 6f 64 65 3b 0a 20 20 20 20 73 77 69 keyCode;. swi
  601. 000023a0: 74 63 68 20 28 63 29 20 7b 0a 20 20 20 20 20 20 tch (c) {.
  602. 000023b0: 63 61 73 65 20 33 37 3a 0a 20 20 20 20 20 20 20 case 37:.
  603. 000023c0: 20 74 68 61 74 2e 6c 65 66 74 20 3d 20 66 61 6c that.left = fal
  604. 000023d0: 73 65 3b 0a 20 20 20 20 20 20 20 20 62 72 65 61 se;. brea
  605. 000023e0: 6b 3b 0a 20 20 20 20 20 20 63 61 73 65 20 33 38 k;. case 38
  606. 000023f0: 3a 0a 20 20 20 20 20 20 20 20 74 68 61 74 2e 75 :. that.u
  607. 00002400: 70 20 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 p = false;.
  608. 00002410: 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 break;.
  609. 00002420: 63 61 73 65 20 33 39 3a 0a 20 20 20 20 20 20 20 case 39:.
  610. 00002430: 20 74 68 61 74 2e 72 69 67 68 74 20 3d 20 66 61 that.right = fa
  611. 00002440: 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 62 72 65 lse;. bre
  612. 00002450: 61 6b 3b 0a 20 20 20 20 20 20 63 61 73 65 20 34 ak;. case 4
  613. 00002460: 30 3a 0a 20 20 20 20 20 20 20 20 74 68 61 74 2e 0:. that.
  614. 00002470: 64 6f 77 6e 20 3d 20 66 61 6c 73 65 3b 0a 20 20 down = false;.
  615. 00002480: 20 20 7d 0a 20 20 7d 3b 0a 20 20 72 65 74 75 72 }. };. retur
  616. 00002490: 6e 20 7b 0a 20 20 20 20 75 70 3a 20 75 70 2c 0a n {. up: up,.
  617. 000024a0: 20 20 20 20 6c 65 66 74 3a 20 6c 65 66 74 2c 0a left: left,.
  618. 000024b0: 20 20 20 20 72 69 67 68 74 3a 20 72 69 67 68 74 right: right
  619. 000024c0: 2c 0a 20 20 20 20 64 6f 77 6e 3a 20 64 6f 77 6e ,. down: down
  620. 000024d0: 2c 0a 20 20 20 20 6f 6e 4b 65 79 44 6f 77 6e 3a ,. onKeyDown:
  621. 000024e0: 20 6f 6e 4b 65 79 44 6f 77 6e 2c 0a 20 20 20 20 onKeyDown,.
  622. 000024f0: 6f 6e 4b 65 79 55 70 3a 20 6f 6e 4b 65 79 55 70 onKeyUp: onKeyUp
  623. 00002500: 0a 20 20 7d 3b 0a 7d 3b 0a 0a 0a 2f 2a 2a 2a 2a . };.};.../****
  624. 00002510: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  625. 00002520: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  626. 00002530: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 2a **************.*
  627. 00002540: 2a 20 47 41 4d 45 20 50 4c 41 59 45 52 20 43 4c * GAME PLAYER CL
  628. 00002550: 41 53 53 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ASS.************
  629. 00002560: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  630. 00002570: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  631. 00002580: 2a 2a 2a 2a 2a 0a 20 2a 2f 0a 0a 50 6c 61 79 65 *****. */..Playe
  632. 00002590: 72 20 3d 20 66 75 6e 63 74 69 6f 6e 28 73 74 61 r = function(sta
  633. 000025a0: 72 74 58 2c 20 73 74 61 72 74 59 2c 20 75 73 65 rtX, startY, use
  634. 000025b0: 72 4e 61 6d 65 2c 20 62 6c 6f 63 6b 43 6f 6c 6f rName, blockColo
  635. 000025c0: 72 29 20 7b 0a 20 20 76 61 72 20 62 6c 6f 63 6b r) {. var block
  636. 000025d0: 43 6f 6c 6f 72 2c 20 75 70 64 61 74 65 2c 20 64 Color, update, d
  637. 000025e0: 72 61 77 2c 20 68 65 69 67 68 74 2c 20 6d 6f 76 raw, height, mov
  638. 000025f0: 65 41 6d 6f 75 6e 74 2c 20 6e 61 6d 65 2c 20 77 eAmount, name, w
  639. 00002600: 69 64 74 68 2c 20 78 2c 20 79 3b 0a 20 20 78 20 idth, x, y;. x
  640. 00002610: 3d 20 73 74 61 72 74 58 3b 0a 20 20 79 20 3d 20 = startX;. y =
  641. 00002620: 73 74 61 72 74 59 3b 0a 20 20 6e 61 6d 65 20 3d startY;. name =
  642. 00002630: 20 75 73 65 72 4e 61 6d 65 3b 0a 20 20 62 6c 6f userName;. blo
  643. 00002640: 63 6b 43 6f 6c 6f 72 20 3d 20 62 6c 6f 63 6b 43 ckColor = blockC
  644. 00002650: 6f 6c 6f 72 20 7c 7c 20 27 62 6c 61 63 6b 27 3b olor || 'black';
  645. 00002660: 0a 20 20 77 69 64 74 68 20 3d 20 33 32 3b 0a 20 . width = 32;.
  646. 00002670: 20 68 65 69 67 68 74 20 3d 20 33 32 3b 0a 20 20 height = 32;.
  647. 00002680: 6d 6f 76 65 41 6d 6f 75 6e 74 20 3d 20 30 2e 32 moveAmount = 0.2
  648. 00002690: 3b 0a 20 20 75 70 64 61 74 65 20 3d 20 66 75 6e ;. update = fun
  649. 000026a0: 63 74 69 6f 6e 28 6b 65 79 73 29 20 7b 0a 20 20 ction(keys) {.
  650. 000026b0: 20 20 76 61 72 20 70 72 65 76 58 2c 20 70 72 65 var prevX, pre
  651. 000026c0: 76 59 3b 0a 20 20 20 20 70 72 65 76 58 20 3d 20 vY;. prevX =
  652. 000026d0: 74 68 69 73 2e 78 3b 0a 20 20 20 20 70 72 65 76 this.x;. prev
  653. 000026e0: 59 20 3d 20 74 68 69 73 2e 79 3b 0a 20 20 20 20 Y = this.y;.
  654. 000026f0: 69 66 20 28 6b 65 79 73 2e 6c 65 66 74 29 20 7b if (keys.left) {
  655. 00002700: 0a 20 20 20 20 20 20 74 68 69 73 2e 78 20 2d 3d . this.x -=
  656. 00002710: 20 4d 61 74 68 2e 72 6f 75 6e 64 28 6d 6f 76 65 Math.round(move
  657. 00002720: 41 6d 6f 75 6e 74 20 2a 20 64 65 6c 74 61 54 69 Amount * deltaTi
  658. 00002730: 6d 65 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 69 me);. }. i
  659. 00002740: 66 20 28 6b 65 79 73 2e 75 70 29 20 7b 0a 20 20 f (keys.up) {.
  660. 00002750: 20 20 20 20 74 68 69 73 2e 79 20 2d 3d 20 4d 61 this.y -= Ma
  661. 00002760: 74 68 2e 72 6f 75 6e 64 28 6d 6f 76 65 41 6d 6f th.round(moveAmo
  662. 00002770: 75 6e 74 20 2a 20 64 65 6c 74 61 54 69 6d 65 29 unt * deltaTime)
  663. 00002780: 3b 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 28 ;. }. if (
  664. 00002790: 6b 65 79 73 2e 64 6f 77 6e 29 20 7b 0a 20 20 20 keys.down) {.
  665. 000027a0: 20 20 20 74 68 69 73 2e 79 20 2b 3d 20 4d 61 74 this.y += Mat
  666. 000027b0: 68 2e 72 6f 75 6e 64 28 6d 6f 76 65 41 6d 6f 75 h.round(moveAmou
  667. 000027c0: 6e 74 20 2a 20 64 65 6c 74 61 54 69 6d 65 29 3b nt * deltaTime);
  668. 000027d0: 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 28 6b . }. if (k
  669. 000027e0: 65 79 73 2e 72 69 67 68 74 29 20 7b 0a 20 20 20 eys.right) {.
  670. 000027f0: 20 20 20 74 68 69 73 2e 78 20 2b 3d 20 4d 61 74 this.x += Mat
  671. 00002800: 68 2e 72 6f 75 6e 64 28 6d 6f 76 65 41 6d 6f 75 h.round(moveAmou
  672. 00002810: 6e 74 20 2a 20 64 65 6c 74 61 54 69 6d 65 29 3b nt * deltaTime);
  673. 00002820: 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 28 74 . }. if (t
  674. 00002830: 68 69 73 2e 78 20 3c 20 74 68 69 73 2e 77 69 64 his.x < this.wid
  675. 00002840: 74 68 29 20 7b 0a 20 20 20 20 20 20 74 68 69 73 th) {. this
  676. 00002850: 2e 78 20 3d 20 74 68 69 73 2e 77 69 64 74 68 3b .x = this.width;
  677. 00002860: 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 28 74 . }. if (t
  678. 00002870: 68 69 73 2e 79 20 3c 20 74 68 69 73 2e 68 65 69 his.y < this.hei
  679. 00002880: 67 68 74 29 20 7b 0a 20 20 20 20 20 20 74 68 69 ght) {. thi
  680. 00002890: 73 2e 79 20 3d 20 74 68 69 73 2e 68 65 69 67 68 s.y = this.heigh
  681. 000028a0: 74 3b 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 t;. }. if
  682. 000028b0: 28 74 68 69 73 2e 78 20 3e 20 72 6f 6f 6d 2e 77 (this.x > room.w
  683. 000028c0: 69 64 74 68 20 2d 20 74 68 69 73 2e 77 69 64 74 idth - this.widt
  684. 000028d0: 68 29 20 7b 0a 20 20 20 20 20 20 74 68 69 73 2e h) {. this.
  685. 000028e0: 78 20 3d 20 72 6f 6f 6d 2e 77 69 64 74 68 20 2d x = room.width -
  686. 000028f0: 20 74 68 69 73 2e 77 69 64 74 68 3b 0a 20 20 20 this.width;.
  687. 00002900: 20 7d 0a 20 20 20 20 69 66 20 28 74 68 69 73 2e }. if (this.
  688. 00002910: 79 20 3e 20 72 6f 6f 6d 2e 68 65 69 67 68 74 20 y > room.height
  689. 00002920: 2d 20 74 68 69 73 2e 68 65 69 67 68 74 29 20 7b - this.height) {
  690. 00002930: 0a 20 20 20 20 20 20 74 68 69 73 2e 79 20 3d 20 . this.y =
  691. 00002940: 72 6f 6f 6d 2e 68 65 69 67 68 74 20 2d 20 74 68 room.height - th
  692. 00002950: 69 73 2e 68 65 69 67 68 74 3b 0a 20 20 20 20 7d is.height;. }
  693. 00002960: 0a 20 20 20 20 69 66 20 28 70 72 65 76 58 20 21 . if (prevX !
  694. 00002970: 3d 3d 20 74 68 69 73 2e 78 20 7c 7c 20 70 72 65 == this.x || pre
  695. 00002980: 76 59 20 21 3d 3d 20 74 68 69 73 2e 79 29 20 7b vY !== this.y) {
  696. 00002990: 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 . return tr
  697. 000029a0: 75 65 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b ue;. } else {
  698. 000029b0: 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 . return fa
  699. 000029c0: 6c 73 65 3b 0a 20 20 20 20 7d 0a 20 20 7d 3b 0a lse;. }. };.
  700. 000029d0: 20 20 64 72 61 77 20 3d 20 66 75 6e 63 74 69 6f draw = functio
  701. 000029e0: 6e 28 63 74 78 2c 20 78 56 69 65 77 2c 20 79 56 n(ctx, xView, yV
  702. 000029f0: 69 65 77 29 20 7b 0a 20 20 20 20 63 74 78 2e 73 iew) {. ctx.s
  703. 00002a00: 61 76 65 28 29 3b 0a 20 20 20 20 63 74 78 2e 66 ave();. ctx.f
  704. 00002a10: 69 6c 6c 53 74 79 6c 65 20 3d 20 74 68 69 73 2e illStyle = this.
  705. 00002a20: 62 6c 6f 63 6b 43 6f 6c 6f 72 3b 0a 20 20 20 20 blockColor;.
  706. 00002a30: 63 74 78 2e 66 69 6c 6c 52 65 63 74 28 74 68 69 ctx.fillRect(thi
  707. 00002a40: 73 2e 78 20 2d 20 28 74 68 69 73 2e 77 69 64 74 s.x - (this.widt
  708. 00002a50: 68 20 2f 20 32 29 20 2d 20 78 56 69 65 77 2c 20 h / 2) - xView,
  709. 00002a60: 74 68 69 73 2e 79 20 2d 20 28 74 68 69 73 2e 68 this.y - (this.h
  710. 00002a70: 65 69 67 68 74 20 2f 20 32 29 20 2d 20 79 56 69 eight / 2) - yVi
  711. 00002a80: 65 77 2c 20 74 68 69 73 2e 77 69 64 74 68 2c 20 ew, this.width,
  712. 00002a90: 74 68 69 73 2e 68 65 69 67 68 74 29 3b 0a 20 20 this.height);.
  713. 00002aa0: 20 20 63 74 78 2e 66 6f 6e 74 20 3d 20 27 31 32 ctx.font = '12
  714. 00002ab0: 70 78 20 73 61 6e 73 2d 73 65 72 69 66 27 3b 0a px sans-serif';.
  715. 00002ac0: 20 20 20 20 63 74 78 2e 74 65 78 74 41 6c 69 67 ctx.textAlig
  716. 00002ad0: 6e 20 3d 20 27 63 65 6e 74 65 72 27 3b 0a 20 20 n = 'center';.
  717. 00002ae0: 20 20 63 74 78 2e 66 69 6c 6c 54 65 78 74 28 6e ctx.fillText(n
  718. 00002af0: 61 6d 65 2c 20 74 68 69 73 2e 78 20 2d 20 78 56 ame, this.x - xV
  719. 00002b00: 69 65 77 2c 20 74 68 69 73 2e 79 20 2d 20 79 56 iew, this.y - yV
  720. 00002b10: 69 65 77 20 2d 20 32 34 29 3b 0a 20 20 20 20 63 iew - 24);. c
  721. 00002b20: 74 78 2e 72 65 73 74 6f 72 65 28 29 3b 0a 20 20 tx.restore();.
  722. 00002b30: 7d 3b 0a 20 20 72 65 74 75 72 6e 20 7b 0a 20 20 };. return {.
  723. 00002b40: 20 20 78 3a 20 78 2c 0a 20 20 20 20 79 3a 20 79 x: x,. y: y
  724. 00002b50: 2c 0a 20 20 20 20 77 69 64 74 68 3a 20 77 69 64 ,. width: wid
  725. 00002b60: 74 68 2c 0a 20 20 20 20 68 65 69 67 68 74 3a 20 th,. height:
  726. 00002b70: 68 65 69 67 68 74 2c 0a 20 20 20 20 62 6c 6f 63 height,. bloc
  727. 00002b80: 6b 43 6f 6c 6f 72 3a 20 62 6c 6f 63 6b 43 6f 6c kColor: blockCol
  728. 00002b90: 6f 72 2c 0a 20 20 20 20 75 70 64 61 74 65 3a 20 or,. update:
  729. 00002ba0: 75 70 64 61 74 65 2c 0a 20 20 20 20 64 72 61 77 update,. draw
  730. 00002bb0: 3a 20 64 72 61 77 0a 20 20 7d 3b 0a 7d 3b 0a 0a : draw. };.};..
  731. 00002bc0: 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ./**************
  732. 00002bd0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  733. 00002be0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  734. 00002bf0: 2a 2a 2a 2a 0a 2a 2a 20 47 41 4d 45 20 44 45 42 ****.** GAME DEB
  735. 00002c00: 55 47 20 43 4c 41 53 53 0a 2a 2a 2a 2a 2a 2a 2a UG CLASS.*******
  736. 00002c10: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  737. 00002c20: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  738. 00002c30: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 20 2a 2f 0a 0a **********. */..
  739. 00002c40: 64 72 61 77 5f 64 65 62 75 67 20 3d 20 66 75 6e draw_debug = fun
  740. 00002c50: 63 74 69 6f 6e 28 63 74 78 2c 20 78 56 69 65 77 ction(ctx, xView
  741. 00002c60: 2c 20 79 56 69 65 77 29 20 7b 0a 20 20 76 61 72 , yView) {. var
  742. 00002c70: 20 64 65 62 75 67 56 61 72 4e 61 6d 65 73 2c 20 debugVarNames,
  743. 00002c80: 64 65 62 75 67 56 61 72 73 2c 20 69 2c 20 6a 2c debugVars, i, j,
  744. 00002c90: 20 6c 2c 20 6c 6c 2c 20 70 6c 61 79 65 72 2c 20 l, ll, player,
  745. 00002ca0: 70 6c 61 79 65 72 50 72 6f 70 4e 61 6d 65 73 2c playerPropNames,
  746. 00002cb0: 20 70 6c 61 79 65 72 50 72 6f 70 73 3b 0a 20 20 playerProps;.
  747. 00002cc0: 63 74 78 2e 73 61 76 65 28 29 3b 0a 20 20 63 74 ctx.save();. ct
  748. 00002cd0: 78 2e 66 6f 6e 74 20 3d 20 27 62 6f 6c 64 20 31 x.font = 'bold 1
  749. 00002ce0: 32 70 78 20 6d 6f 6e 6f 73 70 61 63 65 27 3b 0a 2px monospace';.
  750. 00002cf0: 20 20 63 74 78 2e 74 65 78 74 41 6c 69 67 6e 20 ctx.textAlign
  751. 00002d00: 3d 20 27 73 74 61 72 74 27 3b 0a 20 20 63 74 78 = 'start';. ctx
  752. 00002d10: 2e 66 69 6c 6c 53 74 79 6c 65 20 3d 20 27 62 6c .fillStyle = 'bl
  753. 00002d20: 61 63 6b 27 3b 0a 20 20 63 74 78 2e 66 69 6c 6c ack';. ctx.fill
  754. 00002d30: 54 65 78 74 28 27 5b 44 45 42 55 47 5d 27 2c 20 Text('[DEBUG]',
  755. 00002d40: 38 2c 20 36 30 29 3b 0a 20 20 64 65 62 75 67 56 8, 60);. debugV
  756. 00002d50: 61 72 73 20 3d 20 5b 4d 61 74 68 2e 72 6f 75 6e ars = [Math.roun
  757. 00002d60: 64 28 31 30 30 30 20 2f 20 64 65 6c 74 61 54 69 d(1000 / deltaTi
  758. 00002d70: 6d 65 29 20 2b 20 31 2c 20 64 65 6c 74 61 54 69 me) + 1, deltaTi
  759. 00002d80: 6d 65 2c 20 27 27 2c 20 6c 6f 63 61 6c 50 6c 61 me, '', localPla
  760. 00002d90: 79 65 72 2e 69 64 2c 20 6c 6f 63 61 6c 50 6c 61 yer.id, localPla
  761. 00002da0: 79 65 72 2e 78 2c 20 6c 6f 63 61 6c 50 6c 61 79 yer.x, localPlay
  762. 00002db0: 65 72 2e 79 5d 3b 0a 20 20 64 65 62 75 67 56 61 er.y];. debugVa
  763. 00002dc0: 72 4e 61 6d 65 73 20 3d 20 5b 27 46 50 53 3a 20 rNames = ['FPS:
  764. 00002dd0: 20 20 20 20 20 20 20 27 2c 20 27 44 65 6c 74 61 ', 'Delta
  765. 00002de0: 54 69 6d 65 3a 20 20 27 2c 20 27 27 2c 20 27 50 Time: ', '', 'P
  766. 00002df0: 6c 61 79 65 72 20 49 44 3a 20 20 27 2c 20 27 50 layer ID: ', 'P
  767. 00002e00: 6c 61 79 65 72 20 58 3a 20 20 20 27 2c 20 27 50 layer X: ', 'P
  768. 00002e10: 6c 61 79 65 72 20 59 3a 20 20 20 27 5d 3b 0a 20 layer Y: '];.
  769. 00002e20: 20 70 6c 61 79 65 72 50 72 6f 70 73 20 3d 20 5b playerProps = [
  770. 00002e30: 27 69 64 27 2c 20 27 6e 61 6d 65 27 2c 20 27 78 'id', 'name', 'x
  771. 00002e40: 27 2c 20 27 79 27 5d 3b 0a 20 20 70 6c 61 79 65 ', 'y'];. playe
  772. 00002e50: 72 50 72 6f 70 4e 61 6d 65 73 20 3d 20 5b 27 49 rPropNames = ['I
  773. 00002e60: 44 3a 20 20 20 20 20 27 2c 20 27 4e 61 6d 65 3a D: ', 'Name:
  774. 00002e70: 20 20 20 27 2c 20 27 58 3a 20 20 20 20 20 20 27 ', 'X: '
  775. 00002e80: 2c 20 27 59 3a 20 20 20 20 20 20 27 5d 3b 0a 20 , 'Y: '];.
  776. 00002e90: 20 64 65 62 75 67 56 61 72 73 2e 70 75 73 68 28 debugVars.push(
  777. 00002ea0: 27 27 29 3b 0a 20 20 64 65 62 75 67 56 61 72 4e '');. debugVarN
  778. 00002eb0: 61 6d 65 73 2e 70 75 73 68 28 27 27 29 3b 0a 20 ames.push('');.
  779. 00002ec0: 20 66 6f 72 20 28 69 20 3d 20 30 2c 20 6c 20 3d for (i = 0, l =
  780. 00002ed0: 20 72 65 6d 6f 74 65 50 6c 61 79 65 72 73 2e 6c remotePlayers.l
  781. 00002ee0: 65 6e 67 74 68 3b 20 69 20 3c 20 6c 3b 20 69 2b ength; i < l; i+
  782. 00002ef0: 2b 29 20 7b 0a 20 20 20 20 64 65 62 75 67 56 61 +) {. debugVa
  783. 00002f00: 72 73 2e 70 75 73 68 28 27 27 29 3b 0a 20 20 20 rs.push('');.
  784. 00002f10: 20 64 65 62 75 67 56 61 72 4e 61 6d 65 73 2e 70 debugVarNames.p
  785. 00002f20: 75 73 68 28 27 27 29 3b 0a 20 20 20 20 70 6c 61 ush('');. pla
  786. 00002f30: 79 65 72 20 3d 20 70 6c 61 79 65 72 42 79 49 64 yer = playerById
  787. 00002f40: 28 72 65 6d 6f 74 65 50 6c 61 79 65 72 73 5b 69 (remotePlayers[i
  788. 00002f50: 5d 2e 69 64 29 3b 0a 20 20 20 20 66 6f 72 20 28 ].id);. for (
  789. 00002f60: 6a 20 3d 20 30 2c 20 6c 6c 20 3d 20 70 6c 61 79 j = 0, ll = play
  790. 00002f70: 65 72 50 72 6f 70 73 2e 6c 65 6e 67 74 68 3b 20 erProps.length;
  791. 00002f80: 6a 20 3c 20 6c 6c 3b 20 6a 2b 2b 29 20 7b 0a 20 j < ll; j++) {.
  792. 00002f90: 20 20 20 20 20 64 65 62 75 67 56 61 72 73 2e 70 debugVars.p
  793. 00002fa0: 75 73 68 28 70 6c 61 79 65 72 5b 70 6c 61 79 65 ush(player[playe
  794. 00002fb0: 72 50 72 6f 70 73 5b 6a 5d 5d 29 3b 0a 20 20 20 rProps[j]]);.
  795. 00002fc0: 20 20 20 64 65 62 75 67 56 61 72 4e 61 6d 65 73 debugVarNames
  796. 00002fd0: 2e 70 75 73 68 28 70 6c 61 79 65 72 50 72 6f 70 .push(playerProp
  797. 00002fe0: 4e 61 6d 65 73 5b 6a 5d 29 3b 0a 20 20 20 20 7d Names[j]);. }
  798. 00002ff0: 0a 20 20 7d 0a 20 20 69 20 3d 20 30 3b 0a 20 20 . }. i = 0;.
  799. 00003000: 77 68 69 6c 65 20 28 69 20 3c 20 64 65 62 75 67 while (i < debug
  800. 00003010: 56 61 72 73 2e 6c 65 6e 67 74 68 29 20 7b 0a 20 Vars.length) {.
  801. 00003020: 20 20 20 63 74 78 2e 66 69 6c 6c 54 65 78 74 28 ctx.fillText(
  802. 00003030: 64 65 62 75 67 56 61 72 4e 61 6d 65 73 5b 69 5d debugVarNames[i]
  803. 00003040: 20 2b 20 64 65 62 75 67 56 61 72 73 5b 69 5d 2c + debugVars[i],
  804. 00003050: 20 38 2c 20 36 38 20 2b 20 28 69 20 2b 20 31 29 8, 68 + (i + 1)
  805. 00003060: 20 2a 20 31 32 29 3b 0a 20 20 20 20 69 2b 2b 3b * 12);. i++;
  806. 00003070: 0a 20 20 7d 0a 20 20 63 74 78 2e 72 65 73 74 6f . }. ctx.resto
  807. 00003080: 72 65 28 29 3b 0a 7d 3b 0a 0a 0a 2f 2a 2a 2a 2a re();.};.../****
  808. 00003090: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  809. 000030a0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  810. 000030b0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 2a **************.*
  811. 000030c0: 2a 20 47 41 4d 45 20 45 56 45 4e 54 20 48 41 4e * GAME EVENT HAN
  812. 000030d0: 44 4c 45 52 53 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a DLERS.**********
  813. 000030e0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  814. 000030f0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
  815. 00003100: 2a 2a 2a 2a 2a 2a 2a 0a 20 2a 2f 0a 0a 73 65 74 *******. */..set
  816. 00003110: 47 61 6d 65 45 76 65 6e 74 48 61 6e 64 6c 65 72 GameEventHandler
  817. 00003120: 73 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b s = function() {
  818. 00003130: 0a 20 20 77 69 6e 64 6f 77 2e 61 64 64 45 76 65 . window.addEve
  819. 00003140: 6e 74 4c 69 73 74 65 6e 65 72 28 27 6b 65 79 64 ntListener('keyd
  820. 00003150: 6f 77 6e 27 2c 20 6f 6e 4b 65 79 64 6f 77 6e 2c own', onKeydown,
  821. 00003160: 20 66 61 6c 73 65 29 3b 0a 20 20 77 69 6e 64 6f false);. windo
  822. 00003170: 77 2e 61 64 64 45 76 65 6e 74 4c 69 73 74 65 6e w.addEventListen
  823. 00003180: 65 72 28 27 6b 65 79 75 70 27 2c 20 6f 6e 4b 65 er('keyup', onKe
  824. 00003190: 79 75 70 2c 20 66 61 6c 73 65 29 3b 0a 20 20 77 yup, false);. w
  825. 000031a0: 69 6e 64 6f 77 2e 61 64 64 45 76 65 6e 74 4c 69 indow.addEventLi
  826. 000031b0: 73 74 65 6e 65 72 28 27 72 65 73 69 7a 65 27 2c stener('resize',
  827. 000031c0: 20 6f 6e 52 65 73 69 7a 65 2c 20 66 61 6c 73 65 onResize, false
  828. 000031d0: 29 3b 0a 20 20 73 6f 63 6b 65 74 2e 6f 6e 28 27 );. socket.on('
  829. 000031e0: 6e 65 77 20 70 6c 61 79 65 72 27 2c 20 6f 6e 4e new player', onN
  830. 000031f0: 65 77 50 6c 61 79 65 72 29 3b 0a 20 20 73 6f 63 ewPlayer);. soc
  831. 00003200: 6b 65 74 2e 6f 6e 28 27 6d 6f 76 65 20 70 6c 61 ket.on('move pla
  832. 00003210: 79 65 72 27 2c 20 6f 6e 4d 6f 76 65 50 6c 61 79 yer', onMovePlay
  833. 00003220: 65 72 29 3b 0a 20 20 73 6f 63 6b 65 74 2e 6f 6e er);. socket.on
  834. 00003230: 28 27 72 65 6d 6f 76 65 20 70 6c 61 79 65 72 27 ('remove player'
  835. 00003240: 2c 20 6f 6e 52 65 6d 6f 76 65 50 6c 61 79 65 72 , onRemovePlayer
  836. 00003250: 29 3b 0a 7d 3b 0a 0a 0a 2f 2a 6a 73 68 69 6e 74 );.};.../*jshint
  837. 00003260: 20 6a 71 75 65 72 79 3a 20 74 72 75 65 20 2a 2f jquery: true */
  838. 00003270: 0a 0a 0a 2f 2a 67 6c 6f 62 61 6c 73 20 69 6f 3a .../*globals io:
  839. 00003280: 66 61 6c 73 65 2c 20 63 6f 6e 73 6f 6c 65 3a 66 false, console:f
  840. 00003290: 61 6c 73 65 2c 20 43 6f 6f 6b 69 65 73 3a 66 61 alse, Cookies:fa
  841. 000032a0: 6c 73 65 20 2a 2f 0a 0a 27 75 73 65 20 73 74 72 lse */..'use str
  842. 000032b0: 69 63 74 27 3b 0a 2f 2a 0a 63 68 61 6e 6e 65 6c ict';./*.channel
  843. 000032c0: 73 20 3d 20 76 6f 69 64 20 30 3b 0a 0a 63 68 65 s = void 0;..che
  844. 000032d0: 63 6b 50 61 73 73 20 3d 20 76 6f 69 64 20 30 3b ckPass = void 0;
  845. 000032e0: 0a 0a 65 6d 6f 6a 69 73 20 3d 20 76 6f 69 64 20 ..emojis = void
  846. 000032f0: 30 3b 0a 0a 65 73 63 61 70 65 52 65 67 65 78 20 0;..escapeRegex
  847. 00003300: 3d 20 76 6f 69 64 20 30 3b 0a 0a 67 65 74 55 73 = void 0;..getUs
  848. 00003310: 65 72 6e 61 6d 65 43 6f 6f 6b 69 65 20 3d 20 76 ernameCookie = v
  849. 00003320: 6f 69 64 20 30 3b 0a 0a 69 20 3d 20 76 6f 69 64 oid 0;..i = void
  850. 00003330: 20 30 3b 0a 0a 69 6e 69 74 20 3d 20 76 6f 69 64 0;..init = void
  851. 00003340: 20 30 3b 0a 0a 69 6e 69 74 63 68 61 74 20 3d 20 0;..initchat =
  852. 00003350: 76 6f 69 64 20 30 3b 0a 0a 6c 65 6e 20 3d 20 76 void 0;..len = v
  853. 00003360: 6f 69 64 20 30 3b 0a 0a 6c 6f 67 69 6e 20 3d 20 oid 0;..login =
  854. 00003370: 76 6f 69 64 20 30 3b 0a 0a 6c 6f 67 6f 75 74 20 void 0;..logout
  855. 00003380: 3d 20 76 6f 69 64 20 30 3b 0a 0a 6e 61 6d 65 20 = void 0;..name
  856. 00003390: 3d 20 76 6f 69 64 20 30 3b 0a 0a 70 61 72 73 65 = void 0;..parse
  857. 000033a0: 4d 65 73 73 61 67 65 20 3d 20 76 6f 69 64 20 30 Message = void 0
  858. 000033b0: 3b 0a 0a 72 65 66 20 3d 20 76 6f 69 64 20 30 3b ;..ref = void 0;
  859. 000033c0: 0a 0a 72 65 67 69 73 74 65 72 20 3d 20 76 6f 69 ..register = voi
  860. 000033d0: 64 20 30 3b 0a 0a 72 65 6d 6f 76 65 55 73 65 72 d 0;..removeUser
  861. 000033e0: 6e 61 6d 65 43 6f 6f 6b 69 65 20 3d 20 76 6f 69 nameCookie = voi
  862. 000033f0: 64 20 30 3b 0a 0a 73 61 66 65 20 3d 20 76 6f 69 d 0;..safe = voi
  863. 00003400: 64 20 30 3b 0a 0a 73 65 73 73 69 6f 6e 69 64 20 d 0;..sessionid
  864. 00003410: 3d 20 76 6f 69 64 20 30 3b 0a 0a 73 65 74 55 73 = void 0;..setUs
  865. 00003420: 65 72 6e 61 6d 65 43 6f 6f 6b 69 65 20 3d 20 76 ernameCookie = v
  866. 00003430: 6f 69 64 20 30 3b 0a 0a 73 65 74 73 74 61 74 75 oid 0;..setstatu
  867. 00003440: 73 20 3d 20 76 6f 69 64 20 30 3b 0a 0a 73 6f 63 s = void 0;..soc
  868. 00003450: 6b 65 74 20 3d 20 76 6f 69 64 20 30 3b 0a 0a 73 ket = void 0;..s
  869. 00003460: 6f 63 6b 65 74 20 3d 20 6e 75 6c 6c 3b 0a 0a 73 ocket = null;..s
  870. 00003470: 65 73 73 69 6f 6e 69 64 20 3d 20 6e 75 6c 6c 3b essionid = null;
  871. 00003480: 0a 2a 2f 0a 63 68 61 6e 6e 65 6c 73 20 3d 20 5b .*/.channels = [
  872. 00003490: 5d 3b 0a 0a 65 6d 6f 6a 69 73 20 3d 20 7b 0a 20 ];..emojis = {.
  873. 000034a0: 20 27 3a 29 27 3a 20 27 68 74 74 70 3a 2f 2f 65 ':)': 'http://e
  874. 000034b0: 6d 6f 6a 69 6f 6e 65 2e 63 6f 6d 2f 77 70 2d 63 mojione.com/wp-c
  875. 000034c0: 6f 6e 74 65 6e 74 2f 75 70 6c 6f 61 64 73 2f 61 ontent/uploads/a
  876. 000034d0: 73 73 65 74 73 2f 65 6d 6f 6a 69 73 2f 31 66 36 ssets/emojis/1f6
  877. 000034e0: 30 33 2e 73 76 67 27 2c 0a 20 20 27 3a 75 6e 69 03.svg',. ':uni
  878. 000034f0: 63 6f 72 6e 3a 27 3a 20 27 68 74 74 70 3a 2f 2f corn:': 'http://
  879. 00003500: 65 6d 6f 6a 69 6f 6e 65 2e 63 6f 6d 2f 77 70 2d emojione.com/wp-
  880. 00003510: 63 6f 6e 74 65 6e 74 2f 75 70 6c 6f 61 64 73 2f content/uploads/
  881. 00003520: 61 73 73 65 74 73 2f 65 6d 6f 6a 69 73 2f 31 66 assets/emojis/1f
  882. 00003530: 39 38 34 2e 73 76 67 27 0a 7d 3b 0a 0a 72 65 66 984.svg'.};..ref
  883. 00003540: 20 3d 20 5b 27 32 30 25 73 61 64 64 65 72 27 2c = ['20%sadder',
  884. 00003550: 20 27 61 64 72 69 61 6e 79 6f 75 68 61 70 70 79 'adrianyouhappy
  885. 00003560: 6e 6f 77 27 2c 20 27 41 4a 73 63 61 72 65 64 27 now', 'AJscared'
  886. 00003570: 2c 20 27 62 69 67 6d 61 63 27 2c 20 27 63 61 64 , 'bigmac', 'cad
  887. 00003580: 61 6e 63 65 27 2c 20 27 63 6f 6c 67 61 74 65 68 ance', 'colgateh
  888. 00003590: 61 70 70 79 27 2c 20 27 64 65 72 70 27 2c 20 27 appy', 'derp', '
  889. 000035a0: 65 79 65 72 6f 6c 6c 27 2c 20 27 66 61 62 75 6c eyeroll', 'fabul
  890. 000035b0: 6f 75 73 27 2c 20 27 66 61 63 65 68 6f 6f 66 27 ous', 'facehoof'
  891. 000035c0: 2c 20 27 67 72 65 65 64 27 2c 20 27 68 65 72 6f , 'greed', 'hero
  892. 000035d0: 27 2c 20 27 6c 61 75 67 68 27 2c 20 27 6c 69 65 ', 'laugh', 'lie
  893. 000035e0: 27 2c 20 27 6c 79 72 61 65 78 63 69 74 65 64 27 ', 'lyraexcited'
  894. 000035f0: 2c 20 27 6c 79 72 61 73 61 64 27 2c 20 27 4e 4d , 'lyrasad', 'NM
  895. 00003600: 32 27 2c 20 27 4e 4d 33 27 2c 20 27 6e 6f 74 61 2', 'NM3', 'nota
  896. 00003610: 6d 75 73 65 64 27 2c 20 27 70 68 6f 74 6f 66 69 mused', 'photofi
  897. 00003620: 6e 69 73 68 27 2c 20 27 70 70 73 6d 69 6c 65 27 nish', 'ppsmile'
  898. 00003630: 2c 20 27 70 77 69 6e 6b 27 2c 20 27 52 44 68 75 , 'pwink', 'RDhu
  899. 00003640: 68 27 2c 20 27 72 64 73 6d 69 6c 65 27 2c 20 27 h', 'rdsmile', '
  900. 00003650: 72 64 77 69 6e 6b 27 2c 20 27 73 63 61 72 65 64 rdwink', 'scared
  901. 00003660: 27 2c 20 27 73 63 69 65 6e 63 65 27 2c 20 27 73 ', 'science', 's
  902. 00003670: 65 72 69 6f 75 73 54 53 27 2c 20 27 73 68 69 6e eriousTS', 'shin
  903. 00003680: 79 27 2c 20 27 73 68 72 75 67 27 2c 20 27 73 6f y', 'shrug', 'so
  904. 00003690: 6d 65 74 68 69 6e 67 77 65 6e 74 77 72 6f 6e 67 methingwentwrong
  905. 000036a0: 27 2c 20 27 73 70 69 6b 65 6d 6f 76 27 2c 20 27 ', 'spikemov', '
  906. 000036b0: 73 70 69 6b 65 27 2c 20 27 73 71 75 65 65 27 2c spike', 'squee',
  907. 000036c0: 20 27 73 77 65 65 74 69 65 27 2c 20 27 74 68 69 'sweetie', 'thi
  908. 000036d0: 73 69 73 61 62 72 75 73 68 69 65 27 2c 20 27 74 sisabrushie', 't
  909. 000036e0: 68 6f 72 67 27 2c 20 27 74 72 69 78 69 65 27 2c horg', 'trixie',
  910. 000036f0: 20 27 74 73 73 6d 69 6c 65 27 2c 20 27 74 77 69 'tssmile', 'twi
  911. 00003700: 62 6c 75 73 68 27 2c 20 27 75 6d 61 64 27 2c 20 blush', 'umad',
  912. 00003710: 27 76 69 6e 79 6c 27 2c 20 27 58 54 55 58 53 6d 'vinyl', 'XTUXSm
  913. 00003720: 69 6c 65 79 27 2c 20 27 79 61 79 27 2c 20 27 59 iley', 'yay', 'Y
  914. 00003730: 45 41 48 27 5d 3b 0a 0a 69 20 3d 20 30 3b 0a 0a EAH'];..i = 0;..
  915. 00003740: 6c 65 6e 20 3d 20 72 65 66 2e 6c 65 6e 67 74 68 len = ref.length
  916. 00003750: 3b 0a 0a 77 68 69 6c 65 20 28 69 20 3c 20 6c 65 ;..while (i < le
  917. 00003760: 6e 29 20 7b 0a 20 20 6e 61 6d 65 20 3d 20 72 65 n) {. name = re
  918. 00003770: 66 5b 69 5d 3b 0a 20 20 65 6d 6f 6a 69 73 5b 27 f[i];. emojis['
  919. 00003780: 3a 27 20 2b 20 6e 61 6d 65 20 2b 20 27 3a 27 5d :' + name + ':']
  920. 00003790: 20 3d 20 27 2f 69 6d 61 67 65 73 2f 65 6d 6f 6a = '/images/emoj
  921. 000037a0: 69 2f 27 20 2b 20 6e 61 6d 65 20 2b 20 27 2e 70 i/' + name + '.p
  922. 000037b0: 6e 67 27 3b 0a 20 20 69 2b 2b 3b 0a 7d 0a 0a 73 ng';. i++;.}..s
  923. 000037c0: 65 74 55 73 65 72 6e 61 6d 65 43 6f 6f 6b 69 65 etUsernameCookie
  924. 000037d0: 20 3d 20 66 75 6e 63 74 69 6f 6e 28 75 73 65 72 = function(user
  925. 000037e0: 6e 61 6d 65 29 20 7b 0a 20 20 69 66 20 28 43 6f name) {. if (Co
  926. 000037f0: 6f 6b 69 65 73 20 3d 3d 3d 20 76 6f 69 64 20 30 okies === void 0
  927. 00003800: 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 76 ) {. return v
  928. 00003810: 6f 69 64 20 30 3b 0a 20 20 7d 0a 20 20 69 66 20 oid 0;. }. if
  929. 00003820: 28 24 28 27 23 72 65 6d 65 6d 62 65 72 27 29 2e ($('#remember').
  930. 00003830: 69 73 28 27 3a 63 68 65 63 6b 65 64 27 29 29 20 is(':checked'))
  931. 00003840: 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 43 6f 6f {. return Coo
  932. 00003850: 6b 69 65 73 2e 73 65 74 28 27 75 73 65 72 6e 61 kies.set('userna
  933. 00003860: 6d 65 27 2c 20 75 73 65 72 6e 61 6d 65 29 3b 0a me', username);.
  934. 00003870: 20 20 7d 0a 7d 3b 0a 0a 67 65 74 55 73 65 72 6e }.};..getUsern
  935. 00003880: 61 6d 65 43 6f 6f 6b 69 65 20 3d 20 66 75 6e 63 ameCookie = func
  936. 00003890: 74 69 6f 6e 28 29 20 7b 0a 20 20 69 66 20 28 43 tion() {. if (C
  937. 000038a0: 6f 6f 6b 69 65 73 20 3d 3d 3d 20 76 6f 69 64 20 ookies === void
  938. 000038b0: 30 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 0) {. return
  939. 000038c0: 76 6f 69 64 20 30 3b 0a 20 20 7d 0a 20 20 72 65 void 0;. }. re
  940. 000038d0: 74 75 72 6e 20 43 6f 6f 6b 69 65 73 2e 67 65 74 turn Cookies.get
  941. 000038e0: 28 27 75 73 65 72 6e 61 6d 65 27 29 3b 0a 7d 3b ('username');.};
  942. 000038f0: 0a 0a 72 65 6d 6f 76 65 55 73 65 72 6e 61 6d 65 ..removeUsername
  943. 00003900: 43 6f 6f 6b 69 65 20 3d 20 66 75 6e 63 74 69 6f Cookie = functio
  944. 00003910: 6e 28 29 20 7b 0a 20 20 69 66 20 28 43 6f 6f 6b n() {. if (Cook
  945. 00003920: 69 65 73 20 3d 3d 3d 20 76 6f 69 64 20 30 29 20 ies === void 0)
  946. 00003930: 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 76 6f 69 {. return voi
  947. 00003940: 64 20 30 3b 0a 20 20 7d 0a 20 20 72 65 74 75 72 d 0;. }. retur
  948. 00003950: 6e 20 43 6f 6f 6b 69 65 73 2e 72 65 6d 6f 76 65 n Cookies.remove
  949. 00003960: 28 27 75 73 65 72 6e 61 6d 65 27 29 3b 0a 7d 3b ('username');.};
  950. 00003970: 0a 0a 73 65 74 73 74 61 74 75 73 20 3d 20 66 75 ..setstatus = fu
  951. 00003980: 6e 63 74 69 6f 6e 28 73 74 61 74 2c 20 73 75 62 nction(stat, sub
  952. 00003990: 73 63 72 2c 20 69 73 65 72 72 6f 72 29 20 7b 0a scr, iserror) {.
  953. 000039a0: 20 20 76 61 72 20 65 6c 65 6d 2c 20 68 74 6d 6c var elem, html
  954. 000039b0: 3b 0a 20 20 69 66 20 28 74 79 70 65 6f 66 20 73 ;. if (typeof s
  955. 000039c0: 75 62 73 63 72 20 21 3d 3d 20 27 73 74 72 69 6e ubscr !== 'strin
  956. 000039d0: 67 27 29 20 7b 0a 20 20 20 20 69 73 65 72 72 6f g') {. iserro
  957. 000039e0: 72 20 3d 20 73 75 62 73 63 72 3b 0a 20 20 20 20 r = subscr;.
  958. 000039f0: 73 75 62 73 63 72 20 3d 20 27 27 3b 0a 20 20 7d subscr = '';. }
  959. 00003a00: 0a 20 20 65 6c 65 6d 20 3d 20 24 28 27 23 63 6f . elem = $('#co
  960. 00003a10: 6e 6e 73 74 61 74 75 73 27 29 3b 0a 20 20 68 74 nnstatus');. ht
  961. 00003a20: 6d 6c 20 3d 20 73 74 61 74 20 2b 20 27 3c 62 72 ml = stat + '<br
  962. 00003a30: 3e 3c 73 6d 61 6c 6c 3e 27 20 2b 20 73 75 62 73 ><small>' + subs
  963. 00003a40: 63 72 20 2b 20 27 3c 2f 73 6d 61 6c 6c 3e 27 3b cr + '</small>';
  964. 00003a50: 0a 20 20 65 6c 65 6d 2e 68 74 6d 6c 28 68 74 6d . elem.html(htm
  965. 00003a60: 6c 29 3b 0a 20 20 69 66 20 28 69 73 65 72 72 6f l);. if (iserro
  966. 00003a70: 72 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 r) {. return
  967. 00003a80: 65 6c 65 6d 2e 61 64 64 43 6c 61 73 73 28 27 65 elem.addClass('e
  968. 00003a90: 72 72 6f 72 27 29 3b 0a 20 20 7d 20 65 6c 73 65 rror');. } else
  969. 00003aa0: 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 65 6c {. return el
  970. 00003ab0: 65 6d 2e 72 65 6d 6f 76 65 43 6c 61 73 73 28 27 em.removeClass('
  971. 00003ac0: 65 72 72 6f 72 27 29 3b 0a 20 20 7d 0a 7d 3b 0a error');. }.};.
  972. 00003ad0: 0a 63 68 65 63 6b 50 61 73 73 20 3d 20 66 75 6e .checkPass = fun
  973. 00003ae0: 63 74 69 6f 6e 28 29 20 7b 0a 20 20 76 61 72 20 ction() {. var
  974. 00003af0: 70 61 73 73 31 2c 20 70 61 73 73 32 2c 20 72 65 pass1, pass2, re
  975. 00003b00: 67 69 73 74 65 72 62 75 74 74 6f 6e 3b 0a 20 20 gisterbutton;.
  976. 00003b10: 70 61 73 73 31 20 3d 20 24 28 27 23 70 61 73 73 pass1 = $('#pass
  977. 00003b20: 77 6f 72 64 27 29 2e 76 61 6c 28 29 3b 0a 20 20 word').val();.
  978. 00003b30: 70 61 73 73 32 20 3d 20 24 28 27 23 70 61 73 73 pass2 = $('#pass
  979. 00003b40: 77 6f 72 64 32 27 29 2e 76 61 6c 28 29 3b 0a 20 word2').val();.
  980. 00003b50: 20 72 65 67 69 73 74 65 72 62 75 74 74 6f 6e 20 registerbutton
  981. 00003b60: 3d 20 24 28 27 23 62 74 6e 27 29 3b 0a 20 20 69 = $('#btn');. i
  982. 00003b70: 66 20 28 70 61 73 73 31 20 3d 3d 3d 20 70 61 73 f (pass1 === pas
  983. 00003b80: 73 32 29 20 7b 0a 20 20 20 20 72 65 67 69 73 74 s2) {. regist
  984. 00003b90: 65 72 62 75 74 74 6f 6e 2e 70 72 6f 70 28 27 64 erbutton.prop('d
  985. 00003ba0: 69 73 61 62 6c 65 64 27 2c 20 66 61 6c 73 65 29 isabled', false)
  986. 00003bb0: 3b 0a 20 20 20 20 24 28 27 23 70 61 73 73 77 6f ;. $('#passwo
  987. 00003bc0: 72 64 32 27 29 2e 72 65 6d 6f 76 65 43 6c 61 73 rd2').removeClas
  988. 00003bd0: 73 28 27 62 61 64 70 61 73 73 27 29 3b 0a 20 20 s('badpass');.
  989. 00003be0: 20 20 72 65 74 75 72 6e 20 24 28 27 23 70 61 73 return $('#pas
  990. 00003bf0: 73 77 6f 72 64 32 27 29 2e 61 64 64 43 6c 61 73 sword2').addClas
  991. 00003c00: 73 28 27 67 6f 6f 64 70 61 73 73 27 29 3b 0a 20 s('goodpass');.
  992. 00003c10: 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 72 65 } else {. re
  993. 00003c20: 67 69 73 74 65 72 62 75 74 74 6f 6e 2e 70 72 6f gisterbutton.pro
  994. 00003c30: 70 28 27 64 69 73 61 62 6c 65 64 27 2c 20 74 72 p('disabled', tr
  995. 00003c40: 75 65 29 3b 0a 20 20 20 20 24 28 27 23 70 61 73 ue);. $('#pas
  996. 00003c50: 73 77 6f 72 64 32 27 29 2e 72 65 6d 6f 76 65 43 sword2').removeC
  997. 00003c60: 6c 61 73 73 28 27 67 6f 6f 64 70 61 73 73 27 29 lass('goodpass')
  998. 00003c70: 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 24 28 27 ;. return $('
  999. 00003c80: 23 70 61 73 73 77 6f 72 64 32 27 29 2e 61 64 64 #password2').add
  1000. 00003c90: 43 6c 61 73 73 28 27 62 61 64 70 61 73 73 27 29 Class('badpass')
  1001. 00003ca0: 3b 0a 20 20 7d 0a 7d 3b 0a 0a 73 61 66 65 20 3d ;. }.};..safe =
  1002. 00003cb0: 20 66 75 6e 63 74 69 6f 6e 28 63 61 6c 6c 62 61 function(callba
  1003. 00003cc0: 63 6b 29 20 7b 0a 20 20 76 61 72 20 65 72 72 2c ck) {. var err,
  1004. 00003cd0: 20 65 72 72 6f 72 2c 20 65 72 72 6f 72 31 3b 0a error, error1;.
  1005. 00003ce0: 20 20 74 72 79 20 7b 0a 20 20 20 20 72 65 74 75 try {. retu
  1006. 00003cf0: 72 6e 20 63 61 6c 6c 62 61 63 6b 28 29 3b 0a 20 rn callback();.
  1007. 00003d00: 20 7d 20 63 61 74 63 68 20 28 65 72 72 6f 72 31 } catch (error1
  1008. 00003d10: 29 20 7b 0a 20 20 20 20 65 72 72 6f 72 20 3d 20 ) {. error =
  1009. 00003d20: 65 72 72 6f 72 31 3b 0a 20 20 20 20 65 72 72 20 error1;. err
  1010. 00003d30: 3d 20 65 72 72 6f 72 3b 0a 20 20 20 20 63 6f 6e = error;. con
  1011. 00003d40: 73 6f 6c 65 2e 6c 6f 67 28 65 72 72 29 3b 0a 20 sole.log(err);.
  1012. 00003d50: 20 20 20 72 65 74 75 72 6e 20 73 65 74 73 74 61 return setsta
  1013. 00003d60: 74 75 73 28 65 72 72 2e 6d 65 73 73 61 67 65 2c tus(err.message,
  1014. 00003d70: 20 74 72 75 65 29 3b 0a 20 20 7d 0a 7d 3b 0a 0a true);. }.};..
  1015. 00003d80: 65 73 63 61 70 65 52 65 67 65 78 20 3d 20 66 75 escapeRegex = fu
  1016. 00003d90: 6e 63 74 69 6f 6e 28 73 74 72 29 20 7b 0a 20 20 nction(str) {.
  1017. 00003da0: 72 65 74 75 72 6e 20 73 74 72 2e 72 65 70 6c 61 return str.repla
  1018. 00003db0: 63 65 28 2f 5b 5c 2d 5c 5b 5c 5d 5c 2f 5c 7b 5c ce(/[\-\[\]\/\{\
  1019. 00003dc0: 7d 5c 28 5c 29 5c 2a 5c 2b 5c 3f 5c 2e 5c 5c 5c }\(\)\*\+\?\.\\\
  1020. 00003dd0: 5e 5c 24 5c 7c 5d 2f 67 2c 20 27 5c 5c 24 26 27 ^\$\|]/g, '\\$&'
  1021. 00003de0: 29 3b 0a 7d 3b 0a 0a 70 61 72 73 65 4d 65 73 73 );.};..parseMess
  1022. 00003df0: 61 67 65 20 3d 20 66 75 6e 63 74 69 6f 6e 28 68 age = function(h
  1023. 00003e00: 74 6d 6c 29 20 7b 0a 20 20 76 61 72 20 65 6d 6f tml) {. var emo
  1024. 00003e10: 6a 69 2c 20 6c 69 6e 6b 3b 0a 20 20 66 6f 72 20 ji, link;. for
  1025. 00003e20: 28 65 6d 6f 6a 69 20 69 6e 20 65 6d 6f 6a 69 73 (emoji in emojis
  1026. 00003e30: 29 20 7b 0a 20 20 20 20 65 6d 6f 6a 69 20 3d 20 ) {. emoji =
  1027. 00003e40: 65 6d 6f 6a 69 3b 0a 20 20 20 20 6c 69 6e 6b 20 emoji;. link
  1028. 00003e50: 3d 20 65 6d 6f 6a 69 73 5b 65 6d 6f 6a 69 5d 3b = emojis[emoji];
  1029. 00003e60: 0a 20 20 20 20 68 74 6d 6c 20 3d 20 68 74 6d 6c . html = html
  1030. 00003e70: 2e 72 65 70 6c 61 63 65 28 6e 65 77 20 52 65 67 .replace(new Reg
  1031. 00003e80: 45 78 70 28 65 73 63 61 70 65 52 65 67 65 78 28 Exp(escapeRegex(
  1032. 00003e90: 65 6d 6f 6a 69 29 2c 20 27 67 69 27 29 2c 20 27 emoji), 'gi'), '
  1033. 00003ea0: 3c 69 6d 67 20 61 6c 74 3d 5c 27 27 20 2b 20 65 <img alt=\'' + e
  1034. 00003eb0: 6d 6f 6a 69 20 2b 20 27 5c 27 20 73 72 63 3d 5c moji + '\' src=\
  1035. 00003ec0: 27 27 20 2b 20 6c 69 6e 6b 20 2b 20 27 5c 27 3e '' + link + '\'>
  1036. 00003ed0: 27 29 3b 0a 20 20 7d 0a 20 20 72 65 74 75 72 6e ');. }. return
  1037. 00003ee0: 20 68 74 6d 6c 3b 0a 7d 3b 0a 0a 69 6e 69 74 20 html;.};..init
  1038. 00003ef0: 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a 20 = function() {.
  1039. 00003f00: 20 72 65 74 75 72 6e 20 73 61 66 65 28 66 75 6e return safe(fun
  1040. 00003f10: 63 74 69 6f 6e 28 29 20 7b 0a 20 20 20 20 73 6f ction() {. so
  1041. 00003f20: 63 6b 65 74 20 3d 20 69 6f 2e 63 6f 6e 6e 65 63 cket = io.connec
  1042. 00003f30: 74 28 29 3b 0a 20 20 20 20 73 6f 63 6b 65 74 2e t();. socket.
  1043. 00003f40: 6f 6e 28 27 63 6f 6e 6e 65 63 74 27 2c 20 66 75 on('connect', fu
  1044. 00003f50: 6e 63 74 69 6f 6e 28 29 20 7b 0a 20 20 20 20 20 nction() {.
  1045. 00003f60: 20 72 65 74 75 72 6e 20 73 65 74 73 74 61 74 75 return setstatu
  1046. 00003f70: 73 28 27 43 6f 6e 6e 65 63 74 65 64 20 74 6f 20 s('Connected to
  1047. 00003f80: 74 68 65 20 73 65 72 76 65 72 21 27 29 3b 0a 20 the server!');.
  1048. 00003f90: 20 20 20 7d 29 3b 0a 20 20 20 20 73 6f 63 6b 65 });. socke
  1049. 00003fa0: 74 2e 6f 6e 28 27 73 65 74 69 64 27 2c 20 66 75 t.on('setid', fu
  1050. 00003fb0: 6e 63 74 69 6f 6e 28 64 61 74 61 29 20 7b 0a 20 nction(data) {.
  1051. 00003fc0: 20 20 20 20 20 72 65 74 75 72 6e 20 73 65 73 73 return sess
  1052. 00003fd0: 69 6f 6e 69 64 20 3d 20 64 61 74 61 2e 73 65 73 ionid = data.ses
  1053. 00003fe0: 73 69 6f 6e 69 64 3b 0a 20 20 20 20 7d 29 3b 0a sionid;. });.
  1054. 00003ff0: 20 20 20 20 73 6f 63 6b 65 74 2e 6f 6e 28 27 64 socket.on('d
  1055. 00004000: 69 73 63 6f 6e 6e 65 63 74 27 2c 20 66 75 6e 63 isconnect', func
  1056. 00004010: 74 69 6f 6e 28 29 20 7b 0a 20 20 20 20 20 20 72 tion() {. r
  1057. 00004020: 65 74 75 72 6e 20 73 65 74 73 74 61 74 75 73 28 eturn setstatus(
  1058. 00004030: 27 4c 6f 73 74 20 63 6f 6e 6e 65 63 74 69 6f 6e 'Lost connection
  1059. 00004040: 21 27 2c 20 74 72 75 65 29 3b 0a 20 20 20 20 7d !', true);. }
  1060. 00004050: 29 3b 0a 20 20 20 20 24 28 27 23 70 61 73 73 77 );. $('#passw
  1061. 00004060: 6f 72 64 27 29 2e 6b 65 79 64 6f 77 6e 28 66 75 ord').keydown(fu
  1062. 00004070: 6e 63 74 69 6f 6e 28 65 76 65 6e 74 29 20 7b 0a nction(event) {.
  1063. 00004080: 20 20 20 20 20 20 69 66 20 28 65 76 65 6e 74 2e if (event.
  1064. 00004090: 6b 65 79 43 6f 64 65 20 3d 3d 3d 20 31 33 29 20 keyCode === 13)
  1065. 000040a0: 7b 0a 20 20 20 20 20 20 20 20 65 76 65 6e 74 2e {. event.
  1066. 000040b0: 70 72 65 76 65 6e 74 44 65 66 61 75 6c 74 28 29 preventDefault()
  1067. 000040c0: 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e ;. return
  1068. 000040d0: 20 24 28 27 23 62 74 6e 27 29 2e 63 6c 69 63 6b $('#btn').click
  1069. 000040e0: 28 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 ();. }.
  1070. 000040f0: 7d 29 3b 0a 20 20 20 20 73 6f 63 6b 65 74 2e 6f });. socket.o
  1071. 00004100: 6e 28 27 6c 6f 67 69 6e 2d 63 6f 6d 70 6c 65 74 n('login-complet
  1072. 00004110: 65 27 2c 20 66 75 6e 63 74 69 6f 6e 28 64 61 74 e', function(dat
  1073. 00004120: 61 29 20 7b 0a 20 20 20 20 20 20 73 65 74 55 73 a) {. setUs
  1074. 00004130: 65 72 6e 61 6d 65 43 6f 6f 6b 69 65 28 64 61 74 ernameCookie(dat
  1075. 00004140: 61 2e 75 73 65 72 6e 61 6d 65 29 3b 0a 20 20 20 a.username);.
  1076. 00004150: 20 20 20 73 65 74 73 74 61 74 75 73 28 27 57 65 setstatus('We
  1077. 00004160: 6c 63 6f 6d 65 20 27 20 2b 20 64 61 74 61 2e 75 lcome ' + data.u
  1078. 00004170: 73 65 72 6e 61 6d 65 20 2b 20 27 21 27 2c 20 27 sername + '!', '
  1079. 00004180: 4c 6f 61 64 69 6e 67 20 63 68 61 74 2e 2e 2e 27 Loading chat...'
  1080. 00004190: 29 3b 0a 20 20 20 20 20 20 73 65 74 47 61 6d 65 );. setGame
  1081. 000041a0: 45 76 65 6e 74 48 61 6e 64 6c 65 72 73 28 29 3b EventHandlers();
  1082. 000041b0: 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 69 6e . return in
  1083. 000041c0: 69 74 63 68 61 74 28 29 3b 0a 20 20 20 20 7d 29 itchat();. })
  1084. 000041d0: 3b 0a 20 20 20 20 73 6f 63 6b 65 74 2e 6f 6e 28 ;. socket.on(
  1085. 000041e0: 27 6c 6f 67 69 6e 2d 66 61 69 6c 65 64 27 2c 20 'login-failed',
  1086. 000041f0: 66 75 6e 63 74 69 6f 6e 28 64 61 74 61 29 20 7b function(data) {
  1087. 00004200: 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 65 . return se
  1088. 00004210: 74 73 74 61 74 75 73 28 27 46 61 69 6c 65 64 20 tstatus('Failed
  1089. 00004220: 74 6f 20 6c 6f 67 69 6e 3a 27 2c 20 64 61 74 61 to login:', data
  1090. 00004230: 2e 65 72 72 6f 72 2c 20 74 72 75 65 29 3b 0a 20 .error, true);.
  1091. 00004240: 20 20 20 7d 29 3b 0a 20 20 20 20 73 6f 63 6b 65 });. socke
  1092. 00004250: 74 2e 6f 6e 28 27 72 65 67 69 73 74 65 72 2d 63 t.on('register-c
  1093. 00004260: 6f 6d 70 6c 65 74 65 27 2c 20 66 75 6e 63 74 69 omplete', functi
  1094. 00004270: 6f 6e 28 64 61 74 61 29 20 7b 0a 20 20 20 20 20 on(data) {.
  1095. 00004280: 20 72 65 74 75 72 6e 20 73 65 74 73 74 61 74 75 return setstatu
  1096. 00004290: 73 28 27 55 73 65 72 6e 61 6d 65 20 5c 27 27 20 s('Username \''
  1097. 000042a0: 2b 20 64 61 74 61 2e 75 73 65 72 6e 61 6d 65 20 + data.username
  1098. 000042b0: 2b 20 27 5c 27 20 68 61 73 20 62 65 65 6e 20 73 + '\' has been s
  1099. 000042c0: 75 63 63 65 73 73 66 75 6c 6c 79 20 72 65 67 69 uccessfully regi
  1100. 000042d0: 73 74 65 72 65 64 27 29 3b 0a 20 20 20 20 7d 29 stered');. })
  1101. 000042e0: 3b 0a 20 20 20 20 73 6f 63 6b 65 74 2e 6f 6e 28 ;. socket.on(
  1102. 000042f0: 27 72 65 67 69 73 74 65 72 2d 66 61 69 6c 65 64 'register-failed
  1103. 00004300: 27 2c 20 66 75 6e 63 74 69 6f 6e 28 64 61 74 61 ', function(data
  1104. 00004310: 29 20 7b 0a 20 20 20 20 20 20 72 65 74 75 72 6e ) {. return
  1105. 00004320: 20 73 65 74 73 74 61 74 75 73 28 27 46 61 69 6c setstatus('Fail
  1106. 00004330: 65 64 20 74 6f 20 72 65 67 69 73 74 65 72 27 2c ed to register',
  1107. 00004340: 20 64 61 74 61 2e 65 72 72 6f 72 2c 20 74 72 75 data.error, tru
  1108. 00004350: 65 29 3b 0a 20 20 20 20 7d 29 3b 0a 20 20 20 20 e);. });.
  1109. 00004360: 75 73 65 72 6e 61 6d 65 20 3d 20 67 65 74 55 73 username = getUs
  1110. 00004370: 65 72 6e 61 6d 65 43 6f 6f 6b 69 65 28 29 3b 0a ernameCookie();.
  1111. 00004380: 20 20 20 20 69 66 20 28 75 73 65 72 6e 61 6d 65 if (username
  1112. 00004390: 20 21 3d 3d 20 76 6f 69 64 20 30 29 20 7b 0a 20 !== void 0) {.
  1113. 000043a0: 20 20 20 20 20 72 65 74 75 72 6e 20 24 28 27 23 return $('#
  1114. 000043b0: 75 73 65 72 6e 61 6d 65 27 29 2e 76 61 6c 28 75 username').val(u
  1115. 000043c0: 73 65 72 6e 61 6d 65 29 3b 0a 20 20 20 20 7d 0a sername);. }.
  1116. 000043d0: 20 20 7d 29 3b 0a 7d 3b 0a 0a 69 6e 69 74 63 68 });.};..initch
  1117. 000043e0: 61 74 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 at = function()
  1118. 000043f0: 7b 0a 20 20 72 65 74 75 72 6e 20 73 61 66 65 28 {. return safe(
  1119. 00004400: 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a 20 20 20 function() {.
  1120. 00004410: 20 73 6f 63 6b 65 74 2e 6f 6e 28 27 64 69 73 63 socket.on('disc
  1121. 00004420: 6f 6e 6e 65 63 74 27 2c 20 66 75 6e 63 74 69 6f onnect', functio
  1122. 00004430: 6e 28 29 20 7b 0a 20 20 20 20 20 20 69 66 20 28 n() {. if (
  1123. 00004440: 24 28 27 23 6d 73 67 62 6f 78 27 29 20 3d 3d 3d $('#msgbox') ===
  1124. 00004450: 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 20 20 20 null) {.
  1125. 00004460: 20 72 65 74 75 72 6e 20 61 6c 65 72 74 28 27 44 return alert('D
  1126. 00004470: 69 73 63 6f 6e 6e 65 63 74 65 64 20 66 72 6f 6d isconnected from
  1127. 00004480: 20 73 65 72 76 65 72 21 27 29 3b 0a 20 20 20 20 server!');.
  1128. 00004490: 20 20 7d 0a 20 20 20 20 7d 29 3b 0a 20 20 20 20 }. });.
  1129. 000044a0: 73 6f 63 6b 65 74 2e 6f 6e 28 27 63 68 61 74 2d socket.on('chat-
  1130. 000044b0: 64 61 74 61 27 2c 20 66 75 6e 63 74 69 6f 6e 28 data', function(
  1131. 000044c0: 64 61 74 61 29 20 7b 0a 20 20 20 20 20 20 76 61 data) {. va
  1132. 000044d0: 72 20 68 74 6d 6c 3b 0a 20 20 20 20 20 20 68 74 r html;. ht
  1133. 000044e0: 6d 6c 20 3d 20 64 61 74 61 2e 68 74 6d 6c 3b 0a ml = data.html;.
  1134. 000044f0: 20 20 20 20 20 20 24 28 27 62 6f 64 79 27 29 2e $('body').
  1135. 00004500: 68 74 6d 6c 28 68 74 6d 6c 29 3b 0a 20 20 20 20 html(html);.
  1136. 00004510: 20 20 73 6f 63 6b 65 74 2e 6f 6e 28 27 64 69 73 socket.on('dis
  1137. 00004520: 63 6f 6e 6e 65 63 74 27 2c 20 66 75 6e 63 74 69 connect', functi
  1138. 00004530: 6f 6e 28 29 20 7b 0a 20 20 20 20 20 20 20 20 76 on() {. v
  1139. 00004540: 61 72 20 6d 73 67 62 6f 78 3b 0a 20 20 20 20 20 ar msgbox;.
  1140. 00004550: 20 20 20 6d 73 67 62 6f 78 20 3d 20 24 28 27 23 msgbox = $('#
  1141. 00004560: 6d 73 67 62 6f 78 27 29 3b 0a 20 20 20 20 20 20 msgbox');.
  1142. 00004570: 20 20 6d 73 67 62 6f 78 2e 68 69 64 65 28 29 3b msgbox.hide();
  1143. 00004580: 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 28 27 . if ($('
  1144. 00004590: 23 72 65 66 72 65 73 68 6c 69 6e 6b 27 29 5b 30 #refreshlink')[0
  1145. 000045a0: 5d 20 3d 3d 3d 20 76 6f 69 64 20 30 29 20 7b 0a ] === void 0) {.
  1146. 000045b0: 20 20 20 20 20 20 20 20 20 20 6d 73 67 62 6f 78 msgbox
  1147. 000045c0: 2e 70 61 72 65 6e 74 28 29 2e 61 70 70 65 6e 64 .parent().append
  1148. 000045d0: 28 27 3c 73 70 61 6e 20 69 64 3d 22 72 65 66 72 ('<span id="refr
  1149. 000045e0: 65 73 68 6c 69 6e 6b 22 20 63 6c 61 73 73 3d 22 eshlink" class="
  1150. 000045f0: 65 72 72 6f 72 22 3e 4c 6f 73 74 20 63 6f 6e 6e error">Lost conn
  1151. 00004600: 65 63 74 69 6f 6e 5c 6e 3c 61 20 68 72 65 66 20 ection\n<a href
  1152. 00004610: 73 74 79 6c 65 3d 22 64 69 73 70 6c 61 79 3a 20 style="display:
  1153. 00004620: 6e 6f 6e 65 3b 22 20 6f 6e 63 6c 69 63 6b 3d 22 none;" onclick="
  1154. 00004630: 6c 6f 63 61 74 69 6f 6e 2e 68 72 65 66 3d 6c 6f location.href=lo
  1155. 00004640: 63 61 74 69 6f 6e 2e 68 72 65 66 22 3e 20 54 72 cation.href"> Tr
  1156. 00004650: 79 20 72 65 66 72 65 73 68 69 6e 67 3f 3c 2f 61 y refreshing?</a
  1157. 00004660: 3e 3c 2f 73 70 61 6e 3e 27 29 3b 0a 20 20 20 20 ></span>');.
  1158. 00004670: 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 73 6f }. so
  1159. 00004680: 63 6b 65 74 2e 6f 6e 28 27 63 6f 6e 6e 65 63 74 cket.on('connect
  1160. 00004690: 27 2c 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a ', function() {.
  1161. 000046a0: 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e return
  1162. 000046b0: 20 24 28 27 23 72 65 66 72 65 73 68 6c 69 6e 6b $('#refreshlink
  1163. 000046c0: 20 61 27 29 2e 73 68 6f 77 28 29 3b 0a 20 20 20 a').show();.
  1164. 000046d0: 20 20 20 20 20 7d 29 3b 0a 20 20 20 20 20 20 20 });.
  1165. 000046e0: 20 72 65 74 75 72 6e 20 73 6f 63 6b 65 74 2e 6f return socket.o
  1166. 000046f0: 6e 28 27 64 69 73 63 6f 6e 6e 65 63 74 27 2c 20 n('disconnect',
  1167. 00004700: 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a 20 20 20 function() {.
  1168. 00004710: 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 28 return $(
  1169. 00004720: 27 23 72 65 66 72 65 73 68 6c 69 6e 6b 20 61 27 '#refreshlink a'
  1170. 00004730: 29 2e 68 69 64 65 28 29 3b 0a 20 20 20 20 20 20 ).hide();.
  1171. 00004740: 20 20 7d 29 3b 0a 20 20 20 20 20 20 7d 29 3b 0a });. });.
  1172. 00004750: 20 20 20 20 20 20 24 28 27 23 6d 73 67 62 6f 78 $('#msgbox
  1173. 00004760: 27 29 2e 6b 65 79 64 6f 77 6e 28 66 75 6e 63 74 ').keydown(funct
  1174. 00004770: 69 6f 6e 28 65 76 65 6e 74 29 20 7b 0a 20 20 20 ion(event) {.
  1175. 00004780: 20 20 20 20 20 76 61 72 20 6d 65 73 73 61 67 65 var message
  1176. 00004790: 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 65 76 ;. if (ev
  1177. 000047a0: 65 6e 74 2e 6b 65 79 43 6f 64 65 20 3d 3d 3d 20 ent.keyCode ===
  1178. 000047b0: 31 33 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 13) {.
  1179. 000047c0: 65 76 65 6e 74 2e 70 72 65 76 65 6e 74 44 65 66 event.preventDef
  1180. 000047d0: 61 75 6c 74 28 29 3b 0a 20 20 20 20 20 20 20 20 ault();.
  1181. 000047e0: 20 20 6d 65 73 73 61 67 65 20 3d 20 24 28 27 23 message = $('#
  1182. 000047f0: 6d 73 67 62 6f 78 27 29 2e 76 61 6c 28 29 3b 0a msgbox').val();.
  1183. 00004800: 20 20 20 20 20 20 20 20 20 20 24 28 27 23 6d 73 $('#ms
  1184. 00004810: 67 62 6f 78 27 29 2e 76 61 6c 28 27 27 29 3b 0a gbox').val('');.
  1185. 00004820: 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e return
  1186. 00004830: 20 73 6f 63 6b 65 74 2e 65 6d 69 74 28 27 63 6c socket.emit('cl
  1187. 00004840: 69 65 6e 74 2d 73 65 6e 64 2d 6d 65 73 73 61 67 ient-send-messag
  1188. 00004850: 65 27 2c 20 7b 0a 20 20 20 20 20 20 20 20 20 20 e', {.
  1189. 00004860: 20 20 73 65 73 73 69 6f 6e 69 64 3a 20 73 65 73 sessionid: ses
  1190. 00004870: 73 69 6f 6e 69 64 2c 0a 20 20 20 20 20 20 20 20 sionid,.
  1191. 00004880: 20 20 20 20 6d 65 73 73 61 67 65 3a 20 6d 65 73 message: mes
  1192. 00004890: 73 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 7d sage. }
  1193. 000048a0: 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 );. }.
  1194. 000048b0: 20 20 20 7d 29 3b 0a 20 20 20 20 20 20 73 6f 63 });. soc
  1195. 000048c0: 6b 65 74 2e 6f 6e 28 27 63 6c 69 65 6e 74 2d 72 ket.on('client-r
  1196. 000048d0: 65 63 65 69 76 65 2d 6d 65 73 73 61 67 65 27 2c eceive-message',
  1197. 000048e0: 20 66 75 6e 63 74 69 6f 6e 28 64 61 74 61 29 20 function(data)
  1198. 000048f0: 7b 0a 20 20 20 20 20 20 20 20 76 61 72 20 6d 65 {. var me
  1199. 00004900: 73 73 61 67 65 2c 20 75 73 65 72 3b 0a 20 20 20 ssage, user;.
  1200. 00004910: 20 20 20 20 20 6d 65 73 73 61 67 65 20 3d 20 64 message = d
  1201. 00004920: 61 74 61 2e 6d 65 73 73 61 67 65 3b 0a 20 20 20 ata.message;.
  1202. 00004930: 20 20 20 20 20 75 73 65 72 20 3d 20 64 61 74 61 user = data
  1203. 00004940: 2e 75 73 65 72 3b 0a 20 20 20 20 20 20 20 20 68 .user;. h
  1204. 00004950: 74 6d 6c 20 3d 20 27 3c 70 20 63 6c 61 73 73 3d tml = '<p class=
  1205. 00004960: 5c 27 63 68 61 74 2d 6d 65 73 73 61 67 65 20 27 \'chat-message '
  1206. 00004970: 20 2b 20 75 73 65 72 2e 74 79 70 65 20 2b 20 27 + user.type + '
  1207. 00004980: 5c 27 3e 27 3b 0a 20 20 20 20 20 20 20 20 69 66 \'>';. if
  1208. 00004990: 20 28 75 73 65 72 2e 6e 61 6d 65 20 21 3d 3d 20 (user.name !==
  1209. 000049a0: 27 53 45 52 56 45 52 27 29 20 7b 0a 20 20 20 20 'SERVER') {.
  1210. 000049b0: 20 20 20 20 20 20 68 74 6d 6c 20 2b 3d 20 27 3c html += '<
  1211. 000049c0: 73 70 61 6e 20 63 6c 61 73 73 3d 5c 27 75 73 65 span class=\'use
  1212. 000049d0: 72 5c 27 3e 27 20 2b 20 75 73 65 72 2e 6e 61 6d r\'>' + user.nam
  1213. 000049e0: 65 20 2b 20 27 3a 20 3c 2f 73 70 61 6e 3e 27 3b e + ': </span>';
  1214. 000049f0: 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 . }.
  1215. 00004a00: 20 20 20 68 74 6d 6c 20 2b 3d 20 70 61 72 73 65 html += parse
  1216. 00004a10: 4d 65 73 73 61 67 65 28 6d 65 73 73 61 67 65 29 Message(message)
  1217. 00004a20: 20 2b 20 27 3c 2f 70 3e 27 3b 0a 20 20 20 20 20 + '</p>';.
  1218. 00004a30: 20 20 20 72 65 74 75 72 6e 20 24 28 27 23 63 68 return $('#ch
  1219. 00004a40: 61 74 62 6f 78 27 29 2e 68 74 6d 6c 28 68 74 6d atbox').html(htm
  1220. 00004a50: 6c 20 2b 20 24 28 27 23 63 68 61 74 62 6f 78 27 l + $('#chatbox'
  1221. 00004a60: 29 2e 68 74 6d 6c 28 29 29 3b 0a 20 20 20 20 20 ).html());.
  1222. 00004a70: 20 7d 29 3b 0a 20 20 20 20 20 20 72 65 74 75 72 });. retur
  1223. 00004a80: 6e 20 73 6f 63 6b 65 74 2e 6f 6e 28 27 73 65 74 n socket.on('set
  1224. 00004a90: 63 68 61 6e 6e 65 6c 73 27 2c 20 66 75 6e 63 74 channels', funct
  1225. 00004aa0: 69 6f 6e 28 64 61 74 61 29 20 7b 0a 20 20 20 20 ion(data) {.
  1226. 00004ab0: 20 20 20 20 63 68 61 6e 6e 65 6c 73 20 3d 20 64 channels = d
  1227. 00004ac0: 61 74 61 2e 63 68 61 6e 6e 65 6c 73 3b 0a 20 20 ata.channels;.
  1228. 00004ad0: 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 28 27 return $('
  1229. 00004ae0: 23 63 68 61 6e 6e 65 6c 73 27 29 2e 68 74 6d 6c #channels').html
  1230. 00004af0: 28 27 43 68 61 6e 6e 65 6c 73 3a 20 27 20 2b 20 ('Channels: ' +
  1231. 00004b00: 63 68 61 6e 6e 65 6c 73 2e 6a 6f 69 6e 28 27 2c channels.join(',
  1232. 00004b10: 20 27 29 29 3b 0a 20 20 20 20 20 20 7d 29 3b 0a '));. });.
  1233. 00004b20: 20 20 20 20 7d 29 3b 0a 20 20 20 20 73 6f 63 6b });. sock
  1234. 00004b30: 65 74 2e 65 6d 69 74 28 27 67 65 74 2d 63 68 61 et.emit('get-cha
  1235. 00004b40: 74 2d 64 61 74 61 27 2c 20 7b 7d 29 3b 0a 20 20 t-data', {});.
  1236. 00004b50: 7d 29 3b 0a 7d 3b 0a 0a 69 6e 69 74 67 61 6d 65 });.};..initgame
  1237. 00004b60: 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a = function() {.
  1238. 00004b70: 20 20 76 61 72 20 73 74 61 72 74 58 2c 20 73 74 var startX, st
  1239. 00004b80: 61 72 74 59 3b 0a 20 20 63 61 6e 76 61 73 20 3d artY;. canvas =
  1240. 00004b90: 20 64 6f 63 75 6d 65 6e 74 2e 67 65 74 45 6c 65 document.getEle
  1241. 00004ba0: 6d 65 6e 74 42 79 49 64 28 27 67 61 6d 65 43 61 mentById('gameCa
  1242. 00004bb0: 6e 76 61 73 27 29 3b 0a 20 20 63 74 78 20 3d 20 nvas');. ctx =
  1243. 00004bc0: 63 61 6e 76 61 73 2e 67 65 74 43 6f 6e 74 65 78 canvas.getContex
  1244. 00004bd0: 74 28 27 32 64 27 29 3b 0a 20 20 64 69 76 43 61 t('2d');. divCa
  1245. 00004be0: 6e 76 61 73 20 3d 20 64 6f 63 75 6d 65 6e 74 2e nvas = document.
  1246. 00004bf0: 67 65 74 45 6c 65 6d 65 6e 74 42 79 49 64 28 27 getElementById('
  1247. 00004c00: 67 61 6d 65 27 29 3b 0a 20 20 63 61 6e 76 61 73 game');. canvas
  1248. 00004c10: 2e 77 69 64 74 68 20 3d 20 64 69 76 43 61 6e 76 .width = divCanv
  1249. 00004c20: 61 73 2e 6f 66 66 73 65 74 57 69 64 74 68 20 2d as.offsetWidth -
  1250. 00004c30: 20 36 3b 0a 20 20 63 61 6e 76 61 73 2e 68 65 69 6;. canvas.hei
  1251. 00004c40: 67 68 74 20 3d 20 64 69 76 43 61 6e 76 61 73 2e ght = divCanvas.
  1252. 00004c50: 6f 66 66 73 65 74 48 65 69 67 68 74 20 2d 20 36 offsetHeight - 6
  1253. 00004c60: 3b 0a 20 20 6b 65 79 73 20 3d 20 6e 65 77 20 4b ;. keys = new K
  1254. 00004c70: 65 79 73 3b 0a 20 20 72 6f 6f 6d 20 3d 20 7b 0a eys;. room = {.
  1255. 00004c80: 20 20 20 20 77 69 64 74 68 3a 20 32 32 30 30 2c width: 2200,
  1256. 00004c90: 0a 20 20 20 20 68 65 69 67 68 74 3a 20 32 32 30 . height: 220
  1257. 00004ca0: 30 0a 20 20 7d 3b 0a 20 20 72 6f 6f 6d 2e 6d 61 0. };. room.ma
  1258. 00004cb0: 70 20 3d 20 6e 65 77 20 47 61 6d 65 2e 4d 61 70 p = new Game.Map
  1259. 00004cc0: 28 72 6f 6f 6d 2e 77 69 64 74 68 2c 20 72 6f 6f (room.width, roo
  1260. 00004cd0: 6d 2e 68 65 69 67 68 74 29 3b 0a 20 20 72 6f 6f m.height);. roo
  1261. 00004ce0: 6d 2e 6d 61 70 2e 67 65 6e 65 72 61 74 65 28 29 m.map.generate()
  1262. 00004cf0: 3b 0a 20 20 73 74 61 72 74 58 20 3d 20 4d 61 74 ;. startX = Mat
  1263. 00004d00: 68 2e 72 6f 75 6e 64 28 4d 61 74 68 2e 72 61 6e h.round(Math.ran
  1264. 00004d10: 64 6f 6d 28 29 20 2a 20 28 72 6f 6f 6d 2e 77 69 dom() * (room.wi
  1265. 00004d20: 64 74 68 20 2d 20 33 32 29 29 3b 0a 20 20 73 74 dth - 32));. st
  1266. 00004d30: 61 72 74 59 20 3d 20 4d 61 74 68 2e 72 6f 75 6e artY = Math.roun
  1267. 00004d40: 64 28 4d 61 74 68 2e 72 61 6e 64 6f 6d 28 29 20 d(Math.random()
  1268. 00004d50: 2a 20 28 72 6f 6f 6d 2e 68 65 69 67 68 74 20 2d * (room.height -
  1269. 00004d60: 20 33 32 29 29 3b 0a 20 20 6c 6f 63 61 6c 50 6c 32));. localPl
  1270. 00004d70: 61 79 65 72 4e 61 6d 65 20 3d 20 75 73 65 72 6e ayerName = usern
  1271. 00004d80: 61 6d 65 3b 0a 20 20 6c 6f 63 61 6c 50 6c 61 79 ame;. localPlay
  1272. 00004d90: 65 72 20 3d 20 6e 65 77 20 50 6c 61 79 65 72 28 er = new Player(
  1273. 00004da0: 73 74 61 72 74 58 2c 20 73 74 61 72 74 59 2c 20 startX, startY,
  1274. 00004db0: 6c 6f 63 61 6c 50 6c 61 79 65 72 4e 61 6d 65 2c localPlayerName,
  1275. 00004dc0: 20 27 62 6c 61 63 6b 27 29 3b 0a 20 20 6c 6f 63 'black');. loc
  1276. 00004dd0: 61 6c 50 6c 61 79 65 72 2e 69 64 20 3d 20 27 2f alPlayer.id = '/
  1277. 00004de0: 23 27 20 2b 20 73 6f 63 6b 65 74 2e 69 64 3b 0a #' + socket.id;.
  1278. 00004df0: 20 20 63 61 6d 65 72 61 20 3d 20 6e 65 77 20 47 camera = new G
  1279. 00004e00: 61 6d 65 2e 43 61 6d 65 72 61 28 30 2c 20 30 2c ame.Camera(0, 0,
  1280. 00004e10: 20 63 61 6e 76 61 73 2e 77 69 64 74 68 2c 20 63 canvas.width, c
  1281. 00004e20: 61 6e 76 61 73 2e 68 65 69 67 68 74 2c 20 72 6f anvas.height, ro
  1282. 00004e30: 6f 6d 2e 77 69 64 74 68 2c 20 72 6f 6f 6d 2e 68 om.width, room.h
  1283. 00004e40: 65 69 67 68 74 29 3b 0a 20 20 63 61 6d 65 72 61 eight);. camera
  1284. 00004e50: 2e 66 6f 6c 6c 6f 77 28 6c 6f 63 61 6c 50 6c 61 .follow(localPla
  1285. 00004e60: 79 65 72 2c 20 63 61 6e 76 61 73 2e 77 69 64 74 yer, canvas.widt
  1286. 00004e70: 68 20 2f 20 32 2c 20 63 61 6e 76 61 73 2e 68 65 h / 2, canvas.he
  1287. 00004e80: 69 67 68 74 20 2f 20 32 29 3b 0a 20 20 72 65 6d ight / 2);. rem
  1288. 00004e90: 6f 74 65 50 6c 61 79 65 72 73 20 3d 20 5b 5d 3b otePlayers = [];
  1289. 00004ea0: 0a 20 20 73 6f 63 6b 65 74 2e 65 6d 69 74 28 27 . socket.emit('
  1290. 00004eb0: 6e 65 77 20 70 6c 61 79 65 72 27 2c 20 7b 0a 20 new player', {.
  1291. 00004ec0: 20 20 20 78 3a 20 6c 6f 63 61 6c 50 6c 61 79 65 x: localPlaye
  1292. 00004ed0: 72 2e 78 2c 0a 20 20 20 20 79 3a 20 6c 6f 63 61 r.x,. y: loca
  1293. 00004ee0: 6c 50 6c 61 79 65 72 2e 79 2c 0a 20 20 20 20 6e lPlayer.y,. n
  1294. 00004ef0: 61 6d 65 3a 20 6c 6f 63 61 6c 50 6c 61 79 65 72 ame: localPlayer
  1295. 00004f00: 4e 61 6d 65 0a 20 20 7d 29 3b 0a 20 20 72 65 74 Name. });. ret
  1296. 00004f10: 75 72 6e 20 77 69 6e 64 6f 77 2e 72 65 71 75 65 urn window.reque
  1297. 00004f20: 73 74 41 6e 69 6d 46 72 61 6d 65 28 74 69 63 6b stAnimFrame(tick
  1298. 00004f30: 29 3b 0a 7d 3b 0a 0a 6c 6f 67 69 6e 20 3d 20 66 );.};..login = f
  1299. 00004f40: 75 6e 63 74 69 6f 6e 28 29 20 7b 0a 20 20 72 65 unction() {. re
  1300. 00004f50: 74 75 72 6e 20 73 61 66 65 28 66 75 6e 63 74 69 turn safe(functi
  1301. 00004f60: 6f 6e 28 29 20 7b 0a 20 20 20 20 76 61 72 20 70 on() {. var p
  1302. 00004f70: 61 73 73 77 6f 72 64 3b 0a 20 20 20 20 75 73 65 assword;. use
  1303. 00004f80: 72 6e 61 6d 65 20 3d 20 24 28 27 23 75 73 65 72 rname = $('#user
  1304. 00004f90: 6e 61 6d 65 27 29 2e 76 61 6c 28 29 3b 0a 20 20 name').val();.
  1305. 00004fa0: 20 20 70 61 73 73 77 6f 72 64 20 3d 20 24 28 27 password = $('
  1306. 00004fb0: 23 70 61 73 73 77 6f 72 64 27 29 2e 76 61 6c 28 #password').val(
  1307. 00004fc0: 29 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 73 6f );. return so
  1308. 00004fd0: 63 6b 65 74 2e 65 6d 69 74 28 27 6c 6f 67 69 6e cket.emit('login
  1309. 00004fe0: 27 2c 20 7b 0a 20 20 20 20 20 20 75 73 65 72 6e ', {. usern
  1310. 00004ff0: 61 6d 65 3a 20 75 73 65 72 6e 61 6d 65 2c 0a 20 ame: username,.
  1311. 00005000: 20 20 20 20 20 70 61 73 73 77 6f 72 64 3a 20 70 password: p
  1312. 00005010: 61 73 73 77 6f 72 64 0a 20 20 20 20 7d 29 3b 0a assword. });.
  1313. 00005020: 20 20 7d 29 3b 0a 7d 3b 0a 0a 72 65 67 69 73 74 });.};..regist
  1314. 00005030: 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 er = function()
  1315. 00005040: 7b 0a 20 20 72 65 74 75 72 6e 20 73 61 66 65 28 {. return safe(
  1316. 00005050: 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a 20 20 20 function() {.
  1317. 00005060: 20 76 61 72 20 70 61 73 73 77 6f 72 64 3b 0a 20 var password;.
  1318. 00005070: 20 20 20 75 73 65 72 6e 61 6d 65 20 3d 20 24 28 username = $(
  1319. 00005080: 27 23 75 73 65 72 6e 61 6d 65 27 29 2e 76 61 6c '#username').val
  1320. 00005090: 28 29 3b 0a 20 20 20 20 70 61 73 73 77 6f 72 64 ();. password
  1321. 000050a0: 20 3d 20 24 28 27 23 70 61 73 73 77 6f 72 64 27 = $('#password'
  1322. 000050b0: 29 2e 76 61 6c 28 29 3b 0a 20 20 20 20 72 65 74 ).val();. ret
  1323. 000050c0: 75 72 6e 20 73 6f 63 6b 65 74 2e 65 6d 69 74 28 urn socket.emit(
  1324. 000050d0: 27 72 65 67 69 73 74 65 72 27 2c 20 7b 0a 20 20 'register', {.
  1325. 000050e0: 20 20 20 20 75 73 65 72 6e 61 6d 65 3a 20 75 73 username: us
  1326. 000050f0: 65 72 6e 61 6d 65 2c 0a 20 20 20 20 20 20 70 61 ername,. pa
  1327. 00005100: 73 73 77 6f 72 64 3a 20 70 61 73 73 77 6f 72 64 ssword: password
  1328. 00005110: 0a 20 20 20 20 7d 29 3b 0a 20 20 7d 29 3b 0a 7d . });. });.}
  1329. 00005120: 3b 0a 0a 6c 6f 67 6f 75 74 20 3d 20 66 75 6e 63 ;..logout = func
  1330. 00005130: 74 69 6f 6e 28 29 20 7b 0a 20 20 72 65 74 75 72 tion() {. retur
  1331. 00005140: 6e 20 6c 6f 63 61 74 69 6f 6e 2e 68 72 65 66 20 n location.href
  1332. 00005150: 2b 3d 20 27 27 3b 0a 7d 3b 0a += '';.};.
  1333. 00000000: 9e b6 dc 39 e3 e3 92 af 59 d8 d5 41 ...9....Y..A
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement