Lobby: leagues are play buttons w/ arrow; remove background music feature
- OnlineLobbyScreen: each league row is now a tappable play button (queues a ranked match at that league's stake) with a forward arrow; the cheapest enterable league is highlighted gold. Drops the redundant separate "ranked random" CTA and the select-then-play step. - Remove the background-music feature entirely: deleted the floating MusicToggle, the TopBar music button, and the Profile audio music toggle + style picker. sound.startMusic() is now an inert no-op so music never plays (sfx unchanged). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+2
-37
@@ -210,43 +210,8 @@ class SoundManager {
|
||||
},
|
||||
};
|
||||
|
||||
startMusic() {
|
||||
if (!this.musicEnabled || this.musicTimer || !this.ctx || !this.musicGain) return;
|
||||
const playNote = () => {
|
||||
if (!this.ctx || !this.musicGain) return;
|
||||
const cfg = this.TRACKS[this.musicTrack];
|
||||
const freq = cfg.notes[this.step % cfg.notes.length];
|
||||
this.step++;
|
||||
const osc = this.ctx.createOscillator();
|
||||
const g = this.ctx.createGain();
|
||||
const t = this.ctx.currentTime;
|
||||
osc.type = cfg.type;
|
||||
osc.frequency.value = freq;
|
||||
g.gain.setValueAtTime(0.0001, t);
|
||||
g.gain.exponentialRampToValueAtTime(cfg.peak, t + cfg.attack);
|
||||
g.gain.exponentialRampToValueAtTime(0.0001, t + cfg.dur);
|
||||
osc.connect(g);
|
||||
g.connect(this.musicGain);
|
||||
osc.start(t);
|
||||
osc.stop(t + cfg.dur + 0.1);
|
||||
// soft fifth harmony (santoor) every other note
|
||||
if (cfg.fifth && this.step % 2 === 0) {
|
||||
const o2 = this.ctx.createOscillator();
|
||||
const g2 = this.ctx.createGain();
|
||||
o2.type = "sine";
|
||||
o2.frequency.value = freq * 1.5;
|
||||
g2.gain.setValueAtTime(0.0001, t);
|
||||
g2.gain.exponentialRampToValueAtTime(0.22, t + 0.3);
|
||||
g2.gain.exponentialRampToValueAtTime(0.0001, t + 1.4);
|
||||
o2.connect(g2);
|
||||
g2.connect(this.musicGain);
|
||||
o2.start(t);
|
||||
o2.stop(t + 1.5);
|
||||
}
|
||||
};
|
||||
playNote();
|
||||
this.musicTimer = setInterval(playNote, this.TRACKS[this.musicTrack].gap);
|
||||
}
|
||||
/** Background music was removed from the game — these are inert no-ops. */
|
||||
startMusic() {}
|
||||
|
||||
stopMusic() {
|
||||
if (this.musicTimer) {
|
||||
|
||||
Reference in New Issue
Block a user