Thorough animation cleanup when leaving game
- Tag deal container with class so cleanup() can find and remove it - Remove .traveling-card and .deal-anim-container overlays in cleanup() - Restore opacity/visibility on cards hidden mid-animation - Reset all animation flags (dealAnimationInProgress, etc.) in showLobby() Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
0bfe9d5f9f
commit
56305424ff
@ -3060,6 +3060,11 @@ class GolfGame {
|
|||||||
if (window.cardAnimations) {
|
if (window.cardAnimations) {
|
||||||
window.cardAnimations.cancelAll();
|
window.cardAnimations.cancelAll();
|
||||||
}
|
}
|
||||||
|
this.dealAnimationInProgress = false;
|
||||||
|
this.isDrawAnimating = false;
|
||||||
|
this.localDiscardAnimating = false;
|
||||||
|
this.opponentDiscardAnimating = false;
|
||||||
|
this.opponentSwapAnimation = false;
|
||||||
this.showScreen(this.lobbyScreen);
|
this.showScreen(this.lobbyScreen);
|
||||||
this.lobbyError.textContent = '';
|
this.lobbyError.textContent = '';
|
||||||
this.roomCode = null;
|
this.roomCode = null;
|
||||||
|
|||||||
@ -156,12 +156,20 @@ class CardAnimations {
|
|||||||
}
|
}
|
||||||
this.activeAnimations.clear();
|
this.activeAnimations.clear();
|
||||||
|
|
||||||
// Remove all animation card elements (including those marked as animating)
|
// Remove all animation overlay elements
|
||||||
document.querySelectorAll('.draw-anim-card').forEach(el => {
|
document.querySelectorAll('.draw-anim-card, .traveling-card, .deal-anim-container').forEach(el => {
|
||||||
delete el.dataset.animating;
|
delete el.dataset.animating;
|
||||||
el.remove();
|
el.remove();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Restore visibility on any cards hidden during animations
|
||||||
|
document.querySelectorAll('.card[style*="opacity: 0"], .card[style*="opacity:0"]').forEach(el => {
|
||||||
|
el.style.opacity = '';
|
||||||
|
});
|
||||||
|
document.querySelectorAll('.card[style*="visibility: hidden"], .card[style*="visibility:hidden"]').forEach(el => {
|
||||||
|
el.style.visibility = '';
|
||||||
|
});
|
||||||
|
|
||||||
// Restore discard pile visibility if it was hidden during animation
|
// Restore discard pile visibility if it was hidden during animation
|
||||||
const discardPile = document.getElementById('discard');
|
const discardPile = document.getElementById('discard');
|
||||||
if (discardPile && discardPile.style.opacity === '0') {
|
if (discardPile && discardPile.style.opacity === '0') {
|
||||||
@ -1522,6 +1530,7 @@ class CardAnimations {
|
|||||||
|
|
||||||
// Create container for animation cards
|
// Create container for animation cards
|
||||||
const container = document.createElement('div');
|
const container = document.createElement('div');
|
||||||
|
container.className = 'deal-anim-container';
|
||||||
container.style.cssText = 'position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:1000;';
|
container.style.cssText = 'position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:1000;';
|
||||||
document.body.appendChild(container);
|
document.body.appendChild(container);
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user