"""DT_CharacterAbility 데이터 구조 확인"""
import json
import sys

def check_character_ability():
    # DataTable.json 로드
    with open('../../원본데이터/DataTable.json', 'r', encoding='utf-8') as f:
        data = json.load(f)

    # DT_CharacterAbility 찾기
    dt_char = None
    for table in data:
        if table.get('Type') == 'DataTable' and 'CharacterAbility' in table.get('Name', ''):
            dt_char = table
            break

    if not dt_char:
        print("❌ DT_CharacterAbility 테이블을 찾을 수 없습니다.")
        return

    print(f"✅ DT_CharacterAbility 테이블 발견: {dt_char.get('Name')}")
    print(f"   Rows: {len(dt_char.get('Rows', {}))}")

    # 우르드 데이터 확인
    rows = dt_char.get('Rows', {})
    urud_data = None
    for row_name, row_data in rows.items():
        if 'urud' in row_name.lower() or 'Urud' in row_name:
            urud_data = row_data
            print(f"\n🔍 우르드 데이터 발견: {row_name}")
            break

    if urud_data:
        print("\n📋 우르드 데이터 키:")
        for key in sorted(urud_data.keys()):
            print(f"   - {key}")

        # Attack Montage Map 확인
        if 'attackMontageMap' in urud_data:
            print(f"\n⚔️ Attack Montage Map:")
            attack_map = urud_data['attackMontageMap']
            print(f"   타입: {type(attack_map)}")
            if isinstance(attack_map, dict):
                for k, v in attack_map.items():
                    print(f"   - {k}: {v}")
            elif isinstance(attack_map, list):
                for idx, item in enumerate(attack_map):
                    print(f"   [{idx}]: {item}")
            else:
                print(f"   값: {attack_map}")

    # 리옌 데이터 확인
    lian_data = None
    for row_name, row_data in rows.items():
        if 'lian' in row_name.lower() or 'Lian' in row_name:
            lian_data = row_data
            print(f"\n🔍 리옌 데이터 발견: {row_name}")
            break

    if lian_data and 'attackMontageMap' in lian_data:
        print(f"\n⚔️ 리옌 Attack Montage Map:")
        attack_map = lian_data['attackMontageMap']
        print(f"   타입: {type(attack_map)}")
        if isinstance(attack_map, dict):
            for k, v in attack_map.items():
                print(f"   - {k}: {v}")

if __name__ == '__main__':
    check_character_ability()
