diff --git a/replay.pokemonshowdown.com/src/replays-battle.tsx b/replay.pokemonshowdown.com/src/replays-battle.tsx index fb96324f38..91f024188c 100644 --- a/replay.pokemonshowdown.com/src/replays-battle.tsx +++ b/replay.pokemonshowdown.com/src/replays-battle.tsx @@ -168,6 +168,7 @@ export class BattlePanel extends preact.Component<{id: string}> { } // @ts-ignore if (e.target?.tagName === 'INPUT' || e.target?.tagName === 'SELECT') return; + let target; switch (e.keyCode) { case 75: // k if (this.battle?.atQueueEnd) { @@ -195,6 +196,11 @@ export class BattlePanel extends preact.Component<{id: string}> { case 191: // / (?) if (e.shiftKey) { alert( + 'h = hyperfast speed\n' + + 'f = fast speed\n' + + 'n = normal speed\n' + + 's = slow speed\n' + + 'r = really slow speed\n' + 'k = play/pause\n' + 'j = previous turn\n' + 'l = next turn\n' + @@ -219,6 +225,36 @@ export class BattlePanel extends preact.Component<{id: string}> { case 77: // m this.toggleMute(); break; + case 72: // h + target = this.base?.querySelector('select[name=speed]'); + if (!target) return; + target.value = 'hyperfast'; + this.changeSpeed({target}); + break; + case 70: // f + target = this.base?.querySelector('select[name=speed]'); + if (!target) return; + target.value = 'fast'; + this.changeSpeed({target}); + break; + case 78: // n + target = this.base?.querySelector('select[name=speed]'); + if (!target) return; + target.value = 'normal'; + this.changeSpeed({target}); + break; + case 83: // s + target = this.base?.querySelector('select[name=speed]'); + if (!target) return; + target.value = 'slow'; + this.changeSpeed({target}); + break; + case 82: // r + target = this.base?.querySelector('select[name=speed]'); + if (!target) return; + target.value = 'reallyslow'; + this.changeSpeed({target}); + break; } this.forceUpdate(); };