Release v0.1.18 2026-07-19
This commit is contained in:
@@ -5,6 +5,16 @@ import { isRunBuffInputLocked, useGameStore } from "./store";
|
||||
import { ABILITY_BY_CONTROLLER_BUTTON } from "./controllerBindings";
|
||||
import { cycleBottomTab } from "./bottomTabs";
|
||||
import { resolveRpgFocusCommand } from "./rpgRoguelike/uiModel";
|
||||
import { getDisplaySurface } from "../platform/displayRouting";
|
||||
import { isSingleScreenLayout } from "../platform/displayLayout";
|
||||
|
||||
function tacticalOverlayOwnsInput() {
|
||||
const store = useGameStore.getState();
|
||||
if (!isSingleScreenLayout() || getDisplaySurface() !== "bottom") return false;
|
||||
if (store.paused || store.phase === "intermission") return false;
|
||||
if (store.runMode === "rpg-roguelike" && rpgInputIsGated()) return false;
|
||||
return !(store.phase === "victory" && store.runMode === "rogue-trials" && store.round === 5 && !store.endlessMode);
|
||||
}
|
||||
|
||||
function cycleRunBuff(direction: 1 | -1) {
|
||||
const store = useGameStore.getState();
|
||||
@@ -35,9 +45,11 @@ export function useActionBindings(enabled = true, onExit?: () => void) {
|
||||
useEffect(() => {
|
||||
const onKeyDown = (event: KeyboardEvent) => {
|
||||
if (!enabled) return;
|
||||
if (event.defaultPrevented) return;
|
||||
if (event.repeat) return;
|
||||
const store = useGameStore.getState();
|
||||
const key = event.key.toLowerCase();
|
||||
if (tacticalOverlayOwnsInput()) return;
|
||||
if (store.paused) {
|
||||
if (["escape", "arrowup", "arrowdown", "enter"].includes(key)) event.preventDefault();
|
||||
if (key === "escape") store.setPaused(false);
|
||||
@@ -124,6 +136,8 @@ export function useActionBindings(enabled = true, onExit?: () => void) {
|
||||
useEffect(() => subscribeControllerToken(({ token, repeat }) => {
|
||||
if (!enabled) return;
|
||||
const store = useGameStore.getState();
|
||||
if (isSingleScreenLayout() && token === "Button8") return;
|
||||
if (tacticalOverlayOwnsInput()) return;
|
||||
if (store.paused) {
|
||||
if (token === "Button12" || token === "Axis1-") store.setPauseSelection("resume");
|
||||
if (token === "Button13" || token === "Axis1+") store.setPauseSelection("exit");
|
||||
|
||||
Reference in New Issue
Block a user