Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 14 additions & 24 deletions apps/website/public/queen/models/LICENSE-kenney-hexagon-kit.txt
Original file line number Diff line number Diff line change
@@ -1,28 +1,18 @@

Kenney Hexagon Kit — CC0 1.0 Universal (public domain)
https://kenney.nl/assets/hexagon-kit

Hexagon Kit (2.0)
The Queen game field draws from this kit alone. Models shipped here:

Created/distributed by Kenney (www.kenney.nl)
Creation date: 23-01-2024 11:58

------------------------------
terrain hex-grass, hex-grass-forest, hex-grass-hill, hex-dirt,
hex-stone, hex-stone-rocks, hex-stone-mountain
settlements hex-building-cabin, hex-building-mill, hex-building-archery,
hex-building-house, hex-building-village, hex-building-market,
hex-building-farm, hex-building-mine, hex-building-smelter
castle hex-building-wall, hex-building-walls, hex-building-tower,
hex-building-wizard-tower, hex-building-castle
units hex-unit-tower, hex-unit-house, hex-unit-tree

License: (Creative Commons Zero, CC0)
http://creativecommons.org/publicdomain/zero/1.0/
Every model references Textures/colormap.png, which ships beside them.

You can use this content for personal, educational, and commercial purposes.

Support by crediting 'Kenney' or 'www.kenney.nl' (this is not a requirement)

------------------------------

• Website : www.kenney.nl
• Donate : www.kenney.nl/donate

• Patreon : patreon.com/kenney

Follow on social media for updates:

• Twitter: twitter.com/KenneyNL
• Instagram: instagram.com/kenney_nl
• Mastodon: mastodon.gamedev.place/@kenney
The Kenney Space Kit was removed on 2026-09-06: two art kits in one scene
read as two games, and half of its models carried no fact from GitHub.
23 changes: 0 additions & 23 deletions apps/website/public/queen/models/LICENSE-kenney-space-kit.txt

This file was deleted.

Binary file removed apps/website/public/queen/models/alien.glb
Binary file not shown.
Binary file removed apps/website/public/queen/models/astronautA.glb
Binary file not shown.
Binary file removed apps/website/public/queen/models/astronautB.glb
Binary file not shown.
Binary file removed apps/website/public/queen/models/crater.glb
Binary file not shown.
Binary file removed apps/website/public/queen/models/gate_complex.glb
Binary file not shown.
Binary file removed apps/website/public/queen/models/hangar_largeA.glb
Binary file not shown.
Binary file removed apps/website/public/queen/models/hangar_roundA.glb
Binary file not shown.
Binary file removed apps/website/public/queen/models/hangar_smallA.glb
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added apps/website/public/queen/models/hex-dirt.glb
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added apps/website/public/queen/models/hex-grass.glb
Binary file not shown.
Binary file removed apps/website/public/queen/models/hex-sand.glb
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file removed apps/website/public/queen/models/rover.glb
Binary file not shown.
Binary file not shown.
Binary file not shown.
2 changes: 2 additions & 0 deletions apps/website/qa/queen-honesty-contract.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,8 @@ check(ksSummary.epics === 1 && ksSummary.closed === 3 && ksSummary.total === 5 &
check(wallBetween([ksEpic({ state: "closed", closedAt: "x", children: ksKids(2, 0) })], [ksEpic({ state: "closed", closedAt: "x", children: ksKids(1, 0) })]) === true && wallBetween([ksEpic({ children: ksKids(3, 2) })], [ksEpic({ state: "closed", closedAt: "x", children: ksKids(1, 0) })]) === false && wallBetween([], [ksEpic({ state: "closed", closedAt: "x", children: ksKids(1, 0) })]) === false, "a wall rises only between two rings whose every epic is a keep");
check(ringOfModulePath("rings/SR-00") === "SR-00" && ringOfModulePath("rings/RUST-13/clade-meshd/src") === "RUST-13" && ringOfModulePath("rings") === null && ringOfModulePath("apps/rings/SR-00") === null && ringOfModulePath(".") === null, "ringOfModulePath: rings/<NAME> and anything beneath it; nothing else");
check(epicOfIssue(101, [ksEpic({ number: 9001, children: ksKids(3, 2) }), ksEpic({ number: 9002, children: [] })])?.number === 9001 && epicOfIssue(1, [ksEpic({ children: ksKids(3, 2) })]) === null, "epicOfIssue: the first epic listing the issue among its children, else null");
const SPACE_KIT = ["platform_small", "machine_generatorLarge", "satelliteDish_large", "hangar_smallA", "hangar_roundA", "structure_closed", "gate_complex", "crater", "hangar_largeA", "rock_crystalsLargeA", "astronautA", "astronautB", "rover", "alien"];
check(SPACE_KIT.every((m) => !combSrc.includes(m)), `the field draws one kit: no space-kit model may be named (${SPACE_KIT.filter((m) => combSrc.includes(m)).join(", ") || "none"})`);
check(/host\.setAttribute\("data-foundation-shape", "outline"\)/.test(combSrc) && /CreateLineSystem\("cells"/.test(combSrc) && !/CreateCylinder\("honey"/.test(combSrc) && !/hex-sand/.test(combSrc), "the cells are outlines: a line system per cell, no honey disc and no filled tile model (the user, 2026-09-06)");
check(/host\.setAttribute\("data-hover-issue"/.test(combSrc) && /queen27-hover-card/.test(combSrc), "a hovered cell names its GitHub issue on the host and in the card");
check(/host\.setAttribute\("data-castle-source", fdNow \? fdNow\.source : "none"\)/.test(combSrc) && /data-castle-stages/.test(combSrc) && /data-castle-unassigned/.test(combSrc), "the castle's testimony on the host comes from the snapshot's source, never a guess; stages and unassigned epics are named (K-2)");
Expand Down
12 changes: 11 additions & 1 deletion apps/website/qa/queen-windows-contract.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,17 @@ for (const lang of LANGS) for (const [w, h] of SIZES) {
})()`);
const { out: cut, minTile, tiles } = cutInfo;
// the intercept must have reached the gold block, or the pin is silent
if (lang === 'en' && w === 1920) { const emText = await evaluate(`(() => { const e = document.querySelector('.queen27-hud-round-btn > em'); return e ? e.textContent : ''; })()`); if (!/no eligible specification/.test(emText)) problems.push(`en 1920x1080: the refusal intercept did not reach the gold block (em reads "${String(emText).slice(0, 60)}")`); }
if (lang === 'en' && w === 1920) {
// the page renders the refusal on its own poll, so the pin WAITS for it
// instead of reading once (a race that failed three runs of cycle 045)
let emText = '';
for (let i = 0; i < 40; i += 1) {
emText = await evaluate(`(() => { const e = document.querySelector('.queen27-hud-round-btn > em'); return e ? e.textContent : ''; })()`);
if (/no eligible specification/.test(emText)) break;
await wait(500);
}
if (!/no eligible specification/.test(emText)) problems.push(`en 1920x1080: the refusal intercept did not reach the gold block in 20 s (em reads "${String(emText).slice(0, 60)}")`);
}
if (cut.length) problems.push(`${lang} ${w}x${h}: ${cut.join(' | ')}`);
console.log(` ${lang} ${w}x${h} ${cut.length ? 'CUT ' + cut.length + ' window(s): ' + cut.join(' | ') : 'ok every window whole'} · ${tiles} tiles, narrowest ${minTile} px`);
}
Expand Down
Loading
Loading