"""
随机事件系统
"""
import random
from typing import Optional, Dict

EVENT_TYPES = {
    "double_score": "双倍加分",
    "crazy_thursday": "疯狂星期四",
    "lucky_star": "幸运星",
    "normal": "普通"
}

def trigger_random_event() -> Dict[str, any]:
    """
    触发随机事件
    
    返回事件信息字典：
    {
        "type": 事件类型,
        "name": 事件名称,
        "multiplier": 积分倍数,
        "description": 事件描述
    }
    """
    # 30%概率触发特殊事件
    tmp = random.random()
    print("tmp:" ,tmp)
    if tmp < 1:
        event_type = random.choice(["double_score", "crazy_thursday", "lucky_star"])
    else:
        event_type = "normal"
    
    events = {
        "double_score": {
            "type": "double_score",
            "name": "双倍加分",
            "multiplier": 2.0,
            "description": "本次点名积分翻倍！"
        },
        "crazy_thursday": {
            "type": "crazy_thursday",
            "name": "疯狂星期四",
            "multiplier": 1.5,
            "description": "疯狂星期四！积分增加50%！"
        },
        "lucky_star": {
            "type": "lucky_star",
            "name": "幸运星",
            "multiplier": 1.2,
            "description": "幸运星降临！积分增加20%！"
        },
        "normal": {
            "type": "normal",
            "name": "普通",
            "multiplier": 1.0,
            "description": "普通点名"
        }
    }
    
    return events[event_type]

def should_trigger_crazy_thursday_special(student_score: float) -> bool:
    """
    疯狂星期四特殊规则：积分为50的因数的同学被点名几率增加
    """
    factors_of_50 = [1, 2, 5, 10, 25, 50]
    return student_score in factors_of_50

