using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Carte : MonoBehaviour
{
    [SerializeField] private GameManager _gameManager; // Référence de GameManager

    private Sprite _carteFace; // Sprite de la face de la carte
    private Sprite _carteDos; // Sprite du dos de la carte
    private Sprite _carteHilite; // Sprite de surbrillance de la carte

    private SpriteRenderer _spriteRenderer; // Accès au SpriteRenderer

    void Awake()
    {
        _spriteRenderer = GetComponent<SpriteRenderer>();
    }

    // Quand on clique sur la carte, on notifie GameManager
    private void OnMouseDown()
    {
        _gameManager.Jouer(this); 
    }

    // Affiche le dos de la carte
    public void Dos()
    {
        _spriteRenderer.sprite = _carteDos; 
    }

    // Affiche la face de la carte
    public void Face()
    {
        _spriteRenderer.sprite = _carteFace; 
    }

    // Affiche la surbrillance de la carte
    public void Hilite()
    {
        _spriteRenderer.sprite = _carteHilite; 
    }

    // Pour définir les sprites à utiliser pour cette carte
    // (fonction activée par GameManager)
    public void Set(Sprite dos, Sprite face, Sprite hilite)
    {
        _carteDos = dos; // le sprite du dos de la carte
        _carteFace = face; // le sprite de la face de la carte
        _carteHilite = hilite; // le sprite de surbrillance de la carte
    }

    // Renvoie le sprite actuellement affiché sur la carte
    public Sprite SpriteCourant()
    {
        return _spriteRenderer.sprite; 
    }

    // Vérifie si la carte est cliquable (si elle affiche présentement son dos)
    public bool EstCliquable()
    {
        return _spriteRenderer.sprite == _carteDos; 
    }
}
