1

Implement !fish !fisher !рыба !рыбка !рыбалка commands

This commit is contained in:
Sergei Fedosov
2021-02-08 14:20:26 +03:00
parent b4a1bf66cf
commit 96b861b507
2 changed files with 153 additions and 15 deletions

View File

@@ -9,6 +9,7 @@ use English qw ( -no_match_vars );
use Carp qw (carp); use Carp qw (carp);
use archeologist qw (dig); use archeologist qw (dig);
use conf qw (loadConf); use conf qw (loadConf);
use fisher qw (fish);
use fortune qw (fortune); use fortune qw (fortune);
use friday qw (friday); use friday qw (friday);
use karma qw (karmaGet); use karma qw (karmaGet);
@@ -177,21 +178,23 @@ sub command {
} elsif (substr ($text, 1) eq 'help' || substr ($text, 1) eq 'помощь') { } elsif (substr ($text, 1) eq 'help' || substr ($text, 1) eq 'помощь') {
$reply = <<"EOL"; $reply = <<"EOL";
${csign}help | ${csign}помощь - это сообщение ${csign}help | ${csign}помощь - это сообщение
${csign}cat | ${csign}кис - кошечка ${csign}cat | ${csign}кис - кошечка
${csign}dig | ${csign}копать - заняться археологией ${csign}dig | ${csign}копать - заняться археологией
${csign}f | ${csign}ф - рандомная фраза из сборника цитат fortune_mod ${csign}fish | ${csign}fisher - порыбачить
${csign}fortune | ${csign}фортунка - рандомная фраза из сборника цитат fortune_mod ${csign}рыба | ${csign}рыбка | ${csign}рыбалка - заняться археологией
${csign}friday | ${csign}пятница - а не пятница ли сегодня? ${csign}f | ${csign}ф - рандомная фраза из сборника цитат fortune_mod
${csign}karma фраза - посмотреть карму фразы ${csign}fortune | ${csign}фортунка - рандомная фраза из сборника цитат fortune_mod
${csign}карма фраза - посмотреть карму фразы ${csign}friday | ${csign}пятница - а не пятница ли сегодня?
фраза++ | фраза-- - повысить или понизить карму фразы ${csign}karma фраза - посмотреть карму фразы
${csign}lat | ${csign}лат - сгенерировать фразу из крылатого латинского выражения ${csign}карма фраза - посмотреть карму фразы
${csign}ping | ${csign}пинг - попинговать бота фраза++ | фраза-- - повысить или понизить карму фразы
${csign}some_brew - выдать соответствующий напиток, бармен может налить rum, ром, vodka, водку, beer, пиво, tequila, текила, whisky, виски, absinthe, абсент ${csign}lat | ${csign}лат - сгенерировать фразу из крылатого латинского выражения
${csign}ver | ${csign}version - написать что-то про версию ПО ${csign}ping | ${csign}пинг - попинговать бота
${csign}версия - написать что-то про версию ПО ${csign}some_brew - выдать соответствующий напиток, бармен может налить rum, ром, vodka, водку, beer, пиво, tequila, текила, whisky, виски, absinthe, абсент
${csign}w город | ${csign}п город - погода в городе ${csign}ver | ${csign}version - написать что-то про версию ПО
${csign}версия - написать что-то про версию ПО
${csign}w город | ${csign}п город - погода в городе
EOL EOL
} elsif (substr ($text, 1) eq 'lat' || substr ($text, 1) eq 'лат') { } elsif (substr ($text, 1) eq 'lat' || substr ($text, 1) eq 'лат') {
@@ -200,6 +203,8 @@ EOL
$reply = kitty (); $reply = kitty ();
} elsif (substr ($text, 1) eq 'dig' || substr ($text, 1) eq 'копать') { } elsif (substr ($text, 1) eq 'dig' || substr ($text, 1) eq 'копать') {
$reply = dig ($chattername); $reply = dig ($chattername);
} elsif (substr ($text, 1) eq 'fish' || substr ($text, 1) eq 'fisher' || substr ($text, 1) eq 'рыба' || substr ($text, 1) eq 'рыбка' || substr ($text, 1) eq 'рыбалка') {
$reply = fish ($chattername);
} elsif ((length ($text) >= 6 && (substr ($text, 1, 6) eq 'karma ' || substr ($text, 1, 6) eq 'карма ')) || substr ($text, 1) eq 'karma' || substr ($text, 1) eq 'карма') { } elsif ((length ($text) >= 6 && (substr ($text, 1, 6) eq 'karma ' || substr ($text, 1, 6) eq 'карма ')) || substr ($text, 1) eq 'karma' || substr ($text, 1) eq 'карма') {
my $mytext = ''; my $mytext = '';

133
lib/fisher.pm Normal file
View File

@@ -0,0 +1,133 @@
package fisher;
use 5.018;
use strict;
use warnings;
use utf8;
use open qw (:std :utf8);
use English qw ( -no_match_vars );
use Math::Random::Secure qw (irand);
use version; our $VERSION = qw (1.0);
use Exporter qw (import);
our @EXPORT_OK = qw (fish);
sub fish {
my $name = shift;
my @artifact = (
'семикрылого чешуйчатого пятихуя',
'разумного конденсатора',
'сальмонеллу',
'селёдку',
'желтоперого тунца',
'розовую сальмонеллу',
'голавля',
'барбуса',
'окуня',
'верхоплавку',
'коричневую форель',
'полярника',
'плотву',
'зубатку',
'солнечную рыбу',
'cтарую шину',
'скользкую корягу',
'лампу джина',
'любовное послание в бутылке',
'старое бревно',
'резиновый сапог',
'труп',
'Лох-Несское чудовище',
'старую рыбацкую приманку',
'кусок Титаника',
'обломок Атлантиды',
'кита',
'кальмара',
'дельфина',
'ската',
'подводную лодку',
'медузу',
'морскую звезду',
'электрического угря',
'большую белую акулу',
'аквалангиста',
'монстра',
'вируса',
'сырую пачку сигарет',
'водоросли',
'якорь от лодки',
'водяного',
'русалку',
'палтуса',
'труп собаки по кличке Беня',
'олигофрена Проню',
'огеймера Фишкина',
);
my @location = (
'в поток',
'в озеро',
'в реку',
'в северерный ледовитый океан',
'в индийский океан',
'в биде',
'в детский плавательный бассейн',
'в туалет',
'в кучу рвоты',
'в лужу мочи',
'в раковину',
'в слив ванной',
'в лужу грязи',
'в ведро воды',
'в бутылку с водкой',
'в ванную',
'в бочку с дождевой водой',
'в аквариум',
'в сугроб',
'в водопад',
'в чашку кофе',
'в стакан молока',
'в черную дыру',
'дно Удомельского реактора',
'на Марс',
'в соседнюю галактуку',
'к соседу на балкон',
'далеко-далеко',
'далеко и надолго',
'на крышу дома',
);
my @material = (
'бамбуковую',
'фиберглассовую',
'карбоновую',
'композитную',
);
my $find_probability = irand 100;
my $success_probability = irand 100;
my $weight = irand 7000;
my $phrase = sprintf "Вы забрасываете %s удочку %s.\nВы чувствуете поклевку и начинаете быстро тащить что-то.\n", $material[irand ($#material + 1)], $location[irand ($#location + 1)];
if ($find_probability <= 20) {
$phrase .= sprintf 'Черт, твоя рыбка сорвалась, %s! Не беда, может потом повезет?', $name;
return $phrase;
}
$phrase .= sprintf "Поздравляю, %s! Вы только что поймали %s! аж на %d кило!\n\n", $name, $artifact[irand ($#artifact + 1)], $weight;
if ($success_probability <= 25) {
$phrase .= sprintf 'Ё-мое!!! А это ведь новый рекорд! Продолжай в том же духе, %s!', $name;
} else {
$phrase .= sprintf 'Извини %s, но это не новый рекорд! Однако, хорошая попытка!', $name;
}
return $phrase;
}
1;
# vim: set ft=perl noet ai ts=4 sw=4 sts=4: