using UnityEngine;

// Sci-Fi Ship Controller. Copyright (c) 2018-2023 SCSM Pty Ltd. All rights reserved.
namespace SciFiShipController
{
    /// <summary>
    /// This class is used for each instance or copy of the same DisplayTarget.
    /// Each DisplayTarget has a list of these called displayTargetSlotList.
    /// </summary>
    public class DisplayTargetSlot
    {
        #region Public Variables
        public SSCRadarItemKey radarItemKey;

        /// <summary>
        /// The Display Target's normalised offset between the left (-1) and the right (1) from the centre (0) of the screen.
        /// At runtime call shipDisplayModule.SetDisplayTargetOffset(..)
        /// </summary>
        [Range(-1f, 1f)] public float offsetX;

        /// <summary>
        /// The Display Target's normalised offset between the bottom (-1) and the top (1) from the centre (0) of the screen.
        /// At runtime call shipDisplayModule.SetDisplayTargetOffset(..)
        /// </summary>
        [Range(-1f, 1f)] public float offsetY;

        public bool showTargetSlot;

        #endregion

        #region Private or Internal Variables and Properties

        internal float fixedWeaponTargetScore;

        /// <summary>
        /// [INTERNAL ONLY]
        /// Once initialised, the RectTransform of the target slot panel
        /// </summary>
        internal RectTransform CachedTargetPanel { get; set; }

        /// <summary>
        /// [INTERNAL ONLY]
        /// Once initialised, the Reticle Image component
        /// </summary>
        internal UnityEngine.UI.Image CachedImgComponent { get; set; }

        #endregion

        #region Constructors

        public DisplayTargetSlot()
        {
            radarItemKey = new SSCRadarItemKey() { radarItemIndex = -1, radarItemSequenceNumber = 0 };
            offsetX = 0f;
            offsetY = 0f;
            showTargetSlot = false;
            fixedWeaponTargetScore = -1;
        }

        #endregion
    }
}