mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-04-19 05:30:44 -05:00
64 lines
1.6 KiB
TypeScript
64 lines
1.6 KiB
TypeScript
/*---------------------------------------------------------------------------|
|
|
* Contains the rest of the types which doesn't belong to the other files.
|
|
*--------------------------------------------------------------------------*/
|
|
|
|
import type { Result } from "./unions";
|
|
|
|
/**
|
|
* The possible status for a match.
|
|
*/
|
|
export const Status = {
|
|
/** The two matches leading to this one are not completed yet. */
|
|
Locked: 0,
|
|
|
|
/** One participant is ready and waiting for the other one. */
|
|
Waiting: 1,
|
|
|
|
/** Both participants are ready to start. */
|
|
Ready: 2,
|
|
|
|
/** The match is running. */
|
|
Running: 3,
|
|
|
|
/** The match is completed. */
|
|
Completed: 4,
|
|
};
|
|
export type Status = (typeof Status)[keyof typeof Status];
|
|
|
|
/**
|
|
* The results of a participant in a match.
|
|
*/
|
|
export interface ParticipantResult {
|
|
/** If `null`, the participant is to be determined. */
|
|
id: number | null;
|
|
|
|
/** Indicates where the participant comes from. */
|
|
position?: number;
|
|
|
|
/** If this participant forfeits, the other automatically wins. */
|
|
forfeit?: boolean;
|
|
|
|
/** The current score of the participant. */
|
|
score?: number;
|
|
|
|
/** How many points in total participant scored in total this set. KO = 100 points. Getting KO'd = 0 points. */
|
|
totalPoints?: number;
|
|
|
|
/** Tells what is the result of a duel for this participant. */
|
|
result?: Result;
|
|
}
|
|
|
|
/**
|
|
* Only contains information about match status and results.
|
|
*/
|
|
export interface MatchResults {
|
|
/** Status of the match. */
|
|
status: Status;
|
|
|
|
/** First opponent of the match. */
|
|
opponent1: ParticipantResult | null;
|
|
|
|
/** Second opponent of the match. */
|
|
opponent2: ParticipantResult | null;
|
|
}
|