modaq
Version:
Quiz Bowl Reader using TypeScript, React, and MobX
38 lines (37 loc) • 3.08 kB
TypeScript
/// <reference types="@maxim_mazurok/gapi.client.sheets-v4" />
import { Cycle } from "../state/Cycle";
import { IBonusAnswerEvent, IBonusProtestEvent, IPlayerJoinsEvent, IPlayerLeavesEvent, ISubstitutionEvent, ITossupAnswerEvent, ITossupProtestEvent } from "../state/Events";
import { Player } from "../state/TeamState";
import { IPlayerToColumnMap } from "./PlayerToColumnMap";
export interface ISheetsGenerator {
readonly rostersRange: string;
readonly firstCycleRow: number;
readonly playerRow: number;
readonly playerInitialColumns: string[];
readonly overwriteCheckRanges: string[];
readonly playerPerTeamLimit: number;
readonly cyclesLimit: number;
readonly writeNoPenaltyBuzzes: boolean;
getRosters(values: gapi.client.sheets.ValueRange): IRoster | undefined;
getSheetName(roundNumber: number): string;
getClearRanges(sheetName: string): string[];
getValuesForSubs(sub: ISubstitutionEvent, playerToColumnMapping: IPlayerToColumnMap, sheetName: string, row: number): gapi.client.sheets.ValueRange[];
getValuesForPlayerJoins(join: IPlayerJoinsEvent, playerToColumnMapping: IPlayerToColumnMap, sheetName: string, row: number): gapi.client.sheets.ValueRange[];
getValuesForPlayerLeaves(leave: IPlayerLeavesEvent, playerToColumnMapping: IPlayerToColumnMap, sheetName: string, row: number): gapi.client.sheets.ValueRange[];
getValuesForTossupProtests(protests: ITossupProtestEvent[], teamNames: string[], sheetName: string, row: number): gapi.client.sheets.ValueRange[];
getValuesForBonusProtests(protests: IBonusProtestEvent[], teamNames: string[], sheetName: string, row: number): gapi.client.sheets.ValueRange[];
getValuesForCorrectBuzz(buzz: ITossupAnswerEvent, points: number, playerToColumnMapping: IPlayerToColumnMap, sheetName: string, row: number): gapi.client.sheets.ValueRange[];
getValuesForNeg(buzz: ITossupAnswerEvent, points: number, playerToColumnMapping: IPlayerToColumnMap, sheetName: string, row: number): gapi.client.sheets.ValueRange[];
getValuesForBonusAnswer(bonusAnswer: IBonusAnswerEvent, teamNames: string[], sheetName: string, row: number, bouncesBounceBack: boolean): gapi.client.sheets.ValueRange[];
getValuesForBonusClear(sheetName: string): gapi.client.sheets.ValueRange[];
getValuesForDeadQuestion(sheetName: string, row: number): gapi.client.sheets.ValueRange[];
getValuesForBuzzPoints(buzzPoints: number[], sheetName: string, row: number): gapi.client.sheets.ValueRange[];
getValuesForTeams(teamNames: string[], sheetName: string): gapi.client.sheets.ValueRange[];
getValuesForStartingLineups(players: Player[], playerToColumnMapping: IPlayerToColumnMap, sheetName: string): gapi.client.sheets.ValueRange[];
getValuesForTossupsHeard(cycles: Cycle[], players: Player[], playerToColumnMapping: IPlayerToColumnMap, sheetName: string): gapi.client.sheets.ValueRange[];
isControlSheet(values: gapi.client.sheets.ValueRange): boolean;
}
export interface IRoster {
teamNames: string[];
players: Player[];
}