using System.Collections.Generic; using Escape_Room_Engine.Engine.Scripts.Modules; using NaughtyAttributes; using UnityEngine; namespace Escape_Room_Engine.Engine.Scripts { [CreateAssetMenu(menuName = "Engine Theme")] public class EngineTheme : ScriptableObject { #region Size [BoxGroup("Size")] [Tooltip("The minimum size that should be allowed for rooms.")] public Vector2Int minRoomSize; [BoxGroup("Size")] [Tooltip("The size of the physical play space available to the engine.")] public Vector2Int playSpace; #endregion #region Theme [BoxGroup("Theme")] [Required] public SpaceTile spaceTile; [BoxGroup("Theme")] public GameObject environment; [BoxGroup("Theme")] [ColorUsage(false, true)] public Color puzzleColor, solvedColor, activeColor; #endregion #region Doors [BoxGroup("Doors")] [Required] public DoorModuleDescription spawnDoor; [BoxGroup("Doors")] [ValidateInput("IsNotEmpty", "At least one exit door type is required")] public List exitDoorTypes; #endregion #region Puzzles [BoxGroup("Puzzles")] [MinMaxSlider(0, 10)] public Vector2Int puzzleCount; [BoxGroup("Puzzles")] public List puzzleTypes; #endregion } }