diff --git a/source/view/handlers/message_handler/message_handler.cpp b/source/view/handlers/message_handler/message_handler.cpp index ae199f7..2e2bfdf 100644 --- a/source/view/handlers/message_handler/message_handler.cpp +++ b/source/view/handlers/message_handler/message_handler.cpp @@ -75,6 +75,10 @@ void AMessage_Handler::Bind_Commands() { Handle_Answer(message); }); + TG_Bot.getEvents().onCommand(SMessage_Commands::Help.data(), [this](TgBot::Message::Ptr message) -> void + { + TG_Bot.getApi().sendMessage(message->chat->id, AMessage_Reply::Get_Help_Msg()); + }); } // --------------------------------------------------------------------------------------------------------------------- diff --git a/source/view/texts/emoji/emoji.hpp b/source/view/texts/emoji/emoji.hpp index b29aae9..b8434fe 100644 --- a/source/view/texts/emoji/emoji.hpp +++ b/source/view/texts/emoji/emoji.hpp @@ -25,4 +25,10 @@ #define COLD_FACE "\xF0\x9F\xA5\xB6" #define VIDEO_GAME "\xF0\x9F\x8E\xAE" -#define WAVING_HAND "\xF0\x9F\x91\x8B" \ No newline at end of file +#define WAVING_HAND "\xF0\x9F\x91\x8B" +#define WATERMELON "🍉" +#define MEDAL "🏅" +#define DETAIL "⚙️" +#define STOP_SIGN "🛑" +#define CHECK_MARK_GREEN "✅" +#define FLY_MONEY "💸" \ No newline at end of file diff --git a/source/view/texts/message_commands/message_commands.cpp b/source/view/texts/message_commands/message_commands.cpp index 03ac78b..01a205b 100644 --- a/source/view/texts/message_commands/message_commands.cpp +++ b/source/view/texts/message_commands/message_commands.cpp @@ -27,4 +27,5 @@ constinit std::string_view SMessage_Commands::Start{ "start" }; constinit std::string_view SMessage_Commands::Profile{ "profile" }; constinit std::string_view SMessage_Commands::Programmer_Game{ "pr_game" }; constinit std::string_view SMessage_Commands::Math_Game{ "math_game" }; -constinit std::string_view SMessage_Commands::Answer{ "answer" }; \ No newline at end of file +constinit std::string_view SMessage_Commands::Answer{ "answer" }; +constinit std::string_view SMessage_Commands::Help{ "help" }; \ No newline at end of file diff --git a/source/view/texts/message_commands/message_commands.hpp b/source/view/texts/message_commands/message_commands.hpp index c640050..6cb1eaf 100644 --- a/source/view/texts/message_commands/message_commands.hpp +++ b/source/view/texts/message_commands/message_commands.hpp @@ -32,4 +32,5 @@ struct SMessage_Commands constinit static std::string_view Programmer_Game; constinit static std::string_view Math_Game; constinit static std::string_view Answer; + constinit static std::string_view Help; }; \ No newline at end of file diff --git a/source/view/texts/message_reply/message_reply.cpp b/source/view/texts/message_reply/message_reply.cpp index 4abef23..7be935e 100644 --- a/source/view/texts/message_reply/message_reply.cpp +++ b/source/view/texts/message_reply/message_reply.cpp @@ -26,41 +26,47 @@ // --------------------------------------------------------------------------------------------------------------------- std::string AMessage_Reply::Get_Hello_Msg(std::string_view username) { - return std::format("Привіт, {} {}\nВітаємо тебе в нашому веселому Телеграм-боті!\nТут ти знайдеш безліч розваг, цікавих ігор та неймовірних пригод.\nГотуйся до захоплюючих вражень і незабутніх моментів!\nВеселощі та розваги чекають на тебе, так що насолоджуйся і грай з задоволенням {}!", username.data(), WAVING_HAND, VIDEO_GAME); + return std::format("Привіт, {} {}\nВітаємо тебе в нашому веселому Арбуз-боті{}!\nВіднині ти частина нашої спільноти{}!\nТут ти знайдеш безліч розваг, цікавих ігор та неймовірних пригод.\nГотуйся до захоплюючих вражень і незабутніх моментів!\nВеселощі та розваги чекають на тебе, так що насолоджуйся і грай з задоволенням {}!", username.data(), WAVING_HAND, WATERMELON, MEDAL, VIDEO_GAME); } // --------------------------------------------------------------------------------------------------------------------- std::string AMessage_Reply::Get_Profile_Msg(const AUser& user, std::int64_t score) { - return std::format("Profile info:\nID: {}\nUsername: {}\nName: {}\nScore: {}", user.Get_User_Id(), user.Get_User_Username(), user.Get_User_First_Name(), score); + return std::format("Інформація про профіль арбуза{}\nНомер паспорту: {}\nІм'я у системі: {}\nРеальне ім'я: {}\nКількість насіннячка: {}", WATERMELON, user.Get_User_Id(), user.Get_User_Username(), user.Get_User_First_Name(), score); } // --------------------------------------------------------------------------------------------------------------------- std::string AMessage_Reply::Get_Programmer_Game_Msg(const programmer_game::SExpression& expression) { - return std::format("{}\n{}\n{}\nAnswer: ?", expression.First_Operand, expression.Operation, expression.Second_Operand); + return std::format("Головний Арбуз вигенерував для тебе задачку з бінарним кодом:\n\n1-число:\t{}\n2-число:\t{}\nОперація яку слід примінити: {}\n\nВідповідь напиши за допомогою /answer (тут пробіл) відповідь", expression.First_Operand, expression.Second_Operand, expression.Operation); } // --------------------------------------------------------------------------------------------------------------------- std::string AMessage_Reply::Get_Math_Game_Msg(const math_game::SMath_Expression& expression) { - return std::format("Try to solve: {}", expression.Expression); + return std::format("Головний Арбуз вигенерував для тебе математичну задачку:\n{}\n\nВідповідь напиши за допомогою /answer (тут пробіл) відповідь", expression.Expression); } // --------------------------------------------------------------------------------------------------------------------- std::string AMessage_Reply::Get_Waiting_Time_Msg(std::int64_t time) { - return std::format("Please wait {} min", time); + return std::format("Стій ковбой, зачекай {}хв", time); } // --------------------------------------------------------------------------------------------------------------------- std::string AMessage_Reply::Get_Correct_Answer_Msg(std::int64_t score) { - return std::format("Correct answer: +{}", score); + return std::format("Друже вітаю тебе, ти правильно вирішив цю задачу {}\nУ тебе виросло ще {} насіннячок.", CHECK_MARK_GREEN, score); } // --------------------------------------------------------------------------------------------------------------------- std::string AMessage_Reply::Get_Incorrect_Answer_Msg(std::int64_t score, std::string_view correct_answer) { - return std::format("Incorrect answer: -{}\nCorrect answer: {}", score, correct_answer); + return std::format("Нажаль ти не справився з вирішенням цієї задачи {}\nТому {} насіннячок зсохлося.\nПравильна відповідь це: {}", STOP_SIGN, score, correct_answer); +} + +// --------------------------------------------------------------------------------------------------------------------- +std::string AMessage_Reply::Get_Help_Msg() +{ + return std::format("Привіт Арбуз, це блок з поясненням деяких ігрових механік {}\n\n1) Як відповідати на задачі ?\nВсе дуже просто пишеш команду /answer і через пробіл відповідь, наприклад: /answer 25\n\n2) Як вирішити гру pr_game, погугли про оператори &(AND) |(OR)\n\nЯкщо в тебе виникли проблеми, пиши власнику бота: https://t.me/hellowolrd36", DETAIL); } \ No newline at end of file diff --git a/source/view/texts/message_reply/message_reply.hpp b/source/view/texts/message_reply/message_reply.hpp index b93a39b..fc7fb06 100644 --- a/source/view/texts/message_reply/message_reply.hpp +++ b/source/view/texts/message_reply/message_reply.hpp @@ -46,4 +46,5 @@ class AMessage_Reply static std::string Get_Waiting_Time_Msg(std::int64_t time); static std::string Get_Correct_Answer_Msg(std::int64_t score); static std::string Get_Incorrect_Answer_Msg(std::int64_t score, std::string_view correct_answer); + static std::string Get_Help_Msg(); }; \ No newline at end of file