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:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user