PamGram/modules/gacha/utils.py
2022-10-15 17:13:19 +08:00

27 lines
988 B
Python

import contextlib
from typing import List
def lerp(x: int, x_y_array) -> int:
with contextlib.suppress(KeyError, IndexError):
if x <= x_y_array[0][0]:
return x_y_array[0][1]
elif x >= x_y_array[-1][0]:
return x_y_array[-1][1]
for index, _ in enumerate(x_y_array):
if x == x_y_array[index + 1][0]:
return x_y_array[index + 1][1]
if x < x_y_array[index + 1][0]:
position = x - x_y_array[index][0]
full_dist = x_y_array[index + 1][0] - x_y_array[index][0]
if full_dist == 0:
return position
prev_value = x_y_array[index][1]
full_delta = x_y_array[index + 1][1] - prev_value
return int(prev_value + ((position * full_delta) / full_dist))
return 0
def set_subtract(minuend: List[int], subtrahend: List[int]) -> List[int]:
return [i for i in minuend if i not in subtrahend]