Курсоры, обновление документации

This commit is contained in:
2023-03-29 00:36:23 +04:00
parent 0ca319ae0f
commit 1ec33d6a80
20 changed files with 1118 additions and 106 deletions
+36 -3
View File
@@ -2,6 +2,11 @@
* Объект настроек шутки
*/
export interface JokeSettings {
/**
* Флаг блокировки срабатывания
*/
enabled: boolean;
/**
* Вероятность срабатывания в процентах
*/
@@ -23,9 +28,36 @@ export abstract class Joke {
settings: JokeSettings;
/**
* Флаг, указывающий, должна ли шутка быть запущена
* Проверка вероятности
*
* @param {number} chance Вероятность срабатывания
* @returns {boolean} Флаг срабатывания (true - сработало)
*/
enabled: boolean = true;
check(chance: number): boolean {
return Math.random() < 0.01 * chance;
}
/**
* Разблокировать шутку
*/
enable() {
this.settings.enabled = true;
}
/**
* Заблокировать шутку
*/
disable() {
this.settings.enabled = false;
}
/**
* Переключить блокировку шутки
* @param value Новое значение
*/
toggle(value: boolean|null = null) {
this.settings.enabled = (value === null) ? !this.settings.enabled : value;
}
/**
* Запуск шутки
@@ -42,4 +74,5 @@ export abstract class StopableJoke extends Joke
* Остановка шутки, если возможно
*/
abstract stop(): void;
}
}