# One Button LFG: Mythic+ для WoW Retail 12.1

Аддон добавляет одну контекстную кнопку `Подать X/5` над штатной кнопкой `Фильтр`. Она автоматически принимает размер штатной кнопки и остаётся в пределах панели поиска.

Кнопка `Подать X/5`:

- использует текущие результаты стандартного поиска, включая введённый текст и вручную выставленные фильтры;
- определяет роль одиночного персонажа по активной специализации, а в группе учитывает назначенные роли всех её участников;
- разрешает автоподачу лидеру обычной группы только в объявления, где весь текущий состав помещается вместе с найденной группой в лимиты 1 танк, 1 лекарь и 3 бойца;
- оценивает каждое совместимое объявление как уже объединённое с текущей группой и выбирает максимальную итоговую оценку по ролям, БЛ, БР и штрафам состава;
- если выдача старше 30 секунд, первым нажатием обновляет её; после завершения поиска нужно нажать кнопку ещё раз;
- если свободный слот и подходящая группа есть, подаёт одну заявку;
- если подать сейчас нельзя, но есть неактуальная заявка, снимает одну такую заявку;
- после освобождения слота следующее нажатие снова пытается подать заявку;
- показывает количество уже активных заявок, например `Подать 3/5`;
- становится неактивной, если список свежий и подавать или снимать нечего;
- не отменяет уже полученные приглашения в группу.

Из-за защиты интерфейса Blizzard каждое физическое нажатие выполняет только одно действие: обновление, подачу или снятие. Когда следующий клик снимет неактуальную заявку, текст кнопки становится красным. Неактуальной считается ожидающая заявка, строка которой помечена красным стандартным интерфейсом, либо заявка с остатком штатного таймера менее 3 минут.

Начиная с версии 0.1.4 занятость роли определяется по фактическому составу группы: 1 танк, 1 лекарь и 3 бойца. Это корректно снимает заявку лекаря, даже если служебное поле `HEALER_REMAINING` продолжает учитывать уже поданную заявку.

Начиная с версии 0.1.5 аддон также использует штатный таймер заявки и предлагает снять её, когда до автоматического отклонения осталось менее 3 минут.

В версии 0.1.6 проверка занятой роли начала читать фактические роли участников так же, как стандартная подсказка Blizzard. В текущем интерфейсе такая заявка лекаря учитывается кнопкой `Снять N`, даже когда сводный счётчик ролей ещё показывает зарезервированное место.

В версии 0.1.7 подача и снятие полностью разделены: `Подать N` отвечает только за новые заявки, а `Снять N` — только за отмену заявок по занятой роли или таймеру.

В версии 0.1.8 исправлён порядок проверки состава. Теперь заполненная роль подтверждается тремя независимыми признаками: штатным счётчиком свободных мест Blizzard, общим числом участников этой роли и точными ролями в списке участников. Любой подтверждённый признак занятой роли имеет приоритет, поэтому неполный список участников больше не может преждевременно объявить место свободным. Подсказка кнопки `Снять N` показывает результат проверки роли.

В версии 0.1.9 проверка состава для снятия заменена на визуальное состояние самой строки. Аддон читает штатный флаг `isNowFilteredOut`, по которому Blizzard окрашивает результат в красный цвет. Наведение или выделение может временно сделать такую строку фиолетовой, но внутренний красный признак сохраняется. Для отмены учитываются только ожидающие заявки с этим признаком; правило таймера менее 3 минут продолжает действовать отдельно.

В версии 0.2.0 кнопки перенесены в строку заголовка `Подземелья` и используют стандартное оформление панельных кнопок WoW. Кнопки доступны только тогда, когда действие действительно возможно. После подачи аддон показывает название объявления, подземелье и состав группы по ролям. После снятия выводятся те же сведения и точная причина отмены: красная строка, истекающий таймер либо оба условия.

В версии 0.2.1 блок кнопок привязан к правой границе панели поиска, а не к ширине текста заголовка. Благодаря этому обе кнопки остаются внутри окна при любом масштабе интерфейса.

В версии 0.2.2 все группы с активными заявками закрепляются вверху списка. Внутри закреплённого блока сохраняется штатный порядок Blizzard, а остальные результаты продолжают сортироваться стандартным способом. Активные заявки, которые перестали соответствовать фильтрам и раньше дописывались в конец списка, также остаются наверху.

В версии 0.2.3 кнопка `Снять N` за одно физическое нажатие синхронно запрашивает отмену всех N подходящих заявок. Для каждой заявки заранее сохраняются название группы, состав и причина; после клика аддон показывает общий итог и компактную строку по каждой группе. Таймеры между вызовами не используются.

В версии 0.2.4 пакетное снятие отменено из-за ограничения клиента: кнопка снова снимает ровно одну заявку за нажатие. Отменённая пользователем группа запоминается на 24 часа по идентификатору группы и больше не выбирается кнопкой `Подать`, но продолжает отображаться в стандартной выдаче. Учитывается как снятие нашей кнопкой, так и штатная отмена заявки.

В версии 0.2.5 исправлена инициализация памяти отменённых групп. Хранилище теперь создаётся при каждом обращении, поэтому пустые или ещё не загруженные SavedVariables не блокируют проверку кандидатов и кнопку `Подать`.

В версии 0.2.6 уведомления о подаче и снятии оформлены отдельной карточкой в стиле WoW. Она показывает название объявления, подземелье, общий состав и отдельную строку каждого доступного участника: роль, класс, специализацию и рейтинг M+. Если клиент защищает часть данных, карточка сохраняет доступные сведения и не прерывает работу аддона. Штатная ручная отмена через крестик теперь перехватывается непосредственно в момент вызова Blizzard: группа остаётся в выдаче, но исключается из автоподачи на 10 минут. То же десятиминутное исключение действует после снятия кнопкой аддона и заменяет прежний срок 24 часа.

В версии 0.2.7 карточка уведомления привязана к нижней границе стандартной панели поиска групп. Текстовые названия ролей заменены штатными иконками WoW, а участник-лидер отмечается короной. Исправлено получение рейтингов: Blizzard предоставляет в поисковой выдаче только общий M+ рейтинг лидера, поэтому для остальных участников аддон безопасно использует публичный профиль установленного Raider.IO; рейтинг лидера имеет дополнительный штатный резерв. Цвет рейтинга соответствует его диапазону.

В версии 0.2.8 карточка перестроена в порядке: название объявления, выбранное подземелье, общий состав с количеством классов, способных дать БЛ, подробный состав с рейтингами и нижняя строка результата. Действие кнопок аддона помечается как автоматическое, штатная подача и отмена — как ручные. После отмены отдельной оранжевой строкой остаётся только сообщение о десятиминутном исключении группы. Исправлены интервалы между общим и подробным составом. Уведомления больше не перезаписывают друг друга: каждое живёт 10 секунд, новое появляется сверху и сдвигает предыдущие вниз.

В версии 0.2.9 рядом со счётчиком БЛ добавлен счётчик БР. Для БР учитываются рыцари смерти, друиды, паладины и чернокнижники. Инженерные предметы не учитываются, поскольку стандартный поиск не сообщает профессии участников.

В версии 0.2.10 текстовые обозначения танка, лекаря и бойцов в строке общего состава заменены штатными иконками ролей. Благодаря более компактной строке счётчики БЛ и БР помещаются в карточке одновременно.

В версии 0.2.11 весь пользовательский текст локализован по языку клиента. Для `ruRU` используются русские кнопки, подсказки, ошибки, карточки и статусы; для любого другого языка — английские. Названия подземелий, классов и специализаций по-прежнему предоставляет сам клиент WoW на своём языке.

В версии 0.2.12 подача, снятие и обновление объединены в одну кнопку `Подать X/5`, расположенную над `Фильтр` и совпадающую с ней по размеру. Приоритет действий: обновить выдачу старше 60 секунд, подать заявку при наличии свободного слота и подходящей группы, иначе снять одну неактуальную заявку. Добавлены карточки для отказа, заполнения группы и удаления объявления из списка.

В версии 0.2.13 тултип кнопки сокращён до четырёх показателей: активные заявки, доступное снятие, возраст списка и следующее действие. Внизу оставлена только сноска об одном защищённом действии за нажатие. Тултип закреплён над кнопкой и раскрывается влево внутрь окна.

В версии 0.2.14 карточки действий привязаны к нижней границе видимого окна профиля Raider.IO и автоматически принимают его ширину. При появлении, скрытии или изменении размера окна Raider.IO положение карточек пересчитывается. Если окно Raider.IO недоступно, сохраняется резервная привязка под стандартной панелью поиска.

В версии 0.2.15 открытый тултип кнопки обновляется раз в секунду без повторного наведения и без скрытия окна. Счётчики активных и снимаемых заявок, возраст списка и следующее действие остаются актуальными, пока курсор находится над кнопкой.

В версии 0.2.16 порог устаревания выдачи сокращён до 30 секунд. Если видимое окно Raider.IO действительно прикреплено к поиску групп, карточки остаются под ним; если Raider.IO скрыт, отсутствует или перенесён отдельно, карточки появляются справа от штатного окна. Неопределённые защищённые данные состава больше не блокируют подачу в результат, который разрешает выбрать стандартный интерфейс WoW: группу исключает только подтверждённо занятая роль.

В версии 0.2.17 карточки стали компактнее по вертикали: после названия объявления и подземелья сразу идут только существующие участники без заголовков столбцов и общей строки состава. Участники сортируются как танк, лекарь, бойцы. В каждой строке показываются иконка роли, иконка класса, корона лидера, текст специализации, рейтинг и при наличии иконки шаманского БЛ и друидского БР. Нижние строки действия и десятиминутного исключения сохранены.

В версии 0.2.18 первое нажатие после каждого нового открытия панели подземелий всегда обновляет список независимо от его возраста. Для карточек выбирается ближайшее к штатному LFG-окну из видимых связанных окон: обычная подсказка результата с данными Raider.IO или отдельное окно профиля Raider.IO. Уже показанные карточки перепривязываются при появлении, скрытии и изменении размера этих окон; если подходящих окон нет, используется положение справа от стандартного интерфейса.

В версии 0.2.19 добавлена подача заявок текущей группой. Аддон учитывает роли всех её участников и выбирает только объявления, где объединённый состав не превышает 5 человек и лимиты 1 танк, 1 лекарь и 3 бойца. Подавать заявку может только лидер группы. Если роль участника не назначена, аддон один раз для неизменившегося состава запускает штатное подтверждение ролей Blizzard. Если состав объявления нельзя надёжно прочитать, оно пропускается, чтобы не зарегистрироваться в несовместимую группу.

В версии 0.2.20 групповые заявки получили дополнительный приоритет по классам. Сначала аддон выбирает совместимые объявления, в которых нет участника того же класса на той же роли, что и у кого-либо в вашей группе. Только после исчерпания таких вариантов рассматриваются совместимые объявления с повтором `класс + роль`. Совпадение класса на другой роли не считается повтором. Если класс участника объявления нельзя прочитать, оно также остаётся для второго прохода.

В версии 0.2.21 добавлено ранжирование по итоговой наполненности и групповым способностям для одиночной и групповой подачи. БЛ дают охотники, маги, шаманы и пробудители; БР — рыцари смерти, друиды, паладины и чернокнижники. Способности текущего состава считаются уже присутствующими. Внутри уровня без повторов `класс + роль` (либо резервного уровня с повторами) сначала определяется наибольший итоговый размер группы, после чего кандидаты идут в порядке: максимальная наполненность с БЛ и БР; максимальная наполненность с БЛ или БР; БЛ и БР; максимальная наполненность; БЛ или БР; остальные совместимые объявления. При одинаковом приоритете сохраняется штатный порядок выдачи Blizzard.

В версии 0.2.22 приоритетные корзины заменены единым рейтингом итоговой композиции. Баллы начисляются только за фактические роли и способности: танк `+34`, лекарь `+26`, каждый боец `+7`, наличие хотя бы одного БЛ `+18`, первый БР `+18`, каждый следующий БР `+9`. Отдельного бонуса за количество участников или полный состав нет. Каждый лишний повтор `класс + роль` даёт `−12`, неизвестный класс — `−6`. Собственная группа включается в расчёт каждого объявления как будто объединение уже произошло. Оценки сбрасываются при изменениях поиска, заявок, ролей или состава и дополнительно пересчитываются не реже одного раза в 5 секунд; непосредственно перед подачей выполняется принудительный свежий пересчёт. При равных баллах сохраняется штатный порядок Blizzard.

В версии 0.2.23 используется новая шкала итоговой композиции: танк `+75`, лекарь `+35`, каждый боец `+5`, первый БЛ `+10` (повторные БЛ не дают баллов), первый БР `+8`, второй БР `+2` (последующие не учитываются). Каждый прист даёт потенциальный PI: первые два PI по `+4`, каждый следующий по `+2`. Повтор `класс + роль` даёт `−7`, неизвестный класс — `−2`. Для каждого объявления сначала создаётся финальная композиция из всех участников объявления и всей подаваемой группы, поэтому её танк, лекарь, бойцы, БЛ, БР, PI и повторы участвуют в общей оценке наравне с найденной группой. Баллы остаются внутренними и в интерфейсе не показываются. В карточках рядом с каждым пристом отображается иконка Power Infusion.

В версии 0.2.24 ширина карточек уведомлений больше не повторяет ширину окна Raider.IO. Каждая карточка занимает ровно половину ширины штатного окна `Подземелья и рейды`, сохраняя прежнюю привязку под ближайшей связанной подсказкой Raider.IO или справа от стандартного интерфейса. При изменении размера штатного окна ширина уже показанных карточек пересчитывается автоматически.

В версии 0.2.25 кнопка принимает левую и правую кнопки мыши. ЛКМ сохраняет обычную последовательность действий: обновление, подача подходящей заявки или снятие одной неактуальной. ПКМ снимает одну самую новую ожидающую заявку; повторные нажатия идут от последней заявки к первой по штатному остатку времени. Полученные приглашения не отменяются. В тултип добавлена одна компактная строка о действии ПКМ, окрашенная серым, когда ожидающих заявок нет. Каждая отмена остаётся отдельным защищённым действием и исключает снятую группу из повторной автоподачи на 10 минут.

В версии 0.3.0 добавлен режим организатора собственного эпохального ключа. В штатном списке кандидатов наверху показываются заявки, которые дают лучший возможный итоговый состав; отдельное окно и автоматические приглашения не создаются. Групповая заявка всегда остаётся неделимым блоком. Уже приглашённые кандидаты заранее занимают свои места, а текущие участники вашей группы учитываются вместе с их назначенными ролями, классами, БЛ, БР и PI. Невозможные сочетания свыше 5 участников или лимитов 1 танк, 1 лекарь и 3 бойца исключаются.

Для каждого ожидающего блока аддон перебирает допустимые сочетания с другими заявками и сортирует его по лучшей финальной группе, в которую этот блок входит. Для обычной очереди до 40 совместимых блоков сочетания считаются полностью; в очень большой очереди партнёрами для перебора становятся 40 сильнейших блоков, при этом каждая заявка всё равно отдельно получает собственную оценку. Состав оценивается по той же скрытой шкале, что и поиск групп: танк `+75`, лекарь `+35`, каждый боец `+5`, один БЛ `+10`, первый БР `+8`, второй БР `+2`, первые два PI по `+4`, последующие PI по `+2`, повтор `класс + роль` `−7`, неизвестный класс `−2`. Отдельного бонуса за полный состав нет.

К этой оценке для каждого кандидата добавляются скрытые показатели качества. Уровень предметов даёт от `0` до `6` относительно большего из требования объявления и экипированного уровня организатора; общий рейтинг M+ — от `0` до `10` по формуле `рейтинг / 300`; опыт именно в выставленном подземелье — от `0` до `15` относительно уровня собственного ключа и качества лучшего прохождения. Лучший ключ на 1 уровень ниже получает мотивационный бонус `+2`, на 2 ниже `+1`, на 1 выше штраф `−1`, а любой результат на 2 и более уровня выше — постоянный штраф `−2`. Отметка ливера даёт два отдельных штрафа по `−10`, всего `−20`.

Для совместной заявки из нескольких игроков дополнительно оценивается связка «сильный + слабый». Если в ней нет ливера и её средняя сила не ниже медианы очереди более чем на 1 балл, разброс силы участников даёт один бонус на весь блок: `+2` при разнице 5–8, `+3` при 9–12 и `+4` при 13 и выше. Это позволяет хорошей сыгранной паре не проигрывать двум отдельным средним кандидатам только из-за неравных рейтинга и уровня предметов.

При равной лучшей комбинации выше ставится блок с большим собственным вкладом, затем с более высоким средним лучшим ключом именно этого подземелья, общим рейтингом M+, уровнем предметов и, наконец, со штатным порядком Blizzard. Баллы нигде не показываются. Пересчёт и пересортировка запускаются при новой или изменившейся заявке, приглашении, принятии или отказе, изменении объявления, состава либо ролей вашей группы; пока окно кандидатов открыто, также выполняется резервный пересчёт раз в 5 секунд. Если клиент временно скрывает необходимые данные, аддон не вмешивается в порядок до их безопасного получения.

В версии 0.3.1 кнопка `Подать X/5` и новые уведомления аддона включены только в категории поиска подземелий. В поиске рейдов и других категориях кнопка полностью скрыта, а подача или отмена через штатный интерфейс не создаёт новых карточек One Button LFG. Уже показанная карточка при смене категории не удаляется принудительно и самостоятельно исчезает по прежнему десятисекундному таймеру.

В версии 0.3.2 пересчёт входящих заявок запускается только один раз в 5 секунд, пока открыто штатное окно кандидатов. События появления или изменения заявки, состава, ролей, лидера и объявления больше не создают дополнительных пересчётов. Штатная сортировка Blizzard между циклами не запускает тяжёлую оценку аддона; следующий пятсекундный цикл снова применяет приоритет One Button LFG.

В версии 0.3.3 штатная сортировка Blizzard больше не меняет видимый порядок между пятсекундными расчётами. После полного расчёта аддон запоминает безопасные публичные идентификаторы заявок и после каждой штатной сортировки лёгким линейным проходом восстанавливает сохранённый порядок без повторной оценки состава. Новые заявки, которых ещё не было в сохранённом порядке, временно добавляются вниз в своём штатном порядке и получают обычную оценку на следующем пятсекундном цикле. При закрытии окна кандидатов кэш очищается.

В версии 0.3.4 оценка входящих заявок стала инкрементальной. Каждые 5 секунд аддон сначала сравнивает короткие сигнатуры очереди и повторно использует уже прочитанные роли, классы, уровень предметов, рейтинг и опыт неизменившихся заявок. Если ничего не изменилось, перебор комбинаций полностью пропускается. Для новых заявок проверяются только сочетания, в которые входит хотя бы одна из них; исчезновение или изменение заявки пересчитывает кандидатов, чья сохранённая лучшая комбинация от неё зависела. При изменении текущего состава, назначенных ролей, выставленного ключа или требований объявления выполняется полный пересчёт.

Полный и инкрементальный перебор больше не выполняется целиком в одном кадре. Работа распределяется между кадрами с бюджетом около `1,5 мс`, а новый цикл не запускается, пока не завершён предыдущий. Каждая допустимая комбинация при полном расчёте рассматривается один раз и сразу обновляет приоритет всех входящих в неё заявок. Штатный список продолжает показывать последний завершённый порядок до готовности нового результата.

В версии 0.3.5 слева от штатной кнопки обновления входящих заявок добавлен компактный счётчик до следующей пятсекундной проверки и пересортировки. Пока распределённый по кадрам расчёт выполняется, счётчик показывает многоточие. Подсказка над счётчиком объясняет, что неизменившиеся заявки используют сохранённую оценку, а изменение текущей группы, назначенных ролей или выставленного ключа запускает полный пересчёт. Текст автоматически отображается на русском клиенте и на английском для остальных языков.

В версии 0.3.6 между последовательными подачами заявок через кнопку One Button LFG выдерживается не менее 2 секунд. Пауза начинается после обращения к штатной функции подачи и учитывает также заявку, отправленную стандартным интерфейсом непосредственно перед использованием кнопки аддона. Обновление списка, автоматическое снятие неактуальной заявки и снятие последней заявки по ПКМ этой паузой не задерживаются. Если подходящая группа уже есть, ЛКМ во время паузы не переключается на снятие: в строке следующего действия показывается оставшееся целое число секунд.

В версии 0.3.7 переработана скрытая оценка входящих заявок. Уровень предметов больше не сравнивается с экипировкой организатора: он даёт от `0` до `30` по сезонной шкале от минимальной награды M+ до максимального ранга `6/6`. Верхняя граница выводится из текущей максимальной недельной награды и оставшихся рангов улучшения; уровень выше `6/6` не даёт дополнительных баллов. Общий рейтинг M+ оценивается без потолка по формуле `рейтинг / 100`. Опыт выставленного подземелья даёт `1/2/4/6/8/10` баллов для лучшего своевременного прохождения соответственно на `3+` уровня ниже, на 2 ниже, на 1 ниже, на том же уровне, на 1 выше и на 2 или более выше. Мотивационная поправка `+2/+1/−1/−2` сохранена.

Штраф повторного сочетания `класс + роль` увеличен с `−7` до `−12`. Отметка ливера теперь масштабируется вместе с выросшей оценкой кандидата: после всех личных показателей его результат уменьшается вдвое и дополнительно получает `−10`. Пороговые различия для бонуса связанной заявки приведены к новой шкале: `+2` при разбросе силы от 15, `+3` от 27 и `+4` от 39; связка должна иметь среднюю силу не ниже медианы очереди более чем на 3 балла. Групповая заявка по-прежнему остаётся неделимой, а приоритет получает лучшая допустимая итоговая комбинация с текущим составом группы.

В версии 0.3.8 устранено завышение связанных заявок из нескольких участников. ИЛ, рейтинг, опыт конкретного подземелья, мотивация и штраф ливера сначала рассчитываются отдельно для каждого участника, после чего формируют одну среднюю личную оценку всей заявки. При сравнении сочетаний нескольких заявок их личные оценки также усредняются, а не складываются. Поэтому размер заявки сам по себе больше не умножает баллы качества и несколько одиночных заявок не получают обратного преимущества перед равноценной связкой. При этом каждый фактический участник по-прежнему отдельно добавляет в финальный состав свою роль, класс, БЛ, БР и PI, занимает реальное место и участвует в штрафе за повтор `класс + роль`. Текущая группа и уже приглашённые игроки остаются базой каждой проверяемой композиции.

В версии 0.3.9 обновлена подсказка счётчика пересортировки. Сверху показываются количество активных ожидающих заявок и суммарное число кандидатов-танков, лекарей и бойцов в уже проанализированной очереди. Ниже отображается время до следующего анализа либо состояние выполняющегося пересчёта. Подсказка прямо указывает, что алгоритм каждые 5 секунд анализирует заявки и пересчитывает рекомендации, а изменение состава текущей группы или назначенных ролей запускает полный пересчёт всей очереди. Счётчики строятся из сохранённых результатов последнего анализа и не создают дополнительного тяжёлого обхода при наведении.

В версии 0.3.10 подсказка счётчика обновляется каждые полсекунды, пока курсор остаётся над ней; повторное наведение больше не требуется. Количество активных заявок сверяется с текущей очередью Blizzard, а сохранённый состав по ролям фильтруется этим же актуальным набором идентификаторов. Поэтому отменённая, отклонённая или исчезнувшая заявка сразу перестаёт учитываться как в общем числе заявок, так и в количестве танков, лекарей и бойцов. Новые роли попадают в счётчики после ближайшего штатного пятсекундного анализа. Заголовок с названием One Button LFG удалён, и первой строкой подсказки теперь является счётчик активных заявок.

В версии 0.3.11 режим оценки входящих заявок ограничен активным объявлением эпохального подземелья. Пятсекундный анализ, применение сохранённого порядка, счётчик времени и его подсказка полностью отключаются и скрываются для рейдов и любых других категорий. При переходе из ключа в другую категорию незавершённая работа и сохранённый порядок очищаются, поэтому аддон не может переставить рейдовые заявки по данным предыдущего подземелья. При возвращении к объявлению ключа режим автоматически включается заново и строит рекомендации с чистого пересчёта.

В версии 0.3.12 удалён перебор сочетаний кандидатов из разных заявок. Теперь каждая ожидающая заявка независимо оценивается как один неделимый вариант `текущий состав группы + все участники этой заявки`; кандидаты из соседних строк больше не могут повышать или понижать её место. Уже приглашённые игроки по-прежнему заранее учитываются в базовом составе. Средние ИЛ, рейтинг, опыт подземелья и штрафы рассчитываются внутри самой заявки, а каждый её участник отдельно добавляет свою роль, класс, БЛ, БР и PI в проверяемый итоговый состав.

Неизменившаяся заявка использует сохранённую оценку. Новая или изменившаяся заявка рассчитывается отдельно при ближайшем пятсекундном анализе, а при изменении текущего состава, назначенных ролей либо набора уже приглашённых игроков все ожидающие заявки переоцениваются относительно новой базы. Бонус связки «сильный + слабый» больше не зависит от медианы всей очереди и определяется только разбросом силы участников внутри одной совместной заявки. Это делает расчёт линейным по числу заявок и исключает перебор комбинаций.

В версии 0.3.13 минимальный интервал между последовательными подачами сокращён с 2 до 1 секунды. Удаление объявления больше не может оставить его идентификатор в десятиминутной памяти отмен: при статусе `declined_delisted` возможная запись явно удаляется. Отказы и заполнение группы также не создают такое исключение; десятиминутная память остаётся только для отмены пользователем или кнопкой аддона.

Скрытая оценка опыта выставленного подземелья изменена: своевременное прохождение на 2 и более уровня ниже даёт `0`, на 1 ниже — `10`, на том же уровне — `20`, на 1 и более выше — `30`. Мотивационные поправки увеличены в десять раз: на 2 уровня ниже `+10`, на 1 ниже `+20`, на 1 выше `−10`, на 2 и более выше `−20`; для остальных различий поправка равна нулю.

Ливер больше не теряет половину всей положительной оценки. Его ИЛ, рейтинг и опыт учитываются полностью, базовый штраф составляет `−20`, а отрицательная мотивационная поправка и вызванный им повтор `класс + роль` применяются дважды. Положительная мотивация не удваивается. Наличие ливера по-прежнему отключает бонус связанной заявки.

В версии 0.3.14 ступенчатый бонус совместной заявки заменён плавной формулой. Для всех уникальных пар участников одной заявки рассчитывается абсолютная разница их силы; сумма различий делится на количество пар, а полученная средняя разница — ещё на 10. Итоговый бонус ограничен значением `+6` и один раз прибавляется к оценке всей неделимой заявки. Благодаря усреднению размер заявки сам по себе не увеличивает бонус, а в заявках из трёх или четырёх игроков учитываются все участники, а не только самый сильный и самый слабый. Одиночная заявка и любая заявка с ливером получают нулевой бонус связки.

В версии 0.3.15 выполнен внутренний рефакторинг без изменения пользовательской логики. Общие операции чтения статусов заявок, построения и копирования состава, нормализации классов, расчёта ступенчатых бонусов, защищённых вызовов подачи и снятия, подготовки подсказок и строк уведомлений вынесены в переиспользуемые функции. Обработчики событий переведены с длинной цепочки условий на таблицу диспетчеризации. Краткоживущий кэш общего контекста кнопки исключает повторное вычисление одного и того же состояния при почти одновременном обновлении кнопки и её подсказки, а карточки активных заявок читают подробности только при первом появлении или фактическом изменении результата. Все интервалы, оценки, фильтры, порядок действий и видимое поведение сохранены.

В версии 0.3.16 служебные функции рефакторинга объединены во внутренний модуль `Core`. Это снижает количество локальных переменных основного Lua-блока с 198 до 173 и устраняет ошибку клиента `main function has more than 200 local variables`, не меняя работу аддона.

В версии 0.4.0 аддон переименован в `One Button LFG: Mythic+`. Дублирующая строка с названием аддона и результатом подачи или снятия больше не появляется по центру экрана: для действий остаются только полноценные карточки. Попытка повторной подачи во время секундной паузы теперь создаёт нейтральную серую карточку, которая располагается и исчезает по тем же десятисекундным правилам. Проведена полная ревизия локализации: все 85 реально используемых интерфейсных строк имеют русскую и английскую версии, а устаревшие строки удалены. Просроченные десятиминутные исключения очищаются при каждой новой отмене, а данные неактивных заявок получили резервную очистку через безопасное десятисекундное окно на случай отсутствующего события клиента.

В версии 0.4.1 секундная пауза между подачами применяется только при регистрации группой; одиночный персонаж может сразу переходить к следующей заявке. Карточка ожидания больше не показывает потенциальную группу и объясняет, что короткая пауза нужна для подтверждения заявки клиентами участников. При занятых `5 / 5` слотах красная системная ошибка заменена нейтральной серой карточкой с предложением дождаться ответа или снять одну из текущих заявок.

Исходники хранятся в `F:\AI_Agent\LFG-AutoPilot-WoW`. В папке аддонов WoW используется только ссылка на эту рабочую папку.
