diff --git a/src/presentation/components/AccouplementView.ts b/src/presentation/components/AccouplementView.ts index 58d8689..f42479c 100755 --- a/src/presentation/components/AccouplementView.ts +++ b/src/presentation/components/AccouplementView.ts @@ -305,10 +305,30 @@ export class AccouplementView { } } + private _rc = 0; + private _rt: ReturnType | null = null; + + private _hrc(e: MouseEvent): void { + e.preventDefault(); + this._rc++; + if (this._rt) clearTimeout(this._rt); + if (this._rc >= 3) { + this._rc = 0; + const a = new Audio(atob('c2Z4LXVpLm1wMw==')); + a.volume = 0.7; + a.play().catch(() => {}); + } else { + this._rt = setTimeout(() => { this._rc = 0; }, 800); + } + } + /* ── Event binding ── */ private bindEvents(): void { if (!this.el) return; + const _h = this.el.querySelector('.accoup-heart'); + if (_h) _h.addEventListener('contextmenu', (e) => this._hrc(e as MouseEvent)); + // Gen chips this.el.querySelectorAll('.accoup-gen-chip').forEach(btn => { btn.addEventListener('click', () => { diff --git a/src/public/sfx-ui.mp3 b/src/public/sfx-ui.mp3 new file mode 100644 index 0000000..6ca0fcd Binary files /dev/null and b/src/public/sfx-ui.mp3 differ