Remap use/speak keys and update help/changelog
This commit is contained in:
@@ -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';
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user