/// <summary>
    /// 攻击一个目标
    /// </summary>
    /// <param name="target">攻击目标</param>
    /// <param name="damage">攻击伤害</param>
    public void Attack(CardHolder target, int damage)
    {
        if (PreAttackEvent != null)
        {
            PreAttackEvent();
        }

        if (AttackDamageChangeEvent != null)
        {
            damage = AttackDamageChangeEvent(damage);
        }

        target.TakeAttack(this, damage);

        if (AfterAttackEvent != null)
        {
            AfterAttackEvent();
        }
    }