Files
noname-shuying/mengsan/ui/hand/adapter.js
T
2026-09-30 16:59:10 +08:00

21 lines
935 B
JavaScript

export function createHandAdapter(player, ui) {
const zones = [player.node?.handcards1, player.node?.handcards2]
.filter(Boolean);
const containers = [ui.handcards1Container, ui.handcards2Container];
const root = ui.me;
const cards = () => zones.flatMap(zone => Array.from(zone.children)
.filter(card => card.classList.contains("card") &&
!card.classList.contains("removing")));
const supported = () => Boolean(root?.isConnected && ui.me === root &&
zones.length === 2 &&
zones.every((zone, index) =>
containers[index] === ui[index === 0 ?
"handcards1Container" : "handcards2Container"] &&
zone.parentNode === containers[index] &&
(zone.isConnected ? root.contains(zone) :
index === 1 && zone.childElementCount === 0) &&
Array.from(zone.children).every(node =>
node.classList.contains("card"))));
return { root, zones, containers, cards, supported };
}