void VerifyCompletion(Gem gem, SecondaryObjectiveSocket socket)
    {
        foreach (SecondaryObjectiveSocket s in allSockets)
        {
            if (s.IsActive && !s.IsFull)
            {
                return;
            }
        }

        SecondaryObjectiveManager.Instance?.CompleteSecondaryObjective();
    }
Example #2
0
    private bool IsAboveGoodContainer()
    {
        ContactFilter2D filter = new ContactFilter2D();

        filter.layerMask   = gameObject.layer;
        filter.useTriggers = true;
        List <Collider2D> results = new List <Collider2D>();

        _circleCollider2D.OverlapCollider(filter, results);

        foreach (Collider2D collider in results)
        {
            Conteiner container = collider.GetComponent <Conteiner>();
            if (container != null)
            {
                if (_objectColor.HasFlag(container.ObjectColor))
                {
                    Conteiner.OnColorMatch?.Invoke(container.ObjectColor);
                    if (tapParticles)
                    {
                        tapParticles.Play();
                    }
                    _unmatched = false;
                    return(true);
                }
                else
                {
                    _unmatched = true;
                }
            }
            SecondaryObjectiveSocket socket = collider.GetComponent <SecondaryObjectiveSocket>();
            if (socket != null)
            {
                if (_objectColor.HasFlag(socket.SocketColor) && !socket.IsFull)
                {
                    socket.InstallGem(this);
                    if (tapParticles)
                    {
                        tapParticles.Play();
                    }
                    _unmatched = false;
                    return(true);
                }
                else
                {
                    _unmatched = true;
                }
            }
        }
        return(false);
    }