using System.Collections.Generic;
using UnityEngine;

namespace IStalk.Data
{
    public enum ConnectionTag { Up, Down, Left, Right }
    public enum RoomCategory { Corridor, SmallRoom, LargeRoom, StartingArea }

    [CreateAssetMenu(fileName = "Room_", menuName = "IStalk/Item Database/Room Node")]
    public class RoomNode_SO : ScriptableObject
    {
        [Header("Identity")]
        public string roomId;
        public string displayName;
        public GameObject roomPrefab;

        [Header("Dimensions")]
        public Vector3Int gridSize = new(1, 1, 1);

        [Header("Connections")]
        public List<ConnectionTag> openConnections = new();

        [Header("Spawn Rules")]
        [Range(0f, 1f)]
        public float spawnWeight = 0.5f;
        public int maxPerMap;
        public RoomCategory category;

        [Header("Contents")]
        public int lootSpawnSlots;
        public bool canContainShrine;
        public int incarnationPropSlots;
        public bool isValidRunnerSpawn;
        public bool isValidAltarLocation;
    }
}
