Enemy
YOU 100/100
STREET THUG WAVE 1
Wind
Fire
Block

ELEMENTAL
KNOCKOUT

FIREBALL

Swipe UP to deal heavy damage.

WIND SLASH

Swipe LEFT/RIGHT for quick strikes.

ICE SHIELD

Swipe DOWN to block attacks.

WAVE 1
/* ========================================================================= PREVIEW EDITING API (REQUIRED) ========================================================================= */ (function setupPreviewEditingAPI() { window.addEventListener('message', (event) => { const msg = event.data; if (msg?.origin !== 'sekai_gaming_iframe_api') return; switch (msg.type) { case 'get_editable_metadata': window.parent.postMessage({ origin: 'sekai_gaming_iframe_api', type: 'receive_editable_metadata', taskId: msg.taskId, data: window.sekaiEditable || {} }, '*'); break; case 'apply_change': const success = applySingleChange(msg.data.id, msg.data.value, msg.data.name, msg.data.description); window.parent.postMessage({ origin: 'sekai_gaming_iframe_api', type: 'receive_apply_change', taskId: msg.taskId, data: { success } }, '*'); break; case 'get_current_html': window.parent.postMessage({ origin: 'sekai_gaming_iframe_api', type: 'receive_current_html', taskId: msg.taskId, data: { html: document.documentElement.outerHTML } }, '*'); break; case 'reset_changes': location.reload(); break; } }); function applySingleChange(id, value, name, description) { const categories = ['tune', 'images', 'videos', 'music', 'sfx', 'colors', 'text', 'prompts', 'voices']; for (const cat of categories) { const item = window.sekaiEditable[cat]?.find(i => i.id === id); if (!item) continue; item.value = value; if (name) item.name = name; if (description) item.description = description; if (item.cssVar) { document.documentElement.style.setProperty(item.cssVar, value); } else if (item.path) { setNestedValue(window, item.path, value); } else if (item.selector) { const el = document.querySelector(item.selector); if (!el) return false; if (el.tagName === 'AUDIO') { const wasPlaying = !el.paused; if (value) { el.src = value; el.load(); if (wasPlaying) el.play().catch(() => {}); } else { el.removeAttribute('src'); el.load(); } } else if (el.tagName === 'VIDEO') { el.src = value; el.load(); } else if (item.property === 'src') { el.src = value || 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs='; el.style.display = value ? 'block' : 'none'; } else if (item.property === 'backgroundImage') { el.style.backgroundImage = value ? `url('${value}')` : ''; } else if (item.property === 'placeholder') { el.placeholder = value; } else { el.textContent = value; } } return true; } return false; } })(); /* ========================================================================= AUDIO UNLOCK (iOS Requirement) ========================================================================= */ (function() { let audioUnlocked = false; function unlockAudioContext() { if (audioUnlocked) return; if ('audioSession' in window.navigator) { window.navigator.audioSession.type = "playback"; } try { if (audioCtx.state === 'suspended') audioCtx.resume(); const buffer = audioCtx.createBuffer(1, 1, 22050); const source = audioCtx.createBufferSource(); source.buffer = buffer; source.connect(audioCtx.destination); source.start(0); } catch (e) {} try { const audio = new Audio(); audio.src = 'data:audio/wav;base64,UklGRiQAAABXQVZFZm10IBAAAAABAAEAQB8AAEAfAAABAAgAZGF0YQAAAAA='; audio.play().then(() => { audio.pause(); audio.currentTime = 0; }).catch(() => {}); } catch (e) {} audioUnlocked = true; } window.addEventListener('message', function(event) { if (event.data?.origin === 'sekai_gaming_iframe_api' && event.data?.type === 'receive_audio_unlock') { unlockAudioContext(); } }); ['touchstart', 'touchend', 'mousedown', 'click', 'keydown'].forEach(function(event) { document.addEventListener(event, unlockAudioContext, { once: true }); }); })();