modaq
Version:
Quiz Bowl Reader using TypeScript, React, and MobX
55 lines (54 loc) • 1.76 kB
TypeScript
import { IFormattedText } from "../parser/IFormattedText";
import { IGameFormat } from "./IGameFormat";
export declare class PacketState {
tossups: Tossup[];
bonuses: Bonus[];
name: string | undefined;
constructor();
setTossups(tossups: Tossup[]): void;
setBonuses(bonuses: Bonus[]): void;
setName(name: string | undefined): void;
}
export interface IQuestion {
question: string;
answer: string;
metadata?: string;
}
export interface BonusPart {
question: string;
answer: string;
value: number;
difficultyModifier?: string;
}
export declare class Tossup implements IQuestion {
private static readonly noPronunciationGuides;
question: string;
answer: string;
metadata: string | undefined;
constructor(question: string, answer: string, metadata?: string);
getPointsAtPosition(format: IGameFormat, wordIndex: number, isCorrect?: boolean): number;
getWords(format: IGameFormat): ITossupWord[];
private formattedQuestionText;
}
export declare class Bonus {
leadin: string;
parts: BonusPart[];
metadata: string | undefined;
constructor(leadin: string, parts: BonusPart[], metadata?: string);
}
export declare function getBonusWords(text: string, format: IGameFormat): IFormattedText[];
export declare type ITossupWord = IBuzzableTossupWord | INonbuzzableTossupWord;
export interface IBuzzableTossupWord extends IBaseTossupWord {
wordIndex: number;
isLastWord: boolean;
canBuzzOn: true;
}
export interface INonbuzzableTossupWord extends IBaseTossupWord {
nonWordIndex: number;
canBuzzOn: false;
}
interface IBaseTossupWord {
word: IFormattedText[];
textIndex: number;
}
export {};