diff --git a/.eslintrc.json b/.eslintrc.json index 974bae9..cdbddcd 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -21,6 +21,7 @@ "indent": "off", "no-unused-vars": "off", "new-cap": "off", + "no-debugger": "off", "@typescript-eslint/no-unused-vars": "off" } } \ No newline at end of file diff --git a/dist/april-fools.js b/dist/april-fools.js index ebc13fa..a68ab11 100644 --- a/dist/april-fools.js +++ b/dist/april-fools.js @@ -157,6 +157,17 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ }), +/***/ "./src/jokes/inverted_scroll.ts": +/*!**************************************!*\ + !*** ./src/jokes/inverted_scroll.ts ***! + \**************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ InvertedScrollJoke: () => (/* binding */ InvertedScrollJoke),\n/* harmony export */ InvertedScrollJokeSettings: () => (/* binding */ InvertedScrollJokeSettings)\n/* harmony export */ });\n/* harmony import */ var _joke__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../joke */ \"./src/joke.ts\");\n\n/**\n * **Обратная гравитация**\n *\n * Скролл в обратную сторону (крутишь вверх, а крутится вниз)\n *\n * @author Идея: Alex_63\n * @author Реализация: Kozhilya\n */\nclass InvertedScrollJoke extends _joke__WEBPACK_IMPORTED_MODULE_0__.Joke {\n constructor() {\n super(...arguments);\n this.id = 'inverted_scroll';\n this.title = 'Обратная гравитация';\n this.description = 'Скролл в обратную сторону';\n this._settings = new InvertedScrollJokeSettings();\n }\n /**\n * Запуск шутки\n */\n start() {\n // let lastScroll = window.scrollY;\n document.addEventListener('wheel', (e) => {\n e.preventDefault();\n scrollBy(0, -e.deltaY);\n }, { passive: false });\n }\n}\n/**\n * Класс настроек для шутки \"Обратная гравитация\"\n */\nclass InvertedScrollJokeSettings {\n constructor() {\n this.enabled = true;\n this.chance = 10;\n }\n}\n\n\n//# sourceURL=webpack://mybb-april-fools/./src/jokes/inverted_scroll.ts?"); + +/***/ }), + /***/ "./src/jokes/letter_chaos.ts": /*!***********************************!*\ !*** ./src/jokes/letter_chaos.ts ***! @@ -208,7 +219,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _joker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./joker */ \"./src/joker.ts\");\n/* harmony import */ var _jokes_shake__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./jokes/shake */ \"./src/jokes/shake.ts\");\n/* harmony import */ var _jokes_humanitarian_hell__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./jokes/humanitarian_hell */ \"./src/jokes/humanitarian_hell.ts\");\n/* harmony import */ var _jokes_mirror__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./jokes/mirror */ \"./src/jokes/mirror.ts\");\n/* harmony import */ var _jokes_carnival__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./jokes/carnival */ \"./src/jokes/carnival.ts\");\n/* harmony import */ var _jokes_crazy_letters__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./jokes/crazy_letters */ \"./src/jokes/crazy_letters.ts\");\n/* harmony import */ var _jokes_letter_chaos__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./jokes/letter_chaos */ \"./src/jokes/letter_chaos.ts\");\n/* harmony import */ var _jokes_cursor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./jokes/cursor */ \"./src/jokes/cursor.ts\");\n/* harmony import */ var _jokes_stupid_title__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./jokes/stupid_title */ \"./src/jokes/stupid_title.ts\");\n\n\n\n\n\n\n\n\n\nwindow.AprilJokes = ((jokes) => {\n const cl = new _joker__WEBPACK_IMPORTED_MODULE_0__.JokerClass();\n jokes.forEach((CustomJoke) => {\n cl.add(new CustomJoke());\n });\n $(() => cl.regularStart());\n return cl;\n})([\n _jokes_shake__WEBPACK_IMPORTED_MODULE_1__.ShakeJoke,\n _jokes_humanitarian_hell__WEBPACK_IMPORTED_MODULE_2__.HumanitarianHellJoke,\n _jokes_mirror__WEBPACK_IMPORTED_MODULE_3__.MirrorJoke,\n _jokes_carnival__WEBPACK_IMPORTED_MODULE_4__.CarnivalJoke,\n _jokes_crazy_letters__WEBPACK_IMPORTED_MODULE_5__.CrazyLettersJoke,\n _jokes_letter_chaos__WEBPACK_IMPORTED_MODULE_6__.LetterChaosJoke,\n _jokes_cursor__WEBPACK_IMPORTED_MODULE_7__.CursorEffectsJoke,\n _jokes_stupid_title__WEBPACK_IMPORTED_MODULE_8__.StupidTitleJoke,\n]);\n\n\n//# sourceURL=webpack://mybb-april-fools/./src/main.ts?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _joker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./joker */ \"./src/joker.ts\");\n/* harmony import */ var _jokes_shake__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./jokes/shake */ \"./src/jokes/shake.ts\");\n/* harmony import */ var _jokes_humanitarian_hell__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./jokes/humanitarian_hell */ \"./src/jokes/humanitarian_hell.ts\");\n/* harmony import */ var _jokes_mirror__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./jokes/mirror */ \"./src/jokes/mirror.ts\");\n/* harmony import */ var _jokes_carnival__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./jokes/carnival */ \"./src/jokes/carnival.ts\");\n/* harmony import */ var _jokes_crazy_letters__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./jokes/crazy_letters */ \"./src/jokes/crazy_letters.ts\");\n/* harmony import */ var _jokes_letter_chaos__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./jokes/letter_chaos */ \"./src/jokes/letter_chaos.ts\");\n/* harmony import */ var _jokes_cursor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./jokes/cursor */ \"./src/jokes/cursor.ts\");\n/* harmony import */ var _jokes_stupid_title__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./jokes/stupid_title */ \"./src/jokes/stupid_title.ts\");\n/* harmony import */ var _jokes_inverted_scroll__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./jokes/inverted_scroll */ \"./src/jokes/inverted_scroll.ts\");\n\n\n\n\n\n\n\n\n\n\nwindow.AprilJokes = ((jokes) => {\n const cl = new _joker__WEBPACK_IMPORTED_MODULE_0__.JokerClass();\n jokes.forEach((CustomJoke) => {\n cl.add(new CustomJoke());\n });\n $(() => cl.regularStart());\n return cl;\n})([\n _jokes_shake__WEBPACK_IMPORTED_MODULE_1__.ShakeJoke,\n _jokes_humanitarian_hell__WEBPACK_IMPORTED_MODULE_2__.HumanitarianHellJoke,\n _jokes_mirror__WEBPACK_IMPORTED_MODULE_3__.MirrorJoke,\n _jokes_carnival__WEBPACK_IMPORTED_MODULE_4__.CarnivalJoke,\n _jokes_crazy_letters__WEBPACK_IMPORTED_MODULE_5__.CrazyLettersJoke,\n _jokes_letter_chaos__WEBPACK_IMPORTED_MODULE_6__.LetterChaosJoke,\n _jokes_cursor__WEBPACK_IMPORTED_MODULE_7__.CursorEffectsJoke,\n _jokes_stupid_title__WEBPACK_IMPORTED_MODULE_8__.StupidTitleJoke,\n _jokes_inverted_scroll__WEBPACK_IMPORTED_MODULE_9__.InvertedScrollJoke,\n]);\n\n\n//# sourceURL=webpack://mybb-april-fools/./src/main.ts?"); /***/ }), diff --git a/settings.compact.js b/settings.compact.js index 8f6cbc4..e64f17f 100644 --- a/settings.compact.js +++ b/settings.compact.js @@ -3,6 +3,11 @@ window.AprilJokes.disableAll(); window.AprilJokes.jokes.cursor.disableAll(); window.AprilJokes.settings = { + core: { + enabled: true, + chance: 100, + }, + shake: { enabled: true, chance: 1, @@ -157,4 +162,9 @@ window.AprilJokes.settings = { p: { ...window.AprilJokes.settings.stupid_title.variants.p }, }, }, + + inverted_scroll: { + enabled: true, + chance: 10, + }, }; diff --git a/settings.example.js b/settings.example.js index 85db36f..3944528 100644 --- a/settings.example.js +++ b/settings.example.js @@ -14,17 +14,17 @@ window.AprilJokes.settings = { */ core: { /** - * Активность шутки. - * Установите это значение `false`, что бы отключить шутку. - * Если `true`, то шутка будет обработана как обычно. + * Активность системы. + * Установите это значение `false`, что бы отключить всю системы. + * Если `true`, то система будет обработана как обычно. */ enabled: true, /** - * Вероятность срабатывания в процентах. - * Если установлено значение `100`, шутка будет срабатывать всегда. - * Если установлено значение `0`, шутка никогда не сработает. - * Лучше отключать шутку, используя enabled = false! + * Вероятность срабатывания всей системы в процентах. + * Если установлено значение `100`, система будет срабатывать всегда. + * Если установлено значение `0`, система никогда не сработает. + * Лучше отключать систему, используя `enabled = false`! */ chance: 100, }, @@ -450,4 +450,17 @@ window.AprilJokes.settings = { p: { ...window.AprilJokes.settings.stupid_title.variants.p }, }, }, + + /** + * **Обратная гравитация** + * + * Скролл в обратную сторону (крутишь вверх, а крутится вниз) + * + * @author Идея: Alex_63 + * @author Реализация: Kozhilya + */ + inverted_scroll: { + enabled: true, + chance: 10, + }, }; diff --git a/src/jokes/.template.ts b/src/jokes/.template.ts new file mode 100644 index 0000000..3885bf9 --- /dev/null +++ b/src/jokes/.template.ts @@ -0,0 +1,35 @@ +import {Joke, JokeSettings} from '../joke'; +import $ from 'jquery'; + +/** + * **Шаблон** + * + * Описание + * + * @author Kozhilya + */ +export class TemplateJoke extends Joke { + id = ''; + + title = ''; + + description = ''; + + _settings = new TemplateJokeSettings(); + + /** + * Запуск шутки + */ + start(): void { + + } +} + +/** + * Класс настроек для шутки "" + */ +export class TemplateJokeSettings implements JokeSettings { + enabled: boolean = true; + + chance: number = 100; +} diff --git a/src/jokes/inverted_scroll.ts b/src/jokes/inverted_scroll.ts new file mode 100644 index 0000000..2f151e6 --- /dev/null +++ b/src/jokes/inverted_scroll.ts @@ -0,0 +1,40 @@ +import {Joke, JokeSettings} from '../joke'; + +/** + * **Обратная гравитация** + * + * Скролл в обратную сторону (крутишь вверх, а крутится вниз) + * + * @author Идея: Alex_63 + * @author Реализация: Kozhilya + */ +export class InvertedScrollJoke extends Joke { + id = 'inverted_scroll'; + + title = 'Обратная гравитация'; + + description = 'Скролл в обратную сторону'; + + _settings = new InvertedScrollJokeSettings(); + + /** + * Запуск шутки + */ + start(): void { + // let lastScroll = window.scrollY; + + document.addEventListener('wheel', (e) => { + e.preventDefault(); + scrollBy(0, -e.deltaY); + }, {passive: false}); + } +} + +/** + * Класс настроек для шутки "Обратная гравитация" + */ +export class InvertedScrollJokeSettings implements JokeSettings { + enabled: boolean = true; + + chance: number = 10; +} diff --git a/src/main.ts b/src/main.ts index 541769d..017f56b 100644 --- a/src/main.ts +++ b/src/main.ts @@ -8,6 +8,7 @@ import {CrazyLettersJoke} from './jokes/crazy_letters'; import {LetterChaosJoke} from './jokes/letter_chaos'; import {CursorEffectsJoke} from './jokes/cursor'; import {StupidTitleJoke} from './jokes/stupid_title'; +import {InvertedScrollJoke} from './jokes/inverted_scroll'; declare global { interface Window { AprilJokes: JokerClass; } @@ -32,6 +33,7 @@ window.AprilJokes = ((jokes: JokeList): JokerClass => { LetterChaosJoke, CursorEffectsJoke, StupidTitleJoke, + InvertedScrollJoke, ]); interface JokeList extends Array Joke> {}