Вообще с таким скрином плохо видно из-за качества, но я так понимаю ты просто не выходишь из if. То есть тебе выпадают документы их 5, код видит что у тебя выпали документы смотрит по условиям и уменьшает на 1 их количество. Затем он смотрит на следующий if и видит, что условие выполняется и снова уменьшает.
Лучше сделай, при выполнении условия количество -= 1.
+ бонус от меня. Я вижу что у тебя выбор предмета из словаря с лутом проходит через функцию randint(0,4), но во-первых она выбирает, только первые 4 предмета из словаря, то есть предмет "ключ" никогда не выпадет, так как он 5. А также не проще будет реализовать весь выбор через функцию choice (функция встроенная в библиотеку random)? Почитай про эту функцию, она работает со строками, это поможет тебе в оптимизации кода.
Если будут вопросы спрашивай)
a = {'a':1, 'b':2, 'c':3}
if a['c'] == 3: #Входит в if
a['c'] = 2 #Заменяет на 2
print(a['c'])
if a['c'] == 2: #Входит в следующий if! А не прекращает работу!
a['c'] = 1 #Заменяет на 1
print(a['c'])
if a['c'] == 1: #Опять входит в if!
a['c'] = 0
print(a['c'])
if a['c'] == 0:
del a['c']
#Сделай один if при выборе и просто вычитать из количества
if random.randint(0, 2) == 2:
a['c'] -= 1
#То есть программа выбирает случайный предмет, а ты просто вычитаешь 1 из их количества