import os
import re
import sys

if sys.stdout.encoding != "utf-8":
    sys.stdout.reconfigure(encoding="utf-8")


REPLACEMENTS = [
    ("Kỳ Kinh Bát Mạch Đồ (Astral Meridian Chart)", "Huyết Cốt Ma Đồ (Savage Bone Matrix)"),
    ("Kỳ Kinh Bát Mạch Đồ", "Huyết Cốt Ma Đồ"),
    ("Kỳ Kinh Bát Mạch", "Huyết Cốt Ma Đồ"),
    ("Vạn Giới Kỳ Trân Các & Rương Bang Hội", "Hắc Thị Hoang Vực & Rương Bang Hội"),
    ("Vạn Giới Kỳ Trân Các", "Hắc Thị Hoang Vực"),
    ("Tỷ Lệ Rơi Linh Thạch", "Tỷ Lệ Rơi Cổ Cốt Huyết Thạch"),
    ("Tỷ Lệ Rơi Linh Thạch (Farming IIQ)", "Tỷ Lệ Rơi Huyết Thạch (Farming IIQ)"),
    ("Rơi Linh Thạch", "Rơi Huyết Thạch"),
    ("Linh Thạch & Thần Vật", "Huyết Thạch & Cổ Cốt"),
    ("Linh Thạch & Cổ Vật", "Huyết Thạch & Cổ Vật"),
    ("Linh Thạch", "Huyết Thạch"),
    ("Định Hồn Thần Châu - Sơ Cấp", "Chiến Hồn Tế Cốt - Sơ Cấp"),
    ("Định Hồn Thần Châu - Trung Cấp", "Chiến Hồn Tế Cốt - Trung Cấp"),
    ("Thái Hư Hóa Thân Châu - Vô Song", "Hung Ma Tế Cốt - Vô Song"),
    ("Định Hồn Thần Châu (Trung Cấp)", "Chiến Hồn Tế Cốt (Trung Cấp)"),
    ("Định Hồn Thần Châu", "Chiến Hồn Tế Cốt"),
    ("Định Hồn Linh Châu", "Chiến Hồn Tế Cốt"),
    ("Thần Niệm Phân Thân", "Chiến Hồn Dã Tính"),
    ("Rèn Thần Châu", "Hiến Tế Cốt"),
    ("Hỗn Nguyên Thạch", "Huyết Hồn Thạch"),
    ("Thiên Mệnh Đan", "Cổ Cốt Ấn"),
    ("Thần Tướng Phù", "U Minh Cốt Đinh"),
    ("Thái Hư Càn Khôn Kính", "Huyết Ảnh Cổ Kính"),
    ("Thái Hư Kính", "Huyết Ảnh Kính"),
    ("Khai Linh Châu", "Hắc Sơ Thạch"),
    ("Tạo Hóa Thạch", "Uẩn Ma Thạch"),
    ("Tinh Luyện Phù", "Đá Mài Huyết Ngấn"),
    ("Chân Võ Đan", "Ma Võ Tàn Cốt"),
    ("Thần Biến Phù", "Dị Biến Tà Ấn"),
    ("Lò Đúc Linh Thạch", "Lò Rèn Cốt Huyết"),
    ("Điểm Huyệt Vị Kỳ Kinh Bát Mạch", "Điểm Mắt Xích Huyết Cốt Ma Đồ"),
    ("Điểm Huyệt Vị", "Điểm Mắt Xích Cốt Tiết"),
    ("huyệt vị Kỳ Kinh Bát Mạch", "mắt xích Huyết Cốt Ma Đồ"),
    ("1.500 huyệt vị", "1.500 mắt xích gân cốt"),
    ("Thái Hư Giới", "Cõi Bị Lãng Quên"),
    ("Thiên Đạo Luân Hồi", "Đại Nạn Hoang Vực"),
    ("Thiên Đạo Mùa", "Mùa Đại Nạn"),
    ("Vô Định Hoang Giới", "Hoang Vực Lưu Đày"),
    ("Nghịch Mệnh Giả", "Kẻ Lưu Đày"),
    ("Thiên Các", "Hắc Thị Thương Nhân"),
]

TARGET_FILES = [
    "client/webapp/index.html",
    "client/src/combat/MartialMatrix.ts",
    "client/src/combat/PassiveTree.ts",
    "client/src/trade/ConsignmentVaultUI.ts"
]

def refactor_file(file_path: str):
    if not os.path.exists(file_path):
        print(f"Skipping missing: {file_path}")
        return
    with open(file_path, "r", encoding="utf-8") as f:
        content = f.read()
    
    count = 0
    for old, new in REPLACEMENTS:
        if old in content:
            occ = content.count(old)
            content = content.replace(old, new)
            count += occ
            print(f"Replaced '{old}' -> '{new}' ({occ} times) in {file_path}")
    
    with open(file_path, "w", encoding="utf-8") as f:
        f.write(content)
    print(f"Done {file_path}: {count} total replacements.\n")

if __name__ == "__main__":
    base_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), "../.."))
    for rel_path in TARGET_FILES:
        full_path = os.path.join(base_dir, rel_path)
        refactor_file(full_path)
