feat(player): reposition mobile player focal point
This commit is contained in:
@@ -118,6 +118,13 @@ test("authoritative self cell remains below the centered avatar at map edges", (
|
||||
assert.deepEqual(player.playerMapOffset(-1, 7, 0, 0, 7, 7, 46), {x: 0, y: 0});
|
||||
});
|
||||
|
||||
test("responsive player focal point stays above phone controls and composes with map offsets", () => {
|
||||
assert.deepEqual(player.playerFocalPoint(400, 800), {x: 200, y: 240});
|
||||
assert.deepEqual(player.playerFocalPoint(900, 400), {x: 378, y: 180});
|
||||
assert.deepEqual(player.playerFocalMapOffset(24, 7, 1, 1, 5, 5, 46, 400, 800), {x: 0, y: -160});
|
||||
assert.deepEqual(player.playerFocalMapOffset(0, 7, 0, 0, 7, 7, 46, 400, 800), {x: 138, y: -22});
|
||||
});
|
||||
|
||||
test("onboarding has bounded, replayable steps", () => {
|
||||
assert.equal(player.ONBOARDING_STEPS.length, 8);
|
||||
assert.equal(player.nextOnboardingStep(0), 1);
|
||||
@@ -136,6 +143,8 @@ test("avatar control resets safely and retains accessible alternatives", () => {
|
||||
assert.match(script, /snapshot\.phase === "paused"\) \{ resetPlayerControls\(\)/);
|
||||
assert.match(script, /state\.avatar\.startX = event\.clientX/);
|
||||
assert.match(script, /event\.clientX - state\.avatar\.startX/);
|
||||
assert.match(script, /windowObject\.addEventListener\("resize", refreshPlayerFocalPoint\)/);
|
||||
assert.match(script, /windowObject\.addEventListener\("orientationchange", refreshPlayerFocalPoint\)/);
|
||||
assert.match(script, /setMuted\(!state\.muted\)/);
|
||||
assert.match(script, /setReducedMotion\(!state\.reducedMotion\)/);
|
||||
assert.match(html, /id="avatar-control"/);
|
||||
|
||||
Reference in New Issue
Block a user