in src/components/game-controls.tsx [34:70]
function keyPressHandler({ key, keyCode }: { key: string | undefined, keyCode: number | undefined }) {
switch (key) {
case 'w':
return dispatch(moveUp())
case 'a':
return dispatch(moveLeft())
case 's':
return dispatch(moveDown())
case 'd':
return dispatch(moveRight())
}
switch (keyCode) {
case 38: // up arrow
return dispatch(moveUp())
case 37: // left arrow
return dispatch(moveLeft())
case 40: // down arrow
return dispatch(moveDown())
case 39: // right arrow
return dispatch(moveRight())
case 13: // enter
if (allItemsCollected && playerOnFinalSquare && user && !isSavingMission) {
dispatch(setIsSavingMission(true));
return addCompletedMission({ mission }).unwrap()
.then(() => {
dispatch(startMission({ nextMission: true }))
})
.catch(error => {
console.error('addCompletedMission request did not work.', { error })
}).finally(() => {
dispatch(setIsSavingMission(false));
});
}
return dispatch(collectItem())
}
}