using Structs;
using UnityEngine;

namespace ScriptableObjects {
    [CreateAssetMenu(fileName = "GameVariables", menuName = "Game Variables")]
    public class GameVariables : ScriptableObject {
        [Header("Debug")]
        [Tooltip("Turns Gem switching on/off")]
        public bool debugMode;
        
        [Header("Prefabs")]
        public GameObject bgTilePrefabs;
        public GemTypeValues[] gemsPrefabs;
        
        [Header("Board Setup")]
        public int width;
        public int height;

        [Header("Audio")]
        public AudioClip matchSfx;
        public AudioClip bombExplodeSfx;

        [Header("Bomb")]
        [Tooltip("How long before the gems around the bomb explode")]
        public float bombDelay = 0.1f;
        [Tooltip("How far the explosion reaches")]
        public int bombRadius = 1;
        
        [Header("Gem and Bomb Spawn")]
        public float dropHeight = 1;
        public float gemSpeed = 0.1f;
        
        [Header("Score")]
        public float scoreSpeed = 5;

        [Header("Delays")]
        public int cascadeDelayMs = 150;
        public int swapDelayMs = 600;
        public int fillBoardDelayMs = 250;
    }
}