public void RunAttack(Transform target = null)
    {
        if (_spawn != null)
        {
            if (_spawn.spawnOnPlayAttack)
            {
                _spawn.SpawnSomething();
            }
        }

        if (_attackCollider != null)
        {
            if (_localBlackboard.currentTarget != null)
            {
                _attackCollider.ActivateCollider(_localBlackboard.currentTarget._statusManager, onlyHitTarget, targetHeroes);
            }
        }

        if (_recharge != null)
        {
            attackCharged = false;
            _recharge.RechargeAttack();
        }
        if (_attackFXPlayer != null)
        {
            _attackFXPlayer.PlayAttackFX();
        }

        if (rotateTowardsTarget && target != null)
        {
            transform.LookAt(target.position, Vector3.up);
        }

        _localBlackboard._statusManager.AdjustEnergy(-energyCost);
    }