А вот это странно. Могу только предположить, что abundance может быть не просто вероятностью выпадения конкретной шмотки, а относительной вероятностью среди прочих в инвентаре трупа. То есть тестировать изменение этого параметра нужно, когда в инвентаре есть и другие шмотки того же типа.
Эту гипотезу я бы тоже отклонил.

Предположу, что abundance - это все-таки исключительно торговая штука, не связанная с лутом.
И кстати, все-таки тип вещи, скорее всего, влияет на порядок ее лутинга.
Еще раз помучал rogue knights.
Соло против 300 штук. 5 раз.
В луте есть все 4 их брони, все 3 их лошади, а также лансы, моргнингстары, стрелы и бастардные мечи.
Но вообще нет золота, сундуков, шлемов, перчаток, сапогов, щитов, луков. Хотя шлемы, перчатки и сапоги однозначно на всех экипированы.
При этом среди избранных вещей (а равно как и среди не попавших в лут):
1) Нет ничего общего при признаку цены - от дорогих броней до дешевых стрел.
2) Нет ничего общего по abundance - от 10 до 100.
3) Нет ничего общего по порядку расположения предметов в файле предметов - есть и из конца, есть и из начала.
4) Нет ничего общего по порядку расположения предметов в инвентаре солдата - есть и из конца, есть и из начала.
Таким образом, напрашивается вывод, что предметы лутятся не в рандомном порядке (а также не по abundance, не по цене и т.п.), а по их типу. Можно предположить, что скрипт построен по try => else_try => else_try => else_try, причем в данном порядке перебираются типы предметов. Если шанс низок, то вероятность выпадения любого из них примерно одинакова (типа 0,05 => провал => 0,1 => провал => 0,03 => о, сработало, переходим к следующему бойцу), однако если шанс высок, то выпадают, как правило, лишь первые предметы, останавливая выполнение условного оператора и делая вероятность выпадения остальных ничтожно малой.
Однако это не объясняет двух вещей:
1) Почему у меня в ходе одного из прошлых тестов выпал 81 предмет с 80 блэкхартов (впрочем, возможно, я просто ошибся на 1 шт., когда их считал).
2) Почему в лут не закрадываются даже в ничтожно малых количествах предметы из "Камчатки".
Скорее всего, все таки лутятся все предметы рандомно, но потом отбираются.
Типа если_число_предметов_больше_Х => try => тип_равен_броне => try_for_range_от_0_до_числа_броней_в_луте => новое_число_предметов_+1 => если_новое_число_предметов_меньше_Х => продолжаем_цикл => иначе_завершаем_цикл_заканчиваем_лутинг_удаляем_остальные_предметы_и_возвращаемся_из_движка_к_дальнейшим_действиям_прописанным_в_скриптах.