mirror of
https://github.com/PaiGramTeam/PaiGram.git
synced 2024-11-30 03:15:29 +00:00
79 lines
2.4 KiB
Python
79 lines
2.4 KiB
Python
|
from pydantic import BaseModel
|
||
|
|
||
|
from modules.gacha.error import GachaIllegalArgument
|
||
|
|
||
|
|
||
|
class PlayerGachaBannerInfo(BaseModel):
|
||
|
"""玩家当前抽卡统计信息"""
|
||
|
|
||
|
pity5: int = 0
|
||
|
pity4: int = 0
|
||
|
pity4_pool1: int = 0
|
||
|
pity4_pool2: int = 0
|
||
|
pity5_pool1: int = 0
|
||
|
pity5_pool2: int = 0
|
||
|
wish_item_id: int = 0
|
||
|
failed_chosen_item_pulls: int = 0
|
||
|
failed_featured4_item_pulls: int = 0
|
||
|
failed_featured_item_pulls: int = 0
|
||
|
total_pulls: int = 0
|
||
|
|
||
|
def inc_pity_all(self):
|
||
|
self.pity5 += 1
|
||
|
self.pity4 += 1
|
||
|
self.pity4_pool1 += 1
|
||
|
self.pity4_pool2 += 1
|
||
|
self.pity5_pool1 += 1
|
||
|
self.pity5_pool2 += 1
|
||
|
|
||
|
def get_failed_featured_item_pulls(self, rarity: int) -> int:
|
||
|
if rarity == 4:
|
||
|
return self.failed_featured4_item_pulls
|
||
|
elif rarity == 5:
|
||
|
return self.failed_featured_item_pulls
|
||
|
else:
|
||
|
raise GachaIllegalArgument
|
||
|
|
||
|
def set_failed_featured_item_pulls(self, rarity: int, amount: int):
|
||
|
if rarity == 4:
|
||
|
self.failed_featured4_item_pulls = amount
|
||
|
elif rarity == 5:
|
||
|
self.failed_featured_item_pulls = amount
|
||
|
else:
|
||
|
raise GachaIllegalArgument
|
||
|
|
||
|
def add_failed_featured_item_pulls(self, rarity: int, amount: int):
|
||
|
if rarity == 4:
|
||
|
self.failed_featured4_item_pulls += amount
|
||
|
elif rarity == 5:
|
||
|
self.failed_featured_item_pulls += amount
|
||
|
else:
|
||
|
raise GachaIllegalArgument
|
||
|
|
||
|
def get_pity_pool(self, rarity: int, param: int) -> int:
|
||
|
if rarity == 4:
|
||
|
return self.pity4_pool1 if param == 1 else self.pity4_pool2
|
||
|
elif rarity == 5:
|
||
|
return self.pity5_pool1 if param == 1 else self.pity5_pool2
|
||
|
raise GachaIllegalArgument
|
||
|
|
||
|
def set_pity_pool(self, rarity: int, pool: int, amount: int):
|
||
|
if rarity == 4:
|
||
|
if pool == 1:
|
||
|
self.pity4_pool1 = amount
|
||
|
else:
|
||
|
self.pity4_pool2 = amount
|
||
|
elif rarity == 5:
|
||
|
if pool == 1:
|
||
|
self.pity5_pool1 = amount
|
||
|
else:
|
||
|
self.pity5_pool2 = amount
|
||
|
else:
|
||
|
raise GachaIllegalArgument
|
||
|
|
||
|
def add_failed_chosen_item_pulls(self, amount: int):
|
||
|
self.failed_chosen_item_pulls += amount
|
||
|
|
||
|
def add_total_pulls(self, times: int):
|
||
|
self.total_pulls += times
|