"""
FreeExile Canonical Quest and Milestone Catalog.
Contains default seed definitions for Normal, Hidden, and Epic quests and Milestones.
Decoupled from QuestEngine execution logic.
"""

from __future__ import annotations
from typing import TYPE_CHECKING
from server.world.quest_types import (
    QuestType,
    ObjectiveType,
    HiddenTriggerType,
    RewardItem,
    QuestReward,
    ObjectiveState,
    HiddenTrigger,
    QuestDefinition,
    MilestoneTier,
)

if TYPE_CHECKING:
    from server.world.quest_engine import QuestEngine


def register_canonical_quests_and_milestones(engine: QuestEngine) -> None:
    """Populates a QuestEngine instance with canonical FreeExile quests and milestones."""

    # -------------------------------------------------------------
    # 1. NORMAL QUESTS (CHÍNH TUYẾN KẺ HÀNH KHẤT)
    # -------------------------------------------------------------
    engine.register_quest(
        QuestDefinition(
            quest_id="quest_norm_01_thuc_tinh_tang_kiem",
            title="Đáy Vực Đói Rét: Tỉnh Giấc Bên Xác Tàu",
            description="Tỉnh lại sau khi bị tước đoạt thân phận, gã hành khất nhặt khúc củi khô thanh trừng bầy Thi Cẩu đói khát.",
            quest_type=QuestType.NORMAL,
            required_level=1,
            prerequisite_quest_ids=[],
            objectives=[
                ObjectiveState(
                    objective_id="obj_norm_01_kill_hounds",
                    description="Dùng gậy ăn mày tiêu diệt Hoang Giới Thi Cẩu",
                    obj_type=ObjectiveType.KILL_MONSTER,
                    target_id="mob_trash_bone_hound",
                    target_count=5,
                )
            ],
            reward=QuestReward(
                exp=500,
                spirit_stones=[RewardItem("currency_awakening_pearl", "Hắc Sơ Thạch (Khai Linh Châu)", 5)],
                meridian_points=1,
                title="Hoang Giới Kẻ Tỉnh Giấc",
            ),
            act_id="ACT_I_HUNGER",
            story_chapter=1,
        )
    )

    engine.register_quest(
        QuestDefinition(
            quest_id="quest_norm_02_khai_thong_dan_dien",
            title="Bản Năng Sinh Tồn: Đòn Đả Cẩu & Khai Mạch",
            description="Tập trung ý niệm sinh tồn man rợ, vận chuyển huyết khí khai mở huyệt vị cội nguồn - Đan Điền Huyết Cốt.",
            quest_type=QuestType.NORMAL,
            required_level=2,
            prerequisite_quest_ids=["quest_norm_01_thuc_tinh_tang_kiem"],
            objectives=[
                ObjectiveState(
                    objective_id="obj_norm_02_dantian",
                    description="Khai mở Đan Điền tại Trận Đồ Huyết Cốt",
                    obj_type=ObjectiveType.ACTIVATE_MERIDIAN,
                    target_id="meridian_origin_dantian",
                    target_count=1,
                )
            ],
            reward=QuestReward(
                exp=1200,
                spirit_stones=[RewardItem("currency_creation_stone", "Cổ Cốt Ấn (Tạo Hóa Thạch)", 3)],
                meridian_points=2,
            ),
            act_id="ACT_I_HUNGER",
            story_chapter=2,
        )
    )

    engine.register_quest(
        QuestDefinition(
            quest_id="quest_norm_03_luyen_khi_hoa_thach",
            title="Máu Ấm Trong Tủy: Luyện Đúc Hỗn Nguyên Sa",
            description="Róc lấy vụn tủy thi cẩu và tinh luyện viên Huyết Thạch đầu tiên nuôi dưỡng thể phách kẻ lưu đày.",
            quest_type=QuestType.NORMAL,
            required_level=5,
            prerequisite_quest_ids=["quest_norm_02_khai_thong_dan_dien"],
            objectives=[
                ObjectiveState(
                    objective_id="obj_norm_03_craft_chaos",
                    description="Luyện đúc Hỗn Nguyên Thạch (Huyết Hồn Thạch)",
                    obj_type=ObjectiveType.CRAFT_ITEM,
                    target_id="currency_primal_chaos_stone",
                    target_count=1,
                )
            ],
            reward=QuestReward(
                exp=2500,
                spirit_stones=[
                    RewardItem("currency_primal_chaos_stone", "Huyết Hồn Thạch", 3),
                    RewardItem("currency_refinement_rune", "Tinh Luyện Phù", 5),
                ],
                meridian_points=2,
            ),
            act_id="ACT_I_HUNGER",
            story_chapter=3,
        )
    )

    engine.register_quest(
        QuestDefinition(
            quest_id="quest_norm_04_diet_u_hon_kiem_no",
            title="Lội Đầm Lầy Thối Rữa: Giải Thoát U Hồn Kiếm Nô",
            description="Băng qua bùn lầy ngập ngang ngực, tiêu diệt bầy U Hồn Kiếm Nô rỉ sét để đoạt xích sắt rèn vũ khí.",
            quest_type=QuestType.NORMAL,
            required_level=8,
            prerequisite_quest_ids=["quest_norm_03_luyen_khi_hoa_thach"],
            objectives=[
                ObjectiveState(
                    objective_id="obj_norm_04_kill_sword_thrall",
                    description="Tiêu diệt U Hồn Kiếm Nô tại Đầm Lầy",
                    obj_type=ObjectiveType.KILL_MONSTER,
                    target_id="mob_trash_ghost_sword_thrall",
                    target_count=10,
                )
            ],
            reward=QuestReward(
                exp=4000,
                spirit_stones=[
                    RewardItem("currency_primal_chaos_stone", "Huyết Hồn Thạch", 5),
                    RewardItem("currency_creation_stone", "Cổ Cốt Ấn", 5),
                ],
                meridian_points=3,
            ),
            act_id="ACT_II_MIASMA",
            story_chapter=4,
        )
    )

    engine.register_quest(
        QuestDefinition(
            quest_id="quest_norm_05_khai_mo_van_gioi_cac",
            title="Hắc Thị Hoang Vực: Khai Thông Kỳ Trân Các",
            description="Kẻ ăn mày tiếp cận mạng lưới giao thương ngầm của những người lưu đày, thực hiện giao dịch tức thì.",
            quest_type=QuestType.NORMAL,
            required_level=10,
            prerequisite_quest_ids=["quest_norm_04_diet_u_hon_kiem_no"],
            objectives=[
                ObjectiveState(
                    objective_id="obj_norm_05_vault_trade",
                    description="Thực hiện giao dịch Thu Mua Tức Thì tại Kỳ Trân Các",
                    obj_type=ObjectiveType.PERFORM_ACTION,
                    target_id="action_vault_instant_buyout",
                    target_count=1,
                )
            ],
            reward=QuestReward(
                exp=6000,
                spirit_stones=[
                    RewardItem("currency_primal_chaos_stone", "Huyết Hồn Thạch", 10),
                    RewardItem("currency_destiny_rune", "Thiên Mệnh Đan", 1),
                ],
                meridian_points=3,
                title="Kỳ Trân Thương Khách",
            ),
            act_id="ACT_II_MIASMA",
            story_chapter=5,
        )
    )

    engine.register_quest(
        QuestDefinition(
            quest_id="quest_norm_06_kham_pha_dia_dao",
            title="Thám Hiểm Địa Đạo: Sương Mù & Phòng Ốc",
            description="Tiến nhập địa ngục ngẫu nhiên, xua tan sương mù chiến tranh và thám hiểm các gian phòng cổ trận.",
            quest_type=QuestType.NORMAL,
            required_level=12,
            prerequisite_quest_ids=["quest_norm_05_khai_mo_van_gioi_cac"],
            objectives=[
                ObjectiveState(
                    objective_id="obj_norm_06_explore_rooms",
                    description="Thám hiểm các gian phòng trong bản đồ ngẫu nhiên",
                    obj_type=ObjectiveType.EXPLORE_MAP_ROOMS,
                    target_id="room_procedural_dungeon",
                    target_count=4,
                ),
                ObjectiveState(
                    objective_id="obj_norm_06_clear_fog",
                    description="Xua tan tối thiểu 40% sương mù chiến tranh",
                    obj_type=ObjectiveType.CLEAR_FOG_PERCENT,
                    target_id="fog_procedural_dungeon",
                    target_count=40,
                ),
            ],
            reward=QuestReward(
                exp=8000,
                spirit_stones=[
                    RewardItem("currency_primal_chaos_stone", "Huyết Hồn Thạch", 12),
                    RewardItem("currency_destiny_rune", "Thiên Mệnh Đan", 2),
                ],
                meridian_points=4,
                title="Kẻ Soi Sáng Địa Đạo",
            ),
            act_id="ACT_II_MIASMA",
            story_chapter=6,
        )
    )

    engine.register_quest(
        QuestDefinition(
            quest_id="quest_norm_07_pha_huy_phong_an_boss",
            title="Đột Kích Phòng Boss: Chém Sập Cổng Phong Ấn",
            description="Vượt qua các chướng ngại vật cạm bẫy, công phá Cổng Phong Ấn cổ đại tại lối vào Phòng Boss cuối map.",
            quest_type=QuestType.NORMAL,
            required_level=15,
            prerequisite_quest_ids=["quest_norm_06_kham_pha_dia_dao"],
            objectives=[
                ObjectiveState(
                    objective_id="obj_norm_07_destroy_obstacles",
                    description="Chém phá rào cản gỗ xương hoặc bẫy chông",
                    obj_type=ObjectiveType.DESTROY_OBSTACLES,
                    target_id="obstacle_destructible",
                    target_count=2,
                ),
                ObjectiveState(
                    objective_id="obj_norm_07_breach_gate",
                    description="Công phá Cổng Phong Ấn Phòng Boss cuối map",
                    obj_type=ObjectiveType.BREACH_BOSS_GATE,
                    target_id="gate_boss_seal",
                    target_count=1,
                ),
            ],
            reward=QuestReward(
                exp=12000,
                spirit_stones=[
                    RewardItem("currency_primal_chaos_stone", "Huyết Hồn Thạch", 15),
                    RewardItem("currency_creation_stone", "Cổ Cốt Ấn", 6),
                ],
                meridian_points=4,
                title="Kẻ Phá Cổng Bí Cảnh",
            ),
            act_id="ACT_II_MIASMA",
            story_chapter=7,
        )
    )

    engine.register_quest(
        QuestDefinition(
            quest_id="quest_norm_08_chinh_phuc_dai_bi_canh",
            title="Bí Cảnh Mở Rộng: Khám Phá Bản Đồ 64x64",
            description="Tiến vào bản đồ hoang dã diện tích lớn 64x64, tiêu diệt quái tinh anh bảo vệ đài tế trùm.",
            quest_type=QuestType.NORMAL,
            required_level=20,
            prerequisite_quest_ids=["quest_norm_07_pha_huy_phong_an_boss"],
            objectives=[
                ObjectiveState(
                    objective_id="obj_norm_08_explore_large_fog",
                    description="Khai phá 60% diện tích bản đồ mở rộng 64x64",
                    obj_type=ObjectiveType.CLEAR_FOG_PERCENT,
                    target_id="fog_large_map_64",
                    target_count=60,
                ),
                ObjectiveState(
                    objective_id="obj_norm_08_kill_boss",
                    description="Tiêu diệt quái vật bảo vệ đài tế trùm",
                    obj_type=ObjectiveType.KILL_MONSTER,
                    target_id="mob_trash_bone_hound",
                    target_count=8,
                ),
            ],
            reward=QuestReward(
                exp=18000,
                spirit_stones=[
                    RewardItem("currency_primal_chaos_stone", "Huyết Hồn Thạch", 20),
                    RewardItem("currency_destiny_rune", "Thiên Mệnh Đan", 4),
                ],
                meridian_points=5,
                title="Bá Đồ Khai Mở",
            ),
            act_id="ACT_III_CRUCIBLE",
            story_chapter=8,
        )
    )

    # -------------------------------------------------------------
    # 2. HIDDEN QUESTS (NHIỆM VỤ ẨN / KỲ NGỘ CỔ VÕ)
    # -------------------------------------------------------------
    engine.register_quest(
        QuestDefinition(
            quest_id="quest_hidden_01_huyen_anh_to_su",
            title="Kỳ Ngộ: Thân Pháp Thoát Hiểm Huyễn Ảnh",
            description="Trong khoảnh khắc thập tử nhất sinh (<10% máu), thi triển Huyễn Ảnh Bộ né nhát chém chí mạng tại Cổ Trận Huyết Lân kích hoạt truyền tống bí mật.",
            quest_type=QuestType.HIDDEN,
            required_level=10,
            prerequisite_quest_ids=[],
            objectives=[
                ObjectiveState(
                    objective_id="obj_hidden_01_reach_shrine",
                    description="Thám hiểm mật điện Huyễn Ảnh Tông",
                    obj_type=ObjectiveType.DISCOVER_LOCATION,
                    target_id="loc_secret_phantom_shrine",
                    target_count=1,
                )
            ],
            reward=QuestReward(
                exp=15000,
                spirit_stones=[
                    RewardItem("currency_primal_chaos_stone", "Huyết Hồn Thạch", 15),
                    RewardItem("currency_destiny_rune", "Thiên Mệnh Đan", 3),
                ],
                meridian_points=5,
                title="Huyễn Ảnh Vô Song",
            ),
            hidden_trigger=HiddenTrigger(
                trigger_type=HiddenTriggerType.EVASION_NEAR_DEATH,
                required_zone="zone_blood_scale_ruins",
                required_hp_percent=0.10,
                description="Lướt Huyễn Ảnh Bộ khi HP < 10% tại Cổ Trận Huyết Lân.",
            ),
            act_id="ACT_II_MIASMA",
            story_chapter=6,
        )
    )

    engine.register_quest(
        QuestDefinition(
            quest_id="quest_hidden_02_tan_bi_than_tuong",
            title="Kỳ Ngộ: Tàn Bi Thần Tướng Giữa Bão Cát",
            description="Đứng tịnh tọa trước Tàn Bi Thần Tướng giữa bão cát hoang mạc và hiến tế 1 Tạo Hóa Thạch (Cổ Cốt Ấn).",
            quest_type=QuestType.HIDDEN,
            required_level=15,
            prerequisite_quest_ids=[],
            objectives=[
                ObjectiveState(
                    objective_id="obj_hidden_02_decipher",
                    description="Giải mã đồ văn Thần Tướng cổ đại",
                    obj_type=ObjectiveType.PERFORM_ACTION,
                    target_id="action_decipher_ancient_stele",
                    target_count=1,
                )
            ],
            reward=QuestReward(
                exp=20000,
                spirit_stones=[
                    RewardItem("currency_sovereign_sigil", "U Minh Cốt Đinh (Thần Tướng Phù)", 3),
                    RewardItem("currency_primal_chaos_stone", "Huyết Hồn Thạch", 20),
                ],
                meridian_points=6,
                title="Thần Tướng Chân Truyền",
            ),
            hidden_trigger=HiddenTrigger(
                trigger_type=HiddenTriggerType.RELIC_OFFERING,
                required_zone="zone_boundless_sandstorm",
                required_item_id="currency_creation_stone",
                description="Tế Tạo Hóa Thạch lên Bia Đá Vô Danh khi bão cát nổi lên.",
            ),
            act_id="ACT_II_MIASMA",
            story_chapter=7,
        )
    )

    engine.register_quest(
        QuestDefinition(
            quest_id="quest_hidden_03_ngu_hanh_tuong_sinh",
            title="Kỳ Ngộ: Bí Pháp Ngũ Hành Tương Sinh",
            description="Tiêu diệt 5 quái Tinh Anh theo đúng chu kỳ Tương Sinh (Kim -> Thủy -> Mộc -> Hỏa -> Thổ) trong 60 giây.",
            quest_type=QuestType.HIDDEN,
            required_level=20,
            prerequisite_quest_ids=[],
            objectives=[
                ObjectiveState(
                    objective_id="obj_hidden_03_harmonize",
                    description="Dung hợp Ngũ Hành Trận Nhãn tại Ngũ Long Đàn",
                    obj_type=ObjectiveType.DISCOVER_LOCATION,
                    target_id="loc_five_elements_altar",
                    target_count=1,
                )
            ],
            reward=QuestReward(
                exp=30000,
                spirit_stones=[
                    RewardItem("currency_destiny_rune", "Thiên Mệnh Đan", 5),
                    RewardItem("currency_sovereign_sigil", "U Minh Cốt Đinh", 5),
                ],
                meridian_points=8,
                title="Ngũ Hành Hóa Cảnh",
            ),
            hidden_trigger=HiddenTrigger(
                trigger_type=HiddenTriggerType.FIVE_ELEMENTS_STREAK,
                description="Hạ gục liên tiếp 5 tinh anh Ngũ Hành tương sinh.",
            ),
            act_id="ACT_III_CRUCIBLE",
            story_chapter=9,
        )
    )

    engine.register_quest(
        QuestDefinition(
            quest_id="quest_hidden_04_u_hon_oan_kiem",
            title="Kỳ Ngộ: Tàn Kiếm Phục Thù Của Kẻ Hành Khất",
            description="Tìm thấy Tàn Kiếm Rỉ Sét nơi Cổ Kiếm Trũng, mang về tế lễ trên Đỉnh Táng Kiếm Nhai để tẩy trừ gỉ sét oán khí.",
            quest_type=QuestType.HIDDEN,
            required_level=25,
            prerequisite_quest_ids=[],
            objectives=[
                ObjectiveState(
                    objective_id="obj_hidden_04_sacrifice_pearl",
                    description="Dùng Khai Linh Châu tẩy trừ kiếm rỉ sét",
                    obj_type=ObjectiveType.PERFORM_ACTION,
                    target_id="action_cleanse_rusted_blade",
                    target_count=1,
                )
            ],
            reward=QuestReward(
                exp=35000,
                spirit_stones=[
                    RewardItem("currency_primal_chaos_stone", "Huyết Hồn Thạch", 25),
                    RewardItem("currency_sovereign_sigil", "U Minh Cốt Đinh", 4),
                ],
                meridian_points=8,
                title="Kiếm Phách Quy Chân",
            ),
            hidden_trigger=HiddenTrigger(
                trigger_type=HiddenTriggerType.SECRET_ALTAR_INTERACTION,
                required_zone="zone_tang_kiem_nhai_altar",
                description="Tương tác tế đàn Táng Kiếm Nhai vào ban đêm.",
            ),
            act_id="ACT_III_CRUCIBLE",
            story_chapter=10,
        )
    )

    engine.register_quest(
        QuestDefinition(
            quest_id="quest_hidden_05_mat_that_cuoi_ban_do",
            title="Kỳ Ngộ: Mật Thất Đài Tế Trùm Cuối Bản Đồ",
            description="Tìm thấy gian mật thất ẩn sau đài tế trùm tại phòng boss cuối map và thắp sáng các ngọn đèn tế cốt.",
            quest_type=QuestType.HIDDEN,
            required_level=28,
            prerequisite_quest_ids=[],
            objectives=[
                ObjectiveState(
                    objective_id="obj_hidden_05_discover_altar",
                    description="Khám phá đài tế bí mật phòng boss cuối map",
                    obj_type=ObjectiveType.DISCOVER_LOCATION,
                    target_id="loc_boss_altar_secret_sanctum",
                    target_count=1,
                )
            ],
            reward=QuestReward(
                exp=45000,
                spirit_stones=[
                    RewardItem("currency_sovereign_sigil", "U Minh Cốt Đinh", 6),
                    RewardItem("currency_primal_chaos_stone", "Huyết Hồn Thạch", 30),
                ],
                meridian_points=10,
                title="Tế Cốt Tông Chủ",
            ),
            hidden_trigger=HiddenTrigger(
                trigger_type=HiddenTriggerType.SECRET_ALTAR_INTERACTION,
                required_zone="zone_boss_chamber_altar",
                description="Tương tác đài tế phòng boss sau khi phá cổng phong ấn.",
            ),
            act_id="ACT_III_CRUCIBLE",
            story_chapter=9,
        )
    )

    # -------------------------------------------------------------
    # 3. HIGH-TIER / EPIC QUESTS (NHIỆM VỤ CẤP CAO / ĐỈNH PHONG THỬ THÁCH)
    # -------------------------------------------------------------
    engine.register_quest(
        QuestDefinition(
            quest_id="quest_epic_01_phong_ma_co_tran",
            title="Thử Thách: Đao Cốt Bọ Cạp Sa Mạc & Phong Ma Trận",
            description="Tiến nhập Phong Ma Cổ Trận tầng 50, trảm sát Hoàng Kim Boss Hắc Long Thần Ma và đúc thần binh.",
            quest_type=QuestType.HIGH_TIER,
            required_level=30,
            prerequisite_quest_ids=["quest_norm_05_khai_mo_van_gioi_cac"],
            objectives=[
                ObjectiveState(
                    objective_id="obj_epic_01_kill_boss",
                    description="Trảm Hoàng Kim Yêu Thú: Hắc Long Thần Ma",
                    obj_type=ObjectiveType.KILL_MONSTER,
                    target_id="boss_black_dragon_demon",
                    target_count=1,
                ),
                ObjectiveState(
                    objective_id="obj_epic_01_craft_rare",
                    description="Luyện đúc thành công trang bị Cực Phẩm bằng Tạo Hóa Thạch",
                    obj_type=ObjectiveType.CRAFT_ITEM,
                    target_id="craft_rare_gear",
                    target_count=1,
                ),
            ],
            reward=QuestReward(
                exp=80000,
                spirit_stones=[
                    RewardItem("currency_primal_chaos_stone", "Huyết Hồn Thạch", 40),
                    RewardItem("currency_destiny_rune", "Thiên Mệnh Đan", 8),
                    RewardItem("currency_sovereign_sigil", "U Minh Cốt Đinh", 5),
                ],
                meridian_points=12,
                title="Phong Ma Thần Tướng",
            ),
            act_id="ACT_III_CRUCIBLE",
            story_chapter=8,
        )
    )

    engine.register_quest(
        QuestDefinition(
            quest_id="quest_epic_02_nghich_menh_dai_huyet",
            title="Thử Thách: Khắc Ấn Nghịch Mệnh Đại Huyệt",
            description="Khai phá tiềm năng vô thượng của cơ thể, đột phá Nghịch Mệnh Đại Huyệt (Keystone) trên Kỳ Kinh Bát Mạch.",
            quest_type=QuestType.HIGH_TIER,
            required_level=40,
            prerequisite_quest_ids=["quest_epic_01_phong_ma_co_tran"],
            objectives=[
                ObjectiveState(
                    objective_id="obj_epic_02_keystone",
                    description="Đột phá Nghịch Mệnh Đại Huyệt: Bất Hoại Thần Thể",
                    obj_type=ObjectiveType.ACTIVATE_MERIDIAN,
                    target_id="meridian_keystone_unbreakable",
                    target_count=1,
                )
            ],
            reward=QuestReward(
                exp=150000,
                spirit_stones=[
                    RewardItem("currency_destiny_rune", "Thiên Mệnh Đan", 15),
                    RewardItem("currency_sovereign_sigil", "U Minh Cốt Đinh", 8),
                ],
                meridian_points=15,
                title="Nghịch Mệnh Tiên Phong",
            ),
            act_id="ACT_IV_TITAN_HUNT",
            story_chapter=11,
        )
    )

    engine.register_quest(
        QuestDefinition(
            quest_id="quest_epic_03_luyen_che_thai_hu_kinh",
            title="Thử Thách: Đúc Thần Khí Song Sinh Huyết Ảnh",
            description="Vận chuyển linh thạch tối cao, nhân bản trang bị Cực Phẩm 6 dòng hoàn mỹ bằng Thái Hư Càn Khôn Kính (Huyết Ảnh Cổ Kính).",
            quest_type=QuestType.HIGH_TIER,
            required_level=50,
            prerequisite_quest_ids=["quest_epic_02_nghich_menh_dai_huyet"],
            objectives=[
                ObjectiveState(
                    objective_id="obj_epic_03_mirror_clone",
                    description="Sử dụng Thái Hư Càn Khôn Kính nhân bản trang bị",
                    obj_type=ObjectiveType.PERFORM_ACTION,
                    target_id="action_mirror_artifact_clone",
                    target_count=1,
                )
            ],
            reward=QuestReward(
                exp=300000,
                spirit_stones=[
                    RewardItem("currency_void_mirror_relic", "Huyết Ảnh Cổ Kính (Thái Hư Kính)", 1),
                    RewardItem("currency_primal_chaos_stone", "Huyết Hồn Thạch", 100),
                ],
                meridian_points=20,
                title="Thái Hư Chân Chủ",
            ),
            act_id="ACT_IV_TITAN_HUNT",
            story_chapter=12,
        )
    )

    engine.register_quest(
        QuestDefinition(
            quest_id="quest_epic_04_van_gioi_than_ma_tranh_ba",
            title="Thử Thách Đỉnh Phong: Trảm Sát Chúa Tể Hoang Vực",
            description="Khiêu chiến và đánh bại Viêm Ma Tôn Giả / Chúa Tể Hoang Vực trong Bí Cảnh Hư Không tầng 100.",
            quest_type=QuestType.HIGH_TIER,
            required_level=60,
            prerequisite_quest_ids=["quest_epic_03_luyen_che_thai_hu_kinh"],
            objectives=[
                ObjectiveState(
                    objective_id="obj_epic_04_kill_flame_lord",
                    description="Trảm sát Viêm Ma Tôn Giả",
                    obj_type=ObjectiveType.KILL_MONSTER,
                    target_id="boss_flame_demon_lord",
                    target_count=1,
                )
            ],
            reward=QuestReward(
                exp=500000,
                spirit_stones=[
                    RewardItem("currency_void_mirror_relic", "Huyết Ảnh Cổ Kính", 2),
                    RewardItem("currency_destiny_rune", "Thiên Mệnh Đan", 30),
                    RewardItem("currency_sovereign_sigil", "U Minh Cốt Đinh", 20),
                ],
                meridian_points=30,
                title="Vô Định Ma Thần",
            ),
            act_id="ACT_V_SOVEREIGN",
            story_chapter=13,
        )
    )

    engine.register_quest(
        QuestDefinition(
            quest_id="quest_epic_05_chua_te_vuc_tham",
            title="Thử Thách Đỉnh Phong: Đại Chiến Boss Arena 64x64",
            description="Tiến nhập Boss Arena bản đồ mở rộng 64x64, phá vỡ Cổng Phong Ấn Thần Cốt và hạ gục Hoàng Kim Yêu Thú.",
            quest_type=QuestType.HIGH_TIER,
            required_level=70,
            prerequisite_quest_ids=["quest_epic_04_van_gioi_than_ma_tranh_ba"],
            objectives=[
                ObjectiveState(
                    objective_id="obj_epic_05_breach_gate",
                    description="Phá Cổng Phong Ấn Thần Cốt tại Boss Arena",
                    obj_type=ObjectiveType.BREACH_BOSS_GATE,
                    target_id="gate_boss_seal_arena",
                    target_count=1,
                ),
                ObjectiveState(
                    objective_id="obj_epic_05_kill_titan",
                    description="Trảm Sát Thú Vương Vực Thẳm",
                    obj_type=ObjectiveType.KILL_MONSTER,
                    target_id="boss_black_dragon_demon",
                    target_count=1,
                ),
            ],
            reward=QuestReward(
                exp=800000,
                spirit_stones=[
                    RewardItem("currency_void_mirror_relic", "Huyết Ảnh Cổ Kính", 3),
                    RewardItem("currency_destiny_rune", "Thiên Mệnh Đan", 50),
                    RewardItem("currency_sovereign_sigil", "U Minh Cốt Đinh", 35),
                ],
                meridian_points=40,
                title="Hoang Vực Tối Cao Chúa Tể",
            ),
            act_id="ACT_V_SOVEREIGN",
            story_chapter=14,
        )
    )

    # -------------------------------------------------------------
    # 4. MILESTONES (MỐC TIẾN ĐỘ & PHẦN THƯỞNG BẢN VỊ)
    # -------------------------------------------------------------
    engine.register_milestone(
        MilestoneTier(
            milestone_id="ms_tier_1_so_nhap_hoang_gioi",
            title="Mốc I: Sơ Nhập Hoang Giới",
            description="Hoàn thành tối thiểu 5 nhiệm vụ bất kỳ.",
            required_total_completed=5,
            required_hidden_completed=0,
            required_high_tier_completed=0,
            reward=QuestReward(
                exp=10000,
                spirit_stones=[
                    RewardItem("currency_awakening_pearl", "Khai Linh Châu", 10),
                    RewardItem("currency_creation_stone", "Tạo Hóa Thạch", 5),
                ],
                meridian_points=2,
                title="Hoang Giới Tân Tú",
            ),
        )
    )

    engine.register_milestone(
        MilestoneTier(
            milestone_id="ms_tier_2_thong_suot_kinh_mach",
            title="Mốc II: Thông Suốt Kinh Mạch",
            description="Hoàn thành tối thiểu 7 nhiệm vụ và khám phá 1 Kỳ Ngộ Ẩn.",
            required_total_completed=7,
            required_hidden_completed=1,
            required_high_tier_completed=0,
            reward=QuestReward(
                exp=30000,
                spirit_stones=[
                    RewardItem("currency_primal_chaos_stone", "Hỗn Nguyên Thạch", 15),
                    RewardItem("currency_destiny_rune", "Thiên Mệnh Đan", 2),
                ],
                meridian_points=5,
                title="Thông Mạch Tông Sư",
            ),
        )
    )

    engine.register_milestone(
        MilestoneTier(
            milestone_id="ms_tier_3_chan_vo_xuat_the",
            title="Mốc III: Chân Võ Xuất Thế",
            description="Hoàn thành tối thiểu 9 nhiệm vụ, 2 Kỳ Ngộ Ẩn và 1 Thử Thách Cấp Cao.",
            required_total_completed=9,
            required_hidden_completed=2,
            required_high_tier_completed=1,
            reward=QuestReward(
                exp=80000,
                spirit_stones=[
                    RewardItem("currency_primal_chaos_stone", "Hỗn Nguyên Thạch", 30),
                    RewardItem("currency_destiny_rune", "Thiên Mệnh Đan", 6),
                    RewardItem("currency_sovereign_sigil", "Thần Tướng Phù", 5),
                ],
                meridian_points=8,
                title="Chân Võ Chấn Thế",
            ),
        )
    )

    engine.register_milestone(
        MilestoneTier(
            milestone_id="ms_tier_4_nghich_menh_chuyen_luan",
            title="Mốc IV: Nghịch Mệnh Chuyển Luân",
            description="Hoàn thành tối thiểu 11 nhiệm vụ, 3 Kỳ Ngộ Ẩn và 2 Thử Thách Cấp Cao.",
            required_total_completed=11,
            required_hidden_completed=3,
            required_high_tier_completed=2,
            reward=QuestReward(
                exp=200000,
                spirit_stones=[
                    RewardItem("currency_primal_chaos_stone", "Hỗn Nguyên Thạch", 60),
                    RewardItem("currency_destiny_rune", "Thiên Mệnh Đan", 15),
                    RewardItem("currency_sovereign_sigil", "Thần Tướng Phù", 10),
                ],
                meridian_points=15,
                title="Nghịch Mệnh Tiên Phong",
            ),
        )
    )

    engine.register_milestone(
        MilestoneTier(
            milestone_id="ms_tier_5_van_gioi_chi_ton",
            title="Mốc V: Vạn Giới Chí Tôn",
            description="Hoàn thành tối thiểu 13 nhiệm vụ, 4 Kỳ Ngộ Ẩn và 4 Thử Thách Cấp Cao.",
            required_total_completed=13,
            required_hidden_completed=4,
            required_high_tier_completed=4,
            reward=QuestReward(
                exp=1000000,
                spirit_stones=[
                    RewardItem("currency_void_mirror_relic", "Thái Hư Càn Khôn Kính", 2),
                    RewardItem("currency_primal_chaos_stone", "Hỗn Nguyên Thạch", 150),
                    RewardItem("currency_destiny_rune", "Thiên Mệnh Đan", 50),
                    RewardItem("currency_sovereign_sigil", "Thần Tướng Phù", 30),
                ],
                meridian_points=30,
                title="Vạn Giới Chí Tôn",
            ),
        )
    )
