python-genshin-artifact/python_genshin_artifact/_python_genshin_artifact.pyi
luoshuijs 6847ba685a
Refactor genshin artifact core
Co-authored-by: kotoriのねこ <minamiktr@outlook.com>
2023-11-08 00:42:44 +08:00

235 lines
5.5 KiB
Python

import sys
from typing import List, Optional, Tuple, TYPE_CHECKING, Dict, final
if sys.version_info < (3, 11):
from typing_extensions import Literal
else:
from typing import Literal
if TYPE_CHECKING:
StatName = Literal[
"ATKFixed",
"ATKPercentage",
"HealingBonus",
"HPFixed",
"HPPercentage",
"DEFFixed",
"DEFPercentage",
"CriticalRate",
"CriticalDamage",
"ElementalMastery",
"Recharge",
"ElectroBonus",
"PyroBonus",
"HydroBonus",
"CryoBonus",
"AnemoBonus",
"GeoBonus",
"DendroBonus",
"PhysicalBonus",
]
else:
StatName = str
def get_damage_analysis(calculator_config: "CalculatorConfig") -> "DamageAnalysis": ...
def get_transformative_damage(calculator_config: "CalculatorConfig") -> "TransformativeDamage": ...
def gen_character_meta_as_json() -> str: ...
def gen_weapon_meta_as_json() -> str: ...
def gen_artifact_meta_as_json() -> str: ...
def gen_generate_locale_as_json(loc: str) -> str: ...
@final
class TransformativeDamage:
swirl_cryo: float
swirl_hydro: float
swirl_pyro: float
swirl_electro: float
overload: float
electro_charged: float
shatter: float
super_conduct: float
bloom: float
hyper_bloom: float
burgeon: float
burning: float
crystallize: float
def __new__(
cls,
swirl_cryo: float,
swirl_hydro: float,
swirl_pyro: float,
swirl_electro: float,
overload: float,
electro_charged: float,
shatter: float,
super_conduct: float,
bloom: float,
hyper_bloom: float,
burgeon: float,
burning: float,
crystallize: float,
) -> "TransformativeDamage": ...
@final
class DamageResult:
critical: float
non_critical: float
expectation: float
is_heal: bool
is_shield: bool
def __new__(
cls, critical: float, non_critical: float, expectation: float, is_heal: bool, is_shield: bool
) -> "DamageResult": ...
@final
class DamageAnalysis:
atk: Dict[str, float]
atk_ratio: Dict[str, float]
hp: Dict[str, float]
hp_ratio: Dict[str, float]
defense: Dict[str, float]
def_ratio: Dict[str, float]
em: Dict[str, float]
em_ratio: Dict[str, float]
extra_damage: Dict[str, float]
bonus: Dict[str, float]
critical: Dict[str, float]
critical_damage: Dict[str, float]
melt_enhance: Dict[str, float]
vaporize_enhance: Dict[str, float]
healing_bonus: Dict[str, float]
shield_strength: Dict[str, float]
spread_compose: Dict[str, float]
aggravate_compose: Dict[str, float]
def_minus: Dict[str, float]
def_penetration: Dict[str, float]
res_minus: Dict[str, float]
element: str
is_heal: bool
is_shield: bool
normal: DamageResult
melt: Optional[DamageResult]
vaporize: Optional[DamageResult]
spread: Optional[DamageResult]
aggravate: Optional[DamageResult]
@final
class CharacterInterface:
name: str
level: int
ascend: bool
constellation: int
skill1: int
skill2: int
skill3: int
params: Optional[dict] = None
def __new__(
cls,
name: str,
level: int,
ascend: bool,
constellation: int,
skill1: int,
skill2: int,
skill3: int,
params: Optional[dict] = None,
) -> "CharacterInterface": ...
@final
class WeaponInterface:
name: str
level: int
ascend: bool
refine: int
params: Optional[dict] = None
def __new__(
cls, name: str, level: int, ascend: bool, refine: int, params: Optional[dict] = None
) -> "WeaponInterface": ...
@final
class BuffInterface:
name: str
config: Optional[dict] = None
def __new__(cls, name: str, config: Optional[dict] = None) -> "BuffInterface": ...
@final
class Artifact:
set_name: str
slot: str
level: int
star: int
sub_stats: List[Tuple[StatName, float]]
main_stat: Tuple[StatName, float]
id: int
def __new__(
cls,
set_name: str,
slot: str,
level: int,
star: int,
sub_stats: List[Tuple[StatName, float]],
main_stat: Tuple[StatName, float],
id: int,
) -> "Artifact": ...
@final
class SkillInterface:
index: int
config: Optional[dict] = None
def __new__(cls, index: int, config: Optional[dict] = None) -> "SkillInterface": ...
@final
class EnemyInterface:
level: int
electro_res: float
pyro_res: float
hydro_res: float
cryo_res: float
geo_res: float
anemo_res: float
dendro_res: float
physical_res: float
def __new__(
cls,
level: int,
electro_res: float,
pyro_res: float,
hydro_res: float,
cryo_res: float,
geo_res: float,
anemo_res: float,
dendro_res: float,
physical_res: float,
) -> "EnemyInterface": ...
@final
class CalculatorConfig:
character: CharacterInterface
weapon: WeaponInterface
buffs: List[BuffInterface] = []
artifacts: List[Artifact] = []
artifact_config: Optional[dict] = None
skill: SkillInterface
enemy: Optional[EnemyInterface] = None
def __new__(
cls,
character: CharacterInterface,
weapon: WeaponInterface,
skill: SkillInterface,
buffs: Optional[List[BuffInterface]] = None,
artifacts: Optional[List[Artifact]] = None,
artifact_config: Optional[dict] = None,
enemy: Optional[EnemyInterface] = None,
) -> "CalculatorConfig": ...