game/_incl_data/class/Battle/Log.php

679 lines
40 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace Battle;
use Core\Db;
class Log
{
/**
* @param array $data [text,battle,id_hod,vars,type]
* @return void
*/
public static function add(array $data): void
{
if (
empty($data['text']) ||
empty($data['battle']) ||
empty($data['id_hod']) ||
!isset($data['vars']) ||
!isset($data['type'])
) {
return;
}
if (empty($data['type'])) {
$data['type'] = 0;
}
Db::sql(
"insert into battle_logs (time, battle, id_hod, text, vars, type, zona1, zona2, zonb1, zonb2)
values (unix_timestamp(),?,?,?,?,?,'','','','')",
[
$data['battle'],
$data['id_hod'],
$data['text'],
$data['vars'],
$data['type'],
]
);
if (Helper::getChanse(12)) {
self::addComment($data['battle'], $data['id_hod']);
}
}
private static function addComment(int $battleId, int $hodId): void
{
$comments = [
'А танцуешь ты лучше.',
'А мы что, в прятки тут играем?',
'А вы разве пингвинов никогда не видели?',
'А, ведь когда-то, вы были красивыми… А теперь? Ну и рожи! Жуть!',
'А потом еще труп пинать будут.',
'А я вчера ночью за соседями подглядывал. Они точно так же кувыркались',
'А ведь вы живых людей дубасите...',
'А вот я вчера в зоопарке был...',
'А вы в стройбате не служили?',
'А вы видели, чтобы так на улице делали!?',
'А вы знали что ёжики размножаются в интернете?',
'А жить-то, как хочется:',
'А из-за чего вы собственно дерётесь?',
'А чего ржёте, вы ещё остальных не видели',
'А что произойдёт если ты испугаешся до полусмерти дважды?!',
'Больше так не делай. Ты же не садист?',
'Без комментариев...',
'Больно ведь!',
'Быстро ты за монитор спрятался!',
'Все хотят попасть в рай, но никто не хочет умирать!',
'Вчера с такой девчонкой познакомился.',
'Всего 5 минут знакомы, а дерутся, словно супруги с 20-ти летним стажем...',
'Все. Я так больше не могу.',
'В конце концов, кто-то победит?',
'Вы чего, с дерева упали?',
'Возятся как сонные мухи... давайте я вам лучше анекдот расскажу: ...',
'Вот видишь, как полезно чистить зубы на ночь?',
'Вот вы все руками махаете, а за вами уже очередь',
'Вот попадёте вы в плен и вас там будут долго бить. Но вы ничего не расскажете... и не потому, что вы такой стойкий, просто вы ничего не знаете',
'Вы бы лучше пошли потренировались!',
'Вы все еще разминаетесь? Позовите, когда кости в муку друг другу разминать будете.',
'Вы же бойцы! Имейте совесть!',
'Гаси недоумка!',
'Да, если бы я смог это остановить, то получил бы нобелевскую премию `За мир` ',
'Да куда они бьют?!',
'Давайте быстрее! За вами уже очередь образовалась.',
'Давайте обойдемся сегодня таймаутом. А? А то мне уже кошмары скоро будут сниться.',
'Дерутся как девчонки!',
'Дети, посмотрите налево... Ой!.. Нет, туда лучше не смотреть.',
'Если так будет продолжаться, то скоро мы заснем!',
'Если бы у меня было кресло-качалка, я бы в нём качался...',
'Если вы что-то сказать хотите, то лучше молчите :)',
'Жестокость не порок.',
'Жизнь вне нашего клуба - это пустая трата кислорода!!!',
'Жми! Дави! Кусай! Царапай!',
'За такие бои надо в хаос отправлять!',
'Знаете откуда в комиссионном магазине столько вещей? Это я после ваших гулянок собираю и сдаю туда. Иногда вместе с частями тела, застрявшими в них.',
'Здесь люди так близки друг к другу. Просто иначе ударить нельзя.',
'И пролитая кровь еще пульсирует...',
'Инвалидов развелось...',
'Какой бой!!!',
'Кто!? Кто здесь?!',
'Кто вас этому научил?',
'Кузнечик, блин...',
'Куплю импортный проигрыватель грампластинок.',
'Лошадью ходи!',
'Лучше враг, чем друг - враг.',
'Ладно, вы тут пока друг друга за волосы таскайте, а я пойду, пообедаю.',
'Мне ваш балет уже надоел!',
'Может, начнется-таки настоящий бой???',
'Мысли лезут в голову изнутри, а удары снаружи.',
'Ну и где ваши коронные удары? Где живописные падения я спрашиваю!',
'Ну, нельзя же так наотмашь лупить!',
'Надо раньше было думать, теперь смертельно поздно...',
'На такое зрелище билеты продавать можно. Народ ухохочется!',
'Нет! Не надо драки! А... ладно деритесь, все равно не умеете.',
'Нет, ну должен быть повод, должен же быть повод?',
'Нет, я отказываюсь это комментировать!',
'Не таких обламывали!',
'Ну выпили вы рюмку, ну две... ну литр, ну два... так зачем же после этого драку затевать?!',
'Ну и кто за этот погром платить будет?',
'Ну и оскал у вас. Из вашей улыбки кастеты делать можно.',
'Ну, что же ты..? Не печалься. Выше голову, так по ней удобней попасть.',
'Ничего... Блок тоже удар.',
'Обернись!!!.... Поздно...',
'Ого! Научите меня так не делать.',
'Осторожно! Сделаешь дырочку, уже не запломбируешь!',
'Оно вам надо???',
'Обычное дело...там что-то отклеилось.',
'Ой, и заболтался я с вами...',
'Он же не промахнётся если ты не отойдёшь!',
'По-моему, кому-то светит инвалидность.',
'Подкинь ему грабли, на которые он еще не наступал.',
'Прав был кот Леопольд, давайте жить дружно?',
'При ударе в живот нарушается кислотно-щелочной баланс.',
'Проверь, не торчит ли у тебя нож из живота.',
'Перестаньте мне орать!',
'Подкинь ему грабли, на которые он еще не наступал.',
'Прыгают тут как блохи... Все, я пошел за дихлофосом!',
'Разбудите меня когда эта порнография закончится...',
'Ребенок сильнее ударил бы!',
'Славно вмазал!',
'Славно они веселятся',
'Смотрю вот на вас, и слезы наворачиваются.',
'Сначала учатся ходить, а потом только в драку лезут.',
'Так они друг другу что-нибудь сломают.',
'Так ты ему все кости переломаешь!',
'У меня в подъезде точно так же соседа отмудохали',
'Убогих развелось...',
'Ух ты, какой прыткий!',
'Фашист!! Надо ж, так по больному месту врезать...',
'Хватит бить его об угол моей кабинки! Мне же потом ее чинить.',
'Хулиганы, прекратите немедленно!',
'Хочешь, подскажу, куда он ударит?',
'Хорошо, что у меня ловкости больше чем у вас всех, а то б вы и меня в инвалидную коляску посадили бы.',
'Хороший бой!',
'Хороший удар!',
'Хиляк-разрядник!',
'Что ты его за волосы схватил?! Отпусти немедленно!',
'Щас я вас настигну, вот тогда мы и похохочем',
'Это была какая-то неизвестная мне техника...',
'Это же противник, а не глина! Хватит мяться!',
'Это не бой, это издевательское избиение.',
'Это поубавит спеси',
'Это и был твой план `Б` ?',
'Это была какая-то неизвестная мне техника...',
'Я же предупреждал, - будет больно.',
'Я не страдаю безумием. Я наслаждаюсь им каждую минуту :)',
'Я красивый, я сильный, я умный, я добрый. А вот вы? Вы себя-то видели?!',
'Я тоже умею драться, но не буду...',
'(тревожно озираясь) я вам по секрету скажу... за вами наблюдают!',
'<вырезано цензурой> после боя я этих <вырезано цензурой> обоих в <вырезано цензурой> и <вырезано цензурой>',
'<вырезано цензурой> каратисты фиговы',
];
$randomcomment = $comments[array_rand($comments)];
self::add(
[
'battle' => $battleId,
'id_hod' => $hodId,
'text' => "{tm1} <i>Комментатор: $randomcomment</i>",
'vars' => 'time1=' . time(),
'type' => 1,
]
);
}
public static function getAttackTurnText(int $weaponType, int $attackZone): array
{
$w = [
0 => ['грудью', 'ребром руки', 'лбом', 'кулаком', 'ногой', 'левой ногой', 'правой ногой', 'коленом',],
1 => ['ножом', 'тыльной стороной лезвия ножа', 'рукоятью ножа', 'лезвием ножа'],
2 => ['сучковатой палкой', 'поленом', 'тяжелой дубиной', 'дубиной', 'рукоятью молота'],
3 => ['секирой', 'топором', 'лезвием секиры', 'алебардой', 'тяжелым держаком', 'длинной секирой'],
4 => ['ножнами', 'гардой', 'мечом', 'лезвием меча', 'рукоятью меча', 'тупым лезвием', 'острой стороной меча', 'огромным мечом',],
5 => ['сучковатой палкой', 'посохом', 'тяжелой тростью', 'корявым посохом', 'основанием посоха'],
22 => ['костылем'],
100 => ['непонятной хреновиной'],
];
$z = [
1 => ['в нос', 'в глаз', 'в челюсть', 'по переносице', 'в кадык', 'по затылку', 'в правый глаз', 'в левый глаз', 'в скулу',],
2 => ['в грудь', 'в корпус', 'в солнечное сплетение', 'в сердце', 'в область лопаток'],
3 => ['в бок', 'по желудку', 'по левой руке', 'по правой руке'],
4 => ['по <вырезано цензурой>', 'в пах', 'в промежность', 'по левой ягодице', 'по правой ягодице'],
5 => ['по ногам', 'в область правой пятки', 'в область левой пятки', 'по коленной чашечке', 'по икрам'],
100 => ['по непонятному месту'],
];
if (!in_array($weaponType, [0, 1, 2, 3, 4, 5, 22])) {
$weaponType = 100;
}
if (!in_array($attackZone, [1, 2, 3, 4, 5])) {
$attackZone = 100;
}
return [
$w[$weaponType][array_rand($w[$weaponType])],
$z[$attackZone][array_rand($z[$attackZone])],
];
}
public static function addLogLine(int $type, int $gender, bool $count = false): string|int
{
$logtext = [
[ // муж.
[],
[
'вспомнил что-то важное',
'высморкался',
'задумался',
'замешкался',
'засмотрелся на <вырезано цензурой>',
'кашлянул',
'ковырялся в зубах',
'обернулся',
'осмотрелся',
'почесался',
'пошатнулся',
'пришел в себя',
'пытался сконцентрироваться',
'пытался увернуться',
'пытался что-то сказать',
'расплылся в улыбке',
'расстроился',
'растерялся',
'удивился',
'чесал <вырезано цензурой>',
'пытался отойти покурить',
'чесал яйца',
],
[
', и за это ',
', а ',
', но в это время ',
', и тут ',
', но вдруг неожиданно ',
', и вдруг ',
', но ',
', и внезапно ',
', но неожиданно ',
', и в этот момент ',
', и в ту же секунду ',
', и в этот миг ',
],
[
'обезумевший',
'расстроенный',
'неустрашимый',
'продвинутый',
'расстроенный',
'страшный',
'задумчивый',
'небритый',
'бесстрастный',
'разъяренный',
'смелый',
'безумный',
'восхитительный',
'жестокий',
'злобный',
'мужественный',
'непобедимый',
'наглый',
'хитрый',
'храбрый',
'отважный',
'железный',
'могучий',
'сильнейший',
'крепкий',
'великий',
'бесстрашный',
],
[
'случайно ',
'отчаянно ',
'проснувшись ',
'мимоходом ',
'разбежавшись ',
'сдуру ',
'со скуки ',
'не помня себя от испуга ',
'улыбаясь ',
'прослезившись ',
'пошатнувшись ',
'проснувшись ',
'беспричинно ',
'опрометчиво ',
'разбежавшись ',
'зевнув ',
'сделав двойное сальто ',
'не подумав ',
'хихикая ',
'ласково ',
'с испугу ',
],
[
'влепил ',
'вломил ',
'саданул ',
],
[
'грубый',
'наглый',
'красивый',
],
[
'неизвестный удар',
'колющий удар',
'рубящий удар',
'дробящий удар',
'режущий удар',
'обжигающий удар',
'удар электричеством',
'обмораживающий удар',
'удар магией земли',
'удар светлой магией',
'удар тёмной магией',
'удар серой магией',
'обычный удар',
'удар',
],
[
'не контролировал ситуацию',
'обманулся',
'старался провести удар',
'думал о <вырезано цензурой>',
'испугался',
'потерял самоконтроль',
'потерял момент',
'был слишком самоуверен',
'пытался провести удар',
'поскользнулся',
'не думал о бое',
'не рассчитал свои силы',
'промахнулся',
'оступился',
'думал не о том',
],
[
', и потому ',
' и ',
', но ',
', вследствие чего ',
', потому ',
],
[
'остановил',
'поставил блок на',
'блокировал',
'отбил',
],
[
'ушел вправо от удара',
'ушел влево от удара',
'увел удар',
'уклонился от удара',
'увернулся от удара',
],
[
'приняв боевые 100 грамм',
'сказав &quot;БУ!&quot;',
'показав противнику кукиш',
'в отчаянном рывке',
'показав сразу два пальца',
],
[
'о<вырезано цензурой>ный',
'точнейший',
],
[
'погиб!',
'повержен!',
'мертв!',
'убит!',
'проиграл бой!',
],
[
'пропустил свой ход',
'потратил свой ход на магию',
'потратил свой ход на прием',
],
[
'использовал',
],
[
'{u1}, вспомнив слова своего сэнсея, из последних сил применил прием &quot;{pr}&quot;.',
'Кроличья лапка, подкова в перчатке и прием &quot;{pr}&quot; помогли {u1} продержаться ещё немного.',
'{u1}, пораскинув мозгами по земле, сообразил, что его выручат или прием &quot;{pr}&quot; или вмешательство Мусорщика.',
'{u1} выкрикнув: &quot;А ещё я вот так могу!&quot;, применил прием &quot;{pr}&quot;.',
'{u1} понял, пропустив очередной удар в голову, что поможет ему только прием &quot;{pr}&quot;.',
'{u1} сам не поняв зачем, применил прием &quot;{pr}&quot;.',
'{u1} нетрезво оценив положение, решил, что его спасение это прием &quot;{pr}&quot;.',
],
[
'{u1}, вспомнив слова своего сэнсея, из последних сил применил прием &quot;{pr}&quot; на {u2}.',
],
[
'{u1}, победив страх, решил поразить {u2} заклятьем &quot;{pr}&quot;',
'{u1} наконец сфокусировал свое внимание на поединке и наколдовал &quot;{pr}&quot; на {u2}',
'{u1} нарисовав вокруг себя несколько рун, призвал заклятье &quot;{pr}&quot; на {u2}',
'{u1} догадавшись, что пришло время показать себя, произнес заклятье &quot;{pr}&quot; на {u2}',
'{u1} с испугу произнес, первое пришедшее на ум, заклятье &quot;{pr}&quot; на {u2}',
'{u1} впал в транс и начал бормотать заклятие &quot;{pr}&quot; на {u2}',
'{u1} очнулся от медитации, и призвал заклятье &quot;{pr}&quot; на {u2}',
],
[
'{u1} пытался наколдовать ужасающее заклятие &quot;{pr}&quot; на {u2}, но ничего не вышло',
'{u1} не смог сфокусировать и наколдовать &quot;{pr}&quot; на {u2}, но ничего не вышло',
'{u1} с испугу произнес ошибочное заклятие &quot;{pr}&quot; на {u2} и ничего не вышло',
'{u1}, потеряв концентрацию, не смог наколдовать &quot;{pr}&quot; на {u2} и ничего не вышло',
'{u1} <вырезано цензурой> от перенапряжения, вследствие чего не смог наколдовать &quot;{pr}&quot; на {u2}',
'{u1} пытался превратить {u2} в табуретку при помощи заклинания &quot;{pr}&quot;... но ничего не вышло',
],
[
'{u1}, победив страх, решил поразить всех и наколдовал &quot;{pr}&quot;',
'{u1} наконец сфокусировал свое внимание на поединке и наколдовал &quot;{pr}&quot;',
'{u1} нарисовав вокруг себя несколько рун, призвал заклятье &quot;{pr}&quot;',
'{u1} догадавшись, что пришло время показать себя, произнес заклятье &quot;{pr}&quot;',
'{u1} с испугу произнес, первое пришедшее на ум, заклятье &quot;{pr}&quot;',
'{u1} впал в транс и начал бормотать заклятие &quot;{pr}&quot;',
'{u1} очнулся от медитации, и призвал заклятье &quot;{pr}&quot;',
],
],
[ // жен.
[],
[
'вспомнила что-то важное',
'высморкалась',
'задумалась',
'замешкалась',
'засмотрелась на <вырезано цензурой>',
'кашлянула',
'ковырялась в зубах',
'обернулась',
'осмотрелась',
'почесалась',
'пошатнулась',
'пришла в себя',
'пыталась сконцентрироваться',
'пыталась увернуться',
'пыталась что-то сказать',
'расплылалась в улыбке',
'расстроилась',
'растерялась',
'удивилась',
'чесала <вырезано цензурой>',
'пыталась отойти покурить',
'поправляла прическу',
],
[
', и за это ',
', а ',
', но в это время ',
', и тут ',
', но вдруг неожиданно ',
', и вдруг ',
', но ',
', и внезапно ',
', но неожиданно ',
', и в этот момент ',
', и в ту же секунду ',
', и в этот миг ',
],
[
'обезумевшая',
'расстроенная',
'неустрашимая',
'продвинутая',
'расстроенная',
'страшная',
'задумчивая',
'взъерошенная',
'бесстрастная',
'разъяренная',
'смелая',
'безумная',
'восхитительная',
'жестокая',
'злобная',
'мужественная',
'непобедимая',
'наглая',
'хитрая',
'храбрая',
'отважная',
'железная',
'могучая',
'сильнейшая',
'крепкая',
'великая',
'бесстрашная',
],
[
'случайно ',
'отчаянно ',
'проснувшись ',
'мимоходом ',
'разбежавшись ',
'сдуру ',
'со скуки ',
'не помня себя от испуга ',
'улыбаясь ',
'прослезившись ',
'пошатнувшись ',
'проснувшись ',
'беспричинно ',
'опрометчиво ',
'разбежавшись ',
'зевнув ',
'сделав двойное сальто ',
'не подумав ',
'хихикая ',
'ласково ',
'с испугу ',
],
[
'влепила ',
'вломила ',
'саданула ',
],
[
'грубый',
'наглый',
'красивый',
],
[
'тычок',
'тычок',
'рубящий удар',
'разбивающий удар',
'рассекающий удар',
'обжигающий удар',
'удар электричеством',
'обмораживающий удар',
'удар магией земли',
'удар светлой магией',
'удар тёмной магией',
'удар серой магией',
'неизсветный удар',
'удар',
],
[
'не контролировала ситуацию',
'обманулась',
'старалась провести удар',
'думала о <вырезано цензурой>',
'испугалась',
'потеряла самоконтроль',
'потеряла момент',
'была слишком самоуверенна',
'пыталась провести удар',
'поскользнулась',
'не думала о бое',
'не рассчитала свои силы',
'промахнулась',
'оступилась',
'думала не о том',
],
[
', и потому ',
' и ',
', но ',
', вследствие чего ',
', потому ',
],
[
'остановила',
'поставила блок на',
'блокировала',
'отбила',
],
[
'ушла вправо от удара',
'ушла влево от удара',
'увела удар',
'уклонилась от удара',
'увернулась от удара',
],
[
'приняв боевые 100 грамм',
'сказав &quot;БУ!&quot;',
'показав противнику кукиш',
'в отчаянном рывке',
'показав сразу два пальца',
],
[
'о<вырезано цензурой>ный',
'точнейший',
],
[
'погибла!',
'повержена!',
'мертва!',
'убита!',
'проиграла бой!',
],
[
'пропустила свой ход',
'потратила свой ход на магию',
'потратила свой ход на прием',
],
[
'использовала',
],
[
'{u1}, вспомнив слова своего сэнсея, из последних сил применила прием &quot;{pr}&quot;.',
'Кроличья лапка, подкова в перчатке и прием &quot;{pr}&quot; помогли {u1} продержаться ещё немного.',
'{u1}, пораскинув мозгами по земле, сообразила, что её выручат или прием &quot;{pr}&quot; или вмешательство Мусорщика.',
'{u1} выкрикнув: &quot;А ещё я вот так могу!&quot;, применила прием &quot;{pr}&quot;.',
'{u1} поняла, пропустив очередной удар в голову, что поможет ей только прием &quot;{pr}&quot;.',
'{u1} сама не поняв зачем, применила прием &quot;{pr}&quot;.',
'{u1} нетрезво оценив положение, решила, что её спасение это прием &quot;{pr}&quot;.',
],
[
'{u1}, вспомнив слова своего сэнсея, из последних сил применила прием &quot;{pr}&quot; на {u2}.',
],
[
'{u1}, победив страх, решила поразить {u2} заклятьем &quot;{pr}&quot;',
'{u1} наконец сфокусировала свое внимание на поединке и наколдовала &quot;{pr}&quot; на {u2}',
'{u1} нарисовав вокруг себя несколько рун, призвала заклятье &quot;{pr}&quot; на {u2}',
'{u1} догадавшись, что пришло время показать себя, произнесла заклятье &quot;{pr}&quot; на {u2}',
'{u1} с испугу произнесла, первое пришедшее на ум, заклятье &quot;{pr}&quot; на {u2}',
'{u1} впала в транс и начала бормотать заклятие &quot;{pr}&quot; на {u2}',
'{u1} очнулась от медитации, и призвала заклятье &quot;{pr}&quot; на {u2}',
],
[
'{u1} пыталась наколдовать ужасающее заклятие &quot;{pr}&quot; на {u2}, но ничего не вышло',
'{u1} не смогла сфокусировать и наколдовать &quot;{pr}&quot; на {u2}, но ничего не вышло',
'{u1} с испугу произнесла ошибочное заклятие &quot;{pr}&quot; на {u2} и ничего не вышло',
'{u1}, потеряв концентрацию, не смогла наколдовать &quot;{pr}&quot; на {u2} и ничего не вышло',
'{u1} <вырезано цензурой> от перенапряжения, вследствие чего не смогла наколдовать &quot;{pr}&quot; на {u2}',
'{u1} пыталась превратить {u2} в табуретку при помощи заклинания &quot;{pr}&quot;... но ничего не вышло',
],
[
'{u1}, победив страх, решила поразить всех и наколдовала &quot;{pr}&quot;',
'{u1} наконец сфокусировала свое внимание на поединке и наколдовала &quot;{pr}&quot;',
'{u1} нарисовав вокруг себя несколько рун, призвала заклятье &quot;{pr}&quot;',
'{u1} догадавшись, что пришло время показать себя, произнесла заклятье &quot;{pr}&quot;',
'{u1} с испугу произнесла, первое пришедшее на ум, заклятье &quot;{pr}&quot;',
'{u1} впала в транс и начала бормотать заклятие &quot;{pr}&quot;',
'{u1} очнулась от медитации, и призвала заклятье &quot;{pr}&quot;',
],
],
];
if ($count) {
return count($logtext[$gender][$type]);
}
if (!in_array($gender, [0, 1]) || !in_array($type, range(1, 21))) {
return 'произошло нечто непонятное';
}
return $logtext[$gender][$type][array_rand($logtext[$gender][$type])];
}
}