StarRailCopilot/tasks/character/keywords/classes.py

28 lines
770 B
Python
Raw Normal View History

from dataclasses import dataclass
from typing import ClassVar
2023-11-10 13:36:53 +00:00
from module.base.decorator import cached_property
from module.ocr.keyword import Keyword
2023-11-10 13:36:53 +00:00
@dataclass(repr=False)
class CharacterList(Keyword):
2023-11-10 13:36:53 +00:00
instances: ClassVar = {}
def __hash__(self) -> int:
return super().__hash__()
2023-11-10 13:36:53 +00:00
@cached_property
def is_trailblazer(self) -> bool:
return 'Trailblazer' in self.name
2023-11-10 15:35:53 +00:00
@cached_property
def height(self) -> str:
"""
Returns:
str: Character height, from list ['Kid', 'Girl', 'Boy', 'Maid', 'Miss', 'Lady', 'Lad', 'Male']
or 'Unknown' if no data
"""
from tasks.character.keywords.height import CHARACTER_HEIGHT
return CHARACTER_HEIGHT.get(self.name, 'Unknown')