Избежать проверки в виде if a > 100: a = 100
Можно ли как-то избежать проверки во многих случаях аля if a > 100: a = 100, как видно в коде ниже я думаю неправильно реализовал, возможно ли сделать как-то красивее или только так?
async def pet_stat_refresh(u):
#Получаем сколько часов прошло с прошлой проверки
hours_passed = (time.time() - u.pet_last_check) // 3600
if hours_passed > 0:
food_need = 5 * hours_passed
water_need = 6 * hours_passed
#Чекаем нужно ли восполнить хп
need_hp = 100 - u.pet_stats[0]
#Чекаем нужно ли восполнить сытость
hunger_regen = 100 - u.pet_stats[2]
#Чекаем нужно ли восполнить жажду
thirst_regen = 100 - u.pet_stats[3]
#Если не хватает еды
if u.pet_stats[4] < food_need:
#Снимаем сытость
if u.pet_stats[2] != 0:
need_minus = 5 * hours_passed
if u.pet_stats[2] < need_minus:
u.pet_stats[2] = 0
else:
u.pet_stats[2] -= need_minus
#Если уровень сытости достиг 0
if u.pet_stats[2] == 0:
#Снимаем хп
u.pet_stats[0] -= 10 * hours_passed - u.pet_stats[4]
#Если еда осталась все же отбираем, баффая хп ↑
if u.pet_stats[4] != 0:
u.pet_stats[4] = 0
else:
u.pet_stats[4] -= food_need
#Если хп меньше 100 регеним ее
if need_hp > 0:
u.pet_stats[0] += need_hp if need_hp <= 5 else 5 * hours_passed
if u.pet_stats[0] > 100:
u.pet_stats[0] = 100
#Пополняем голод
if hunger_regen > 0:
u.pet_stats[2] += hunger_regen if hunger_regen <= 5 else 5 * hours_passed
if u.pet_stats[2] > 100:
u.pet_stats[2] = 100
#Если не хватает воды
if u.pet_stats[5] < water_need:
#Снимаем жажду
if u.pet_stats[3] != 0:
need_minus = 5 * hours_passed
if u.pet_stats[3] < need_minus:
u.pet_stats[3] = 0
else:
u.pet_stats[3] -= need_minus
#Если уровень жажды достиг 0
if u.pet_stats[3] == 0:
#Снимаем хп
u.pet_stats[0] -= 10 * hours_passed - u.pet_stats[5]
#Если вода осталась все же отбираем, баффая хп ↑
if u.pet_stats[5] != 0:
u.pet_stats[5] = 0
else:
u.pet_stats[5] -= water_need
#Если хп меньше 100 регеним ее
if need_hp > 0:
u.pet_stats[0] += need_hp if need_hp <= 2 else 2 * hours_passed
if u.pet_stats[0] > 100:
u.pet_stats[0] = 100
#Восполняем жажду
if thirst_regen > 0:
u.pet_stats[3] += thirst_regen if thirst_regen <= 4 else 4 * hours_passed
if u.pet_stats[3] > 100:
u.pet_stats[3] = 100
#Если хп питомца <= 0 возвращаем смерть.
if u.pet_stats[0] <= 0:
text = (f"⚰ » К сожалению, ваш питомец \"{u.pet.name}\" погиб от голода или жажды. Впредь лучше следите за показателями вашего питомца.")
u.pet = None
await db.update(u)
return text
#Отнимаем настроение
u.pet_stats[1] -= 10 * hours_passed
u.pet_last_check = time.time()
await db.update(u)