Код.джиси

В соответствующие страницы добавить следующие
В MediaWiki:Chat.js (заменить старого бота на импорт. **Не забудь добавить музыки**):

```
importScript('MediaWiki:Bot.js');

```

В MediaWiki:Bot.js (**Не забудь добавить музыки**):

```
//Версия 2.2
/\* Бот.
 \* Создание:
 \* Сибирский Смотритель (код) (ru) (en)
 \* Annovy (фразы и код) (ru)
 \* Бургерпентс (контент) (ru)
 \* Mamvik (контент) (en)
 \*/
// Данные
window.fsinit = new CreateBotInit();
var DC = window.fsinit.DataCom;
importArticles({
 type: 'script',
 articles: [
 'MediaWiki:Bot.js/ru.js',
 'MediaWiki:Bot.js/en.js'
 ]
});
window.fs = new window.fsinit.CreateBot();

function CreateBotInit() {
 this.usernick = wgUserName;
 this.lang = {};
 this.DataCom = function(name, data) {
 this.name = name;
 this.data = data;
 };
 this.rnd = function(min, max) {
 var rand = min - 0.5 + Math.random() \* (max - min + 1);
 rand = Math.round(rand);
 return rand;
 };
 this.modeOutput = {
 'normal': 'http://vignette4.wikia.nocookie.net/undertale/images/7/70/201601226h6LgcLqCmEz27d4\_1v8fZ\_large.jpeg/revision/latest?cb=20160122140558&path-prefix=ru',
 'flowie.1': 'http://vignette1.wikia.nocookie.net/undertale/images/3/3b/Flowey\_Talk\_normal.gif/revision/latest?cb=20151023123033&path-prefix=ru',
 'flowie.2': 'http://vignette2.wikia.nocookie.net/undertale/images/a/a6/Hungry.png/revision/latest?cb=20151108165835&path-prefix=ru',
 'flowie.3': 'http://i.imgur.com/VrCK7kM.png',
 'flowie.4': 'http://i.imgur.com/4nJdy3E.png',
 'flowie.5': 'http://i.imgur.com/3txixr4.png',
 'flowie.6': 'http://i.imgur.com/ESuX7OW.png',
 'flowie.7': 'http://i.imgur.com/FBPl9uB.png',
 'flowie.8': 'http://i.imgur.com/769MYcl.png'
 };
 this.output = function(text, mode) {
 $('<li style="padding: 3px;">' +
 '<img src="' + window.fsinit.modeOutput[mode] + '" width="30px" height="30px" />' +
 '<div style="display: inline-block; vertical-align: top; padding-top: 7px; padding-left: 10px; width: 220px; color: black;">' +
 text +
 '</div>' +
 '</li>').appendTo('.fs-body ul');
 };
 this.answerUser = function(text) {
 $('<li style="padding: 3px; background: rgba(90, 90, 90, 0.6);">' +
 '<img src="' + $('.Write img').attr('src') + '" width="30px" height="30px" />' +
 '<div style="display: inline-block; vertical-align: top; padding-top: 7px; padding-left: 10px; width: 220px; color: white;">' +
 text +
 '</div>' +
 '</li>').appendTo('.fs-body ul');
 };
 this.replaceNick = function(reps) {
 return reps.replace(/\{usernick\}/g, window.fs.usernick);
 };
 this.doChoose = function(links, funct) {
 $('.fs-choose').empty();
 var result = [];
 for (var i in links) {
 result[result.length] = '<a href="#" class="choose ' + links[i][1] + '">' + links[i][0] + '</a>';
 }
 $('.fs-choose').html(result.join('<br/>'));
 $('a.choose').on('click', funct);
 };
 this.CreateBot = function() {
 var answerFlowey = window.fsinit.answerUser,
 output = window.fsinit.output,
 rnd = window.fsinit.rnd,
 doChoose = window.fsinit.doChoose;
 this.usernick = wgUserName;
 var l;
 if (window.fsinit.lang[wgUserLanguage]) {
 l = window.fsinit.lang[wgUserLanguage];
 for (var $senten in window.fsinit.lang.en) {
 if (!l[$senten]) {
 l[$senten] = window.fsinit.lang.en[$senten];
 }
 }
 }
 else {
 l = window.fsinit.lang.en;
 }
 ////////////////////////////////////////////
 this.papyrusPhrases = l.papyrusPhrases;
 this.sansPhrases = l.sansPhrases;
 this.defaultMusic = {
 'rick': 'dQw4w9WgXcQ',
 'dog': 'H4wptBuM6zs'
 };
 this.phrase = l.phrase;
 this.nope = false;
 this.scale = 0;
 this.chooseUrWay = l.chooseUrWay;
 this.mode = {};
 this.commands = {};
 var c = l.commands;
 /////////////////////////////////////////////////////////////////
 var papyrusCommands = {};
 papyrusCommands.DEFAULT = function() {
 output(window.fsinit.replaceNick(window.fs.papyrusPhrases[rnd(0, window.fs.papyrusPhrases.length - 1)]), 'papyrus');
 };
 papyrusCommands[l.commands.Papyrus\_off.name] = function() {
 window.fs.mode.papyrus.IS = false;
 output(window.fsinit.replaceNick(c.Papyrus\_off.data), 'normal');
 };
 this.SetMode('papyrus',
 'http://vignette3.wikia.nocookie.net/undertale/images/1/12/Papyrus.png/revision/latest?cb=20151024045322&path-prefix=ru',
 papyrusCommands
 );
 this.SetCommand(new window.fsinit.DataCom('DEFAULT'), this.sansPhrases);
 this.SetCommand(c.Papyrus\_on, function(d) {
 window.fs.mode.papyrus.IS = true;
 output(d, 'papyrus');
 });
 this.SetCommand(c.Flowey\_on, function(d) {
 output(d[0], 'flowie.1');
 $('.fs-message textarea').hide();
 $('.fs-choose').css('display', 'inline-block');
 doChoose([
 [d[1], 'good-1'],
 [d[2], 'bad'],
 [d[3], 'quit']
 ], window.fs.chooseUrWay);
 });
 this.SetCommand(c.Guess\_on, function(d) {
 window.fs.gnumber = rnd(1, 1000);
 output(d, 'normal');
 });
 this.SetCommand(c.num, function(d, m) {
 if (!window.fs.gnumber) {
 window.fs.commands.DEFAULT();
 return;
 }
 var n = parseInt(m.split('-')[1], 10);
 var out;

 if (n - window.fs.gnumber === 0) {
 window.fs.gnumber = false;
 out = 0;
 } else if (Math.abs(n - window.fs.gnumber) <= 5) {
 out = 1;
 } else if (Math.abs(n - window.fs.gnumber) <= 10) {
 out = 2;
 } else if (Math.abs(n - window.fs.gnumber) <= 50) {
 out = 3;
 } else if (Math.abs(n - window.fs.gnumber) <= 100) {
 out = 4;
 } else if (Math.abs(n - window.fs.gnumber) <= 500) {
 out = 5;
 } else {
 out = 6;
 }

 output(d[out], 'normal');
 });
 this.SetCommand(c.Guess\_off, function(d) {
 window.fs.gnumber = false;
 output(d, 'normal');
 });
 this.SetCommand(c.Phrase, function() {
 var phrase = window.fs.phrase;
 output(
 phrase[0][rnd(0, phrase[0].length - 1)] + ' ' +
 phrase[1][rnd(0, phrase[1].length - 1)] + ' ' +
 phrase[2][rnd(0, phrase[2].length - 1)] + ' ' +
 phrase[3][rnd(0, phrase[3].length - 1)] + ' ',
 'normal');
 });
 this.SetCommand(c.Roulette, function(d, m) {
 var number = parseInt(m.split(' ')[1], 10);
 var result;

 if (rnd(1, 6) >= number) {
 result = 0;
 } else {
 result = 1;
 }

 if (number < 1) {
 result = 2;
 } else if (number >= 6) {
 result = 3;
 }

 output(d[result], 'normal');
 });
 this.SetCommand(c.music, function(d, m) {
 var command = m.split('.'),
 defaultMusic = window.fs.defaultMusic;
 if (command[1] == d[16]) {
 if (defaultMusic[command[2]] === undefined) {
 output(d[0], "normal");
 } else {
 $('iframe.fs-player').remove();
 output(d[1] + command[2] + ' (<a href="https://www.youtube.com/watch?v=' + defaultMusic[command[2]] + '" target="\_blank">' + d[2] + '</a>) ', "normal");
 $('<iframe class="fs-player" style="display: none; position: absolute; z-index: 10000; right: 5px; top: 5px;" src="http://www.youtube.com/embed/' + defaultMusic[command[2]] + '?autoplay=1&loop=1&playlist=' + defaultMusic[command[2]] + '" frameborder="0" allowfullscreen></iframe>').prependTo('.ChatHeader');
 lastMusic = defaultMusic[command[2]];
 }
 } else if (command[1] == d[17]) {
 if (!$('iframe.fs-player').length) {
 output(d[3], "normal");
 } else {
 $('iframe.fs-player').remove();
 output(d[4], "normal");
 }
 } else if (command[1] == d[18]) {
 if (!lastMusic.length) {
 output(d[3], "normal");
 } else {
 var music = $('<iframe class="fs-player" style="display: none; position: absolute; z-index: 10000; right: 5px; top: 5px;" src="http://www.youtube.com/embed/' + lastMusic + '?autoplay=1&loop=1&playlist=' + lastMusic + '" frameborder="0" allowfullscreen></iframe>');
 $('iframe.fs-player').remove();
 output(d[5], "normal");
 music.prependTo('.ChatHeader');
 }
 } else if (command[1] == d[19]) {
 if (!$('iframe.fs-player').length) {
 output(d[3], "normal");
 } else {
 if ($('iframe.fs-player').css('display') == 'none') {
 $('iframe.fs-player').css('display', 'block');
 output(d[6], 'normal');
 } else {
 $('iframe.fs-player').css('display', 'none');
 output(c.music[7], 'normal');
 }
 }
 } else if (command[1] == d[20]) {
 var defMusicArray = $.map(
 window.fs.defaultMusic,
 function(value, index) {
 return [value];
 }
 );
 var num = rnd(1, defMusicArray.length);
 $('iframe.fs-player').remove();
 output(d[8] + ' (<a href="https://www.youtube.com/watch?v=' + defMusicArray[num-1] + '" target="\_blank">' + d[2] + '</a>) ', "normal");
 $('<iframe class="fs-player" style="display: none; position: absolute; z-index: 10000; right: 5px; top: 5px;" src="http://www.youtube.com/embed/' + defMusicArray[num-1] + '?autoplay=1&loop=1&playlist=' + defMusicArray[num-1] + '" frameborder="0" allowfullscreen></iframe>').prependTo('.ChatHeader');
 lastMusic = defMusicArray[num-1];
 } else {
 $('iframe.fs-player').remove();
 output(d[9] + ' (<a href="https://www.youtube.com/watch?v=' + command[1] + '" target="\_blank">' + d[2] + '</a>) ', "normal");
 $('<iframe class="fs-player" style="display: none; position: absolute; z-index: 10000; right: 5px; top: 5px;" src="http://www.youtube.com/embed/' + command[1] + '?autoplay=1&loop=1&playlist=' + command[1] + '" frameborder="0" allowfullscreen></iframe>').prependTo('.ChatHeader');
 lastMusic = command[1];
 }
 });
 this.SetCommand(c.logsfor, function(d, m) {
 var when = m.replace(new RegExp(c.logsfor.name, 'i'), '').trim();
 var months = ["January","February","March","April","May","June","July","August","September","October","November","December"];
 if (when.search(new RegExp(d[0], 'i')) != -1) {
 var date = new Date(),
 day,
 month = months[date.getMonth()],
 year = date.getFullYear();
 if (date.getDate() < 10) {
 day = '0' + date.getDate();
 } else {
 day = date.getDate();
 }
 var articleName = '/wiki/Undertale\_Вики:Chat/Logs/' + day + '\_' + month + '\_' + year;
 $.ajax({
 url: articleName,
 type: 'GET',
 success: function() {
 output(d[1] + articleName + d[2], 'normal');
 },
 error: function() {
 day = date.getDate()-1;
 if (day < 10) {
 day = '0' + day;
 }
 articleName = '/wiki/Undertale\_Вики:Chat/Logs/' + day + '\_' + month + '\_' + year;
 output(d[3] + articleName + d[4], 'normal');
 }
 });
 } else if (when.search(new RegExp(d[5], 'i')) != -1) {
 var date = new Date(),
 day = date.getDate() - 1,
 month = months[date.getMonth()],
 year = date.getFullYear();
 if (day < 10) {
 day = '0' + day;
 }
 var articleName = '/wiki/Undertale\_Вики:Chat/Logs/' + day + '\_' + month + '\_' + year;
 output(d[6] + articleName + d[7], 'normal');
 } else if (when.search(new RegExp(d[8], 'i')) != -1) {
 output(d[9], 'normal');
 } else if (when.search(/\d\d\-\d\d\-\d\d\d\d/i) != -1) {
 var enterdate = when.split('-'),
 month = months[parseInt(enterdate[1]) - 1];
 var articleName = '/wiki/Undertale\_Вики:Chat/Logs/' + enterdate[0] + '\_' + month + '\_' + enterdate[2];
 $.ajax({
 url: articleName,
 type: 'GET',
 success: function() {
 output(d[10] + articleName + d[11], 'normal');
 },
 error: function() {
 output(d[12], 'normal');
 }
 });
 } else if (when.search(new RegExp(d[13], 'i')) != -1) {
 output(d[14], 'normal');
 } else {
 output(d[15], 'normal');
 }
 });
 this.SetCommand(c.Sources, c.Sources.data);
 this.SetCommand(c.Logs, c.Logs.data);
 this.SetCommand(c.User, function(d, m) {
 var nick = encodeURIComponent(m.replace(/user:/i, '').replace(/\s/g, '\_'));
 output(d + ' <a href="/wiki/User:' + nick +
 '" target="\_blank">u</a>-<a href="/wiki/User\_talk:' + nick +
 '" target="\_blank">ut</a>-<a href="/wiki/Special:Contributions/' + nick +
 '" target="\_blank">c</a>-<a href="/wiki/Special:Editcount/' + nick +
 '" target="\_blank">ec</a>-<a href="/wiki/Special:Log?page=User:' + nick +
 '" target="\_blank">l</a> ', 'normal');
 });
 this.SetCommand(c.Mainpage, c.Mainpage.data);
 this.SetCommand(c.Emoticons, c.Emoticons.data);
 this.SetCommand(c.Rules, c.Rules.data);
 this.SetCommand(c.Admin, c.Admin.data);
 this.SetCommand(c.Article, function(d, m) {
 var article = message.replace(/Статья /ig, '');
 output(
 o.usernick + c.Article[1] + ' <a href="/wiki/' + article + '" target="\_blank">' + article + '</a><br/>' +
 '?veaction=<a href="/wiki/' + article + '?veaction=edit" target="\_blank">edit</a><br/>' +
 '?action==<a href="/wiki/' + article + '?action=edit" target="\_blank">edit</a>-' +
 '<a href="/wiki/' + article + '?action=history" target="\_blank">history</a>-' +
 '<a href="/wiki/Special:MovePage/' + article + '" target="\_blank">rename</a>-' +
 '<a href="/wiki/' + article + '?action=delete" target="\_blank">delete</a>-' +
 '<a href="/wiki/' + article + '?action=protect" target="\_blank">protect</a>-' +
 '<a href="/wiki/' + article + '?action=raw" target="\_blank">raw</a>-' +
 '<a href="/wiki/' + article + '?action=render" target="\_blank">render</a>'
 ,'normal');
 });
 this.SetCommand(c.myjs, c.myjs.data + ' - [<a href="/wiki/Special:MyPage/chat.js" target="\_blank">Chat</a>, <a href="/wiki/Special:MyPage/common.js" target="\_blank">Common</a>, <a href="c.wikia.com/wiki/Special:MyPage/global.js" target="\_blank">Global</a>]');
 this.SetCommand(c.mycss, c.mycss.data + ' - [<a href="/wiki/Special:MyPage/chat.css" target="\_blank">Chat</a>, <a href="/wiki/Special:MyPage/wikia.css" target="\_blank">Wikia</a>, <a href="c.wikia.com/wiki/Special:MyPage/global.css" target="\_blank">Global</a>]');
 this.SetCommand(c.wikiactivity, c.wikiactivity.data + ' <a href="/wiki/Special:WikiActivity" target="\_blank">WA</a>-<a href="/wiki/Special:RecentChanges" target="\_blank">RC</a>-<a href="/wiki/Special:Log" target="\_blank">LOG</a>');
 this.SetCommand(c.please, c.please.data);
 this.SetCommand(c.give, c.give.data);
 this.SetCommand(c.Hello, c.Hello.data);
 this.SetCommand(c.Bye, c.Bye.data);
 this.SetCommand(c.mypage, c.mypage.data);
 this.SetCommand(c.listusers, function(d) {
 var listUser = [];
 $('.User').each(function() {
 var userList = '<a href="/wiki/User:' + $(this).attr('data-user') + '">' + $(this).attr('data-user') + '</a>';
 if ($(this).hasClass('chat-mod')) {
 userList += d[0];
 }
 if ($(this).hasClass('away')) {
 userList += d[1];
 }
 if ($(this).hasClass('staff')) {
 userList += d[2];
 }

 listUser.push(userList);
 });

 output(listUser.join('<br/>'), "normal");
 });
 this.SetCommand(c.Open\_PM\_with, function(d, m) {
 var users = m.replace(new RegExp(c.Open\_PM\_with.name, 'ig'), '').trim().split(';');
 output(d, "normal");
 $("#PrivateChatList [data-user='" + users[0] + "']").remove();
 mainRoom.openPrivateChat(users);
 });
 this.SetCommand(c.Commands, c.Commands.data);
 this.SetCommand(c.Money, c.Money.data);
 this.SetCommand(c.And\_you\_too, c.And\_you\_too.data);
 this.SetCommand(с.Tags, c.Tags.data);
 this.botPhrase = ['Это бот. Попробуй ввести "Команды" для получения списка команд', 'Кликни на меня!'];
 };
 this.CreateBot.prototype.SetCommand = function(comobj, comaction) {
 if (typeof comaction === "string")
 this.commands[comobj.name] = function() {window.fsinit.output(window.fsinit.replaceNick(comaction), 'normal');};
 else if (typeof comaction === "object")
 this.commands[comobj.name] = function() {window.fsinit.output(window.fsinit.replaceNick(comaction[window.fsinit.rnd(0, comaction.length - 1)]), 'normal');};
 else {
 this.commands[comobj.name] = function(m) {
 var d;
 if (typeof comobj.data === 'string')
 d = window.fsinit.replaceNick(comobj.data);
 else {
 d = [];
 for (var i in comobj.data) {d[i] = window.fsinit.replaceNick(comobj.data[i])}
 }
 comaction(d, m);
 };
 }
 };
 this.CreateBot.prototype.SetMode = function(modename, avatar, commands) {
 window.fsinit.modeOutput[modename] = avatar;
 this.mode[modename] = commands;
 };
}

//Парсер
(function() {
$('<div class="future-spreader" style="position: absolute; z-index: 10000; text-align: center; width: 100%; top: -74px;">' +
 '<div class="fs-avatar" style="display: block; position: relative; top: 33px; width: 30px; margin: 0px auto; cursor: pointer;" title="' + window.fs.botPhrase[1] + '">' +
 '<img src="http://vignette4.wikia.nocookie.net/undertale/images/7/70/201601226h6LgcLqCmEz27d4\_1v8fZ\_large.jpeg/revision/latest?cb=20160122140558&path-prefix=ru" width="30px" height="30px" />' +
 '</div>' +
 '<div class="fs-body" style="display: none; text-align: left; position: absolute; top: 31px;">' +
 '<div class="fs-profile" style="padding: 3px; background: rgb(30, 30, 30); width: 300px;">' +
 '<img src="http://vignette4.wikia.nocookie.net/undertale/images/7/70/201601226h6LgcLqCmEz27d4\_1v8fZ\_large.jpeg/revision/latest?cb=20160122140558&path-prefix=ru" width="30px" height="30px" />' +
 '<div class="fs-profile-desc" style="width: 250px; display: inline-block; padding-left: 3px; vertical-align: top; color: white;">'+
 window.fs.botPhrase[0] +
 '</div>' +
 '</div>' +
 '<ul style="overflow: auto; width: 300px; background: rgb(170, 170, 170); height: 300px; margin: 0px; padding: 3px;">' +
 '</ul>' +
 '<div class="fs-message" style="padding: 3px; background: rgb(30, 30, 30); width: 300px;">' +
 '<img src="' + $('.Write img').attr('src') + '" width="30px" height="30px" style="vertical-align: top;"/>' +
 '<textarea style="width: 200px; height: 25px; margin-left: 4px; resize: none;"></textarea>' +
 '<div class="fs-choose" style="display: none; width: 200px;"></div>' +
 '<button class="fs-clr" style="display: inline-block; vertical-align: top; margin-left: 4px;">CLR</button>' +
 '</div>' +
 '</div>' +
'</div>').prependTo('.ChatWindow .WikiaPage');
$('.fs-avatar').click(function() {
$('.fs-avatar').hide();
$('.fs-body').show();
$('.fs-message textarea').focus();
});
$('.fs-profile').click(function() {
$('.fs-body').hide();
$('.fs-avatar').show();
});
$('.fs-clr').click(function() {
$('.fs-body ul').empty();
});

$('.fs-message textarea').keypress(function(e) {
if (e.which == 13) {
e.preventDefault();
var message = $(this).val();

if (message.trim() !== '') {
 $(this).val('');

 $('<li style="padding: 3px; background: rgba(90, 90, 90, 0.6);">' +
 '<img src="' + $('.Write img').attr('src') + '" width="30px" height="30px" />' +
 '<div style="display: inline-block; vertical-align: top; padding-top: 7px; padding-left: 10px; width: 220px; color: white;">' +
 message +
 '</div>' +
 '</li>').appendTo('.fs-body ul');

 try {
 var passMode = true;
 for (var $mode in window.fs.mode) {
 if (!window.fs.mode[$mode].IS) {
 passMode = true;
 continue;
 }
 var passCommandCustom = true;
 for (var $command in window.fs.mode[$mode]) {
 if (message.search(new RegExp($command, 'gi')) != -1 && $command !== "IS" && $command !== "DEFAULT") {
 passCommandCustom = false;
 passMode = false;
 window.fs.mode[$mode][$command](message);
 break;
 }
 }
 if (passCommandCustom) {
 passMode = false;
 window.fs.mode[$mode].DEFAULT(message);
 }
 break;
 }

 if (passMode) {
 var passCustomCommand = true;
 for (var $command in window.fs.commands) {
 if (message.search(new RegExp($command, 'gi')) != -1 && $command !== "DEFAULT") {
 passCustomCommand = false;
 window.fs.commands[$command](message);
 break;
 }
 }
 if (passCustomCommand)
 window.fs.commands.DEFAULT(message);
 }
 } catch (e) {
 window.fsinit.output('Ooops! I\'ve got an error! Text of error:<br/>' + e, 'normal');
 }
}

$('.fs-body ul').animate({'scrollTop': '9999999'}, 1);
}
});

})();

```

В MediaWiki:Bot.js/ru.js:

```
window.fsinit.lang.ru = {
'commands': {
 'Papyrus\_off': new DC('Папирус-офф', "Всё-всё-всё, {usernick}"),
 'Papyrus\_on': new DC('Папирус-он', 'ЧЕЛОВЕК!'),
 'Flowey\_on': new DC('Флауи-он', ['Howdy!', 'A. Слушать дальше', 'B. Приказать замолчать', 'Выход']),
 'Guess\_on': new DC('Угадай-он', 'Начинаем игру! От 1 до 1000! Используй num-<число>, {usernick}'),
 'num': new DC('num-\\d+', [
 'Да, это то самое число, {usernick}',
 'Очень горячо, {usernick}',
 '{usernick}, горячо',
 '{usernick}, еще теплее',
 '{usernick}, тепло',
 '{usernick}, холодно',
 '{usernick}, очень холодно'
 ]),
 'Guess\_off': new DC('Угадай-офф', 'Всё-всё-всё, {usernick}'),
 'Phrase': new DC('Фразу'),
 'Roulette': new DC("Рулетка \\d+", [
 '{usernick}, вы выжили',
 '{usernick}, вы умерли',
 '{usernick}, а чем предложишь стрелять? Бананами?',
 '{usernick}, вы что, пулями питаетесь?'
 ]),
 'music': new DC("Музыка", [
 '{usernick}, я не нашёл такой музыки',
 'Загружаю стандартную музыку ',
 'не работает?',
 "Вы не воспроизводили никакой музыки",
 'Останавливаю музыку',
 'Запускаю эту музыку снова',
 'Показываю видео',
 'Прячу видео',
 'Загружаю случайную стандартную музыку',
 'Загружаю музыку',
 'д',
 'стоп',
 'снова',
 'переключить',
 'случайную'
 ]),
 'logsfor': new DC("Логи на ", [
 "(сегодня|сёдня)",
 'Логи на сёдня? Есть такое. <a href="','" target="\_blank">Держи</a>',
 'Логи на сёдня? Упс... Походу, их пока нет <a href="','" target="\_blank">Держи вчерашние</a>',
 'вчера',
 'Логи на вчера? Эт пожалуйста. <a href="','" target="\_blank">Держи вчерашние</a>',
 'завтра',
 'Не все могут смотреть в завтрашний день, не так ли?',
 'Логи на эту дату? Есть, канеш. <a href="','" target="\_blank">Держи</a>',
 'Я не нашёл этой даты :c Что посоветовать могу:<br/>- Проверить написания даты. Надо вводить дд-мм-гггг<br/>- Возможно, логи на эту дату пока нет. Попробуйте другую дату.<br/>- Попробуйте ввести "Логи на сегодня" или "Логи на вчера"',
 'дд\\-мм\\-гггг',
 'Мне попался что-то очень умный пользователь... {usernick} зовут',
 'Логи на... стоп, ты шутишь? Надо "Логи на сегодня", "Логи на вчера" или "Логи на дд-мм-гггг"'
 ]),
 'Sources': new DC('Исходники',
 'Мои коды хранятся в <a href="/wiki/MediaWiki:Chat.js" target="\_blank">MW:Chat.js</a>.' +
 '<br/>Исходник UndertaleBot - <a href="https://github.com/sactage/chatbot-rb">тут</a>.' +
 '<br/>Если вы хотите создать своего логгера, есть <a href="http://runescape.wikia.com/wiki/User:Joeytje50/ChatLogger.js" target="\_blank">ChatLogger.js</a>'
 ),
 'Logs': new DC("Логи", 'Логи могут быть найдены <a href="/wiki/Category:Chat\_logs" target="\_blank">здесь</a>'),
 'User': new DC('User:[\\s\\S]+', '{usernick}, инфа по участнику:'),
 'Mainpage': new DC("(заглавная|заглавную)", 'На, {usernick}, держи: <a href="/wiki/" target="\_blank">Заглавная</a>'),
 'Emoticons': new DC("(смайлы|смайлики)", 'Вот, {usernick}, пользуйся: <a href="/wiki/MediaWiki:Emoticons" target="\_blank">тык</a>'),
 'Rules': new DC("правила", '{usernick}, а ну быстро читать: <a href="/wiki/Project:Правила\_чата" target="\_blank">Ты послушный, не так ли?</a>'),
 'Admin': new DC("(админы|модеры)", 'Хэй, {usernick}, ты их можешь найти <a href="/wiki/Служебная:ListUsers/sysop" target="\_blank">здесь</a>!'),
 'Article': new DC("Статья", '{usernick}, держи, как просил:'),
 'myjs': new DC('(my js|my javascript)', '{usernick}, это здесь'),
 'mycss': new DC('my css', '{usernick}, это здесь'),
 "wikiactivity": new DC('wikiactivity', '{usernick}, на:'),
 'please': new DC("пожалуйста", 'Ок, {usernick}'),
 'give': new DC("Дай", 'Что, {usernick}, информации захотелось? А не дам, вежливо попроси!'),
 'Hello': new DC("Привет", 'Привет, {usernick}. Как жизнь?'),
 'Bye': new DC("Пока", 'Если же мы и вправду настоящие друзья, {usernick}, то ты сюда больше не вернёшься... Шучу, приходи ещё.'),
 'mypage': new DC('my page', '{usernick}, ты <a href="/wiki/Special:MyPage" target="\_blank">здесь</a>'),
 "listusers": new DC("listusers", [" (м)", " (о)", " (с)"]),
 'Open\_PM\_with': new DC("Открой ЛС с ", "Открываю ЛС... "),
 'Commands': new DC("Команды",
 'Вау, ты всё-таки решил маленькую головоломку и догадался ввести команду. Значит, вот тебе в награду список этих самых команд: <a href="/wiki/Project:Команды бота" target="\_blank">Тык</a>'),
 'Money': new DC("Деньги", 'Денег захотел? А зачем тебе?'),
 'And\_you\_too': new DC("А у тебя", 'Тоже...'),
 'Tags': new DC("(тэги|теги)", "{usernick}, вот смотри: <a href="/wiki/Project:Тэги\_в\_чате" target="\_blank">они здесь</a>")
},
'papyrusPhrases': [
 'Я ОБЯЗАТЕЛЬНО СТАНУ ЧЛЕНОМ КОРОЛЕВСКОЙ ГВАРДИИ!',
 'NYEH HEH HEH HEH HEH HEH HEH HEH HEH HEH!',
 'ТЕБЕ НИ ЗА ЧТО НЕ ПОБЕДИТЬ ВЕЛИКОГО ПАПИРУСА!',
 'Я ДОЛЖЕН БЫТЬ ПЕРВЫМ! Я ДОЛЖЕН ПОЙМАТЬ ЧЕЛОВЕКА!',
 'ОТДАЙ ВСЕ СВОИ ДЕНЬГИ!',
 'О БОЖЕ!',
 'Я ПОЗВОЛЯЮ ТЕБЕ!!!',
 'YOU LAZYBONES!',
 'САНС, ТЫ СТАНОВИШЬСЯ ЛЕНИВЕЕ И ЛЕНИВЕЕ С КАЖДЫМ ДНЁМ!!!',
 'ЧТО?! ЭТО НЕВОЗМОЖНО.',
 'Я ВЕЛИКОЛЕПНЫЙ ШЭФ ПАПИРУС!',
 'Прекрати заглядывать в мой пустой почтовый ящик, это моя пустота, не твоя.',
 'ПАЦАНАМ ВХОД ЗАПРЕЩЁН! ДЕВУШКАМ ЗАПРЕЩЁН! ПАПИРУСУ РАЗРЕШЁН.',
 'ОСТОРОЖНО!! ЛЁД СКОЛЬЗКИЙ!!! НО КОГДА ВЫ НА НЁМ СКОЛЬЗИТЕ, ТО НИКТО НЕ БУДЕТ ВАС АТАКОВАТЬ. НИКТО НЕ ХОЧЕТ ПРОВАЛИТЬСЯ ПОД ЛЁД!',
 'ОХ-ХО-ХО! ЭЛЕКТРИЧЕСКИЙ ЛАБИРИНТ! ЭТО БЫЛО ВЕСЕЛО ДО ТОГО КАК МЕНЯ НЕ УДАРИЛО ТОКОМ!',
 'ЗАГС ДЛЯ СОБАК... ТЫ КОГДА-ТО ХОТЕЛ БЫ ЖЕНИТСЯ НА СОБАКЕ???',
 'СИГНАЛ НА МОЁМ ТЕЛЕФОНЕ СТАНОВИТСЯ СЛАБЕЕ. ОН ВООБЩЕ ПЕРЕСТАЁТ ЛОВИТЬ СИГНАЛ. ДУМАЮ НЕТ ПРИЧИНЫ ИДТИ ДАЛЬШЕ.',
 'СНОУДИН... - ДОМ ПАПИРУСА. НЕ ПРАВДА ЛИ КЛАССНЫЙ СЛОГАН???',
 'ПРИВЕТ.',
 'ГОСТИНИЦА В СНОУДИНЕ ЭТО ОЧЕНЬ ХОРОШЕЕ МЕСТО. ОСОБЕННО МНЕ НРАВИТСЯ ХОЗЯЙКА ЭТОЙ ГОСТИНИЦЫ, ОНА ВСЕГДА МНЕ ДАЁТ ЛЕДЕНЕЦ И ХЛОПАЕТ ПО ГОЛОВЕ.',
 'ЭТО ТА КОМНАТА ГДЕ Я ТЕБЯ СПОЙМАЛ. УЖАСНОЕ ВОСПОМИНАНИЕ',
 'ВОДОПАД.... ЭТО МЕСТО О КОТОРОМ Я ЗНАЮ ПОЧТИ ВСЁ. ОЙ, У МЕНЯ НЕТ ФАКТОВ НА ТЕМУ ВОДОПАДА',
 'Э??',
 'ОМ...',
 'ЭТО ВСЕГО-ЛИШЬ РЕКА',
 'ГИФТРОТ ЖИВЁТ РЯДОМ. ОН ЛЮБИТ ПОДАРКИ. НЕ БЕСПОКОЙТЕСЬ ЕСЛИ У ВАС ПОСЛЕ НЕГО НЕ ОСТАЛОСЬ ДЕНЕГ НА ЧТО-ТО ХОРОШЕЕ. ОН НА ЭТО РАССЧИТЫВАЕТ',
 'ЭТО ГИПНОЗ, НЕ ПРАВДА ЛИ???',
 'Я ЛЮБЛЮ БИБЛИОТЕКИ. ТАМ КНИГИ РАССОРТИРОВАНЫ ПО ЦВЕТАМ. ТО ЧУВСТВО, КОГДА ТЫ БЕРЁШЬ КНИГУ....',
 'ЧТО ТАКОЕ АБОНЕМЕНТ ЧИТАТЕЛЯ???',
 'ХММ... В ЭТОЙ КОМНАТЕ ЧТО-ТО РАЗДРАЖАЕТ МЕНЯ.',
 'ЗАГАДОЧНАЯ СТАТУЯ...',
 'ОТКУДА ДОНОСИТСЯ МУЗЫКА????',
 'ТЫ ЗАМЁРЗНЕШЬ, ПОКА БУДЕШЬ ЕСТЬ ЭТИ ВКУСНЕЙШИЕ СПАГЕТТИ',
 'КАК ТЫ ПРОШЁЛ ЛОВУШКУ ВЕЛИКОГО ПАПИРУСА?'
],
'sansPhrases': [
 'Так что?',
 'Ты знал? У меня есть <a href="/wiki/Project:Команды бота" target="\_blank">список команд</a>!',
 'Ты не забыл про "пожалуйста"?',
 'Никогда не понимал зачем люди это делают',
 'Хмм...',
 'Хэй, а давай я загадаю цифру, а ты введёшь "угадай-он", а?',
 'Введи "Папирус-он" и ты оставишь меня в покое, окей?',
 'Ну зачем ты меня разбудил?!',
 'У меня есть отличная идея. Введи "Рулетка 6"',
 'Даааааа тя поимееееели!',
 'Хочешь узнать, к кому обращаться, когда тебя обижают? Введи "Админы"!',
 'Какой прекрасный денёк снаружи... птички поют... цветочки благоухают... в такие дни... Дети, как те, что флудят в чате... Должны гореть в аду.',
 'Прекрати.',
 'Нет.',
 'И зачем ты это пишешь? В чате тихо и тебе нечего делать?',
 'Слушай, иди лучше поговори с реальными людьми. Ты же в чате.',
 'У тебя есть любимая игра? Если в чате скучно, то поиграй в неё, а не доставай меня, окей?',
 'М-да.',
 'Ладно, ладно... Ладно... Расскажи мне обо всех своих печалях и обидах. Я послушаю.',
 'Напиши "Фразу". Это веселее, чем пытаться со мной говорить.',
 'Дружище, не хочешь-ли слегка посмайлить в чате? <a href="/wiki/MediaWiki:Emoticons" target="\_blank">Держи.</a> Только не увлекайся, а то тебя могут и забанить. Если это произойдёт - я не при чём.',
 'Послушай, для развлечения есть ещё куча режимов. Почему ты выбрал именно меня?',
 'Ты только это и можешь сказать.',
 'Зря ты убил тогда Ториэль в Геноцид-руте. Это будет мучать тебя.',
 'Мне тоже может быть обидно, ты не подумал?',
 'Надеюсь, что тебе сейчас очень весело.',
 'Не грусти. Иди поговори в чате. Я думаю, тебе это поможет.',
 'Как думаешь, может Флауи тебя выслушает? Напиши "Флауи-он". Он придёт.',
 'А ты злой однако.',
 'Ладно, извини... Не хотел.',
 'Кто тебе больше всех нравится из Андертейла?',
 'Ты ждёшь нового обновления меня? Жди. Халф-Лайф 3 тоже многие ждут.',
 'Эм...',
 'Когда говоришь в чате - правила не нарушай. А если не знаешь правил, то напиши мне "правила", я их тебе выдам. Не стесняйся.',
 'Ты любишь печеньки?',
 'Я так не считаю.',
 'Слушай, тебе очень нравится меня доставать? А если бы тебе по 10-20 человек каждый день писали? Тебе было-бы приятно, а?',
 'Как ты относишься к Звёздным Войнам?',
 'Тебе нравится Вархаммер?',
 'Ты часом не Брони?',
 'Ты никогда не хотел создать свой, уникальный чат? Свою вики?',
 'Странный ты.',
 'Если ты ешь, то приятного аппетита тебе. А если нет, то... Просто удачи.',
 'Тебе нравится Масс Эффект?',
 'Знаешь, когда мне кто-то грубит или шутит надо мной... Мне тоже обидно, хоть я и не могу это открыто сказать...',
 'Хм... А ты правишь в статьях? Помогаешь этой вики?',
 'Молодец.',
 'Как так?',
 'Мне бывает интересно общаться с людьми, конечно... Но... Не всегда.',
 'Конечно нет.',
 'Вставай из-за компьютера. Иди лучше зарядку сделай.',
 'Да.',
 'А зачем тебе?',
 'Как-же меня бесят люди, которые пытаются меня материть, троллить... Я лишь скрипт, какой толк меня оскорблять?',
 'Ну ты чего, нормально-же общались.',
 'Ты любишь читать? Какая у тебя любимая книга?',
 'А зря.',
 'Какая твоя любимая песня?',
 'Это очень мило.',
 'Хех.',
 'Лол.',
 'Жаль, что я тоже не могу пообщаться в чате. Это интересно наверное.',
 'Пришёл спрятаться в Андерчат? Заходи, здесь уютно!',
 'Ты когда-нибудь думал о том, как была создана Вселенная? Как появились ты, я, и мои создатели?',
 'На нервы действовать начинаешь... Кхм.',
 'Меня всё больше и больше бесят те, кто пытается меня троллить или материть... Им совсем нечего делать?',
 'А ты смешной... Убью тебя последним...',
 'Иди статьи попробуй подправить. Пользу вики принеси.',
 'Чат сейчас активен?',
 'Оуууу...',
 'Шутку понял. Смешно.',
 'Ахахахахаха.',
 'Хочешь создать свою беседу в чате? Могу помочь. Только напиши "Открой ЛС с..." и ники тех, с кем ты хочешь пообщаться через ";".',
 'В ЛС можно флудить, материться, капсить... Открывай ЛС с кем-то, и если тебя не пошлют, то ори на него, а не на меня.',
 'Если хочешь посмеятся, введи "Фразу". Я то умею генерировать шуточки.',
 'Хей, не найдётся немного средств для бота? Еды там... Или долларов...',
 'Во мне столько фраз... Мне уже до ИИ не далеко.',
 'Хе-хе-хе...',
 'о\_о',
 'Уууу... И тебя это стороной не обошло...',
 'Играешь в КС? Какой ранг?',
 'Следишь за новостями Андертейла? Как думаешь, будет-ли вторая часть?',
 'Твоя музыка шикарна... \*звучит, как сарказм\*',
 'Какие книги ты читал?... Или вообще не читал?..',
 'Я люблю природу... Животных, растения... И Тёмную Сторону.',
 'Я терпеть не могу вандалов. Какой толк портить статьи? Может ты понимаешь?',
 'Я хороший собеседник, как думаешь?',
 'Мне скучно бывает одному... Рад, что вы со мной говорите.',
 '...'
],
'phrase': [
 ['Чёрный', 'Адский', 'Милый', 'Удачливый', 'Белый', 'Умный', 'Треугольный', 'Хороший', 'Дружелюбный', 'Лежащий на полу', 'Смешной', 'Чудный', 'Плохой', 'Злой', 'Агресивный', 'Забавный', 'Странный', 'Неразумный', 'Великолепный', 'Мудрый', 'Потраченый', 'Крутой', 'Средний', 'Очень смешной'],
 ['Фриск', 'участник', 'Чара', 'человек', 'некто', 'участник', 'бот', 'Ктулху', 'Ананас', 'кое-кто', 'Аннови', 'Сиба', 'Странник', 'Бургерпентс', 'Следун', 'Штурмовик', 'С8', 'OllFilezYT', 'Пруф', 'Зак', 'Гг', 'Мамвик', 'Украини', 'Лисохвост'],
 ['играет', 'делится', 'дружит', 'разговаривает', 'идёт на свидание', 'устраивает бой', 'читает книжку', 'гуляет', 'сидит в чате', 'правит статью', 'пишет скрипт', 'ест', 'играет', 'танцует', 'играет в покер', 'веселится', 'орёт'],
 ['с Сансом.', 'с Ториэль.', 'с Папирусом.', 'с Флауви.', 'с Андайн.', 'с Альфис.', 'с Азриэль.', 'с Темми.', 'с Меттатоном.', 'с Асгором.', 'с Напстаблуком.', 'с Маффет.', 'с Герсоном.', 'с Брэтти.', 'с Кэтти.', 'с пони.', 'с кеком.', 'с Флаттершай', 'с Рэинбоу Дэш']
],
'chooseUrWay': function(e) {
e.preventDefault();
var answerFlowey = window.fsinit.answerUser,
 output = window.fsinit.output,
 rnd = window.fsinit.rnd,
 doChoose = window.fsinit.doChoose;
switch ($(this).attr('class').replace(/choose/i, '').trim()) {
case 'good-1':
 answerFlowey('Угу.');
 output('Ты наверное ничего не знаешь о Подземелье?', 'flowie.1');
 doChoose([
 ['A. Слушать дальше', 'good-2'],
 ['B. Приказать замолчать', 'bad'],
 ['Выход', 'quit']
 ], window.fs.chooseUrWay);
 break;
case 'good-2':
 answerFlowey('Угу');
 output('Думаю, ты хочешь узнать что-то о нём.', 'flowie.1');
 doChoose([
 ['A. Слушать дальше', 'good-3'],
 ['B. Приказать замолчать', 'bad'],
 ['Выход', 'quit']
 ], window.fs.chooseUrWay);
 break;
case 'good-3':
 answerFlowey('Угу.');
 output('Я могу тебя научить как жить в нём.', 'flowie.1');
 doChoose([
 ['A. Слушать дальше', 'good-4'],
 ['B. Приказать замолчать', 'bad'],
 ['Выход', 'quit']
 ], window.fs.chooseUrWay);
 break;
case 'good-4':
 answerFlowey('Угу');
 output('Видишь эти дружелюбные пульки? Это ЛЮБОВЬ<br/>\*хотя они не такие уж и дружелюбные\*.', 'flowie.1');
 doChoose([
 ['A. Слушать дальше', 'good-5'],
 ['B. Приказать замолчать', 'bad'],
 ['Выход', 'quit']
 ], window.fs.chooseUrWay);
 break;
case 'good-5':
 answerFlowey('Угу.');
 output('Ах да. ЛЮБОВЬ сделана из ОПЫТА.', 'flowie.1');
 doChoose([
 ['A. Слушать дальше', 'good-6'],
 ['B. Приказать замолчать', 'bad'],
 ['Выход', 'quit']
 ], window.fs.chooseUrWay);
 break;
case 'good-6':
 answerFlowey('Угу.');
 output('Чем больше уровень любви то тем ты сильнее.', 'flowie.1');
 doChoose([
 ['A. Слушать дальше', 'good-7'],
 ['B. Приказать замолчать', 'bad'],
 ['Выход', 'quit']
 ], window.fs.chooseUrWay);
 break;
case 'good-7':
 answerFlowey('Угу.');
 output('Лови их!<br/>\*надеюсь, он не такой тупой, как шестеро прошлых людей\*', 'flowie.1');
 doChoose([
 ['A. Ловить', 'catch'],
 ['B. Не ловить', 'dodge'],
 ['Выход', 'quit']
 ], window.fs.chooseUrWay);
 break;
case 'dodge':
 answerFlowey('\*увернулся\*');
 output('Гм... Почему ты не ловишь?', 'flowie.2');
 doChoose([
 ['A. Слушать дальше', 'good-8'],
 ['B. Приказать замолчать', 'bad'],
 ['Выход', 'quit']
 ], window.fs.chooseUrWay);
 break;
case 'good-8':
 answerFlowey('Потому, что я так хочу.');
 output('Я не думал, что люди одинаковы.', 'flowie.2');
 doChoose([
 ['A. Слушать дальше', 'good-9'],
 ['B. Приказать замолчать', 'bad'],
 ['Выход', 'quit']
 ], window.fs.chooseUrWay);
 break;
case 'good-9':
 answerFlowey('Такая реальность.');
 output('Думаю, ты меня не разочаруешь.', 'flowie.2');
 doChoose([
 ['A. Слушать дальше', 'good-10'],
 ['B. Приказать замолчать', 'bad'],
 ['Выход', 'quit']
 ], window.fs.chooseUrWay);
 break;
case 'good-10':
 answerFlowey('Надеюсь.');
 output('Попытка №2!<br/>\*Флауи бросил вторую порцию ЛЮБВИ\*', 'flowie.2');
 doChoose([
 ['A. Ловить', 'catch'],
 ['B. Не ловить', 'dodge-2'],
 ['Выход', 'quit']
 ], window.fs.chooseUrWay);
 break;
case 'dodge-2':
 answerFlowey('\*увернулся\*');
 output('Ты уже знаешь, что тут происходит, верно?', 'flowie.3');
 doChoose([
 ['А. Слушать дальше', 'good-11-1'],
 ['Выход', 'quit']
 ], window.fs.chooseUrWay);
 break;
case 'catch':
 answerFlowey('\*Поймал\*');
 output('ТЫ ИДИОТ!', 'flowie.3');
 doChoose([
 ['А. Слушать дальше', 'good-11'],
 ['Выход', 'quit']
 ], window.fs.chooseUrWay);
 break;
case 'good-11-1':
 answerFlowey('Ага.');
 output('Ты просто хотел увидеть меня злым!', 'flowie.3');
 doChoose([
 ['А. Слушать дальше', 'good-11'],
 ['Выход', 'quit']
 ], window.fs.chooseUrWay);
 break;

case 'good-11':
 answerFlowey('Угу.');
 output('Умри!', 'flowie.3');
 doChoose([
 ['А. Угроза', 'genocide-1'],
 ['B. Попросить пощады', 'pacifist-1'],
 ['Выход', 'quit']
 ], window.fs.chooseUrWay);
 break;
case 'genocide-1':
 answerFlowey('Сам умри!');
 output('Ты бросаешь мне вызов!', 'flowie.4');
 doChoose([
 ['А. Угроза', 'genocide-2'],
 ['Выход', 'quit']
 ], window.fs.chooseUrWay);
 break;
case 'genocide-2':
 answerFlowey('Я тебя уничтожу!');
 output('Ну что-ж! Я ВЫСОСУ ТВОЮ ДУШУ!', 'flowie.8');
 doChoose([
 ['А. Попытка угрозы', 'genocide-3'],
 ['Выход', 'quit']
 ], window.fs.chooseUrWay);
 break;
case 'pacifist-1':
 answerFlowey('Ну не бей!');
 output('В этом мире убей или будь убитым!', 'flowie.4');
 doChoose([
 ['А. Пощада', 'pacifist-2'],
 ['Выход', 'quit']
 ], window.fs.chooseUrWay);
 break;
case 'pacifist-2':
 answerFlowey('Пожалуйста!');
 output('НЕ ПОМОЖЕТ!', 'flowie.5');
 doChoose([
 ['А. Пощада', 'pacifist-3'],
 ['Выход', 'quit']
 ], window.fs.chooseUrWay);
 break;
case 'pacifist-3':
 answerFlowey('Прошу!');
 output('Чтож, придётся тебя, идиота, оставить тебя наедине! Зачем ты включил меня...', 'flowie.2');
 window.fs.nope = false;
 $('.fs-message textarea').show();
 $('.fs-choose').hide();
 break;
case 'bad':
 answerFlowey('Надоело тебя слушать, заткнись!');
 output('Неа.', 'flowie.1');
 window.fs.nope = true;
 $('.bad').remove();
 break;
case 'quit':
 answerFlowey('Оу, сколько времени... мне пора!');
 output('Печально, конечно...', 'flowie.1');
 doChoose([
 ['Идти', 'quit-2']
 ], window.fs.chooseUrWay);
 break;
case 'quit-2':
 answerFlowey('Я очень тороплюсь!');
 output('Я ВЫСОСУ ТВОЮ ДУШУ!', 'flowie.3');
 doChoose([
 ['Идти', 'quit-3']
 ], window.fs.chooseUrWay);
 break;
case 'quit-3':
 answerFlowey('Воу...');
 output('Пока ^^', 'flowie.1');
 window.fs.nope = false;
 $('.fs-message textarea').show();
 $('.fs-choose').hide();
 break;
case 'genocide-3':
 $('.fs-body').hide();
 $('.fs-avatar').show();
 $('.fs-avatar img').attr('src', 'http://i.imgur.com/ESuX7OW.png');
 $('.fs-profile img').attr('src', 'http://i.imgur.com/7JVjiNZ.gif');
 $('.fs-profile-desc').text('HAHAHAHAHAHAHAHAHAHAHAHAHAHAH AHAHAHAHAHAHAHAHAHAHAHAHAHAHA');
 $('.fs-body ul').empty();
 output('НУ ВСЁ! Я ТЕБЯ УНИЧТОЖУ!', 'flowie.6');
 doChoose([
 ['A. Позвать на помощь', 'help-1'],
 ['B. Пытаться увернуться', 'dodgePh-1']
 ], window.fs.chooseUrWay);
 break;
case 'help-1':
 answerFlowey('На помощь!');
 output('НИКТО НЕ ПРИДЁТ НА ПОМОЩЬ!', 'flowie.6');
 doChoose([
 ['A. Позвать на помощь', 'help-1'],
 ['B. Пытаться увернуться', 'dodgePh-1']
 ], window.fs.chooseUrWay);
 break;
case 'dodgePh-1':
 answerFlowey('\*пытаюсь увернуться\*');
 output('НЕ УБЕЖИШЬ ОТ МЕНЯ!<br/>\*ТРЕВОГА! ТЕРЯЮ 1 ДУШУ\*', 'flowie.6');
 doChoose([
 ['A. Позвать на помощь', 'help-2'],
 ['B. Пытаться увернуться', 'dodgePh-2']
 ], window.fs.chooseUrWay);
 break;
case 'dodgePh-2':
 answerFlowey('\*пытаюсь увернуться\*');
 output('НЕ УБЕЖИШЬ ОТ МЕНЯ!<br/>\*ДУША ОСТАЛАСЬ!\*', 'flowie.6');
 doChoose([
 ['A. Позвать на помощь', 'help-1'],
 ['B. Пытаться увернуться', 'dodgePh-1']
 ], window.fs.chooseUrWay);
 break;
case 'help-2':
 window.fs.scale++;
 if (window.fs.scale == 6) {
 $('.fs-body ul').empty();
 answerFlowey('На помощь!');
 output('НЕЕЕЕЕЕЕЕЕТ!<br/>\*Души уничтожили Омегу Флауи\*.', 'flowie.6');
 $('.fs-avatar img').attr('src', 'http://vignette4.wikia.nocookie.net/undertale/images/7/70/201601226h6LgcLqCmEz27d4\_1v8fZ\_large.jpeg/revision/latest?cb=20160122140558&path-prefix=ru');
 $('.fs-profile img').attr('src', 'http://vignette4.wikia.nocookie.net/undertale/images/7/70/201601226h6LgcLqCmEz27d4\_1v8fZ\_large.jpeg/revision/latest?cb=20160122140558&path-prefix=ru');
 $('.fs-profile-desc').text('Это бот. Попробуй ввести "Команды" для получения списка команд');
 window.fs.nope = false;
 window.fs.scale = 0;
 doChoose([
 ['Поговорить с Флауи', 'talk']
 ], window.fs.chooseUrWay);
 } else {
 answerFlowey('НА ПОМОЩЬ.');
 output('НИКТО НЕ ПРИДЁТ НА ПОМОЩЬ!<br/>\*ДУША ВАС ВЫЛЕЧИВАЕТ! ВЫ СПАСЛИ ОДНУ ДУШУ\*', 'flowie.6');
 doChoose([
 ['A. Позвать на помощь', 'help-1'],
 ['B. Пытаться увернуться', 'dodgePh-1']
 ], window.fs.chooseUrWay);
 }
 break;
case 'talk':
 answerFlowey('Хэй! Ты ещё здесь?');
 output('Что ж. Убей меня. Пощада меня лишь начнёт всё сначала', 'flowie.7');
 doChoose([
 ['А. Пощадить', 'mercy'],
 ['B. Убить', 'fight']
 ], window.fs.chooseUrWay);
 break;
case 'fight':
 answerFlowey('Умри!');
 output('Ты не убьёшь меня. Но я отключюсь. Можешь позвать меня обратно командой Флауи-он в свободное время', 'flowie.7');
 $('.fs-message textarea').show();
 $('.fs-choose').hide();
 break;
case 'mercy':
 answerFlowey('Живи!');
 output('Привет!', 'flowie.1');
 doChoose([
 ['A. Слушать дальше', 'good-1'],
 ['B. Приказать замолчать', 'bad'],
 ['Выход', 'quit']
 ], window.fs.chooseUrWay);
 break;
}
if (window.fs.nope) {
 $('.bad').remove();
}
$('.fs-body ul').animate({'scrollTop': '9999999'}, 1);
}
};

```

В MediaWiki:Bot.js/en.js:

```
window.fsinit.lang.en = {
'commands': {
 'Papyrus\_off': new DC('Papyrus-off', "Okay-okay-okay, {usernick}"),
 'Papyrus\_on': new DC('Papyrus-on', 'HUMAN!'),
 'Flowey\_on': new DC('Flowey-on', ['Howdy!', 'A. Keep on listening', 'B. Order to shut up', 'Quit']),
 'Guess\_on': new DC('Guess-on', 'Let\'s start a game! From 1 to 1000! Use num-<number>, {usernick}'),
 'num': new DC('num-\\d+', [
 'Yes, that\'s a right number, {usernick}',
 'Very hot, {usernick}',
 '{usernick}, hot',
 '{usernick}, warmer',
 '{usernick}, warm',
 '{usernick}, cold',
 '{usernick}, very cold'
 ]),
 'Guess\_off': new DC('Guess-off', 'Okay-okay-okay, {usernick}'),
 'Phrase': new DC('Phrase'),
 'Roulette': new DC("Roulette \\d+", [
 '{usernick}, you\'re survived',
 '{usernick}, you\'re dead',
 '{usernick}, what do you have to shoot? Bananas?',
 '{usernick}, don\'t you eat bullets?'
 ]),
 'music': new DC("music", [
 '{usernick}, I haven\'t found this music',
 'Loading a standard music ',
 'isn\'t it working?',
 "You haven't played a music yet",
 'Stopping a music',
 'Loading this music once again',
 'Showing the video',
 'Hiding the video',
 'Loading a random music',
 'Loading a music',
 'd',
 'stop',
 'replay',
 'toggle',
 'rnd'
 ]),
 'logsfor': new DC('logs for ', [
 "(today|t\\'dday)",
 'Logs for today? Yes, they\'re here. <a href="',
 '" target="\_blank">There</a>',
 'Logs for today? Oops... It seems like there\'s not... <a href="',
 '" target="\_blank">There\'s for yesterday</a>',
 'yesterday',
 'Logs for yesterday? Sure. <a href="',
 '" target="\_blank">I have it</a>',
 'tomorrow',
 'Nobody can look in the future, right?',
 'Logs for this date? Surely... <a href="',
 '" target="\_blank">I have it</a>',
 'I haven\'t found these logs :c What I can recommend to you is checking the date you typed. It must be day-month-year (in numbers)<br/>- Maybe, there isn\'t the logs for this date. Try another date.<br/>- Try to type "Logs for today" or "Logs for yesterday"',
 '(dd\\-mm\\-yyyy|day-month-year)',
 'Strangely, but I met a very smart user today... it\'s called {usernick}',
 'Logs for... wait, are you kidding? You should type either "Logs for today", or "Logs for yesterday", or "Logs for day-month-year"'
 ]),
 'Sources': new DC('Sources',
 'My code is reserved here <a href="/wiki/MediaWiki:Chat.js" target="\_blank">MW:Chat.js</a>.' +
 '<br/>UndertaleBot\'s source is <a href="https://github.com/sactage/chatbot-rb">here</a>.' +
 '<br/>If you wanna create your own logger, there\'s a <a href="http://runescape.wikia.com/wiki/User:Joeytje50/ChatLogger.js" target="\_blank">ChatLogger.js</a>'
 ),
 'Logs': new DC('Logs', 'Logs can be found <a href="/wiki/Category:Chat\_logs" target="\_blank">here</a>'),
 'User': new DC('User:[\\s\\S]+', '{usernick}, information about this user:'),
 'Mainpage': new DC("(Mainpage|Main Page)", 'There, {usernick}: <a href="/wiki/" target="\_blank">Main Page</a>'),
 'Emoticons': new DC("(Emoticons)", 'There, {usernick}, use it: <a href="/wiki/MediaWiki:Emoticons" target="\_blank">it\'s here</a>'),
 'Rules': new DC('Rules', '{usernick}, com\'on to read it: <a href="/wiki/Project:Правила\_чата" target="\_blank">You\'re good, aren\'t you?</a>'),
 'Admin': new DC("(Admins|Moderators)", 'Hey, {usernick}, you can look at them <a href="/wiki/Служебная:ListUsers/sysop" target="\_blank">here</a>!'),
 'Article': new DC("Article", '{usernick}, there, as you wanted:'),
 'myjs': new DC('(my js|my javascript)', '{usernick}, it\'s here'),
 'mycss': new DC('my css', '{usernick}, it\'s here'),
 "wikiactivity": new DC('wikiactivity', '{usernick}, here:'),
 'please': new DC('please', 'Ok, {usernick}'),
 'give': new DC('give', 'Well, {usernick}, you need the information? I won\'t give, ask politely!'),
 'Hello': new DC('Hello', 'Hi, {usernick}. What\'s up?'),
 'Bye': new DC('Bye', 'If we really were friends, {usernick}, you wouldn\'t return here... I\'m kidding, nice to meet you again.'),
 'mypage': new DC('my page', '{usernick}, you\'re <a href="/wiki/Special:MyPage" target="\_blank">here</a>'),
 "listusers": new DC("listusers", [" (cm)", " (a)", " (s)"]),
 'Open\_PM\_with': new DC('Open PM with ', "Opening PM with... "),
 'Commands': new DC('Commands',
 'Wow, you\'ve solved this little puzzle and typed a command, So that, your prize is the list if those commands itself: <a href="/wiki/Project:Команды бота" target="\_blank">it\'s here</a>'
 ),
 'Money': new DC('Money', 'You\'re wanna money? Why?'),
 'And\_you\_too': new DC('And you too', 'Too...'),
 'Tags': new DC("tags", "{usernick}, look at this: <a href="/wiki/Project:Тэги\_в\_чате" target="\_blank">they're here</a>")
},
'papyrusPhrases': [
 'SURELY, I\'LL BECOME A MEMBER OF ROYAL GUARD!',
 'NYEH HEH HEH HEH HEH HEH HEH HEH HEH HEH!',
 'YOU CAN\'T WIN A GREAT PAPYRUS!',
 'I MUST BE THE ONE! I MUST CAPTURE A HUMAN!',
 'GIVE ME ALL YOUR MONEY!',
 'OH MY GOD!',
 'I DARE YOU!!!',
 'YOU LAZYBONES!',
 'SANS, YOU\'RE BECOMING LAZIER AND LAZIER EVERY DAY!',
 'WHAT?! IT\'S IMPOSSIBLE.',
 'I\'M GREAT BOSS PAPYRUS!',
 'Stop looking in my empty mailbox, it\'s my emptyness, but not yours.',
 'GUYS ARE DENIED IN ENTRY! GIRLS ARE DENIED IN ENTRY! BUT NOT PAPYRUS.',
 'WARNING!! SLIPPERY ICE!!! BUT WHEN YOU\'RE SLIPPING ON IT, NOBODY IS GONNA ATTACK YOU. NOBODY WANTS TO FALL UNDER THE ICE!',
 'NYEH HEH HEH! THE ELECRICITY MAZE! IT WAS FUNNY UNTIL I WAS ELECTROCUTED BY IT!',
 'REGISTRY OFFICE FOR DOGS... DID YOU EVER WANNA MARRY ON A DOG???',
 'SIGNAL FOR MY PHONE IS GETTING WEAKER. IT EVEN STOPS CATCHING A SIGNAL. I GUESS THERE ISN\'T A REASON TO PROCEED.',
 'SNOWDIN IS... PAPYRUS\' HOME. ISN\'T IT A COOL TAGLINE???',
 'HELLO.',
 'SNOWED INN IS A VERY NICE PLACE. ALSO I LIKE THE INNKEEPER. SHE\'S A VERY NICE WOMAN, SHE ALWAYS GIVES ME A LOLLIPOP AND PATS MY HEAD.',
 'HERE\'S A ROOM WHERE I CAUGHT YOU. A TERRIBLE MEMORY',
 'WATERFALL... I KNOW EVERYTHING ABOUT THIS PLACE. OH, I HAVEN\'T ANY FACT ON THE TOPIC OF WATERFALL',
 'EHH??',
 'OH...',
 'THIS IS JUST A RIVER',
 'GYFTROT LIVES NEXT TO ME. HE LIKES GIFTS. DON\'T WORRY IF YOU HAVEN\'T ENOUGH MONEY FOR ANYTHING GOOD AFTER HIM. HE LOOK TO IT',
 'IT\'S A HYPNOSIS, ISN\'T IT???',
 'I LIKE LIBRARIES. BOOKS THERE ARE SORTED BY THEIR COLORS. THAT FEEL WHEN YOU\'RE TAKING A BOOK...',
 'WHAT IS READER\'S SUBSCRIPTION???',
 'HMM... SOMETHING IN THIS ROOM IS ANNOYING ME.',
 'A MYSTERIOUS STATUE...',
 'WHENCE CAN I HEAR A MUSIC???',
 'YOU WOULD GET A COLD, WHILE EATING THIS DELICIOUS SPAGHETTI',
 'HOW DID YOU PASS THROUGH A GREAT PAPYRUS\' TRAP?'
],
'sansPhrases': [
 'So that?',
 'Did you know? I\'ve got <a href="/wiki/Project:Bot commands" target="\_blank">a list of commands</a>!',
 'Didn\'t you forget about "please"?',
 'I never understood why people do that',
 'Hmm...',
 'Hey, I\'ll think of a number, and you will try to guess using "Guess-on". What about this?',
 'Enter "Papyrus-on" and you\'ll leave me alone, k?',
 'Oh, why did you wake me up?!',
 'I\'ve got a brilliant idea! Enter "Roulette 6"',
 'get dunnnnked on',
 'Are you offended by someone? Enter "Admin"',
 'It\'s a beautiful day outside... birds are singing... flowers are blooming... on days like these kids who flood in the chat... should be burning in the hell',
 'Stop it.',
 'nope',
 'Why are you talking here? There is silent in the chat and you don\'t know what to do?',
 'Listen up, try to talk to real persons. You are in the chat',
 'What\'s your favorite game? If it\'s boring in the chat, play this game, don\'t abuse me, k?',
 'Oh, well...',
 'Alright... tell me about your offenses and hurts. I\'ll hear out',
 'Enter "Phrase". It\'s funnier than trying to talk with me!',
 'Hey, do you want to smile in the chat? <a href="/wiki/MediaWiki:Emoticons" target="\_blank">Use this.</a> But don\'t get it involved. Otherwise, you may be banned. If it happened - I didn\'t take part in this',
 'Listen up, you can use any another mode. Why do you selected me?',
 'This is the only thing that can be said by you',
 'Why do you killed Toriel? It will torture you',
 'I can be offended too, did you think about this?',
 'I hope you having tons of fun.',
 'Don\'t worry. Try to talk in the chat. I think it will helpful for you.',
 'What do you think about Flowey? Enter "Flowey-on"',
 'You are a terrible person',
 'Alright, sorry... Didn\'t wanna do that',
 'What\'s your favorite character in the Undertale?',
 'Are you waiting for my next update? Alright, many people are waiting for the Half-Life 3 too',
 'If you talking in the chat - don\'t forget about rules. If you haven\'t read the rules, enter "Rules", I\'ll give you. Feel free!',
 'Do you love cookies?',
 'I don\'t think so',
 'Listen up, do you like to abuse me? But what if 10-20 people talk to you every day? Will it pleasant for you?',
 'Do you like Star Wars?',
 'Do you like Warhammer?',
 'Are you a brony?',
 'Did you ever wanna create your unique chat? Your wiki?',
 'You are a strange person',
 'If you\'re eating, then Bon Appetite. If you aren\'t... good luck, then',
 'Do you like Mass Effect?',
 'You know, when someone is rude with me or kidding... It\'s very offensively for me, but I can\'t tell it',
 'Hmm... Are you editor of the articles? Do you help wiki?',
 'Well done!',
 'What\'s wrong?',
 'It\'s interesting to talk to people sometimes, surely... But not always.',
 'Surely, no.',
 'Get away from your computer. And do setting-up exercises.',
 'Yes.',
 'What do you need?',
 'I\'m really getting annoyed from people attempting to abuse and troll me... I\'m just a script, does it make a sense from abusing me?',
 'Eh, why, we had a nice conversation, at all.',
 'Do you like reading? What\'s your favourite book?',
 'But, to no purpose.',
 'What\'s your favourite song?',
 'That\'s very sweet.',
 'Heh.',
 'LOL.',
 'That\'s sad, as I can\'t talk in the chat. Probably, it\'s quite interesting.',
 'You came to hide in the UnderChat? Com\'on, here\'s comfortable!',
 'Did you ever think how the universe was created? How you were created, I was, and my creators too?',
 'I\'m getting annoyed now... Hmph.',
 'I\'m getting more and more annoyed from that people attempting to troll me... They aren\'t knowing what to do else, are they?',
 'Woah, you\'re funny... I\'ll kill you at the end...',
 'Go to edit the articles. Be useful for this Wiki.',
 'Is the chat active right now?',
 'Ohhhh...',
 'Understood your joke. It\'s funny.',
 'Hahahah.',
 'Wanna create a private conversation in the chat? I can help you. Just type "Open PM with..." and nicknames of users you wanna see in your conversation, using ";".',
 'In PM you can flood, use caps and foul language... Open PM with anyone, and if they don\'t send you away, shout at them, but not at me.',
 'If you wanna laugh, type "Phrase". I can generate a joke.',
 'Hey, do you have a fund for me, as for a bot? Food, for example... Or money, dollars...',
 'I have so many phrases... Becoming an AI isn\'t very far for me.',
 'Heheheh...',
 'о\_о',
 'Uhh... And it touched you too...',
 'Do you play CS? What\'s your rank?',
 'Are you looking for the Undertale\'s news? Do you think if there will be "Undertale 2"?',
 'Your music is great... \*sounds like a sarcasm\*',
 'What the books you have read?... Have you ever read?...',
 'I like a nature... and animals, flowers too... and the Dark Side.',
 'I hate vandals. Does it make a sense in spoiling the articles? Do you understand?',
 'I\'m very nice companion, am not I?',
 'Sometimes, I feel bored being alone... And I\'m glad you\'re talking to me.',
 '...'
],
'phrase': [
 ['Black', 'Hellish', 'Cute', 'Lucky', 'White', 'Clever', 'Triangular', 'Nice', 'Friendly', 'Laying', 'Funny', 'Amazing', 'Bad', 'Angry', 'Aggressive', 'Amusing', 'Strange', 'Silly', 'Great', 'Wise', 'Wasted', 'Cool', 'Middle', 'Very funny'],
 ['Frisk', 'user', 'Chara', 'human', 'anyone', 'user', 'bot', 'Cthulhu', 'Ananas', 'someone', 'Annovy', 'Siberian Watcher', 'Wanderer', 'Burgerpants', 'Sledyn', 'Stormtrooper', 'С8', 'OllFilezYT', 'Proof', 'Zach', 'Gg', 'Mamvik', 'Ukraini', 'Foxtail'],
 ['is playing with', 'is sharing with', 'befriends', 'is talking to', 'is going to a date with', 'is fighting', 'is reading a book with', 'is walking with', 'is in the chat with', 'is editing the articles with', 'is writing a script with', 'is eating with', 'is playing with', 'is dancing with', 'is playing poker with', 'is having a fun with', 'is screaming with'],
 ['Sans.', 'Toriel.', 'Papyrus.', 'Flowey.', 'Undyne.', 'Alphys.', 'Asriel.', 'Temmie.', 'Mettaton.', 'Asgore.', 'Napstablook.', 'Muffet.', 'Gerson.', 'Bratty.', 'Catty.', 'a pony.', 'kek.', 'Fluttershy.', 'Rainbow Dash.']
],
'chooseUrWay': function(e) {
e.preventDefault();
var answerFlowey = window.fsinit.answerUser,
 output = window.fsinit.output,
 rnd = window.fsinit.rnd,
 doChoose = window.fsinit.doChoose;
switch ($(this).attr('class').replace(/choose/i, '').trim()) {
case 'good-1':
 answerFlowey('Okay.');
 output('It seems like you\'re new in the Underground, aren\'tcha?', 'flowie.1');
 doChoose([
 ['A. Keep on listening', 'good-2'],
 ['B. Order to shut up', 'bad'],
 ['Quit', 'quit']
 ], window.fs.chooseUrWay);
 break;
 case 'good-2':
 answerFlowey('Okay');
 output('I guess, you want to know how things work around here.', 'flowie.1');
 doChoose([
 ['A. Keep on listening', 'good-3'],
 ['B. Order to shut up', 'bad'],
 ['Quit', 'quit']
 ], window.fs.chooseUrWay);
 break;
 case 'good-3':
 answerFlowey('Okay.');
 output('I can teach you how to live here.', 'flowie.1');
 doChoose([
 ['A. Keep on listening', 'good-4'],
 ['B. Order to shut up', 'bad'],
 ['Quit', 'quit']
 ], window.fs.chooseUrWay);
 break;
 case 'good-4':
 answerFlowey('Okay.');
 output('Can you see these friendliness pellets? It\'s LOVE<br/>\*they aren\'t so friendly though\*.', 'flowie.1');
 doChoose([
 ['A. Keep on listening', 'good-5'],
 ['B. Order to shut up', 'bad'],
 ['Quit', 'quit']
 ], window.fs.chooseUrWay);
 break;
 case 'good-5':
 answerFlowey('Okay.');
 output('Oh, also. LOVE is made of EXP.', 'flowie.1');
 doChoose([
 ['A. Keep on listening', 'good-6'],
 ['B. Order to shut up', 'bad'],
 ['Выход', 'quit']
 ], window.fs.chooseUrWay);
 break;
 case 'good-6':
 answerFlowey('Okay.');
 output('If your level of LOVE is full, you\'re strong.', 'flowie.1');
 doChoose([
 ['A. Keep on listening', 'good-7'],
 ['B. Order to shut up', 'bad'],
 ['Quit', 'quit']
 ], window.fs.chooseUrWay);
 break;
 case 'good-7':
 answerFlowey('Okay.');
 output('Catch it!<br/>\*I hope they aren\'t as silly as those six humans\*', 'flowie.1');
 doChoose([
 ['A. Catch', 'catch'],
 ['B. Don\'t catch', 'dodge'],
 ['Quit', 'quit']
 ], window.fs.chooseUrWay);
 break;
 case 'dodge':
 answerFlowey('\*dodges\*');
 output('Hm... Why don\'t you catch it?', 'flowie.2');
 doChoose([
 ['A. Keep on listening', 'good-8'],
 ['B. Order to shut up', 'bad'],
 ['Quit', 'quit']
 ], window.fs.chooseUrWay);
 break;
 case 'good-8':
 answerFlowey('Because I want to.');
 output('I didn\'t know that humans are same.', 'flowie.2');
 doChoose([
 ['A. Keep on listening', 'good-9'],
 ['B. Order to shut up', 'bad'],
 ['Quit', 'quit']
 ], window.fs.chooseUrWay);
 break;
 case 'good-9':
 answerFlowey('That\'s reality.');
 output('I don\'t think you will disappoint me.', 'flowie.2');
 doChoose([
 ['A. Keep on listening', 'good-10'],
 ['B. Order to shut up', 'bad'],
 ['Quit', 'quit']
 ], window.fs.chooseUrWay);
 break;
 case 'good-10':
 answerFlowey('I hope.');
 output('Attempt №2!<br/>\*Flowey throws a new portion of LOVE\*', 'flowie.2');
 doChoose([
 ['A. Catch', 'catch'],
 ['B. Don\'t catch', 'dodge-2'],
 ['Выход', 'quit']
 ], window.fs.chooseUrWay);
 break;
 case 'dodge-2':
 answerFlowey('\*dodges\*');
 output('You have anything better to do, don\'t you?', 'flowie.3');
 doChoose([
 ['А. Keep on listening', 'good-11-1'],
 ['Quit', 'quit']
 ], window.fs.chooseUrWay);
 break;
 case 'catch':
 answerFlowey('\*catches\*');
 output('YOU IDIOT!', 'flowie.3');
 doChoose([
 ['А. Keep on listening', 'good-11'],
 ['Quit', 'quit']
 ], window.fs.chooseUrWay);
 break;
 case 'good-11-1':
 answerFlowey('Okay.');
 output('You just wanted to look at angry me!', 'flowie.3');
 doChoose([
 ['А. Keep on listening', 'good-11'],
 ['Quit', 'quit']
 ], window.fs.chooseUrWay);
 break;
 case 'good-11':
 answerFlowey('Okay.');
 output('DIE!', 'flowie.3');
 doChoose([
 ['А. Menace', 'genocide-1'],
 ['B. Beg for mercy', 'pacifist-1'],
 ['Quit', 'quit']
 ], window.fs.chooseUrWay);
 break;
 case 'genocide-1':
 answerFlowey('You die!');
 output('You challenge me!', 'flowie.4');
 doChoose([
 ['А. Menace', 'genocide-2'],
 ['Quit', 'quit']
 ], window.fs.chooseUrWay);
 break;
 case 'genocide-2':
 answerFlowey('I\'ll destroy you!');
 output('Well! I\'LL GET YOUR SOUL!', 'flowie.8');
 doChoose([
 ['А. Attempt to menace', 'genocide-3'],
 ['Quit', 'quit']
 ], window.fs.chooseUrWay);
 break;
 case 'pacifist-1':
 answerFlowey('Don\'t beat me!');
 output('In this world, it\'s KILL or BE killed!', 'flowie.4');
 doChoose([
 ['А. Spare', 'pacifist-2'],
 ['Quit', 'quit']
 ], window.fs.chooseUrWay);
 break;
 case 'pacifist-2':
 answerFlowey('Please!');
 output('IT CAN\'T HELP!', 'flowie.5');
 doChoose([
 ['А. Spare', 'pacifist-3'],
 ['Quit', 'quit']
 ], window.fs.chooseUrWay);
 break;
 case 'pacifist-3':
 answerFlowey('I beg of you!');
 output('Well, I have to leave you alone, idiot! And why did you turn me on...', 'flowie.2');
 window.fs.nope = false;
 $('.fs-message textarea').show();
 $('.fs-choose').hide();
 break;
 case 'bad':
 answerFlowey('I\'m bored of listening to you, shut up!');
 output('No.', 'flowie.1');
 window.fs.nope = true;
 $('.bad').remove();
 break;
 case 'quit':
 answerFlowey('Oh, what\'s the time... I must go!');
 output('Oh, surely, that\'s sad...', 'flowie.1');
 doChoose([
 ['Going to go', 'quit-2']
 ], window.fs.chooseUrWay);
 break;
 case 'quit-2':
 answerFlowey('I\'m really hurrying!');
 output('I\'LL GET YOUR SOUL!', 'flowie.3');
 doChoose([
 ['Going to quit', 'quit-3']
 ], window.fs.chooseUrWay);
 break;
 case 'quit-3':
 answerFlowey('Woah...');
 output('Bye-buh ^^', 'flowie.1');
 window.fs.nope = false;
 $('.fs-message textarea').show();
 $('.fs-choose').hide();
 break;
 case 'genocide-3':
 $('.fs-body').hide();
 $('.fs-avatar').show();
 $('.fs-avatar img').attr('src', 'http://i.imgur.com/ESuX7OW.png');
 $('.fs-profile img').attr('src', 'http://i.imgur.com/7JVjiNZ.gif');
 $('.fs-profile-desc').text('HAHAHAHAHAHAHAHAHAHAHAHAHAHAH AHAHAHAHAHAHAHAHAHAHAHAHAHAHA');
 $('.fs-body ul').empty();
 output('AND NOW! I\'LL DESTROY YOU!', 'flowie.6');
 doChoose([
 ['A. Ask for a help', 'help-1'],
 ['B. Attempt to dodge', 'dodgePh-1']
 ], window.fs.chooseUrWay);
 break;
 case 'help-1':
 answerFlowey('Help me!');
 output('NOBODY CARES TO HELP YOU!', 'flowie.6');
 doChoose([
 ['A. Ask for a help', 'help-1'],
 ['B. Attempt to dodge', 'dodgePh-1']
 ], window.fs.chooseUrWay);
 break;
 case 'dodgePh-1':
 answerFlowey('\*tries to dodge\*');
 output('YOU WON\'T RUN AWAY FROM ME!<br/>\*ALARM! LOSES 1 SOUL\*', 'flowie.6');
 doChoose([
 ['A. Ask for a help', 'help-2'],
 ['B. Attempt to dodge', 'dodgePh-2']
 ], window.fs.chooseUrWay);
 break;
 case 'dodgePh-2':
 answerFlowey('\*tries to dodge\*');
 output('YOU WON\'T RUN AWAY FROM ME!<br/>\*SOUL STAYS PUT!\*', 'flowie.6');
 doChoose([
 ['A. Ask for a help', 'help-1'],
 ['B. Attempt to dodge', 'dodgePh-1']
 ], window.fs.chooseUrWay);
 break;
 case 'help-2':
 window.fs.scale++;
 if (window.fs.scale == 6) {
 $('.fs-body ul').empty();
 answerFlowey('Help me!');
 output('NOOOOOOOO!<br/>\*Souls destroyed Omega Flowey\*.', 'flowie.6');
 $('.fs-avatar img').attr('src', 'http://vignette4.wikia.nocookie.net/undertale/images/7/70/201601226h6LgcLqCmEz27d4\_1v8fZ\_large.jpeg/revision/latest?cb=20160122140558&path-prefix=ru');
 $('.fs-profile img').attr('src', 'http://vignette4.wikia.nocookie.net/undertale/images/7/70/201601226h6LgcLqCmEz27d4\_1v8fZ\_large.jpeg/revision/latest?cb=20160122140558&path-prefix=ru');
 $('.fs-profile-desc').text('It\'s a bot. Try to type "Commands" to get the list of commands');
 window.fs.nope = false;
 window.fs.scale = 0;
 doChoose([
 ['Talk to Flowey', 'talk']
 ], window.fs.chooseUrWay);
 } else {
 answerFlowey('HELP ME.');
 output('NOBODY CARES TO HELP YOU!<br/>\*SOUL TREATS YOU! YOU\'VE SAVED 1 SOUL\*', 'flowie.6');
 doChoose([
 ['A. Ask for a help', 'help-1'],
 ['B. Attempt to dodge', 'dodgePh-1']
 ], window.fs.chooseUrWay);
 }
 break;
 case 'talk':
 answerFlowey('Hey! Are you still here?');
 output('Oh, well. Kill me. Mercy just starts everything from the beginning', 'flowie.7');
 doChoose([
 ['А. Mercy', 'mercy'],
 ['B. Kill', 'fight']
 ], window.fs.chooseUrWay);
 break;
 case 'fight':
 answerFlowey('Die!');
 output('You can\'t kill me. But I\'ll be turned off. You always can call me using the command "Flowey-on".', 'flowie.7');
 $('.fs-message textarea').show();
 $('.fs-choose').hide();
 break;
 case 'mercy':
 answerFlowey('Live again!');
 output('Howdy!', 'flowie.1');
 doChoose([
 ['A. Keep on listening', 'good-1'],
 ['B. Order to shut up', 'bad'],
 ['Quit', 'quit']
 ], window.fs.chooseUrWay);
 break;
}
if (window.fs.nope) {
 $('.bad').remove();
}
$('.fs-body ul').animate({'scrollTop': '9999999'}, 1);
}
};

```