my_sea_visit: add --visible on live-filled spectator slots so the card lands at final opacity (no empty->filled ease race)

register's _fillSlot sets --filled (opacity:0) but not --visible — the owner
adds --visible on stage-dismiss, but the spectator fills directly w. no modal,
so the live card raced the empty->filled opacity transition (the long-standing
my_sea ease-in-before-ease-out glitch). Add --visible in the same tick after
register so the card matches the refreshed state: instant for the outer slots,
the intended sea-cover/cross-appear fade for cover/cross.

Code architected by Disco DeDisco <discodedisco@outlook.com>
Git commit message Co-Authored-By:
Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Disco DeDisco
2026-05-29 23:36:59 -04:00
parent 01ee8dc1fb
commit 32836704b7

View File

@@ -158,6 +158,15 @@
for (var k in card) { if (Object.prototype.hasOwnProperty.call(card, k)) c[k] = card[k]; }
c.reversed = !!e.reversed;
window.SeaDeal.register(c, '.sea-pos-' + e.position, e.polarity === 'levity');
// register's _fillSlot sets --filled (opacity:0) but not
// --visible (the owner adds that on stage-dismiss; the
// spectator has no modal). Add it here in the SAME tick so the
// card lands at its final opacity — matching the refreshed
// state — instead of racing the empty→filled opacity transition
// (the long-standing my_sea ease-in/ease-out glitch).
var cell = cross.querySelector('.sea-pos-' + e.position);
var filled = cell && cell.querySelector('.sea-card-slot--filled');
if (filled) filled.classList.add('sea-card-slot--visible');
});
// Re-empty any slot the owner cleared (DEL → empty-hand broadcast).
cross.querySelectorAll('.sea-card-slot.sea-card-slot--filled').forEach(function (slot) {