public void Activate()
    {
        AttackPackage attack = AttackPackage.CreateNewPackage();

        weapon.Activate(attack);
    }
        private void HandleFrameEvent(FrameEventEventArg eventArgs)
        {
            if (eventArgs._name == AnimEventNames.AttackBegin)
            {
                var attack = AttackPackage.CreateNewPackage();
                attack._hitPointDamage.Base  = _state._hitPointDamage;
                attack._enduranceDamage.Base = _state._enduranceDamage;

                _weapon.Activate(attack, _currentMove);

                if (eventArgs._animation.name == BossFSMData.Anim.Slash1 ||
                    eventArgs._animation.name == BossFSMData.Anim.Slash2)
                {
                    foreach (var collider in _slashAttackBoxes)
                    {
                        collider.enabled = true;
                    }
                    _collider.gameObject.layer = LayerMask.NameToLayer("EnemyDash");
                    OnBeginDashingInvincible?.Invoke();
                }

                if (eventArgs._animation.name == BossFSMData.Anim.Combo2_3)
                {
                    foreach (var collider in _combo2AttackBoxes)
                    {
                        collider.enabled = true;
                    }
                    _collider.gameObject.layer = LayerMask.NameToLayer("EnemyDash");
                    OnBeginDashingInvincible?.Invoke();
                }

                if (eventArgs._animation.name == BossFSMData.Anim.Combo3_2)
                {
                    foreach (var collider in _thrustAttackBoxes)
                    {
                        collider.enabled = true;
                    }
                    _collider.gameObject.layer = LayerMask.NameToLayer("EnemyDash");
                    OnBeginDashingInvincible?.Invoke();
                }
            }
            else if (eventArgs._name == AnimEventNames.AttackEnd)
            {
                _weapon.Deactivate();

                if (eventArgs._animation.name == BossFSMData.Anim.Slash1 ||
                    eventArgs._animation.name == BossFSMData.Anim.Slash2)
                {
                    foreach (var collider in _slashAttackBoxes)
                    {
                        collider.enabled = false;
                    }
                    _collider.gameObject.layer = LayerMask.NameToLayer("RejectCollider");
                    OnStopDashingInvincible?.Invoke();
                }

                if (eventArgs._animation.name == BossFSMData.Anim.Combo2_3)
                {
                    foreach (var collider in _combo2AttackBoxes)
                    {
                        collider.enabled = false;
                    }
                    _collider.gameObject.layer = LayerMask.NameToLayer("RejectCollider");
                    OnStopDashingInvincible?.Invoke();
                }

                if (eventArgs._animation.name == BossFSMData.Anim.Combo3_2)
                {
                    foreach (var collider in _thrustAttackBoxes)
                    {
                        collider.enabled = false;
                    }
                    _collider.gameObject.layer = LayerMask.NameToLayer("RejectCollider");
                    OnStopDashingInvincible?.Invoke();
                }
            }
        }