Skip to content

Commit

Permalink
Add support for gameplay abort
Browse files Browse the repository at this point in the history
  • Loading branch information
Rian8337 committed Jan 25, 2025
1 parent f723a94 commit 36792db
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 11 deletions.
22 changes: 12 additions & 10 deletions src/ts/RoomLoader.ts
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
import { setPickedBeatmap } from "./settings/BeatmapSettings";
import onBeatmapChanged from "./spectator/handlers/BeatmapChangedHandler";
import onRoundStart from "./spectator/handlers/RoundStartHandler";
import { Socket, io } from "socket.io-client";
import { SpectatorClientEvents } from "./spectator/SpectatorClientEvents";
import { dataProcessor } from "./settings/SpectatorSettings";
import onChatMessage from "./spectator/handlers/ChatMessageHandler";
import onRoundEnd from "./spectator/handlers/RoundEndHandler";
import onSkipPerformed from "./spectator/handlers/SkipPerformedHandler";
import onScoreSubmission from "./spectator/handlers/ScoreSubmissionHandler";
import { emptyChat } from "./elements/ChatContainer";
import { setPickedBeatmap } from "./settings/BeatmapSettings";
import {
setMods,
setSpeedMultiplier,
setTeamMode,
} from "./settings/RoomSettings";
import { emptyChat } from "./elements/ChatContainer";
import { dataProcessor } from "./settings/SpectatorSettings";
import onBeatmapChanged from "./spectator/handlers/BeatmapChangedHandler";
import onChatMessage from "./spectator/handlers/ChatMessageHandler";
import onRoundAbort from "./spectator/handlers/RoundAbortHandler";
import onRoundEnd from "./spectator/handlers/RoundEndHandler";
import onRoundStart from "./spectator/handlers/RoundStartHandler";
import onScoreSubmission from "./spectator/handlers/ScoreSubmissionHandler";
import onSkipPerformed from "./spectator/handlers/SkipPerformedHandler";
import { SpectatorClientEvents } from "./spectator/SpectatorClientEvents";

let socket: Socket<SpectatorClientEvents> | null = null;
let disconnectTimeout: NodeJS.Timeout | undefined;
Expand Down Expand Up @@ -73,6 +74,7 @@ export function askRoomID(
.on("chatMessage", onChatMessage)
.on("spectatorData", dataProcessor.process.bind(dataProcessor))
.on("beatmapChanged", onBeatmapChanged)
.on("roundAborted", onRoundAbort)
.on("roundStarted", onRoundStart)
.on("roundEnded", onRoundEnd)
.on("skipPerformed", onSkipPerformed)
Expand Down
5 changes: 5 additions & 0 deletions src/ts/spectator/SpectatorClientEvents.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,11 @@ export interface SpectatorClientEvents {
*/
roundStarted: (room: StartingRoundMultiplayerRoom) => void;

/**
* Emitted when the round is aborted.
*/
roundAborted: () => void;

/**
* Emitted when a skip in gameplay was performed.
*/
Expand Down
2 changes: 1 addition & 1 deletion src/ts/spectator/SpectatorDataProcessor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ export class SpectatorDataProcessor {
}

/**
* Resets this processor to the current players.
* Resets this processor.
*/
reset() {
this.managers.clear();
Expand Down
9 changes: 9 additions & 0 deletions src/ts/spectator/handlers/RoundAbortHandler.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { resetAudio } from "../../elements/Audio";
import { deletePreviews } from "../../settings/PreviewSettings";
import { dataProcessor } from "../../settings/SpectatorSettings";

export default function () {
dataProcessor.reset();
deletePreviews();
resetAudio(false);
}

0 comments on commit 36792db

Please sign in to comment.