Решили: отключение участника гасит голоса ВСЕХ по текущему решению, а не только его собственный. Планка «сколько нужно» при этом по-прежнему опускается — кнопка не подвисает, но нажать её надо заново.
Почему: до этого OnPeerDisconnected убирал голос ушедшего и звал Settle(). Получалось так:
оставшийся нажал и ждёт напарника, напарник отваливается — требуемое число падает ровно до уже
набранного, и решение срабатывает САМО, пока игрок смотрит на «ждём второго». Награда взята, бой
начат, узел выбран — без единого нажатия в этот момент. Отвергли вариант «оставить как было»: он
экономит одно нажатие ценой невозможности отменить сделанный за тебя выбор.
Сказано: «Надо учитывать что игрок в стадии общих выборов то, что игрок может отключиться. В таком случае выборы всех игроков отменяются, чтобы случайно не выбрать, пока ждали чела и он отрубился. Согласна?» (08.08.2026, сессия eab27015).
Грабли: прежнее поведение было не упущением, а осознанным решением — докстринг класса его прямо защищал («уход игрока не подвешивает кнопку»). Обе половины правды уживаются: планку опускаем, голоса гасим. При правке легко снести не ту половину.
Владелец правды: HostSharedDecision.cs, тест
AgreementDecisionTests.LeavingMidVote_DoesNotDecideForThoseWhoStayed.