Source code for pyKirara.card

from .idol import Idol
from .skills import Skill, LeadSkill
from .enums import enum, attributes
from .errors import CategoryNotFound

[docs]class Card: """ Represents a Card and its data Attributes ---------- card_id : int The card's card id album_id : int The card's album id type : str The card's type (Cool, Cute, Passion, Office) image : str The card's image API link has_spread : bool True if the card has a spread image, otherwise false icon : str The card's icon link chara_id : int The card's character id chara : Idol An Idol object using the card's idol data evo_id : int The card's evolution id of transformed card evo_type : int The card's evolution rarity type (From R to SSR) grow_type : int An integer that represents a boolean value, checks if card can grow or not name : str The card's name title : str The card's untranslated title open_dress_id : int The card's model id place : int The card's place value pose : int The card's sprite number series_id : int The evolution chain id of the card skill : Skill The card's skill info in a Skill object lead_skill : LeadSkill The card's lead skill info in a Lead Skill object rarity : Rarity Represents the card's rarity data in a Rarity object min_vocal : int The card's minimum vocal value max_vocal : int The card's maximum vocal value bonus_vocal : int The card's bonus vocal value min_dance : int The card's minimum dance value max_dance : int The card's maximum dance value bonus_dance : int The card's bonus dance value min_visual : int The card's minimum visual value max_visual : int The card's maximum visual value bonus_visual : int The card's bonus visual value min_hp : int The card's minimum health value max_hp : int The card's maximum health value bonus_hp : int The card's bonus health value """ def __init__(self, card_data: dict): self.card_id = card_data['id'] self.album_id = card_data['album_id'] self.type = card_data['attribute'] self.image = card_data['card_image_ref'] self.has_spread = card_data['has_spread'] self.icon = card_data['icon_image_ref'] self.sprite = card_data['sprite_image_ref'] self.spread = card_data['spread_image_ref'] self.sign = card_data['sign_image_ref'] self.chara_id = card_data['chara_id'] self.chara = Idol(card_data['chara']) self.evo_id = card_data['evolution_id'] self.evo_type = card_data['evolution_type'] self.grow_type = card_data['grow_type'] self.name = card_data['name'] self.title = card_data['title'] self.open_dress_id = card_data['open_dress_id'] self.place = card_data['place'] self.pose = card_data['pose'] self.series_id = card_data['series_id'] if card_data['lead_skill'] is not None: self.lead_skill = LeadSkill(card_data['lead_skill']) else: self.lead_skill = None if card_data['skill'] is not None: self.skill = Skill(card_data['skill']) else: self.skill = None self.rarity = Rarity(card_data['rarity']) self.min_vocal = card_data['vocal_min'] self.max_vocal = card_data['vocal_max'] self.bonus_dance = card_data['bonus_dance'] self.min_dance = card_data['dance_min'] self.max_dance = card_data['dance_max'] self.bonus_dance = card_data['bonus_dance'] self.min_visual = card_data['visual_min'] self.max_visual = card_data['visual_max'] self.bonus_visual = card_data['bonus_visual'] self.min_hp = card_data['hp_min'] self.max_hp = card_data['hp_max'] self.bonus_hp = card_data['bonus_hp']
[docs] def min_max_stats(self, stat: str, level: int): """Calculates the value of a stat in a specific level Returns ------- int Value of stat in specified level """ if stat == 'dance': dance_formula = self.min_dance + (self.max_dance - self.min_dance) * (level/self.rarity.base_max_level) return round(dance_formula) elif stat == 'visual': visual_formula = self.min_visual + (self.max_visual - self.min_visual) * (level/self.rarity.base_max_level) return round(visual_formula) elif stat == 'vocal': vocal_formula = self.min_vocal + (self.max_vocal - self.min_vocal) * (level/self.rarity.base_max_level) return round(vocal_formula)
[docs]class Rarity: """Represent a Card's rarity data Attributes ---------- rarity : int An int representing how rare the card is base_max_level : int A number that is the level cap of the card add_max_level : int A number that is how many levels the card can possibly have max_love : int The max amount of love that can be obtained base_give_money : int The amount of money the card gives if the card is retired base_give_exp : int The amount of exp the card give if they are used as exp fodder add_param : int ??? max_star_rank : int The cap that the card can get by increasing star rank """ def __init__(self, rarity_data: dict): self.rarity = rarity_data['rarity'] self.base_max_level = rarity_data['base_max_level'] self.add_max_level = rarity_data['add_max_level'] self.max_love = rarity_data['max_love'] self.base_give_money = rarity_data['base_give_money'] self.base_give_exp = rarity_data['base_give_exp'] self.add_param = rarity_data['add_param'] self.max_star_rank = rarity_data['max_star_rank']