Add commands !fish !fishing !рыба !рыбалка !рыбка, tweak archeologist.pm
* Rearrange .gitignore + Add fisher.pm with fishing commands * Max probability in archeologist.pm should not exceed 100%
This commit is contained in:
4
.gitignore
vendored
4
.gitignore
vendored
@@ -1,3 +1,4 @@
|
|||||||
|
_Deparsed_XSubs.pm
|
||||||
.idea/**
|
.idea/**
|
||||||
.vscode/**
|
.vscode/**
|
||||||
aleesa-telegram-bot.pid
|
aleesa-telegram-bot.pid
|
||||||
@@ -8,5 +9,4 @@ data/friday/**
|
|||||||
data/karma/**
|
data/karma/**
|
||||||
data/telegrambot-brains/**
|
data/telegrambot-brains/**
|
||||||
data/lat/**
|
data/lat/**
|
||||||
vendor_perl
|
vendor_perl/**
|
||||||
_Deparsed_XSubs.pm
|
|
||||||
|
|||||||
@@ -100,9 +100,9 @@ sub dig {
|
|||||||
'на просторах Украины',
|
'на просторах Украины',
|
||||||
);
|
);
|
||||||
|
|
||||||
my $find_probability = irand 101;
|
my $find_probability = irand 100;
|
||||||
my $success_probability = irand 101;
|
my $success_probability = irand 100;
|
||||||
my $artifact_age = irand 15001;
|
my $artifact_age = irand 15000;
|
||||||
|
|
||||||
if ($find_probability <= 20) {
|
if ($find_probability <= 20) {
|
||||||
return sprintf 'По уши закопавшись %s, %s, нифига вы не выкопали! Может повезет в другом месте?', $location[irand ($#location + 1)], $name;
|
return sprintf 'По уши закопавшись %s, %s, нифига вы не выкопали! Может повезет в другом месте?', $location[irand ($#location + 1)], $name;
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ use Math::Random::Secure qw (irand);
|
|||||||
|
|
||||||
use conf qw (loadConf);
|
use conf qw (loadConf);
|
||||||
use archeologist qw (dig);
|
use archeologist qw (dig);
|
||||||
|
use fisher qw (fish);
|
||||||
use fortune qw (fortune fortune_toggle fortune_status);
|
use fortune qw (fortune fortune_toggle fortune_status);
|
||||||
use friday qw (friday);
|
use friday qw (friday);
|
||||||
use karma qw (karmaSet karmaGet);
|
use karma qw (karmaSet karmaGet);
|
||||||
@@ -102,12 +103,20 @@ sub command {
|
|||||||
sleep (int ( rand (2) + 1));
|
sleep (int ( rand (2) + 1));
|
||||||
$msg->replyMd ($reply);
|
$msg->replyMd ($reply);
|
||||||
return;
|
return;
|
||||||
|
} elsif (substr ($text, 1) eq 'fish' || substr ($text, 1) eq 'fishing' || substr ($text, 1) eq 'рыба' || substr ($text, 1) eq 'рыбка' || substr ($text, 1) eq 'рыбалка' ) {
|
||||||
|
$reply = fish ($highlight);
|
||||||
|
$msg->typing ();
|
||||||
|
sleep (int ( rand (2) + 1));
|
||||||
|
$msg->replyMd ($reply);
|
||||||
|
return;
|
||||||
} elsif (substr ($text, 1) eq 'help' || substr ($text, 1) eq 'помощь') {
|
} elsif (substr ($text, 1) eq 'help' || substr ($text, 1) eq 'помощь') {
|
||||||
$reply = << "MYHELP";
|
$reply = << "MYHELP";
|
||||||
```
|
```
|
||||||
${csign}help | ${csign}помощь - список команд
|
${csign}help | ${csign}помощь - список команд
|
||||||
${csign}cat | ${csign}кис - кошечка
|
${csign}cat | ${csign}кис - кошечка
|
||||||
${csign}dig | ${csign}копать - заняться археологией
|
${csign}dig | ${csign}копать - заняться археологией
|
||||||
|
${csign}fish | ${csign}рыба | ${csign}рыбка - порыбачить
|
||||||
|
${csign}fishing | ${csign}рыбалка - порыбачить
|
||||||
${csign}f | ${csign}ф - рандомная фраза из сборника цитат fortune_mod
|
${csign}f | ${csign}ф - рандомная фраза из сборника цитат fortune_mod
|
||||||
${csign}fortune | ${csign}фортунка - рандомная фраза из сборника цитат fortune_mod
|
${csign}fortune | ${csign}фортунка - рандомная фраза из сборника цитат fortune_mod
|
||||||
${csign}f # | ${csign}ф # - где 1 - вкл, 0 - выкл фортунку с утра
|
${csign}f # | ${csign}ф # - где 1 - вкл, 0 - выкл фортунку с утра
|
||||||
|
|||||||
133
lib/fisher.pm
Normal file
133
lib/fisher.pm
Normal 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:
|
||||||
Reference in New Issue
Block a user