/* 角色动画样式文件：独立解耦，仅管角色和攻击动态效果，易修改 */
/* 己方角色攻击抖动效果（借鉴杀戮尖塔：攻击时轻微抖动+前移） */
.player-role.attack {
    animation: playerAttack 0.3s ease-in-out;
}
@keyframes playerAttack {
    0% { transform: translateX(0); }
    50% { transform: translateX(-15px) scale(1.05); } /* 前移+轻微放大 */
    100% { transform: translateX(0); }
}

/* 敌方角色受击效果（借鉴月圆之夜：红闪+轻微后移+缩容） */
.enemy-role.hit {
    animation: enemyHit 0.3s ease-in-out;
}
@keyframes enemyHit {
    0% { transform: translateX(0); opacity: 1; }
    30% { transform: translateX(10px) scale(0.95); opacity: 0.7; } /* 后移+缩容+半透 */
    50% { background: rgba(231,76,60,0.5); } /* 红闪背景 */
    100% { transform: translateX(0); opacity: 1; }
}

/* 攻击光效飞弹（己方→敌方，经典直线飞弹，视觉更直观） */
.attack-missile {
    position: absolute;
    top: 50%;
    left: 100%;
    width: 40px;
    height: 40px;
    background: linear-gradient(45deg, #f39c12, #e74c3c); /* 主题色渐变光效 */
    border-radius: 50%;
    box-shadow: 0 0 20px #f39c12; /* 发光效果 */
    z-index: 10; /* 光效在角色上方 */
    animation: missileFly 0.3s linear forwards;
}
/* 飞弹动画：从己方角色右侧飞到敌方角色左侧 */
@keyframes missileFly {
    0% { left: 100%; transform: translateY(-50%); opacity: 1; }
    100% { left: calc(100vw - 280px); transform: translateY(-50%); opacity: 0; } /* 自适应位置，无需手动调 */
}

/* 可选：暴击效果（红色大字伤害飘出，可后续在JS中触发） */
.damage-text {
    position: absolute;
    top: 20px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 24px;
    font-weight: 900;
    color: #e74c3c;
    text-shadow: 0 0 10px #e74c3c;
    animation: damageFloat 0.8s ease-out forwards;
}
@keyframes damageFloat {
    0% { top: 20px; opacity: 1; }
    100% { top: 0; opacity: 0; transform: translateX(-50%) scale(1.2); }
}

/* 敌人攻击抖动动画（和玩家攻击对称） */
.enemy-role.enemy-attack {
    animation: enemyAttack 0.3s ease-in-out;
}
@keyframes enemyAttack {
    0% { transform: translateX(0); }
    50% { transform: translateX(15px) scale(1.05); }
    100% { transform: translateX(0); }
}

/* 玩家受击红闪动画（和敌人受击对称） */
.player-role.player-hit {
    animation: playerHit 0.3s ease-in-out;
}
@keyframes playerHit {
    0% { transform: translateX(0); opacity: 1; }
    30% { transform: translateX(-10px) scale(0.95); opacity: 0.7; }
    50% { background: rgba(231,76,60,0.5); }
    100% { transform: translateX(0); opacity: 1; }
}

/* 敌人→玩家攻击飞弹（和玩家飞弹对称） */
.enemy-missile {
    position: absolute;
    top: 50%;
    right: 100%;
    width: 40px;
    height: 40px;
    background: linear-gradient(45deg, #e74c3c, #9b59b6);
    border-radius: 50%;
    box-shadow: 0 0 20px #e74c3c;
    z-index: 10;
    animation: enemyMissileFly 0.3s linear forwards;
}
@keyframes enemyMissileFly {
    0% { right: 100%; transform: translateY(-50%); opacity: 1; }
    100% { right: calc(100vw - 280px); transform: translateY(-50%); opacity: 0; }
}
