using Unity.BossRoom.Gameplay.GameplayObjects.Character;
using Unity.Netcode;
using UnityEngine;
using UnityEngine.AI;

[CreateAssetMenu(menuName = "Abilities/Vector Fence Ability")]
public class VectorFenceAbility : Ability
{
    [Header("Vector Fence Settings")]
    public float wallLength = 8f;
    public float wallWidth = 0.5f;
    public float wallHeight = 1f;
    public float scaleUpDuration = 1.0f;
    public override void Execute(ServerCharacter character, Vector3 targetPosition, Vector3 targetRotation)
    {
        if (!NetworkManager.Singleton.IsServer)
        {
            Debug.LogError("[VectorFenceAbility] Execute should only be called on the server.");
            return;
        }

        if (character == null)
        {
            Debug.LogError("[VectorFenceAbility] ServerCharacter is null.");
            return;
        }

        // Calculate wall placement based on target position and forward direction
        Vector3 forward = character.transform.forward;
        Vector3 wallCenter = targetPosition;

        GameObject wallInstance = Instantiate(prefab, wallCenter, Quaternion.identity);
        wallInstance.transform.eulerAngles = targetRotation;
        if (wallInstance.TryGetComponent(out NetworkObject networkObject))
        {
            networkObject.Spawn();
            Debug.Log($"[VectorFenceAbility] Wall spawned at {wallCenter} facing {forward}.");
        }
    }
}