Избежать проверки в виде 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)

Ответы (0 шт):