forked from phenom/healer-man
updating buff and debuff icons. separated COA classes from WoW classes on the character creation screen
This commit is contained in:
1 parent
b5c9bce1aa
commit
c00f3211ea
39 files changed
+2037
-208
No files matched your search
@@ -10,6 +10,8 @@ import {
|
||||
MAX_MOUSE_DELTA_PER_FRAME,
|
||||
POINTER_LOCK_MOUSE_GRACE_MS,
|
||||
beginMouseLookDrag,
|
||||
clearJumpRequest,
|
||||
consumeJumpRequest,
|
||||
consumeMouseLook,
|
||||
controllerCommandForToken,
|
||||
createMouseLookBuffer,
|
||||
@@ -19,6 +21,7 @@ import {
|
||||
isDesktopCameraLookPointer,
|
||||
keyboardAxesForKeys,
|
||||
keyboardCommandForCode,
|
||||
queueJumpRequest,
|
||||
sanitizeMouseDelta,
|
||||
type InputActions,
|
||||
} from "./inputManager";
|
||||
@@ -54,6 +57,7 @@ function inputActionSpies(blocked = false): InputActions {
|
||||
|
||||
afterEach(() => {
|
||||
endMouseLookDrag();
|
||||
clearJumpRequest();
|
||||
resetControllerState();
|
||||
vi.unstubAllGlobals();
|
||||
});
|
||||
@@ -89,7 +93,7 @@ describe("gameplay input bindings", () => {
|
||||
it("maps Thor controls without stealing Select from display routing", () => {
|
||||
expect(controllerCommandForToken("Button9")).toBe("pause");
|
||||
expect(controllerCommandForToken("Button11")).toBe("target-next");
|
||||
expect(controllerCommandForToken("Button10")).toBe("target-clear");
|
||||
expect(controllerCommandForToken("Button10")).toBe("jump");
|
||||
expect(controllerCommandForToken("Button12")).toBe("party-previous");
|
||||
expect(controllerCommandForToken("Button13")).toBe("party-next");
|
||||
expect(controllerCommandForToken("Button4")).toBeNull();
|
||||
@@ -145,6 +149,31 @@ describe("gameplay input bindings", () => {
|
||||
expect(keyboardCommandForCode("Digit8")).toBeNull();
|
||||
});
|
||||
|
||||
it("queues Space and L3 jump presses once and blocks them behind menus", () => {
|
||||
expect(keyboardCommandForCode("Space")).toBe("jump");
|
||||
queueJumpRequest(25);
|
||||
expect(consumeJumpRequest()).toBe(25);
|
||||
expect(consumeJumpRequest()).toBeNull();
|
||||
|
||||
stubInputEventTargets();
|
||||
const nextActions = inputActionSpies();
|
||||
const blocked = nextActions.gameplayActionsBlocked as ReturnType<typeof vi.fn>;
|
||||
const dispose = installInput(nextActions);
|
||||
|
||||
emitControllerToken({ token: "Button10", repeat: false, pressed: true });
|
||||
expect(consumeJumpRequest()).not.toBeNull();
|
||||
|
||||
emitControllerToken({ token: "Button10", repeat: true, pressed: true });
|
||||
expect(consumeJumpRequest()).toBeNull();
|
||||
|
||||
blocked.mockReturnValue(true);
|
||||
emitControllerToken({ token: "Button10", repeat: false, pressed: false });
|
||||
emitControllerToken({ token: "Button10", repeat: false, pressed: true });
|
||||
expect(consumeJumpRequest()).toBeNull();
|
||||
|
||||
dispose();
|
||||
});
|
||||
|
||||
it("uses WASD for movement and arrow keys for camera look", () => {
|
||||
expect(keyboardAxesForKeys(new Set(["KeyW", "KeyD"]))).toEqual({
|
||||
moveX: 1,
|
||||
|
||||
Reference in new issue
Block a user