Улучшение оформления кода
This commit is contained in:
+63
-65
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user