Remap use/speak keys and update help/changelog

This commit is contained in:
Jage9
2026-02-22 17:16:31 -05:00
parent 5f1f1022fc
commit 8da737150e
5 changed files with 34 additions and 31 deletions

View File

@@ -16,7 +16,8 @@ export type MainModeCommand =
| 'speakCoordinates'
| 'openMicGainEdit'
| 'calibrateMicrophone'
| 'useItemOrUsersSummary'
| 'useItem'
| 'speakUsers'
| 'addItem'
| 'locateOrListItems'
| 'pickupDropOrDelete'
@@ -46,7 +47,8 @@ export function resolveMainModeCommand(code: string, shiftKey: boolean): MainMod
if (code === 'Minus' || code === 'NumpadSubtract') return 'effectValueDown';
if (code === 'KeyC') return 'speakCoordinates';
if (code === 'KeyV') return shiftKey ? 'calibrateMicrophone' : 'openMicGainEdit';
if (code === 'KeyU') return 'useItemOrUsersSummary';
if (code === 'Enter') return 'useItem';
if (code === 'KeyU') return 'speakUsers';
if (code === 'KeyA') return 'addItem';
if (code === 'KeyI') return 'locateOrListItems';
if (code === 'KeyD') return 'pickupDropOrDelete';

View File

@@ -1376,34 +1376,33 @@ function handleNormalModeInput(code: string, shiftKey: boolean): void {
case 'calibrateMicrophone':
void calibrateMicInputGain();
return;
case 'useItemOrUsersSummary':
if (shiftKey) {
const allUsers = [state.player.nickname, ...Array.from(state.peers.values()).map((p) => p.nickname)];
const label = allUsers.length === 1 ? 'user' : 'users';
updateStatus(`${allUsers.length} ${label}: ${allUsers.join(', ')}`);
audio.sfxUiBlip();
case 'useItem': {
const carried = getCarriedItem();
if (carried) {
useItem(carried);
return;
}
{
const carried = getCarriedItem();
if (carried) {
useItem(carried);
return;
}
const squareItems = getItemsAtPosition(state.player.x, state.player.y);
const usable = squareItems.filter((item) => item.capabilities.includes('usable'));
if (usable.length === 0) {
updateStatus('No usable items here.');
audio.sfxUiCancel();
return;
}
if (usable.length === 1) {
useItem(usable[0]);
return;
}
beginItemSelection('use', usable);
const squareItems = getItemsAtPosition(state.player.x, state.player.y);
const usable = squareItems.filter((item) => item.capabilities.includes('usable'));
if (usable.length === 0) {
updateStatus('No usable items here.');
audio.sfxUiCancel();
return;
}
if (usable.length === 1) {
useItem(usable[0]);
return;
}
beginItemSelection('use', usable);
return;
}
case 'speakUsers': {
const allUsers = [state.player.nickname, ...Array.from(state.peers.values()).map((p) => p.nickname)];
const label = allUsers.length === 1 ? 'user' : 'users';
updateStatus(`${allUsers.length} ${label}: ${allUsers.join(', ')}`);
audio.sfxUiBlip();
return;
}
case 'addItem': {
const itemTypeSequence = getItemTypeSequence();
if (itemTypeSequence.length === 0) {