using UnityEngine;

public class DicePair
{
    private (Die, Die) _pair = (null, null);

    public void SelectDie(Die die)
    {
        if (ContainsDie(die)) return;
        
        if (_pair.Item1 == null && _pair.Item2 == null)
        {
            _pair.Item1 = die;
            die.DieBeingUsed(false);
        }
        else if (_pair.Item2 == null)
        {
            _pair.Item2 = die;
            _pair.Item1.DieBeingUsed(true);
            die.DieBeingUsed(true);
        }
    }
    
    public void UnselectDie(Die die)
    {
        if (_pair.Item1 == die)
        {
            _pair.Item1.ResetDie();
            _pair.Item1 = null;
            if (_pair.Item2 != null)
            {
                _pair.Item2.ResetDie();
                _pair.Item2.DieBeingUsed(false);
            }
        }
        else if (_pair.Item2 == die)
        {
            _pair.Item2.ResetDie();
            _pair.Item2 = null;
            if (_pair.Item1 != null)
            {
                _pair.Item1.ResetDie();
                _pair.Item1.DieBeingUsed(false);
            }
        }
    }

    public bool ContainsDie(Die die)
    {
        if (_pair.Item1 == die || _pair.Item2 == die)
        {
            return true;
        }

        return false;
    }

    public bool AreBothDiceSelected()
    {
        if (_pair.Item1 != null && _pair.Item2 != null)
        {
            return true;
        }
        
        return false;
    }

    public int Sum()
    {
        return _pair.Item1.GetResult() + _pair.Item2.GetResult();
    }

    public bool CheckIfResultsMatch()
    {
        if (_pair.Item1.GetResult() == _pair.Item2.GetResult())
        {
            return true;
        }

        return false;
    }
}
