Update drop-and-fusion-engine.ts

This commit is contained in:
syuilo 2024-01-09 19:52:15 +09:00
parent aa7dd98119
commit 333fac00c8

View file

@ -61,6 +61,7 @@ export class DropAndFusionGame extends EventEmitter<{
private monoTextureUrls: Record<string, string> = {}; private monoTextureUrls: Record<string, string> = {};
private rng: () => number; private rng: () => number;
private logs: Log[] = []; private logs: Log[] = [];
private replaying = false;
private sfxVolume = 1; private sfxVolume = 1;
@ -313,6 +314,7 @@ export class DropAndFusionGame extends EventEmitter<{
public start(logs?: Log[]) { public start(logs?: Log[]) {
if (!this.loaded) throw new Error('game is not loaded yet'); if (!this.loaded) throw new Error('game is not loaded yet');
if (logs) this.replaying = true;
for (let i = 0; i < this.STOCK_MAX; i++) { for (let i = 0; i < this.STOCK_MAX; i++) {
this.stock.push({ this.stock.push({
@ -464,7 +466,7 @@ export class DropAndFusionGame extends EventEmitter<{
public drop(_x: number) { public drop(_x: number) {
if (this.isGameOver) return; if (this.isGameOver) return;
if (Date.now() - this.latestDroppedAt < this.DROP_INTERVAL) return; if (!this.replaying && (Date.now() - this.latestDroppedAt < this.DROP_INTERVAL)) return;
const head = this.stock.shift()!; const head = this.stock.shift()!;
this.stock.push({ this.stock.push({