Улучшение оформления кода

This commit is contained in:
2023-03-30 13:41:34 +04:00
parent 8b7d6216a4
commit 352100e49c
27 changed files with 1997 additions and 1736 deletions
+63 -65
View File
@@ -2,87 +2,85 @@
* Объект настроек шутки
*/
export interface JokeSettings {
/**
* Флаг блокировки срабатывания
*/
enabled: boolean;
/**
* Флаг блокировки срабатывания
*/
enabled: boolean;
/**
* Вероятность срабатывания в процентах
*/
chance: number;
/**
* Вероятность срабатывания в процентах
*/
chance: number;
}
/**
* Объект, описывающий шутку
*/
export abstract class Joke {
/**
* Идентификатор шутки
*/
abstract id: string;
/**
* Идентификатор шутки
*/
abstract id: string;
/**
* Заголовок шутки
*/
abstract title: string;
/**
* Заголовок шутки
*/
abstract title: string;
/**
* Описание шутки
*/
abstract description: string;
/**
* Описание шутки
*/
abstract description: string;
/**
* Настройки шутки
*/
settings: JokeSettings;
/**
* Настройки шутки
*/
settings: JokeSettings;
/**
* Проверка вероятности
*
* @param {number} chance Вероятность срабатывания
* @returns {boolean} Флаг срабатывания (true - сработало)
*/
check(chance: number): boolean {
return Math.random() < 0.01 * chance;
}
/**
* Разблокировать шутку
*/
enable() {
this.settings.enabled = true;
}
/**
* Заблокировать шутку
*/
disable() {
this.settings.enabled = false;
}
/**
* Проверка вероятности
*
* @param {number} chance Вероятность срабатывания
* @returns {boolean} Флаг срабатывания (true - сработало)
*/
check(chance: number): boolean {
return Math.random() < 0.01 * chance;
}
/**
* Переключить блокировку шутки
* @param value Новое значение
*/
toggle(value: boolean|null = null) {
this.settings.enabled = (value === null) ? !this.settings.enabled : value;
}
/**
* Разблокировать шутку
*/
enable() {
this.settings.enabled = true;
}
/**
* Запуск шутки
*/
abstract start(): void;
/**
* Заблокировать шутку
*/
disable() {
this.settings.enabled = false;
}
/**
* Переключить блокировку шутки
* @param value Новое значение
*/
toggle(value: boolean | null = null) {
this.settings.enabled = value === null ? !this.settings.enabled : value;
}
/**
* Запуск шутки
*/
abstract start(): void;
}
/**
* Объект, описывающий шутку, которая может быть остановлена
*/
export abstract class StopableJoke extends Joke
{
/**
* Остановка шутки, если возможно
*/
abstract stop(): void;
export abstract class StopableJoke extends Joke {
/**
* Остановка шутки, если возможно
*/
abstract stop(): void;
}