from typing import Annotated, Literal

from annotated_types import Ge, Le

CharacterGender = Literal["남", "여"]
ItemGender = CharacterGender | None
AndroidGender = CharacterGender | None

ItemOptionValue = Annotated[int, Ge(-100)]  # 혼돈의 주문서로 음수 가능
ItemSlotName = Literal[
    "귀고리",
    "기계 심장",
    "눈장식",
    "망토",
    "모자",
    "무기",
    "반지1",
    "반지2",
    "반지3",
    "반지4",
    "뱃지",
    "벨트",
    "보조무기",
    "상의",
    "신발",
    "어깨장식",
    "얼굴장식",
    "엠블렘",
    "장갑",
    "펜던트",
    "펜던트2",
    "포켓 아이템",
    "하의",
    "훈장",
]
LabelName = Literal["스페셜라벨", "레드라벨", "블랙라벨", "마스터라벨"] | None
PetSkill = Literal[
    "버프 스킬 자동 사용",
    "아이템 줍기",
    "이동반경 확대",
    "자동 줍기",
    "펫 자이언트 스킬",
    "펫 훈련 스킬",
    "HP 물약충전",
    "MP 물약충전",
]
LinkSkillLevel = Annotated[int, Ge(1), Le(10)]

CharacterClass = Literal[
    # 모험가
    "초보자",
    "히어로",
    "팔라딘",
    "다크나이트",
    "아크메이지(불,독)",
    "아크메이지(썬,콜)",
    "비숍",
    "보우마스터",
    "신궁",
    "패스파인더",
    "나이트로드",
    "섀도어",
    "듀얼블레이드",
    "바이퍼",
    "캡틴",
    "캐논슈터",
    # 시그너스 기사단
    "노블레스",
    "소울마스터",
    "플레임위자드",
    "윈드브레이커",
    "나이트워커",
    "스트라이커",
    "미하일",
    # 레지스탕스&데몬
    "시티즌",
    "블래스터",
    "배틀메이지",
    "와일드헌터",
    "메카닉",
    "데몬슬레이어",
    "제논",
    "데몬어벤져",
    # 영웅
    "아란",
    "에반",
    "메르세데스",
    "팬텀",
    "은월",
    "루미너스",
    # 노바
    "카이저",
    "카인",
    "카데나",
    "엔젤릭버스터",
    # 레프
    "아델",
    "일리움",
    "칼리",
    "아크",
    # 아니마
    "라라",
    "호영",
    # 초월자
    "제로",
    # 프렌즈 월드
    "키네시스",
    # 기간 한정
    "핑크빈",
    "예티",
]
