import re

raw = """Item Class: Waystones
Rarity: Rare
Forgotten Course
Waystone (Tier 14)
--------
Revives Available: 2 (augmented)
Pack Size: +26% (augmented)
Monster Rarity: +18% (augmented)
Waystone Drop Chance: +70% (augmented)
--------
Item Level: 80
--------
{ Prefix Modifier "Venomous" (Tier: 1) }
Monsters have 30(27-33)% chance to Poison on Hit
{ Prefix Modifier "Fleeting" (Tier: 1) }
Monsters have 15(10-15)% increased Attack, Cast and Movement Speed
{ Suffix Modifier "of Exposure" (Tier: 1) }
-7(-8--6)% maximum Player Resistances
{ Suffix Modifier "of Obstruction" (Tier: 1) }
Monsters take 28(26-30)% reduced Extra Damage from Critical Hits
--------
Can be used in a Map Device, allowing you to enter a Map. Waystones can only be used once.
"""

RED_PATTERNS = [
    (r"Reflects?\s+(?:\d+[\.,]?\d*%\s+of\s+)?(?:Physical|Elemental|Chaos)?\s*Damage|Monsters\s+reflect", "Reflect", "BRICK", "Phản đòn sát thương"),
    (r"Cannot\s+Leech", "No Leech", "BRICK", "Không thể hút Máu/ES/Mana"),
    (r"cannot\s+Regenerate", "No Regen", "BRICK", "Không thể hồi phục Máu/Mana/ES"),
    (r"-\s*(\d+)%\s+(?:to\s+(?:all\s+)?maximum|maximum\s+(?:Player\s+)?Resistances?|reduced\s+maximum\s+Resistances?)", "-Max Res", "DANGEROUS", "Giảm kháng tối đa"),
    (r"Monsters\s+have\s+(?:\d+%\s+)?increased\s+Attack,\s*Cast\s+and\s+Movement\s+Speed|Monsters\s+gain\s+(?:.*)?Onslaught", "Monster Speed", "DANGEROUS", "Tăng tốc chạy, đánh và xuất chiêu của quái"),
    (r"Monsters\s+take\s+(?:\d+%\s+)?reduced\s+Extra\s+Damage\s+from\s+Critical\s+Hits", "Reduced Crit Dmg", "DANGEROUS", "Quái giảm sát thương chí mạng phải nhận"),
    (r"Monsters\s+have\s+(?:\d+%\s+)?chance\s+to\s+(?:Poison|Bleed|Ignite|Freeze|Shock)\s+on\s+Hit", "Ailment on Hit", "DANGEROUS", "Quái gây hiệu ứng Độc/Chảy máu/Sốc khi đánh trúng"),
    (r"Monsters\s+deal\s+(?:.*%)?\s*extra\s+Damage\s+as|Monsters\s+have\s+(?:.*%)?\s*increased\s+Critical\s+Strike\s+Chance|\+?(\d+)%\s+to\s+Monster\s+Critical\s+Strike\s+Multiplier", "Crit / Extra Dmg", "DANGEROUS", "Quái tăng sát thương / chí mạng"),
    (r"Area\s+has\s+patches\s+of\s+Desecrated\s+Ground|Players\s+are\s+Cursed\s+with|Corrupted\s+Blood|Area\s+contains\s+patches", "Hazard / Curse", "DANGEROUS", "Lời nguyền / Mặt đất nguy hiểm"),
]

GREEN_PATTERNS = [
    (r"(?:Pack\s+Size:\s*\+?(\d+)%|(\d+)%\s+increased\s+Monster\s+Pack\s+Size)", "Pack Size", "REWARD", "Tăng mật độ quái"),
    (r"(?:Monster\s+Rarity:\s*\+?(\d+)%|Item\s+Rarity:\s*\+?(\d+)%|(\d+)%\s+increased\s+Rarity\s+of\s+Items)", "Rarity", "REWARD", "Tăng độ hiếm đồ rơi"),
    (r"(?:Waystone\s+Drop\s+Chance:\s*\+?(\d+)%|Item\s+Quantity:\s*\+?(\d+)%|(\d+)%\s+increased\s+Quantity\s+of\s+Items)", "Quantity / Drop Chance", "REWARD", "Tăng số lượng / tỉ lệ rơi Waystone"),
    (r"(?:Gold\s+Drop:\s*\+?(\d+)%|(\d+)%\s+increased\s+Gold)", "Gold", "REWARD", "Tăng vàng rơi"),
]

lines = [ln.strip() for ln in raw.splitlines() if ln.strip()]
red_mods = []
green_mods = []
neutral_mods = []

for line in lines:
    clean = re.sub(r"\([^)]*\)", "", line).strip()
    clean = re.sub(r"\s+", " ", clean)

    matched_red = False
    for pat, cat, sev, desc in RED_PATTERNS:
        if re.search(pat, clean, re.I):
            red_mods.append(f"[{cat}] {line}")
            matched_red = True
            break
    if matched_red:
        continue

    matched_green = False
    for pat, cat, sev, desc in GREEN_PATTERNS:
        if re.search(pat, clean, re.I):
            green_mods.append(f"[{cat}] {line}")
            matched_green = True
            break
    if not matched_green:
        neutral_mods.append(line)

print("=== KẾT QUẢ PHÂN LOẠI ===")
print("🟢 GREEN MODS:", len(green_mods))
for g in green_mods:
    print("  ", g)
print("🔴 RED MODS:", len(red_mods))
for r in red_mods:
    print("  ", r)
print("⚪ NEUTRAL MODS:", len(neutral_mods))
