Leo
Treasure Island
English Learning Adventure
Treasure Island
✦ English Learning Adventure ✦
veya
Captain Mini
Tap anywhere to skip
Treasure Island
Gold 0
0
📦 0
❤️ 5
🗺️
Keşif İlerlemesi
0%
🌋
🗼
💎
💧
🌴
🦇
🎧
Ocean Map
Volcano Island
Volcano Bay
0 / 4
Tower Island
Tower Peak
0 / 4
Treasure Island
Treasure Cove
0 / 4
Waterfall Island
Waterfall Isle
0 / 4
Palm Island
Palm Paradise
0 / 4
Cave Island
Mystery Cave
0 / 4
Listening Island
🎧 Listening Bay
0 / 4
Games Island
🎮 Games Island
Cinema Island
🎬 Cinema Island
Learn with Films
AI Practice Island
🤖 AI Practice
Premium
Story Island
📖 Story Island
Vocabulary Island
📚 Vocabulary Island
Character
⭐ Lv.1 Korsan
👤 Profil
Sailor
Pirate Ship - Click to view leaderboard
Compass
🎯
Adım 1/5

Hoş Geldin!

Nasıl oynanacağını öğrenelim!

🏆
New Badge Unlocked!
📖 Story Island
🎬
1st Film FREE
İlk film ücretsiz!
📚
Story Reading
Oku ve öğren
🎙️
Listen & Repeat
Dinle ve tekrarla
🇹🇷
/* ════════════════════════════════════════ ✦ GLOBAL PROGRESS HUD — Güncelleme island-progress-label text'ini okur (örn: "2 / 4") hem MutationObserver hem polling ile güncellenir. ════════════════════════════════════════ */ (function() { var lastPct = -1; function updateProgressHUD() { var islands = document.querySelectorAll('.island[data-island]'); var totalChests = 0, completedChests = 0; islands.forEach(function(island) { var id = parseInt(island.getAttribute('data-island')); if (id < 1 || id > 7) return; var progressEl = island.querySelector('.island-progress'); if (!progressEl) return; var total = parseInt(progressEl.getAttribute('data-total')) || 4; var done = 0; // Önce label text'ini oku: "2 / 4" → done=2 var labelEl = progressEl.querySelector('.island-progress-label'); if (labelEl) { var match = labelEl.textContent.match(/(\d+)\s*\/\s*(\d+)/); if (match) { done = parseInt(match[1]) || 0; total = parseInt(match[2]) || total; } } else { // Fallback: fill style'dan oku var fillEl = progressEl.querySelector('.island-progress-fill'); var pct = fillEl ? parseFloat(fillEl.style.width) || 0 : 0; done = Math.round((pct / 100) * total); } totalChests += total; completedChests += done; var dot = document.querySelector('.hud-island-dot[data-island="' + id + '"]'); if (!dot) return; dot.classList.remove('completed', 'in-progress'); if (done >= total && done > 0) dot.classList.add('completed'); else if (done > 0) dot.classList.add('in-progress'); }); var overallPct = totalChests > 0 ? Math.round((completedChests / totalChests) * 100) : 0; // Değişmediyse DOM'a dokunma if (overallPct === lastPct) return; lastPct = overallPct; var fill = document.getElementById('hud-fill'); var pctEl = document.getElementById('hud-pct'); if (fill) fill.style.width = overallPct + '%'; if (pctEl) pctEl.textContent = overallPct + '%'; } window.updateProgressHUD = updateProgressHUD; // MutationObserver — label text değişimlerini yakala var observer = new MutationObserver(function() { updateProgressHUD(); }); function attachObserver() { // label'ları ve fill'leri izle document.querySelectorAll('.island-progress-label, .island-progress-fill').forEach(function(el) { observer.observe(el, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); }); } // Polling — harici script'ler (main.js, island-progress-fix.js) // geç veri yazabilir, her 1.5s'de bir kontrol et (30s sonra dur) var pollCount = 0; var pollTimer = setInterval(function() { updateProgressHUD(); pollCount++; if (pollCount >= 20) clearInterval(pollTimer); }, 1500); document.addEventListener('DOMContentLoaded', function() { setTimeout(function() { updateProgressHUD(); attachObserver(); }, 500); }); })();