Основная структура

This commit is contained in:
2023-03-27 15:04:48 +04:00
parent d2ed8eaf58
commit f90f0c542b
13 changed files with 12384 additions and 0 deletions
+50
View File
@@ -0,0 +1,50 @@
/**
* Объект настроек шутки
*/
export interface JokeSettings {
/**
* Вероятность срабатывания в процентах (0 для отключения)
*/
chance: number;
}
/**
* Объект, описывающий шутку
*/
export abstract class Joke {
/**
* Идентификатор шутки
*/
id: string;
/**
* Настройки шутки
*/
settings: JokeSettings;
/**
* Флаг, указывающий, должна ли шутка быть запущена
*/
enabled: boolean;
/**
* Флаг, указывающий, может ли шутка быть остановлена
*/
is_stopable: boolean;
/**
* Запуск шутки
*/
abstract start(): void;
}
/**
* Объект, описывающий шутку, которая может быть остановлена
*/
export abstract class StopableJoke extends Joke
{
/**
* Остановка шутки, если возможно
*/
abstract stop(): void;
}