TAP TON POTE

if (timeLeft <= 0) { clearInterval(timer); this.completeMobileAd(rewardType, rewardAmount); } }, 1000); }, // Compléter la pub mobile et donner la récompense completeMobileAd: function(rewardType, rewardAmount) { console.log('🎉 Publicité terminée - Attribution de la récompense'); // Donner la récompense this.giveReward(rewardType, rewardAmount); // Mettre à jour les compteurs this.adsShownThisGame++; this.lastAdTime = Date.now(); this.saveDailyAdCount(); // Interface mobile de récompense const overlay = document.getElementById('rewarded-ad-overlay'); overlay.innerHTML = `
🎉

Récompense obtenue !

+${rewardAmount} ${rewardType === 'points' ? 'points' : rewardType}

`; // Vibration de succès if (navigator.vibrate) { navigator.vibrate([200, 100, 200]); } // Fermer automatiquement après 3 secondes setTimeout(() => this.closeMobileAd(), 3000); }, // Donner la récompense au joueur giveReward: function(rewardType, rewardAmount) { console.log(`💰 Attribution de ${rewardAmount} ${rewardType}`); // Types de bonus possibles pour varier les récompenses const bonusTypes = [ { type: 'points', amount: 100, message: '🎉 +100 Points Bonus!' }, { type: 'points', amount: 200, message: '⭐ +200 Points Super!' }, { type: 'points', amount: 300, message: '💎 +300 Points Méga!' }, { type: 'points', amount: 150, message: '🚀 +150 Points Turbo!' }, { type: 'points', amount: 250, message: '🌟 +250 Points Délire!' } ]; // Choisir un bonus aléatoire si c'est une récompense de points if (rewardType === 'points') { const randomBonus = bonusTypes[Math.floor(Math.random() * bonusTypes.length)]; rewardAmount = randomBonus.amount; // Afficher le message de bonus pendant 2 secondes this.showBonusMessage(randomBonus.message); } if (rewardType === 'points') { // Essayer différentes méthodes pour ajouter des points if (this.gameVariables && this.gameVariables.context) { const context = this.gameVariables.context; const scoreVar = this.gameVariables.scoreVar; context[scoreVar] += rewardAmount; // Mettre à jour l'affichage if (this.gameVariables.scoreElement) { this.gameVariables.scoreElement.textContent = context[scoreVar]; } } else if (window.updateScore && typeof window.updateScore === 'function') { window.updateScore(rewardAmount); } else if (window.addScore && typeof window.addScore === 'function') { window.addScore(rewardAmount); } else { // Fallback: chercher et modifier l'élément de score directement const scoreElements = document.querySelectorAll('#score, .score, [data-score]'); scoreElements.forEach(el => { const current = parseInt(el.textContent) || 0; el.textContent = current + rewardAmount; }); } } // Ajouter d'autres types de récompenses ici (temps, vies, etc.) }, // Afficher un message de bonus temporaire showBonusMessage: function(message) { const bonusDiv = document.createElement('div'); bonusDiv.style.cssText = ` position: fixed; top: 20%; left: 50%; transform: translateX(-50%); background: linear-gradient(45deg, #FFD700, #FFA500); color: #333; padding: 20px 30px; border-radius: 15px; font-size: 18px; font-weight: bold; z-index: 10000; box-shadow: 0 5px 15px rgba(0,0,0,0.3); border: 2px solid #FF6B6B; text-align: center; animation: bonusPop 0.5s ease-out; `; bonusDiv.textContent = message; // Animation CSS const style = document.createElement('style'); style.textContent = ` @keyframes bonusPop { 0% { transform: translateX(-50%) scale(0) rotate(180deg); opacity: 0; } 50% { transform: translateX(-50%) scale(1.1) rotate(0deg); opacity: 1; } 100% { transform: translateX(-50%) scale(1) rotate(0deg); opacity: 1; } } `; document.head.appendChild(style); document.body.appendChild(bonusDiv); // Supprimer après 2 secondes setTimeout(() => { bonusDiv.remove(); style.remove(); }, 2000); }, // Fermer l'interface publicitaire mobile closeMobileAd: function() { console.log('📱 Fermeture de la publicité mobile'); const overlay = document.getElementById('rewarded-ad-overlay'); if (overlay) { overlay.remove(); } // Supprimer le style de pause mobile const pauseStyle = document.getElementById('mobile-ad-pause'); if (pauseStyle) pauseStyle.remove(); // Reprendre le jeu mobile this.resumeMobileGame(); }, // Reprendre le jeu mobile resumeMobileGame: function() { console.log('📱 Reprise du jeu mobile...'); // Restaurer l'état sauvegardé if (this.gameState) { if (this.gameState.gameActive !== undefined) window.gameActive = this.gameState.gameActive; if (this.gameState.isPaused !== undefined) window.isPaused = this.gameState.isPaused; if (this.gameState.isGameRunning !== undefined) window.isGameRunning = this.gameState.isGameRunning; } // Le jeu se charge généralement de redémarrer ses intervalles automatiquement }, // Hook automatique dans le jeu (appelé pendant le gameplay) autoTrigger: function() { if (!this.canShowAd()) return false; // Déclencher à des moments intelligents (après de bons scores) const shouldTrigger = Math.random() < 0.3; // 30% de chance if (shouldTrigger) { console.log('🎯 Déclenchement automatique de publicité'); this.showRewardedAd(); return true; } return false; } }; // Auto-initialisation mobile document.addEventListener('DOMContentLoaded', function() { console.log('📱 Système de publicités mobile prêt pour Play Store'); // ANCIEN SYSTÈME SUPPRIMÉ - on utilise maintenant le popup HTML pur // Test manuel avec le bouton JOUER - maintenant utilise le popup HTML document.addEventListener('click', function(event) { if (event.target.id === 'play-button') { console.log('🎮 Test manuel de pub via bouton JOUER'); setTimeout(() => { montrerPopupPub(); }, 3000); } }); // Hook pour déclenchement pendant le jeu (sur les bons coups) document.addEventListener('click', function(event) { if (event.target.classList.contains('mole') && Math.random() < 0.15) { setTimeout(() => { window.MobileRewardedAds.autoTrigger(); }, 2000); } }); // ANCIEN SYSTÈME DE POPUP SUPPRIMÉ - Remplacé par le bouton fixe // Animation de la bannière publicitaire const adBanner = document.getElementById('ad-banner-top'); const adTexts = [ 'ESPACE PUBLICITAIRE - Prêt pour AdMob', '📢 Publicité ici - Intégration AdMob', '🎯 Zone pub - Compatible Play Store', '💰 Bannière publicitaire mobile' ]; let adTextIndex = 0; if (adBanner) { setInterval(() => { const textElement = document.getElementById('ad-banner-text'); if (textElement) { adTextIndex = (adTextIndex + 1) % adTexts.length; textElement.textContent = adTexts[adTextIndex]; } }, 3000); } }); 🎁 Regarder publicité (Boosters)