using Enums;
using Structs;
using UnityEngine;

namespace Services {
    public class Gem {
        private readonly GemType type;
        private Vector2Int position;
        public GemType Type => this.type;
        public Vector2Int Position => this.position;
        
        private readonly int scoreValue;
        public int ScoreValue => this.scoreValue;
        
        private readonly GemType colorType;
        public GemType MatchColor => this.type == GemType.Bomb ? this.colorType : this.type;
        
        public Gem(GemType type, Vector2Int position, GemTypeValues gemValue, GemType? colorType = null) {
            this.type = type;
            this.position = position;
            this.scoreValue = gemValue.scoreValue;

            this.colorType = colorType ?? type;
        }

        public void SetPosition(Vector2Int position) {
            this.position = position;
        }
    }
}