game: add morse history

This commit is contained in:
He4eT 2025-06-12 04:57:44 +02:00
commit bc645e9361

13
game.js
View file

@ -81,6 +81,7 @@ const arena = {
const player = { const player = {
state: 'default', state: 'default',
key: { key: {
history: '',
buffer: '', buffer: '',
isDown: false, isDown: false,
downAt: 0, downAt: 0,
@ -182,8 +183,10 @@ function drawArena() {
/* Interface */ /* Interface */
function drawInterface() { function drawInterface() {
print('0', 145, 121, 4)
drawMorse(player.key.buffer, 102, 123, 15, 36) drawMorse(player.key.buffer, 102, 123, 15, 36)
print('0', 145, 121, 6)
print(player.key.history.padStart('13'), 18, 121, 6, true)
} }
/* Player */ /* Player */
@ -265,9 +268,14 @@ function handleMorse() {
now - key.upAt > IDLE_TIMEOUT now - key.upAt > IDLE_TIMEOUT
) { ) {
if (morseToLetter[key.buffer]) { if (morseToLetter[key.buffer]) {
destroyEnemiesByLetter(morseToLetter[key.buffer]) const letter = morseToLetter[key.buffer]
destroyEnemiesByLetter(letter)
key.history += letter
} else {
key.history += ' '
} }
key.buffer = '' key.buffer = ''
key.history = key.history.slice(-13)
} }
} }
@ -678,6 +686,7 @@ const BTN_Y = 7
* @typedef {{ * @typedef {{
* state: keyof typeof playerStates, * state: keyof typeof playerStates,
* key: { * key: {
* history: string,
* buffer: string, * buffer: string,
* isDown: boolean, * isDown: boolean,
* downAt: number, * downAt: number,