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); }